La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.

Présentations similaires


Présentation au sujet: "Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique."— Transcription de la présentation:

1 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 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 : MySQL (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/

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

3 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 3 Définitions : « Domaine » Domaines : D i = {d i1, d i2, ….. d in }, D j = {d R}, D k = D i x D j D i défini en extension, D j et D k en intention Exemples : D_Num_securite_sociale = { n [10 13 ; 3.10 13 ]} 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}

4 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 4 Définitions : « Relations » Une relation (ou table) est un sous ensemble dun produit cartésien de domaines. Une relation est définie par un nom. Le degré dune 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

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

6 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 6 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

7 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 7 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 propriétés Constituant

8 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 8 Définitions : clé, contraintes dintégrité Toute relation ou table doit comporter parmi lensemble 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é dune relation PERSONNE (Num_securite_sociale, Nom, Prénom, Code_postal, Téléphone) STAGE ( Num_securite_sociale, type_stage, Titre, Date-début )

9 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 9 Définitions : Schéma de relations Le schéma dune 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 (Num_securite_sociale : { n [10 13 ; 3.10 13 ]}, Nom : { chaine de 30 caractères}, Prenom : { chaine de 20 caractères}, Code_postal : { chaine de 5 chiffres}, Telephone = { chaine de 10 chiffres} ) STAGE Num_securite_sociale : { n [10 13 ; 3.10 13 ]}, type_stage : { operateur, Enquete, EDT, inge_adjoint, PFE}, titre : { chaine de 200 caractères} date-début : {date} )

10 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 10 Définitions : Schéma de Base de données relationnelle Le schéma dune base de données est constituée par lensemble des schémas des relations qui la constituent. 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) Exemple :

11 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 11 Schéma …. qui peut aussi se représenter 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

12 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 12 Relationnel : opérateurs ensemblistes union T = (R1 R2) ou T = Union (R1, R2) différence T = (R1 R2) ou T = Minus (R1, R2) intersection T = (R1 R2) ou T = inter (R1, R2) Soient R1 et R2 deux relations, on peut définir entre R1 et R2 un certain nombre dopérations produit cartésien T = (R1 R2) ou T = product (R1, R2) jointure naturelle T = (R1 R2) R1 et R2 ont même schémaOpérations entre relations de schéma distinct

13 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 13 Relationnel : opérations unaires sur une relation projection de R sur les attributs A i1, A i2, A i3,... A ip avec p < n est une relation R de schéma (A i1, A i2, A i3,... A ip ) dont les n- uplets sont obtenus par élimination des attributs de R nappartenant pas à R et par suppression des doublons. On note T = Ai1, Ai2, Ai3,... Aip (R) ou T = proj Ai1, Ai2, Ai3,... 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 = Q (R) ou T = select Q (R) Soit R une relation de schéma (A 1, A 2, A 3,... A n )

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

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

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

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

18 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 18 Définitions : contraintes dans une BD Lintérêt de lusage de Base de données et que la BD permet la définition de « contraintes dinté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 dintégrité référentielle

19 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 19 Définitions : contrainte dinté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 sutiliser dès quune clé primaire dune 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)

20 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 20 Définitions : 1ère Forme Normale 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 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

21 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 21 Définitions : Dépendance fonctionnelle Cette notion permet de capturer lidée de dépendance entre informations en visant à limiter la redondance. Soit R une relation et X et Y des groupes dattributs 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

22 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 22 Définitions : 2ème Forme Normale PRET (Num_etudiant, NumLivre, Nom_etud, Prenom_etud, NomLivre, Auteurs, date_emprunt) 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 N est pas en 2ème FN car « Nom_etud » ne dépend que de Num_etudiant, et de même « NomLivre », et « Auteurs » ne dépend que de NumLivre

23 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 23 Définitions : 3ème Forme Normale EMPLOYE (Num_securite_sociale, Nom, Prenom, Service, Adresse_service) 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 Adresse_service dépend de service, la relation nest pas en 3eme FN.

24 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 24 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 SQL1 (1986, 1989) norme SQL2 (1992) nouvelle norme en préparation SQL3 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

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

26 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 26 Les requêtes simples Soit 3 tables : Eleves (NomElv, AdrElv, VilleElv), Matieres (NomMat, Coef, Intitule), Notes (NomElv, NomMat, Date, Note). Attribut souligné = clé primaire Eleves NomElv AdrElv VilleElv Matieres NomMat Coef Intitulé Notes NomElv NomMat Date Note DML (Data Manipulation Language)

