ENSGI Cours MSI 2 A Relationnel et SQL

  • Slides: 48
Download presentation
ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Modèle relationnel Historique : E. F. CODD dans les années 70 • modèle basé sur la théorie des ensembles • des langages pour manipuler les données (SQL) • une démarche pour représenter le « monde réel » Nombreux outils : My. SQL (logiciel libre) http: //dev. nexen. net/docs/mysql/annotee/manuel_toc. php Access (Microsoft) Ingres (Computer Associates) SQL Server (Microsoft) ORACLE (Oracle corp. ) http: //cerig. efpg. inpg. fr/tutoriel/bases-de-donnees/ 1 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Organisations Constituant propriétés Constituant • Consulter Task 2 Task 3 • Ajouter Task 1 Tâches, processus • Modifier • Supprimer propriétés Information structurée, bases de données Quels systèmes ? SQL et relationnel 2 Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : « Domaine » Domaines : Di = {di 1, di 2, …. . din}, Dj = {d Î R}, Dk = Di x Dj Di défini en extension, Dj et Dk en intention Exemples : • D_Num_securite_sociale = { n Î [1013 ; 3. 1013]} • D_Nom = { chaine de 30 caractères} • D_Prenom = { chaine de 20 caractères} • D_Code_postal = { chaine de 5 chiffres} • D_Telephone = { chaine de 10 chiffres} • D_couleur = { bleu, vert, rouge, jaune } • D_type_stage = { operateur, Enquete, EDT, inge_adjoint, PFE} • D_titre = { chaine de 200 caractères} • D_date_début = {date} 3 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : « Relations » Une relation (ou table) est un sous ensemble d’un produit cartésien de domaines. Une relation est définie par un nom. Le degré d’une relation est égal par définition au nombre de facteurs de ce produit cartésien. Exemples : relations • PERSONNE Í D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone • STAGE Í D_Num_securite_sociale x D_type_stage x D_Titre x D_date_deb Personne est de degré 5, Stage est de degré 4 4 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : « Constituants » On appelle constituant (ou colonne ou attribut) d’une relation (ou table) le nom donné à une colonne de la table. On note R+ l’ensemble des constituants de R. Exemples : les constituants d’une relation • PERSONNE+ = {Num_securite_sociale, Nom , Prenom , Code_postal, Telephone } • STAGE + = { Num_securite_sociale , type_stage , Titre, date_deb } Ou plus simplement • PERSONNE (Num_securite_sociale, Nom , Prenom , Code_postal, Telephone) • STAGE ( Num_securite_sociale , type_stage , Titre , date_deb ) 5 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : « n-uplets » Un n-uplet - ou tuple (en anglais), instance, entité, ligne - d ’une relation est un élément de cette relation Exemples : 2 relations • PERSONNE Í D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone • STAGE Í D_Num_securite_sociale x D_type_stage x D_Titre x D_date-deb 6 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : propriétés, constituants, n-uplets Exemples : 2 relations • PERSONNE Í D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone • STAGE Í D_Num_securite_sociale x D_type_stage x D_Titre x D_date-deb Constituant propriétés Constituant propriétés 7 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : clé, contraintes d’intégrité Toute relation ou table doit comporter parmi l’ensemble de ses constituants un sous ensemble qui identifie sans ambiguité chaque n-uplet : ce sous ensemble est appelé « clé » de la relation. Les constituants de ce sous ensemble sont présentés soulignés. Exemples : clé d’une relation • PERSONNE (Num_securite_sociale, Nom , Prénom , Code_postal, Téléphone) • STAGE ( Num_securite_sociale , type_stage , Titre, Date-début ) 8 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : Schéma de relations Le schéma d’une relation ou définition en intention de cette relation est constitué des éléments : • le nom de la relation • la liste des constituants et les domaines de chacun • les contraintes d ’intégrité à respecter Exemples : PERSONNE STAGE ( ( Num_securite_sociale : { n Î [1013 ; 3. 1013]} , Nom : { chaine de 30 caractères}, Prenom : { chaine de 20 caractères}, Code_postal : { chaine de 5 chiffres} , Telephone = { chaine de 10 chiffres} ) Num_securite_sociale : { n Î [1013 ; 3. 1013]} , type_stage : { operateur, Enquete, EDT, inge_adjoint, PFE}, titre : { chaine de 200 caractères} date-début : {date} ) SQL et relationnel 9 Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : Schéma de Base de données relationnelle Le schéma d’une base de données est constituée par l’ensemble des schémas des relations qui la constituent. Exemple : CLIENT ( Num_client : entier long , Nom : chaine de 30 caractères, Prenom : chaine de 20 caractères, Code_postal : chaine de 5 chiffres , Telephone : chaine de 10 chiffres ) COMMANDE ( Num_commande : entier long , date : date, montant : monétaire client : entier long ) ARTICLE ( Code_article : entier long, Désignation : chaine de 50 caractères, prix : monétaire ) LIGNECOMMANDE (code_article : entier long , Num_commande : entier long , quantité : entier) 10 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Schéma …. qui peut aussi se représenter CLIENT COMMANDE • Num_commande : entier long , • date : date, • montant : monétaire • client : entier long • Num_client : entier long , • Nom : chaine de 30 caractères, • Prenom : chaine de 20 caractères, • Code_postal : chaine de 5 chiffres , • Telephone : chaine de 10 chiffres LIGNECOMMANDE • code_article : entier long , • Num_commande : entier long , • quantité : entier ARTICLE • Code_article : entier long, • Désignation: chaine de 50 caractères, • prix : monétaire 11 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Relationnel : opérateurs ensemblistes • Soient R 1 et R 2 deux relations, on peut définir entre R 1 et R 2 un certain nombre d’opérations R 1 et R 2 ont même schéma • union T = (R 1 È R 2) ou T = Union (R 1, R 2) • différence T = (R 1 - R 2) ou T = Minus (R 1, R 2) • intersection T = (R 1 Ç R 2) ou T = inter (R 1, R 2) Opérations entre relations de schéma distinct • produit cartésien T = (R 1 * R 2) ou T = product (R 1, R 2) • jointure naturelle T = (R 1 >< R 2) 12 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Relationnel : opérations unaires sur une relation • Soit R une relation de schéma (A 1, A 2, A 3, . . . An ) • projection de R sur les attributs Ai 1, Ai 2, Ai 3, . . . Aip avec p < n est une relation R’ de schéma (Ai 1, Ai 2, Ai 3, . . . Aip ) dont les nuplets sont obtenus par élimination des attributs de R n’appartenant pas à R ’ et par suppression des doublons. On note T = P Ai 1, Ai 2, Ai 3, . . . Aip (R) ou T = proj Ai 1, Ai 2, Ai 3, . . . Aip (R) • restriction (ou sélection) de la relation R par une qualification Q est une relation R ’ de même schéma que R dont les n-uplets sont ceux de R satisfaisant Q. On note T = s. Q (R) ou T = select. Q (R) 13 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : opérateurs exemples • Soient R 1 et R 2 deux relations de même schéma • union T = (R 1 È R 2) ou T = Union (R 1, R 2) • différence T = (R 1 - R 2) ou T = Minus (R 1, R 2) • intersection T = (R 1 Ç R 2) ou T = inter (R 1, R 2) SQL et relationnel 14 Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : opérateurs exemples • Soient R 1 et R 2 deux relations de schémas distincts, • produit cartésien T = (R 1 * R 2) ou T = product (R 1, R 2) 15 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : opérateurs exemples • Soient R 1 et R 2 deux relations de schémas distincts, • jointure naturelle T = (R 1 >< R 2) 16 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : opérateurs exemples • Soient R 1 une relation, • projection de R 1 sur les attributs A et B T = P A, B, (R 1) Attention à la suppression des doublons • restriction (ou sélection) de la relation R 1 par une qualification Q = (C<30). T = s( C < 30) (R) 17 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : contraintes dans une BD L’intérêt de l’usage de Base de données et que la BD permet la définition de « contraintes d’intégrité » qui seront nécessairement vérifiées à tout instant par la base : ces contraintes permettent de garantir la « cohérence » de la base. Elles sont de trois types : 1) contrainte de clé 2) contrainte de type de données (date, intervalle, liste… entier) 3) contrainte d’intégrité référentielle 18 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : contrainte d’intégrité référentielle Permet de vérifier la présence de données référencées dans des tables différentes. Une contrainte d ’intégrité référentielle peut s’utiliser dès qu’une clé primaire d’une table est utilisée comme référence dans une autre table. On la nomme « clé étrangère » de la seconde table. CLIENT (Num_client : entier long , Nom : chaine de 30 caractères, Prenom : chaine de 20 caractères, Code_postal : chaine de 5 chiffres , Telephone : chaine de 10 chiffres ) COMMANDE (Num_commande : entier long , date : date, montant : monétaire client : entier long ) ARTICLE (Code_article : entier long, Désignation : chaine de 50 caractères, prix : monétaire ) LIGNECOMMANDE (code_article : entier long , Num_commande : entier long quantité : entier) 19 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : 1ère Forme Normale Une relation est en PREMIERE FORME NORMALE ssi • les valeurs de tous les attributs qui la composent sont atomiques • la relation possède une « clé » Exemple • PERSONNE (Num_securite_sociale, Nom , Prenom , Code_postal, Telephone) On ne peut gérer des listes de prénom ou plusieurs adresses, dans la table PERSONNE ; par contre prénom peut être une chaine de nn caractères 20 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : Dépendance fonctionnelle Cette notion permet de capturer l’idée de dépendance entre informations en visant à limiter la redondance. Soit R une relation et X et Y des groupes d’attributs de R, il existe une dépendance fonctionnelle entre X et Y (on dit que X détermine Y) si dans R chaque valeur de X détermine une et une seule valeur de Y. Attention, cette propriété doit être vérifiée pour tous les n-uplets, y compris ceux à créer 21 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : 2ème Forme Normale Une relation est en DEUXIEME FORME NORMALE ssi • elle est en première forme normale • tout attribut n ’appartenant pas à une clé ne dépend pas d ’une partie de cette clé Exemple • PRET (Num_etudiant, Num. Livre, Nom_etud , Prenom_etud , Nom. Livre, Auteurs, date_emprunt) N ’est pas en 2ème FN car « Nom_etud » ne dépend que de Num_etudiant, et de même « Nom. Livre » , et « Auteurs » ne dépend que de Num. Livre 22 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Définitions : 3ème Forme Normale Une relation est en TROISIEME FORME NORMALE (dite de Boyce Codd) ssi • elle est en deuxième forme normale • tout attribut n ’appartenant pas à une clé ne dépend pas d ’un autre attribut non clé Exemple • EMPLOYE (Num_securite_sociale, Nom , Prenom , Service, Adresse_service) Adresse_service dépend de service, la relation n’est pas en 3 eme FN. 23 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) SQL Le SQL (Structured Query Language) permet d'interroger une base de données, d'en modifier des informations. C'est un langage universel d'interrogation des bases de données, qui permet à différents systèmes d'échanger des données entre eux. ACCESS peut être interrogé en SQL via un macro langage qui “ cache ” le SQL (voir à ce sujet le Menu “ Requêtes ”, “ Spécifique SQL ” “ SQL direct ”). Normalisation ISO : norme SQL 1 (1986, 1989) norme SQL 2 (1992) nouvelle norme en préparation SQL 3 Dans la suite, le code SQL est représenté en ARIAL 12, les commentaires en Italique. http: //wwwlsi. supelec. fr/www/yb/poly_bd/sql/tdm_sql. html 24 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) SQL comporte 3 parties 1) - Le DML (Data Manipulation Language) Sélection d’information, création et mise à jour d’enregistrements SELECT, INSERT, UPDATE, DELETE, JOIN 2) - Le DDL (Data Definition Language) Création des tables, des attributs et des contraintes d’intégrité CREATE, ALTER, DROP, RENAME 3) - Le DCL (Data Control Language) Pour contrôler l’accès aux données GRANT, REVOKE 25 SQL et relationnel Michel Tollenaere

