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.

Slides:



Advertisements
Présentations similaires
Bases de Données Avancées: Bases de Données Relationnelles
Advertisements

Langage de manipulation de données Ensemble de commandes permettant : – modifier la base : ajout, modification et suppression – interroger la base ex :
Benoît Piranda Équipe SISAR Université de Marne La Vallée Bases de données Algèbre relationnelle, opérations Requêtes SQL.
Les Systèmes de Gestion de Bases de Données (SGBD) Algèbre relationnelle.
Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Licence pro MPCQ : Cours
Informatique appliquée à la gestion Bases de données www. labri
Matière/Sources: Daniel Bardou, Julie Dugdale &
Bases de données : modèlisation et SGBD
Algèbre relationnelle
LE MODELE RELATIONNEL INVENTE PAR T. CODD (IBM SAN-JOSE)
Programme Introduction aux BD et aux SGBD Le modèle relationnel
Le modèle relationnel Des transparents issus de ceux de Ph Rigaux, J Ullman (Stanford), Barry (Bath et Amiens), Godin (UQAM)
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
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,
Initiation au système d’information et aux bases de données
Initiation au système d’information et aux bases de données
LMD: Langage de Manipulation de Données
Développement d’applications web
Contrôles d'accès aux données
Eléments d ’algèbre relationnelle
L’utilisation des bases de données
Rappel sur les bases de données et le vocabulaire
BASE DE DONNEES RELATIONNELLES
Le langage SQL.
Algèbre relationnelle
Initiation aux bases de données et à la programmation événementielle
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
LANGAGES LIES AU MODELE RELATIONNEL
Les bases de données Cours assuré par: Mlle Smii imen
Chap 4 Les bases de données et le modèle relationnel
Bases de données et SGBD relationnels
L’utilisation des bases de données
Algèbre relationnelle et SQL
Management des systèmes d’information Conclusion
MODELE RELATIONNEL concept mathématique de relation
Algèbre Relationnelle
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Inventé par T. Codd (IBM Recherche)
Cours de Management des Systèmes d’Information
Initiation aux bases de données et à la programmation événementielle
Initiation aux bases de données et à la programmation événementielle
Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Cours de Management des Systèmes dInformation
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
Introduction.
Chap 4.5 : SQL (LDD) LDD : Langage de définition de données Réfs : Manuel p105.
Initiation MS Access 2010 Requêtes - Sélection (travail en autonomie)
Traduction des opérations sous MySQL
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
Initiation MS Access 2010 Structures – Tables, schémas et Données
Management des Systèmes d’Information (MSI)
DEFINITION DES DONNEES : schéma conceptuel. Schéma conceptuel instructiondescription CREATE TABLEcréation d'une relation ALTER TABLEmodification de la.
DOSSIER G10 – La base de données Relationnelle
Sélection de colonnes (la projection)
Le modèle relationnel Plan 1. Concepts descriptifs
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
 Le langage SQL Introduction SQL : Strutured Query Language, est un langage de requête, que l'on retrouve dans divers SGBDR (Access de Microsoft, MySQL,
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 SQL.
Séance /10/2004 SGBD - Approches & Principes.
Introduction aux Bases de Données et au langage SQL
INTRODUCTION AUX BASES DE DONNEES Base et métabase
Introduction Module 1.
Bases de données – Cours 3
Bases de données – Cours 2
Le langage SQL LA Plan 1. Introduction Rappels sur le modèle relationnel Les caractéristiques du langage SQL 2. Le Langage d'Interrogation des.
Transcription de la présentation:

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) Access (Microsoft) Ingres (Computer Associates) SQL Server (Microsoft) ORACLE (Oracle corp.)

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

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 ; ]} 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}

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

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

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

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

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 )

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 ; ]}, 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 ; ]}, type_stage : { operateur, Enquete, EDT, inge_adjoint, PFE}, titre : { chaine de 200 caractères} date-début : {date} )

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 :

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

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

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 )

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

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)

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)

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

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

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)

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

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

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

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.

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.

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

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)

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/ BastienMSI09/09/ BastienMSI25/09/ Clerget- Gurnaud Gest-prod25/09/ Clerget- Gurnaud MSI09/09/20049 Clerget- Gurnaud MSI25/09/ Deltour Romain Gest-prod25/09/ Deltour Romain MSI09/09/ Deltour Romain MSI25/09/ DenoualGest-prod25/09/20048 DenoualMSI09/09/ DenoualMSI25/09/ Le BasGest-prod25/09/ Le BasMSI09/09/ Le BasMSI25/09/ Miguel Goyena Gest-prod25/09/ Miguel Goyena MSI09/09/ Miguel Goyena MSI25/09/ Pelayo Menende z Garcia Gest-prod25/09/ Pelayo Menende z Garcia MSI09/09/ Pelayo Menende z Garcia MSI25/09/ PopGest-prod25/09/ PopMSI09/09/ PopMSI25/09/ Simon- Suisse Gest-prod25/09/ Simon- Suisse MSI09/09/ Simon- Suisse MSI25/09/ ThevenotGest-prod25/09/ ThevenotMSI09/09/ ThevenotMSI25/09/ ViardGest-prod25/09/ ViardMSI09/09/ ViardMSI25/09/ Simon- Suisse Qualité30/09/ Le BasQualité30/09/ Pelayo Menende z Garcia Qualité30/09/ BastienQualité30/09/ PopQualité30/09/ DenoualQualité30/09/20048 Clerget- Gurnaud Qualité30/09/20046 ThevenotQualité30/09/20044 ViardQualité30/09/20042 Miguel Goyena Qualité30/09/ Deltour Romain Qualité30/09/ DML (Data Manipulation Language)

Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) L'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/ BastienMSI09/09/ BastienMSI25/09/ Clerget-GurnaudGest-prod25/09/ Clerget-GurnaudMSI09/09/20049 Clerget-GurnaudMSI25/09/ Deltour RomainGest-prod25/09/ Deltour RomainMSI09/09/ Deltour RomainMSI25/09/ DenoualGest-prod25/09/20048 DenoualMSI09/09/ DenoualMSI25/09/ Toutes-les-notes/eleves DML (Data Manipulation Language)

Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) L'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/ BastienMSI09/09/ BastienMSI25/09/ Clerget-GurnaudGest-prod25/09/ Clerget-GurnaudMSI09/09/20049 Clerget-GurnaudMSI25/09/ Deltour RomainGest-prod25/09/ Deltour RomainMSI09/09/ Deltour RomainMSI25/09/ DenoualGest-prod25/09/20048 DenoualMSI09/09/ DenoualMSI25/09/ 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)

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)

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

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)

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)

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)

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-Suisse Thevenot1112,54 Viard1314,52 DML (Data Manipulation Language)

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)

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)

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;

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;

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;

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

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

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;

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)

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)

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)

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

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