27 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 27 Des enregistrements dans les tables Eleves NomElv AdrElv VilleElv Matieres NomMat Coef Intitulé Notes NomElv NomMat Date Note Eleves NomelvAdresseVille BastienMontmartreParis Clerget-GurnaudBastilleParis Deltour RomainBastilleGrenoble DenoualSt MichelParis Le BasCointrinGeneve Miguel GoyenaPlaza de la Constitucíon Mexico Pelayo Menendez Garcia AnáhuacMexico PopTrocaderoParis Simon-SuisseJet d'eauGeneve ThevenotIle verteGrenoble ViardGareGrenoble Matiere NomMatCoefIntitulé Gest-prod3Gestion de production Gest-proj2Gestion de projets MSI3Manageme nt des SI Qualité1 Sports2 Notes NomelvNomMatDateValeur BastienGest-prod25/09/200415 BastienMSI09/09/200416 BastienMSI25/09/200415 Clerget- Gurnaud Gest-prod25/09/200412 Clerget- Gurnaud MSI09/09/20049 Clerget- Gurnaud MSI25/09/200412 Deltour Romain Gest-prod25/09/200417 Deltour Romain MSI09/09/200417 Deltour Romain MSI25/09/200420 DenoualGest-prod25/09/20048 DenoualMSI09/09/200420 DenoualMSI25/09/200410 Le BasGest-prod25/09/200411 Le BasMSI09/09/200412 Le BasMSI25/09/200411 Miguel Goyena Gest-prod25/09/200415 Miguel Goyena MSI09/09/200415 Miguel Goyena MSI25/09/200418 Pelayo Menende z Garcia Gest-prod25/09/200413 Pelayo Menende z Garcia MSI09/09/200414 Pelayo Menende z Garcia MSI25/09/200413 PopGest-prod25/09/200417 PopMSI09/09/200418 PopMSI25/09/200417 Simon- Suisse Gest-prod25/09/200412 Simon- Suisse MSI09/09/200410 Simon- Suisse MSI25/09/200412 ThevenotGest-prod25/09/200411 ThevenotMSI09/09/200411 ThevenotMSI25/09/200414 ViardGest-prod25/09/200413 ViardMSI09/09/200413 ViardMSI25/09/200416 Simon- Suisse Qualité30/09/200410 Le BasQualité30/09/200417 Pelayo Menende z Garcia Qualité30/09/200410 BastienQualité30/09/200410 PopQualité30/09/200417 DenoualQualité30/09/20048 Clerget- Gurnaud Qualité30/09/20046 ThevenotQualité30/09/20044 ViardQualité30/09/20042 Miguel Goyena Qualité30/09/200413 Deltour Romain Qualité30/09/200415 DML (Data Manipulation Language)

28 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 28 1.1L'interrogation simple Liste des élèves. SELECT NomElv (ce qui doit être affiché ?) FROM Eleves; (dans quelle table rechercher linformation ?) Liste des matières avec leurs coefficients. SELECT NomMat, Coef FROM Matieres; Toutes les notes classées par élèves SELECT Notes.Nomelv, Notes.NomMat, Notes.Date, Notes.Valeur FROM Notes ORDER BY Notes.Nomelv; NomelvNomMatDateValeur BastienGest-prod25/09/200415 BastienMSI09/09/200416 BastienMSI25/09/200415 Clerget-GurnaudGest-prod25/09/200412 Clerget-GurnaudMSI09/09/20049 Clerget-GurnaudMSI25/09/200412 Deltour RomainGest-prod25/09/200417 Deltour RomainMSI09/09/200417 Deltour RomainMSI25/09/200420 DenoualGest-prod25/09/20048 DenoualMSI09/09/200420 DenoualMSI25/09/200410 Toutes-les-notes/eleves DML (Data Manipulation Language)

29 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 29 1.1L'interrogation simple (suite) Toutes les notes moyenne de matière classées par élèves SELECT [Toutes-les-notes/eleves].Nomelv, [Toutes-les-notes/eleves].NomMat, Avg([Toutes-les-notes/eleves].Valeur) AS MoyenneDeValeur FROM [Toutes-les-notes/eleves] GROUP BY [Toutes-les-notes/eleves].Nomelv, [Toutes-les-notes/eleves].NomMat; NomelvNomMatDateValeur BastienGest-prod25/09/200415 BastienMSI09/09/200416 BastienMSI25/09/200415 Clerget-GurnaudGest-prod25/09/200412 Clerget-GurnaudMSI09/09/20049 Clerget-GurnaudMSI25/09/200412 Deltour RomainGest-prod25/09/200417 Deltour RomainMSI09/09/200417 Deltour RomainMSI25/09/200420 DenoualGest-prod25/09/20048 DenoualMSI09/09/200420 DenoualMSI25/09/200410 Toutes-les-moyennes-mat/élèves NomelvNomMatMoyenneDeValeur BastienGest-prod15 BastienMSI15,5 Clerget-GurnaudGest-prod12 Clerget-GurnaudMSI10,5 Deltour RomainGest-prod17 Deltour RomainMSI18,5 Toutes-les-notes/eleves On compose les requêtes DML (Data Manipulation Language)

