Bases de données : modèlisation et SGBD Séance 3 B Quinio Quinio
BDD : définitions Table ou relation Clé primaire Champ Domaine Tuple Attribut avec un format Domaine Domaine de validité de certains attributs Tuple Clé externe Quinio
BDD : démarche Conception : Développement : Test modélisation Développement : création, optimisation Test Utilisation et mise à jour Maintenance Gestion Informatique Informatique Gestion Informatique Gestion Informatique Quinio
Modèle venant de Merise : MCD Entité Association 1-n 0-n cardinalités Quinio
ELEVE MATIERE APPREND PROFESSEUR ENSEIGNE 1-N Numéro élève Nom élève Prénom élève Date de naissance Numéro matière Libellé APPREND 0-N 0-N PROFESSEUR ENSEIGNE Numéro professeur Nom professeur Prénom professeur 1-1
ELEVE MATIERE APPREND PROFESSEUR ENSEIGNE 1-N Numéro élève Nom élève Prénom élève Date de naissance APPREND Numéro matière Libellé NOTE 0-N 0-N PROFESSEUR ENSEIGNE Numéro professeur Nom professeur Prénom professeur 1-1
ELEVE MATIERE APPREND PROFESSEUR EST AFFECTE ENSEIGNE à CLASSE Numéro élève Nom élève Prénom élève Date de naissance 1-N APPREND Numéro matière Libellé NOTE 0-N 0-N 1-1 PROFESSEUR EST AFFECTE à Numéro professeur Nom professeur Prénom professeur ENSEIGNE 1-N 1-1 0-N CLASSE Numéro classe Niveau INTERVIENT dans 1-N
Modèle relationnel Chaque entité 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 Quinio
Elève (Numéro élève, Nom élève, Prénom élève, Date naissance, Numéro classe) Apprend (Numéro élève, Numéro matière, Note) Matière (Numéro matière, Libellé) Professeur (Numéro professeur, Nom professeur, Prénom professeur, Numéro matière) Classe (Numéro classe, Niveau) Intervient dans (Numéro classe, Numéro professeur) Clef externe Schéma relationnel
Normalisation de Codd : point de départ Liste des attributs Dépendances fonctionnelles Dépendances multivaluées NON vues ici Quinio
Normalisation : processus Normaliser c’est regrouper la liste des attributs en relations - ayant du sens - cohérentes - sans redondance On obtient une série de table Quinio
Tout attribut de R contient: une valeur monovaluée et non composée Normalisation : 1FN Tout attribut de R contient: une valeur monovaluée et non composée Quinio
Adresse: Numéro voie, type voie, nom voie, nom ville, code postal Normalisation : 1FN Exemples : Prénom 1, Prénom 2 Adresse: Numéro voie, type voie, nom voie, nom ville, code postal Quinio
R (Numéro élève, Prénoms, Adresse) Normalisation : 1FN R (Numéro élève, Prénoms, Adresse) n’est pas en 1FN Quinio
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) Quinio
Tout attribut non clé de R dépend de la totalité de la clé Normalisation : 2FN R est en 1FN Tout attribut non clé de R dépend de la totalité de la clé Quinio
R (Numéro élève, Numéro matière, note, Nom élève) Normalisation : 2FN 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 Quinio
100 005 12 Dupont 001 16 002 08 003 10 200 004 Martin
R1 (Numéro élève, Nom élève) R2 (Numéro élève,Numéro matière, Note) Normalisation : 2FN R n’est pas en 2FN On normalise : R1 (Numéro élève, Nom élève) R2 (Numéro élève,Numéro matière, Note) Quinio
Tout attribut de R ne dépend pas de la clé par transitivité Normalisation : 3FN R est en 2FN Tout attribut de R ne dépend pas de la clé par transitivité Quinio
R (Numéro professeur, Nom professeur, Numéro matière, Libellé matière) Normalisation : 3FN 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 Quinio
100 Duval 001 Anglais 101 Farenc 102 Gervais 103 Justin 104 Loliée 002 Espagnol
R1 (Numéro professeur, Nom professeur, numéro matière) On normalise en 3 FN R1 (Numéro professeur, Nom professeur, numéro matière) R2 (Numéro matière, libellé matière) Quinio
Normalisation 4FN et 5 FN Non traitées Quinio
NORMALISATION : préparation Numéro élève = A Nom élève = B Prénom élève = C Date naissance = D Numéro matière = E Libellé = F Note = G Numéro professeur = H Nom professeur = I Prénom professeur = J Numéro classe = K Niveau = L A DF B, C, D, K E DF F AE DF G H DF I, J, E K DF L Quinio
NORMALISATION : exécution A DF B, C, D, K E DF F AE DF G H DF I, J, E K DF L DF Elève (A, B, C, D, K) Matière (E, F) Apprend (A, E, G) Professeur (H, I, J, E) Classe (K, L) Quinio
Création & manipulation des BDD : requêtes SQL « Structured Query Language » 1986 Opérateurs de l’algèbre relationnelle Utilisé dans toutes les BD Quinio
« 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)…) Quinio
ADD COLUMN coefficient NUM(1) DROP TABLE apprend « LDD » ALTER TABLE matière ADD COLUMN coefficient NUM(1) DROP TABLE apprend RENAME apprend to notation Quinio
ELEVE MATIERE APPREND PROFESSEUR EST AFFECTE ENSEIGNE à CLASSE ALTER Numéro élève Nom élève Prénom élève Date de naissance 1-N APPREND Numéro matière Libellé coefficient NOTE 0-N 0-N 1-1 PROFESSEUR EST AFFECTE à Numéro professeur Nom professeur Prénom professeur ENSEIGNE 1-N 1-1 0-N CLASSE ALTER Numéro classe Niveau INTERVIENT dans 1-N
ELEVE MATIERE PROFESSEUR EST AFFECTE ENSEIGNE à CLASSE DROP INTERVIENT Numéro élève Nom élève Prénom élève Date de naissance Numéro matière Libellé coefficient 0-N 1-1 PROFESSEUR EST AFFECTE à Numéro professeur Nom professeur Prénom professeur ENSEIGNE 1-N 1-1 0-N CLASSE DROP Numéro classe Niveau INTERVIENT dans 1-N
ELEVE MATIERE NOTATION PROFESSEUR EST AFFECTE ENSEIGNE à CLASSE RENAME Numéro élève Nom élève Prénom élève Date de naissance 1-N NOTATION Numéro matière Libellé coefficient NOTE 0-N 0-N 1-1 PROFESSEUR EST AFFECTE à Numéro professeur Nom professeur Prénom professeur ENSEIGNE 1-N 1-1 0-N CLASSE RENAME Numéro classe Niveau INTERVIENT dans 1-N
« Les autorisations d’accès» : GRANT & REVOKE GRANT privilège ON objet TO public Qui (public) a le droit de faire quoi (privilège) à quoi (objet) Quinio
« Les autorisations d’accès» : GRANT INSERT ON apprend TO professeur GRANT SELECT ON apprend TO PUBLIC REVOKE ALL ON apprend FROM PUBLIC Quinio
« LMD » : langage de manipulation des données SELECT INSERT UPDATE DELETE Quinio
SELECT nomélève, prénomélève FROM élève WHERE annaissance = 1994 ORDER BY nomélève Quinio
AND élève.numéro-élève = apprend.numéro-élève AND note NOT NULL SELECT avec jointure 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 Quinio
INSERT INTO élève (numéroélève, nomélève, prénomélève, annaissance) VALUES (105, durant, alexis, 2000) Quinio
UPDATE UPDATE apprend SET note = 14 WHERE numéroélève = 106 AND numéromatière = 5 Quinio
DELETE DELETE FROM élève, apprend WHERE numéroélève = 78 Quinio
GROUP BY numéro-client Les agrégats : SUM SELECT SUM (montant) FROM commande GROUP BY numéro-client Quinio
AVG SELECT nom-élève FROM élève SELECT AVG (note) FROM apprend GROUP BY numéro-élève Quinio
MIN ou MAX SELECT MAX(note) FROM apprend WHERE numéro-élève = 105 Quinio
SELECT COUNT FROM apprend WHERE numéro-élève = 102 Quinio