Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio
Quinio2 Bases de données Définitions Définitions Glossaire des SGBD relationnels Glossaire des SGBD relationnels Démarche Démarche Structures physiques Structures physiques
Quinio3 BDD : définitions Fichier Fichier Attribut Attribut Bases de données Bases de données SGBD SGBD
Quinio4 BDD : glossaire SGBDR Table ou relation Table ou relation Clé primaire Clé primaire Champ Champ Domaine Domaine Tuple Tuple Clé externe Clé externe
Quinio5 BDD : démarche Conception : modélisation, normalisation Conception : modélisation, normalisation Développement : création, optimisation Développement : création, optimisation Utilisation Utilisation Maintenance Maintenance
Quinio6 BDD : Conception Merise : MCD, modèle relationnel Merise : MCD, modèle relationnel Normalisation : formes normales Normalisation : formes normales
Quinio7 Merise données : MCD Entité Association 0-n 1-n cardinalités
8 ELEVE Numéro élève Nom élève Prénom élève Date de naissance MATIERE Numéro matière Libellé PROFESSEUR Numéro professeur Nom professeur Prénom professeur APPREND ENSEIGNE N 1-N 0-N
9 ELEVE Numéro élève Nom élève Prénom élève Date de naissance MATIERE Numéro matière Libellé PROFESSEUR Numéro professeur Nom professeur Prénom professeur APPREND ENSEIGNE N 1-N 0-N NOTE
10 ELEVE Numéro élève Nom élève Prénom élève Date de naissance MATIERE Numéro matière Libellé PROFESSEUR Numéro professeur Nom professeur Prénom professeur APPREND ENSEIGNE N 1-N 0-N NOTE INTERVIENT dans CLASSE Numéro classe Niveau EST AFFECTE à N 0-N
Quinio11 Modèle relationnel Chaque entité devient une table Chaque entité devient une table Chaque association porteuse ( relation n,n ) devient une table Chaque association porteuse ( relation n,n ) devient une table Chaque association non porteuse ( relation 1,n ) devient une clé externe dans une table Chaque association non porteuse ( relation 1,n ) devient une clé externe dans une table
12 1.Elève (Numéro élève, Nom élève, Prénom élève, Date naissance, Numéro classe) 2.Apprend (Numéro élève, Numéro matière, Note) 3.Matière (Numéro matière, Libellé) 4.Professeur (Numéro professeur, Nom professeur, Prénom professeur, Numéro matière) 5.Classe (Numéro classe, Niveau) 6.Intervient dans (Numéro classe, Numéro professeur) Clef externe Schéma relationnel
Quinio13 Normalisation de Codd : point de départ Liste des attributs Dépendances fonctionnelles Dépendances multivaluées NON vues ici
Quinio14 Normalisation Normalisation : processus Normaliser c’est regrouper la liste des attributs en relations - ayant du sens - cohérentes - sans redondance
Quinio15 Normalisation Normalisation : Point d’arrivée On obtient une série de tables
Quinio16 Normalisation : 1FN Tout attribut de R contient: une valeur monovaluée et non composée
Quinio17 Normalisation : 1FN Exemples : Exemples : Prénom 1, Prénom 2 Adresse: Numéro voie, type voie, nom voie, nom ville, code postal
Quinio18 Normalisation : 1FN R (Numéro élève, Prénoms, Adresse) R (Numéro élève, Prénoms, Adresse) n’est pas en 1FN n’est pas en 1FN
Quinio19 R normalisée en 1FN R (Numéro élève, Prénom1, Prénom2, Numéro voie, Type voie, Nom voie, Nom ville, Code postal) R (Numéro élève, Prénom1, Prénom2, Numéro voie, Type voie, Nom voie, Nom ville, Code postal)
Quinio20 Normalisation : 2FN 1. R est en 1FN 2. Tout attribut non clé de R dépend de la totalité de la clé
Quinio21 Normalisation : 2FN R (Numéro élève, Numéro matière, note, Nom élève) R (Numéro élève, Numéro matière, note, Nom élève) Le Nom ne dépend F. que du Numéro de l’élève
Dupont Dupont Dupont Dupont Martin
Quinio23 Normalisation : 2FN R n’est pas en 2FN R n’est pas en 2FN On normalise : On normalise : R1 (Numéro élève, Nom élève) R2 (Numéro élève,Numéro matière, Note)
Quinio24 Normalisation : 3FN 1. R est en 2FN 2. Tout attribut de R ne dépend pas de la clé par transitivité
Quinio25 Normalisation : 3FN R (Numéro professeur, Nom professeur, Numéro matière, Libellé matière) R (Numéro professeur, Nom professeur, Numéro matière, Libellé matière) Libellé matière dépend fonctionnellement de Numéro, professeur par transitivité,à travers le Numéro matière Libellé matière dépend fonctionnellement de Numéro, professeur par transitivité,à travers le Numéro matière
26 100Duval001Anglais 101Farenc001Anglais 102Gervais001Anglais 103Justin001Anglais 104Loliée002Espagnol
Quinio27 On normalise en 3 FN R1 (Numéro professeur, Nom professeur, numéro matière) R2 (Numéro matière, libellé matière)
Quinio28 Normalisation 4FN et 5 FN Non traitées
Quinio29 DF 3FN 4FN 5FN
Quinio30 NORMALISATION : préparation Num é ro é l è ve = A Num é ro é l è ve = A Nom é l è ve = B Nom é l è ve = B Pr é nom é l è ve = C Pr é nom é l è ve = C l Date naissance = D Num é ro mati è re = E Num é ro mati è re = E Libell é = F Libell é = F l Note = G Num é ro professeur = H Num é ro professeur = H l Nom professeur = I Pr é nom professeur = J Pr é nom professeur = J Num é ro classe = K Num é ro classe = K l Niveau = L l A DF B, C, D, K l E DF F l AE DF G l H DF I, J, E l K DF L
Quinio31 NORMALISATION : exécution l A DF B, C, D, K l E DF F l AE DF G l H DF I, J, E l K DF L 1) DF l Elève (A, B, C, D, K) l Matière (E, F) l Apprend (A, E, G) l Professeur (H, I, J, E) l Classe (K, L)
Quinio32 Création & manipulation des BDD : requêtes SQL « Structured Qwery Language » 1986 « Structured Qwery Language » 1986 Opérateurs de l’algèbre relationnelle Opérateurs de l’algèbre relationnelle
Quinio33 « LDD » : langage de définition des données CREATE TABLE élève (numéroélève NUM(6) [ UNIQUE] [NOT NULL] [PRIMARY KEY], nomélève CHAR(30)[NOT NULL], prénomélève CHAR(20) [NOT NULL],annaissance NUM(4)…)
Quinio34 « LDD » CREATE TABLE apprend (numéroélève [ UNIQUE] [NOT NULL] [PRIMARY KEY], numéromatière [ UNIQUE] [NOT NULL] [PRIMARY KEY], note NUM(2,2) [VALEUR: 0,00 à 20,00],FOREIGN KEY)
Quinio35 ALTER TABLE matière ADD COLUMN coefficient NUM(1) DROP TABLE apprend RENAME apprend to notation « LDD »
36 ELEVE Numéro élève Nom élève Prénom élève Date de naissance MATIERE Numéro matière Libellé coefficient PROFESSEUR Numéro professeur Nom professeur Prénom professeur APPREND ENSEIGNE N 1-N 0-N NOTE INTERVIENT dans CLASSE Numéro classe Niveau EST AFFECTE à N 0-N ALTER
37 ELEVE Numéro élève Nom élève Prénom élève Date de naissance MATIERE Numéro matière Libellé coefficient PROFESSEUR Numéro professeur Nom professeur Prénom professeur ENSEIGNE N 1-N INTERVIENT dans CLASSE Numéro classe Niveau EST AFFECTE à N 0-N DROP
38 ELEVE Numéro élève Nom élève Prénom élève Date de naissance MATIERE Numéro matière Libellé coefficient PROFESSEUR Numéro professeur Nom professeur Prénom professeur NOTATION ENSEIGNE N 1-N 0-N NOTE INTERVIENT dans CLASSE Numéro classe Niveau EST AFFECTE à N 0-N RENAME
Quinio39 « Les autorisations d’accès» : GRANT & REVOKE GRANT privilège ON objet TO public Qui (public) a le droit de faire quoi (privilège) Qui (public) a le droit de faire quoi (privilège) à quoi (objet) à quoi (objet)
Quinio40 GRANT INSERT ON apprend TO professeur GRANT SELECT ON apprend TO PUBLIC REVOKE ALL ON apprend FROM PUBLIC « Les autorisations d’accès» :
Quinio41 « LMD » : langage de manipulation des données SELECT INSERT UPDATE DELETE
Quinio42 SELECT nomélève, prénomélève FROM élève WHERE annaissance = 1994 ORDER BY nomélève SELECT
Quinio43 SELECT nomélève, prénomélève FROM élève, apprend WHERE annaissance = 1994 AND élève.numéro-élève = apprend.numéro-élève AND note NOT NULL ORDER BY nomélève ORDER BY nomélève SELECT avec jointure
Quinio44 INSERT INSERT INTO élève (numéroélève, nomélève, prénomélève, annaissance) VALUES (105, durant, alexis, 2000)
Quinio45 UPDATE UPDATE apprend SET note = 14 WHERE numéroélève = 106 AND numéromatière = 5
Quinio46 DELETE DELETE FROM élève, apprend WHERE numéroélève = 78
Quinio47 Les agrégats : SUM SELECT SUM (montant) FROM commande GROUP BY numéro-client
Quinio48 AVG SELECT nom-élève FROM élève SELECT AVG (note) FROM apprend GROUP BY numéro-élève
Quinio49 MIN ou MAX SELECT MAX(note) FROM apprend WHERE numéro-élève = 105
Quinio50 COUNT SELECT COUNT FROM apprend SELECT COUNT FROM apprend WHERE numéro-élève = 102
Quinio51 Opérateurs ensemblistes EXISTS UNION INTERSECT MINUS
Quinio52 EXISTS SELECT nom-élève FROM élève WHERE EXISTS FROM apprend note = 20 AND élève.numéro-élève = apprend.numéro-élève
Quinio53 NOT EXISTS SELECT nom-élève FROM élève WHERE NOT EXISTS FROM matière AND élève.numéro-élève = apprend.numéro-élève AND matière.code-matière = apprend.code-matière
Quinio54 UNION apprend(numéro-élève, code-matière) pratique(numéro-élève, code-sport) SELECT numéro-élève FROM apprend UNION SELECT numéro-élève FROM pratique
Quinio55 INTERSECT SELECT numéro-élève FROM apprend INTERSECT SELECT numéro-élève FROM pratique
Quinio56 MINUS SELECT numéro-élève FROM apprend MINUS SELECT numéro-élève FROM pratique
Quinio57 VUE : table virtuelle Non stockée (temporaire) créée par une requête sur une ou plusieurs tables (permanentes)
58 CREATE VIEW élèves-forts (numéroélève, nomélève, moyenne) AS SELECT *, TRUNC (note* coefficient) / SUM(coefficient) Group BY élève FROM élève, apprend, matière WHERE moyenne > 17