Les bases de données Séance 8 Jointures.

Slides:



Advertisements
Présentations similaires
Marta Rukoz Université Paris X - Nanterre
Advertisements

Bases de Données Avancées: Bases de Données Relationnelles
Les Systèmes de Gestion de Bases de Données (SGBD) Les vues.
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Bureautique Excel-VBA et Access – Cours 2 Dominante Économie et Gestion dEntreprise AgroParisTech Année Liliana IBANESCU et Laurent ORSEAU UFR.
Fonctionnalités des SGBD
T ECHNOLOGIES O RACLE Création et gestion des objets © sebvita.com.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
Contrôles d'accès aux données
Rappel sur les bases de données et le vocabulaire
Les fonctions de groupes Gestion des transactions
L’utilisation des bases de données
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Procédures stockées CPI-SQLServer.
SQL partie3: Langage de définition des données
Les concepts et les méthodes des bases de données
Manipulation des données Requêtes simples
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Les transactions.
OPTIMISATION DE BASE DE DONNEES ORACLE
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
Cours 4b: Introduction au SQL, le langage des SGBD Relationnels
Introduction.
SQL partie 4. SQL est un langage de protections d'accès Il est possible avec SQL de définir des permissions au niveau des utilisateurs d'une base de données.
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
JDBC L'API JDBC est utilisée pour utilisée pour intéragir avec une base de données.
Créer des packages.
Copyright  Oracle Corporation, All rights reserved. 19 Gestion des Privilèges.
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
(Procedural Language / Structured Query Language)
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Module 7 : Utilisation de requêtes élaborées
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
Module 4 : Implémentation de l'intégrité des données.
Sélection de colonnes (la projection)
Module 13 : Implémentation de déclencheurs. Vue d'ensemble Présentation des déclencheurs Définition de déclencheurs Exemples de déclencheurs Performances.
Gérer les rôles.
Les Contraintes.
SQL : Langage de Manipulation des données
21/04/2015© Robert Godin. Tous droits réservés.1 6Gestion des contraintes d’intégrité en SQL n Contrainte d'intégrité statique – respectée pour chacun.
Cours SQL.
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Création et Gestion de Tables
Le Langage de Définition de Données LDD
3 Copyright © Oracle Corporation, Tous droits réservés. Créer des fonctions.
Les vues Une vue: c’est une relation virtuelle. Définie par:
Le Langage de Définition de Données LDD. 2 Les ordres et les objets Ordre CREATE –Création de la structure de l’objet  DD Ordre DROP –Suppression des.
Le Langage de Contrôle de Données LCD. 2 Contrôle des Données Notion de Sous–Schéma –Restriction de la vision –Restriction des actions Privilèges –Systèmes.
Structured Query Language 1/34. SQL Types de données Langage de Définition de Données (LDD) Langage de Manipulation de Données (LDM) Langage de Contrôle.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
Le langage SQL.
Séance /10/2004 SGBD - Approches & Principes.
Initiation aux bases de données et à la programmation événementielle
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Cours n°2 Implémentation et exploitation
Les vues, indexes, séquences.  Qu’est ce qu’une vue 1. Une vue est une vision partielle ou particulière des données d'une ou plusieurs tables de la base.
Le Langage de Manipulation de Données LMD Module 6.
De Arnault Chazareix :
Les bases de données Séance 4 Construction du Modèle Physique (la BDD)
Bases de données : modèlisation et SGBD Séance 3.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Langages d’interrogation et de manipulation. N. ChaignaudGM4 - Base de données2 1. Algèbre relationnelle  Ensemble d’opérations permettant de manipuler.
Transcription de la présentation:

Les bases de données Séance 8 Jointures

Base de données IX Ce qui est abordé L’objet VUE L’objet INDEX Les privilèges d’accès

Base de données IX Les vues Une vue est une table virtuelle de ma base de données dont le contenu est défini par une requête. La vue n’existe pas comme un ensemble donné de valeurs dans le stockage physique. Seule la requête décrivant la vue est stockée.

Base de données IX Les vues : avantages Sécurité Simplicité des requêtes Simplicité structurelle Isolation des modifications Intégrité des données

Base de données IX Les vues : inconvénients Performances La traduction de la requête peut être longue. Restriction des mises à jour possibilité de mise à jour qu’à partir de vues simples.

Base de données IX Créer et gérer des vues CREATE [OR REPLACE] [FORCE][NOFORCE] VIEW nom_vue [col,…] AS <syntaxe_d_un_select> [WITH CHECK OPTION [CONSTRAINT] nom] ; DROP VIEW nom_vue ; RENAME ancien_nom TO nouveau_nom ;