(D a at ENSGI Cours MSI 2 A Relationnel et SQL i an L

(D a at ENSGI Cours MSI 2 A Relationnel et SQL i an L ang M n. L D pulatio M version 1. 4 du 25 septembre 2007 (ajout jointures) g ua e) Les requêtes simples Soit 3 tables : Eleves (Nom. Elv, Adr. Elv, Ville. Elv), Matieres (Nom. Mat, Coef, Intitule), Notes (Nom. Elv, Nom. Mat, Date, Note). Attribut souligné = clé primaire Notes Matieres • Nom. Mat • Coef • Intitulé • Nom. Elv • Nom. Mat • Date • Note Eleves • Nom. Elv • Adr. Elv • Ville. Elv 26 SQL et relationnel Michel Tollenaere

(D a at ENSGI Cours MSI 2 A Relationnel et SQL i an L

(D a at ENSGI Cours MSI 2 A Relationnel et SQL i an L ang M n. L D pulatio M version 1. 4 du 25 septembre 2007 (ajout jointures) g ua Des enregistrements dans les tables e) Notes Eleves • Nom. Elv • Nom. Mat • Date • Note • Nom. Elv • Adr. Elv • Ville. Elv Matieres • Nom. Mat • Coef • Intitulé Matiere Nom. Mat Coef Eleves Notes Intitulé Nomelv Nom. Mat Bastien Gest-prod 25/09/2004 15 Bastien MSI 09/09/2004 16 Bastien MSI 25/09/2004 15 Gest-prod 25/09/2004 12 09/09/2004 9 Gest-prod 3 Gestion de production Gest-proj 2 Gestion de projets Date Valeur MSI 3 Manageme nt des SI Clerget. Gurnaud Qualité 1 Qualité MSI Sports 2 Sports Clerget. Gurnaud MSI Deltour Romain Gest-prod 25/09/2004 17 Deltour Romain MSI 09/09/2004 17 Deltour Romain MSI 25/09/2004 20 Denoual Gest-prod 25/09/2004 8 SQL et relationnel 25/09/2004 Nomelv Adresse Ville Bastien Montmartre Paris Clerget-Gurnaud Bastille Paris Deltour Romain Bastille Grenoble Denoual St Michel Paris Le Bas Cointrin Geneve Miguel Goyena Plaza de la Constitucíon Mexico Pelayo Menendez Garcia Anáhuac Mexico Pop Trocadero Paris Simon-Suisse Jet d'eau Geneve Thevenot Ile verte Grenoble Viard Gare Grenoble 27 12 Michel Tollenaere

(D a at ENSGI Cours MSI 2 A Relationnel et SQL i an L

(D a at ENSGI Cours MSI 2 A Relationnel et SQL i an L ang M n. L D pulatio M version 1. 4 du 25 septembre 2007 (ajout jointures) L'interrogation simple Liste des élèves. e) SELECT Nom. Elv FROM Eleves; g ua 1. 1 (ce qui doit être affiché ? ) (dans quelle table recher l’information ? ) Liste des matières avec leurs coefficients. SELECT Nom. Mat, Coef FROM Matieres; Toutes les notes classées par élèves SELECT Notes. Nomelv, Notes. Nom. Mat, Notes. Date, Notes. Valeur FROM Notes ORDER BY Notes. Nomelv; Toutes-les-notes/eleves Nomelv Nom. Mat Date Valeur Bastien Gest-prod 25/09/2004 15 Bastien MSI 09/09/2004 16 Bastien MSI 25/09/2004 15 Clerget-Gurnaud Gest-prod 25/09/2004 12 Clerget-Gurnaud MSI 09/09/2004 9 Clerget-Gurnaud MSI 25/09/2004 12 Deltour Romain Gest-prod 25/09/2004 17 Deltour Romain MSI 09/09/2004 17 Deltour Romain MSI 25/09/2004 20 Denoual Gest-prod 25/09/2004 8 Denoual MSI 09/09/2004 20 Denoual MSI 25/09/2004 10 28 SQL et relationnel Michel Tollenaere

a at (D ENSGI Cours MSI 2 A Relationnel et SQL L n io

a at (D ENSGI Cours MSI 2 A Relationnel et SQL L n io at ul ip an ag gu n La e) 1. 1 L'interrogation simple (suite) Toutes les notes moyenne de matière classées par élèves M D M version 1. 4 du 25 septembre 2007 (ajout jointures) SELECT [Toutes-les-notes/eleves]. Nomelv, [Toutes-les-notes/eleves]. Nom. Mat, Avg([Toutes-les-notes/eleves]. Valeur) AS Moyenne. De. Valeur FROM [Toutes-les-notes/eleves] GROUP BY [Toutes-les-notes/eleves]. Nomelv, [Toutes-les-notes/eleves]. Nom. Mat; Toutes-les-notes/eleves Nomelv Nom. Mat Date Valeur Bastien Gest-prod 25/09/2004 15 Bastien MSI 09/09/2004 16 Nomelv Nom. Mat Bastien MSI 25/09/2004 15 Bastien Gest-prod Clerget-Gurnaud Gest-prod 25/09/2004 12 Bastien MSI Clerget-Gurnaud MSI 09/09/2004 9 Clerget-Gurnaud Gest-prod Clerget-Gurnaud MSI 25/09/2004 12 Clerget-Gurnaud MSI Deltour Romain Gest-prod 25/09/2004 17 Deltour Romain Gest-prod Deltour Romain MSI 09/09/2004 17 Deltour Romain MSI 25/09/2004 20 Denoual Gest-prod 25/09/2004 8 Denoual MSI 09/09/2004 20 Denoual MSI 25/09/2004 10 Toutes-les-moyennes-mat/élèves Moyenne. De. Valeur 15 15, 5 12 10, 5 17 18, 5 On compose les requêtes 29 SQL et relationnel Michel Tollenaere

a at (D ENSGI Cours MSI 2 A Relationnel et SQL M D n

a at (D ENSGI Cours MSI 2 A Relationnel et SQL M D n io at ul ip an M version 1. 4 du 25 septembre 2007 (ajout jointures) L Moyenne par matière ag gu n La e) SELECT [Toutes-les-moyennes-mat/élèves]. Nom. Mat, Avg([Toutes-les-moyennes-mat/élèves]. Moyenne. De. Valeur) AS Moyenne. De. Valeur FROM [Toutes-les-moyennes-mat/élèves] GROUP BY [Toutes-les-moyennes-mat/élèves]. Nom. Mat; Moyennes par matière Nom. Mat Moyenne de la division Gest-prod 13, 09 MSI 14, 22 Qualité 10, 18 30 SQL et relationnel Michel Tollenaere

a at M D L n io at ul ip an ag gu n

a at M D L n io at ul ip an ag gu n La e) 1. 2 La close WHERE Elle permet de spécifier la ou les conditions que doivent remplir les lignes choisies. M version 1. 4 du 25 septembre 2007 (ajout jointures) (D ENSGI Cours MSI 2 A Relationnel et SQL q Liste des élèves habitant Mexico. SELECT Nom. Elv FROM Eleves WHERE Ville. Elv = ‘Mexico'; q Liste des matières pour lesquelles l'élève "Simon-Suisse" a eu au moins une note. SELECT Nom. Mat FROM Notes WHERE Nom. Elv = 'Simon-Suisse'; Remarque : Dans la close WHERE, on ne peut utiliser que des propriétés qui sont dans la table sélectionnée 31 SQL et relationnel Michel Tollenaere

a at (D ENSGI Cours MSI 2 A Relationnel et SQL L SQL et

a at (D ENSGI Cours MSI 2 A Relationnel et SQL L SQL et relationnel e) SELECT [Toutes-les-moyennesmat/élèves]. Nomelv, Matiere!Coef*[Toutes-les-moyennesmat/élèves]!Moyenne. De. Valeur AS Expr 1, Matiere. Coef, Matiere. Intitulé FROM [Toutes-les-moyennesmat/élèves] INNER JOIN Matiere ON [Toutes-les-moyennesmat/élèves]. Nom. Mat = Matiere. Nom. Mat; ag gu • Nom. Mat • Coef • Intitulé n La Les jointures Matieres M D n io at ul ip an M version 1. 4 du 25 septembre 2007 (ajout jointures) Notes Toutes-les-moyennesmat/élèves • Nom. Elv • Nom. Mat • Moyenne • Nom. Elv • Nom. Mat • Date • Note Tous les totaux/matiere Nomelv Total ds la matière Coef Intitulé Bastien 45 3 Gestion de production Bastien 46, 5 3 Management des SI Bastien 10 1 Qualité Clerget-Gurnaud 36 3 Gestion de production Clerget-Gurnaud 31, 5 3 Management des SI Clerget-Gurnaud 6 1 Qualité Deltour Romain 51 3 Gestion de production Deltour Romain 55, 5 3 Management des SI Deltour Romain 15 1 Qualité Denoual 24 3 Gestion de production Denoual 45 3 Management des SI Denoual 8 1 Qualité 32 Michel Tollenaere

a at (D ENSGI Cours MSI 2 A Relationnel et SQL M D L

a at (D ENSGI Cours MSI 2 A Relationnel et SQL M D L ag gu n La La somme des coefficients n io at ul ip an M version 1. 4 du 25 septembre 2007 (ajout jointures) e) Matieres • Nom. Mat • Coef • Intitulé SELECT Sum(Matiere. Coef) AS Somme. De. Coef FROM Matiere; Somme. De Coef 11 33 SQL et relationnel Michel Tollenaere

(D a at ENSGI Cours MSI 2 A Relationnel et SQL i an L

(D a at ENSGI Cours MSI 2 A Relationnel et SQL i an L ang M n. L D pulatio M version 1. 4 du 25 septembre 2007 (ajout jointures) SELECT [Total/eleve]. Nomelv, [Total/eleve]!Somme. De. Expr 1/[Sommecoef]!Somme. De. Coef AS Expr 1 FROM [Total/eleve], [Somme-coef] ORDER BY [Total/eleve]!Somme. De. Expr 1/[Somme -coef]!Somme. De. Coef DESC; Nom eleve e) SELECT [Tous les totaux/matiere]. Nomelv, Sum([Tous les totaux/matiere]. Expr 1) AS Somme. De. Expr 1 FROM [Tous les totaux/matiere] GROUP BY [Tous les totaux/matiere]. Nomelv; g ua Les totaux puis les moyennes par élève, Moyenne semestrielle Deltour Romain 11, 05 Pop 10, 95 Miguel Goyena 9, 77 Bastien 9, 23 Pelayo Menendez Garcia 8, 14 Viard 7, 68 Le Bas 7, 68 Simon-Suisse 7, 18 Denoual 7, 00 Thevenot 6, 77 Clerget-Gurnaud 6, 68 34 SQL et relationnel Michel Tollenaere

a at (D ENSGI Cours MSI 2 A Relationnel et SQL M D L

a at (D ENSGI Cours MSI 2 A Relationnel et SQL M D L n io at ul ip an M version 1. 4 du 25 septembre 2007 (ajout jointures) ag gu n La e) Toutes-les-moyennes-mat/élèves_Analyse croisée Nomelv Gest-prod MSI Qualité Bastien 15 15, 5 10 Clerget-Gurnaud 12 10, 5 6 Deltour Romain 17 18, 5 15 8 Le Bas 11 11, 5 17 Miguel Goyena 15 16, 5 13 Pelayo Menendez Garcia 13 13, 5 10 Pop 17 17, 5 17 Simon-Suisse 12 11 10 Thevenot 11 12, 5 4 Viard 13 14, 5 2 Denoual 35 SQL et relationnel Michel Tollenaere

a at (D ENSGI Cours MSI 2 A Relationnel et SQL M D L

a at (D ENSGI Cours MSI 2 A Relationnel et SQL M D L n io at ul ip an M version 1. 4 du 25 septembre 2007 (ajout jointures) ag gu n La e) dans MS Access 36 SQL et relationnel Michel Tollenaere

L n io at ul ip an M D M ag gu n La

L n io at ul ip an M D M ag gu n La dans MS Access a at version 1. 4 du 25 septembre 2007 (ajout jointures) (D ENSGI Cours MSI 2 A Relationnel et SQL e) SELECT CLIENT. Telephone, COMMANDE. Montant FROM CLIENT INNER JOIN COMMANDE ON CLIENT. Num_client = COMMANDE. Num_client WHERE (((COMMANDE. Montant)>10000)); SQL et relationnel 37 Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Les jointures SELECT personne. Nom, personne. Prenom, stage. Titre, stage. [Date-debut], stage. D_type_stage FROM personne INNER JOIN stage ON personne. Numéro = stage. Numéro; 38 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Les jointures SELECT personne. Nom, personne. Prenom, stage. Titre, stage. [Date-debut], stage. D_type_stage FROM personne INNER JOIN stage ON personne. Numéro = stage. Numéro; !! La jointure a été faite sur l’attribut « numéro » !! personne. Numéro = stage. Numéro; 39 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Les jointures SELECT personne. Nom, personne. Prenom, stage. Titre, stage. [Date-debut], stage. D_type_stage FROM personne INNER JOIN stage ON personne. Num_securite_sociale = stage. Num_securite_sociale; 40 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Les jointures 41 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Les jointures 42 SQL et relationnel Michel Tollenaere

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre

ENSGI Cours MSI 2 A Relationnel et SQL version 1. 4 du 25 septembre 2007 (ajout jointures) Les jointures SELECT personne. Nom, personne. Prenom, stage. D_type_stage, stage. Titre, stage. [Date-debut] FROM personne LEFT JOIN stage ON personne. Num_securite_sociale = stage. Num_securite_sociale; 43 SQL et relationnel Michel Tollenaere

a at M D L n io at ul ip an M version 1.

a at M D L n io at ul ip an M version 1. 4 du 25 septembre 2007 (ajout jointures) (D ENSGI Cours MSI 2 A Relationnel et SQL ag gu n La e) 44 SQL et relationnel Michel Tollenaere

a at M D L n io at ul ip an M version 1.

a at M D L n io at ul ip an M version 1. 4 du 25 septembre 2007 (ajout jointures) (D ENSGI Cours MSI 2 A Relationnel et SQL ag gu n La e) 45 SQL et relationnel Michel Tollenaere

a at M D L n io at ul ip an M version 1.

a at M D L n io at ul ip an M version 1. 4 du 25 septembre 2007 (ajout jointures) (D ENSGI Cours MSI 2 A Relationnel et SQL ag gu n La e) 46 SQL et relationnel Michel Tollenaere

a at L ngu D La D inition D version 1. 4 du 25

a at L ngu D La D inition D version 1. 4 du 25 septembre 2007 (ajout jointures) (D ENSGI Cours MSI 2 A Relationnel et SQL ef e) ag 2 – Création des tables, des attributs et des contraintes d’intégrité Le DDL (Data Definition Language) CREATE, ALTER, DROP, RENAME 47 SQL et relationnel Michel Tollenaere

Co CL an D ntrol L a at version 1. 4 du 25 septembre

Co CL an D ntrol L a at version 1. 4 du 25 septembre 2007 (ajout jointures) (D ENSGI Cours MSI 2 A Relationnel et SQL e) ag gu 3 – Restreindre des droits d’acces GRANT REVOKE 48 SQL et relationnel Michel Tollenaere