30 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 30 SELECT [Toutes-les-moyennes-mat/élèves].NomMat, Avg([Toutes-les-moyennes-mat/élèves].MoyenneDeValeur) AS MoyenneDeMoyenneDeValeur FROM [Toutes-les-moyennes-mat/élèves] GROUP BY [Toutes-les-moyennes-mat/élèves].NomMat; Moyenne par matière Moyennes par matière NomMatMoyenne de la division Gest-prod13,09 MSI14,22 Qualité10,18 DML (Data Manipulation Language)

31 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 31 1.2La close WHERE Elle permet de spécifier la ou les conditions que doivent remplir les lignes choisies. Liste des élèves habitant Mexico. SELECT NomElv FROM Eleves WHERE VilleElv = Mexico'; Liste des matières pour lesquelles l'élève "Simon-Suisse" a eu au moins une note. SELECT NomMat FROM Notes WHERE NomElv = 'Simon-Suisse'; Remarque : Dans la close WHERE, on ne peut utiliser que des propriétés qui sont dans la table sélectionnée DML (Data Manipulation Language)

32 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 32 Les jointures Matieres NomMat Coef Intitulé Notes NomElv NomMat Date Note Toutes-les-moyennes- mat/élèves NomElv NomMat Moyenne Tous les totaux/matiere NomelvTotal ds la matièreCoefIntitulé Bastien453Gestion de production Bastien46,53Management des SI Bastien101Qualité Clerget-Gurnaud363Gestion de production Clerget-Gurnaud31,53Management des SI Clerget-Gurnaud61Qualité Deltour Romain513Gestion de production Deltour Romain55,53Management des SI Deltour Romain151Qualité Denoual243Gestion de production Denoual453Management des SI Denoual81Qualité SELECT [Toutes-les-moyennes- mat/élèves].Nomelv, Matiere!Coef*[Toutes-les-moyennes- mat/élèves]!MoyenneDeValeur AS Expr1, Matiere.Coef, Matiere.Intitulé FROM [Toutes-les-moyennes- mat/élèves] INNER JOIN Matiere ON [Toutes-les-moyennes- mat/élèves].NomMat = Matiere.NomMat; DML (Data Manipulation Language)

33 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 33 La somme des coefficients Matieres NomMat Coef Intitulé SELECT Sum(Matiere.Coef) AS SommeDeCoef FROM Matiere; SommeDeCoef 11 DML (Data Manipulation Language)

34 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 34 Les totaux puis les moyennes par élève, Nom eleve Moyenne semestrielle Deltour Romain11,05 Pop10,95 Miguel Goyena9,77 Bastien9,23 Pelayo Menendez Garcia8,14 Viard7,68 Le Bas7,68 Simon-Suisse7,18 Denoual7,00 Thevenot6,77 Clerget-Gurnaud6,68 SELECT [Tous les totaux/matiere].Nomelv, Sum([Tous les totaux/matiere].Expr1) AS SommeDeExpr1 FROM [Tous les totaux/matiere] GROUP BY [Tous les totaux/matiere].Nomelv; SELECT [Total/eleve].Nomelv, [Total/eleve]!SommeDeExpr1/[Somme- coef]!SommeDeCoef AS Expr1 FROM [Total/eleve], [Somme-coef] ORDER BY [Total/eleve]!SommeDeExpr1/[Somme- coef]!SommeDeCoef DESC; DML (Data Manipulation Language)

35 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 35 Toutes-les-moyennes-mat/élèves_Analyse croisée NomelvGest-prodMSIQualité Bastien1515,510 Clerget-Gurnaud1210,56 Deltour Romain1718,515 Denoual8158 Le Bas1111,517 Miguel Goyena1516,513 Pelayo Menendez Garcia1313,510 Pop1717,517 Simon-Suisse121110 Thevenot1112,54 Viard1314,52 DML (Data Manipulation Language)

36 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 36 dans MS Access DML (Data Manipulation Language)

37 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 37 dans MS Access SELECT CLIENT.Telephone, COMMANDE.Montant FROM CLIENT INNER JOIN COMMANDE ON CLIENT.Num_client = COMMANDE.Num_client WHERE (((COMMANDE.Montant)>10000)); DML (Data Manipulation Language)

38 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 38 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;

39 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 39 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 lattribut « numéro » !! personne.Numéro = stage.Numéro;

40 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 40 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;

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

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

43 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 43 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;

44 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 44 DML (Data Manipulation Language)

45 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 45 DML (Data Manipulation Language)

46 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 46 DML (Data Manipulation Language)

47 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 47 DDL (Data Definition Language) 2 – Création des tables, des attributs et des contraintes dintégrité Le DDL (Data Definition Language) CREATE, ALTER, DROP, RENAME

48 Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 48 DCL (Data Control Language) 3 – Restreindre des droits dacces GRANT REVOKE


Télécharger ppt "Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique."

Présentations similaires


Annonces Google