Base de données IX Les vues : exemple Créer une vue correspondant au producteur du vin (v1) CREATE VIEW producteur_de_v1 AS SELECT p.id, p.nom FROM producteur AS p, recolte AS r WHERE r.id_vin = 'v1' AND r.id_producteur = p.id ; SELECT * FROM producteur_de_v1 ;

Base de données IX Les vues : mise à jour de données Conditions : Construite sur une seule table. Absence de GROUP BY. Les colonnes résultats doivent être des colonnes réelles de la table et non des résultats calculés. La vue contient toutes les colonnes NOT NULL de la table. La mise à jour de vue permet d’insérer et de modifier des lignes dans une table.

Base de données IX Les vues : contrôle d’intégrité La clause CHECK OPTION permet d’utiliser une vue en prévision d’un contrôle des données. Cette clause interdit  d’insérer à travers la vue des lignes qui ne répondraient plus à la clause de définition de la vue

Base de données IX Les vues : contrôle d’intégrité 2 CREATE VIEW vue_client AS SELECT * FROM client WHERE region = 'Paris' WITH CHECK OPTION CONSTRAINT client_paris INSERT INTO vue_client VALUES ('c1','','Rouen') * ERROR at line 1: ORA-01402: view WITH CHECK OPTION where-clause violation

Base de données IX Les indexes Permettent une recherche rapide lorsque le critère n’est pas une clef primaire. Indépendants de la table. Sont mis à jour automatiquement. Peuvent concerner plusieurs colonnes (index composé). !! : ils ralentissent les mises à jours

Base de données IX Indexes implicites et explicites Les indexes implicites Créés automatiquement par le SGBD clé primaire, colonne unique Les indexes explicites Créés par l’administrateur de données Syntaxe générale CREATE INDEX nom_index ON nom_table (nom_col [ASC|DESC], nom_col…,); DROP INDEX nom_ind;

Base de données IX Comment choisir les indexes à ajouter On met en place des indexes sur : les colonnes utilisées comme critère de jointure, les colonnes servant de critères de sélection, sur une table de gros volume.

Base de données IX Les indexes superflus Indexes déjà créés implicitement. Recherche de condition IS NOT NULL ou IS NULL. Pour les évaluations de requêtes par l’intermédiaire d’une fonction.

Base de données IX Exemples de cas où l’index est utilisé SELECT * FROM client WHERE id = 500; SELECT * FROM client WHERE id > 10; SELECT * FROM client WHERE id BETWEEN 300 AND 500; WHERE nom ='Martin'; WHERE nom LIKE 'M%' ;

Base de données IX Exemples de cas où l’index n’est pas utilisé SELECT * FROM client; SELECT * FROM client WHERE nom IS NULL; WHERE ca*10 >10000 ;

Base de données IX Vérification d’un processus d’extraction Créer la table plan_table à l’aide du script utlxplan.sql Lancer la requête par l’intermédiaire d’un explain plan : Explain plan for select … ; Visualiser le contenu de la table à l’aide du script utlxplp.sql

Base de données IX Vérification d’un processus d’extraction 2 EXPLAIN PLAN FOR SELECT nom FROM client WHERE nom = 'Toto'; Lancer le script utlxplp.sql Plan Table ----------------------------------------- | Operation | Name | | SELECT STATEMENT | | | TABLE ACCESS BY INDEX ROWI| CLIENT | | INDEX RANGE SCAN |NOM |

Base de données IX Droits et privilèges Les bases de données permettent à plusieurs utilisateurs de travailler en toute sécurité sur la même base, selon leur fonction. Les ordres GRANT et REVOKE permettent de définir les droits de chaque utilisateur sur les objets de la base. GRANT <privilège> ON <table> TO <utilisateur> [with grant option]

Base de données IX Droits et privilèges Select (droit de lecture) Insert (droit d'insertion de lignes) Update (droit de modification de lignes) Update (col1, col2, …) (limité à certaines colonnes) Delete (droit de suppression de lignes) Alter (droit de modification de la déf. d'une table) ALL (tous les droits ci-dessus)

Base de données IX Droits et privilèges Un utilisateur1 ayant accordé un privilège à l'utilisateur2 peut le reprendre à l'aide du contre- ordre : REVOKE <privilège> ON <table> FROM <utilisateur2>

FIN DU COURS