44
Quinio 1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Embed Size (px)

Citation preview

Page 1: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 1

Bases de données :modèlisation et SGBD

Séance 3 B Quinio

Page 2: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 2

BDD : définitionsBDD : définitions

Table ou relationTable ou relationClé primaireClé primaireChampChamp

Attribut avec un formatAttribut avec un format

DomaineDomaineDomaine de validité de certains attributsDomaine de validité de certains attributs

TupleTupleClé externeClé externe

Page 3: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 3

BDD : démarcheBDD : démarche

Conception : Conception : modélisationmodélisation

Développement :Développement :création, optimisationcréation, optimisation

TestTestUtilisation et mise à Utilisation et mise à

jourjourMaintenanceMaintenance

Gestion Informatique

Informatique

Gestion Informatique

Gestion

Informatique

Page 4: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 4

Modèle venant de Merise : Modèle venant de Merise : MCDMCD

EntitéEntitéAssociation

0-n 1-n

cardinalités

Page 5: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

5

ELEVE

Numéro élèveNom élèvePrénom élèveDate de naissance

MATIERE

Numéro matièreLibellé

PROFESSEUR

Numéro professeurNom professeurPrénom professeur

APPREND

ENSEIGNE

1-1

0-N

1-N

0-N

Page 6: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

6

ELEVE

Numéro élèveNom élèvePrénom élèveDate de naissance

MATIERE

Numéro matièreLibellé

PROFESSEUR

Numéro professeurNom professeurPrénom professeur

APPREND

ENSEIGNE

1-1

0-N

1-N

0-NNOTE

Page 7: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

7

ELEVE

Numéro élèveNom élèvePrénom élèveDate de naissance

MATIERE

Numéro matièreLibellé

PROFESSEUR

Numéro professeurNom professeurPrénom professeur

APPREND

ENSEIGNE

1-1

0-N

1-N

0-NNOTE

INTERVIENT dans

CLASSE

Numéro classeNiveau

EST AFFECTE à

1-1

1-N

1-N

0-N

Page 8: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 8

Modèle relationnelModèle relationnel

Chaque entité devient une tableChaque entité devient une table

Chaque association porteuse (Chaque association porteuse (relation relation n,nn,n) devient une table) devient une table

Chaque association non porteuse Chaque association non porteuse

((relation 1,nrelation 1,n) devient une clé ) devient une clé externe dans une table externe dans une table

Page 9: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

9

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

Page 10: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 10

Normalisation de Codd : Normalisation de Codd : point de départpoint de départ

Liste des attributsListe des attributs Dépendances fonctionnellesDépendances fonctionnelles Dépendances multivaluéesDépendances multivaluées

NON vues iciNON vues ici

Page 11: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 11

NormalisationNormalisation : processus

Normaliser c’est regrouper la liste Normaliser c’est regrouper la liste

des attributs en relationsdes attributs en relations

- - ayant du sens ayant du sens

- cohérentes - cohérentes

- sans redondance- sans redondance

On obtient une série de tableOn obtient une série de table

Page 12: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 12

Normalisation : 1FNNormalisation : 1FN

Tout attribut de R contient:

une valeur monovaluée et non composée

Page 13: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 13

Normalisation : Normalisation : 1FN1FN

Exemples :Exemples :Prénom 1, Prénom 2Prénom 1, Prénom 2Adresse: Numéro Adresse: Numéro voie, type voie, nom voie, type voie, nom voie, nom ville, code voie, nom ville, code postalpostal

Page 14: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 14

Normalisation : Normalisation : 1FN1FN

R (R (Numéro élève, Numéro élève, Prénoms, Adresse)Prénoms, Adresse)

n’est pas en 1FNn’est pas en 1FN

Page 15: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 15

R normalisée en 1FNR normalisée en 1FN

RR ( (Numéro élèveNuméro élève, , Prénom1, Prénom2, Prénom1, Prénom2, Numéro voie, Type voie, Numéro voie, Type voie, Nom voie, Nom ville, Nom voie, Nom ville,

Code postal) Code postal)

Page 16: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 16

Normalisation :Normalisation : 2FN2FN

1.1. R est en 1FNR est en 1FN

2.2. Tout attribut non clé Tout attribut non clé de R dépend de la de R dépend de la totalité de la clétotalité de la clé

Page 17: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 17

Normalisation : Normalisation : 2FN2FN

R (R (Numéro élève, Numéro élève, Numéro matièreNuméro matière, note, , note, Nom élève)Nom élève)

Le Nom ne dépend F. que Le Nom ne dépend F. que du Numéro de l’élèvedu Numéro de l’élève

Page 18: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

18

100100 005005 1212 DupontDupont

100100 001001 1616 DupontDupont

100100 002002 0808 DupontDupont

100100 003003 1010 DupontDupont

200200 004004 1212 MartinMartin

Page 19: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 19

Normalisation : Normalisation : 2FN2FN

R n’est pas en 2FNR n’est pas en 2FNOn normalise :On normalise :

R1 (R1 (Numéro élèveNuméro élève, Nom , Nom élève)élève)

R2 (R2 (Numéro élève,Numéro Numéro élève,Numéro matièrematière, Note), Note)

Page 20: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 20

Normalisation : Normalisation : 3FN3FN

1.1. R est en 2FNR est en 2FN

2.2. Tout attribut de R ne Tout attribut de R ne dépend pas de la clé dépend pas de la clé

par transitivité par transitivité

Page 21: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 21

Normalisation :Normalisation : 3FN3FN

R (R (Numéro professeurNuméro professeur, Nom , Nom professeur, Numéro matière, professeur, Numéro matière, Libellé matière) Libellé matière)

Libellé matière dépend Libellé matière dépend fonctionnellement de Numéro, fonctionnellement de Numéro, professeur par transitivité,à professeur par transitivité,à travers le Numéro matièretravers le Numéro matière

Page 22: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

22

100100 DuvalDuval 001001 AnglaisAnglais

101101 FarencFarenc 001001 AnglaisAnglais

102102 GervaisGervais 001001 AnglaisAnglais

103103 JustinJustin 001001 AnglaisAnglais

104104 LoliéeLoliée 002002 EspagnolEspagnol

Page 23: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 23

On normalise en 3 FN

R1 (Numéro professeur, Nom professeur, numéro matière)

R2 (Numéro matière, libellé matière)

Page 24: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 24

Normalisation Normalisation 4FN et 5 FN4FN et 5 FN

Non traitéesNon traitées

Page 25: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 25

NORMALISATION : préparation

NumNumééro ro ééllèève = Ave = A Nom Nom ééllèève = Bve = B PrPréénom nom ééllèève = Cve = C Date naissance = DDate naissance = D NumNumééro matiro matièère = Ere = E LibellLibelléé = F = F Note = GNote = G NumNumééro professeur = Hro professeur = H Nom professeur = INom professeur = I PrPréénom professeur = Jnom professeur = J NumNumééro classe = Kro classe = K Niveau = LNiveau = L

A A DFDF B, C, D, K B, C, D, K E E DFDF F F AE AE DF GDF G H H DFDF I, J, E I, J, E K K DFDF L L

Page 26: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 26

NORMALISATION : exécution

A A DFDF B, C, D, K B, C, D, K E E DFDF F F AE AE DF GDF G H H DFDF I, J, E I, J, E K K DFDF L L

1) DF Elève (Elève (AA, B, C, D, K), B, C, D, K) Matière (Matière (EE, F), F) Apprend (Apprend (A, E,A, E, G)G) Professeur (Professeur (H,H, I, J, E) I, J, E) Classe (Classe (K,K, L) L)

Page 27: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 27

Création & manipulation des BDD : Création & manipulation des BDD : requêtes SQLrequêtes SQL

• « « SStructured tructured QQuery uery LLanguage » 1986anguage » 1986

• Opérateurs de l’algèbre Opérateurs de l’algèbre relationnelle relationnelle

• Utilisé dans toutes les BDUtilisé dans toutes les BD

Page 28: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 28

« LDD » : « LDD » : langage de définition des donnéeslangage de définition des données

CREATE TABLE élèveCREATE TABLE élève

(numéroélève NUM(6) [ UNIQUE] (numéroélève NUM(6) [ UNIQUE] [NOT NULL] [PRIMARY KEY], [NOT NULL] [PRIMARY KEY], nomélève CHAR(30)[NOT nomélève CHAR(30)[NOT NULL], prénomélève CHAR(20) NULL], prénomélève CHAR(20) [NOT NULL],annaissance [NOT NULL],annaissance NUM(4)…)NUM(4)…)

Page 29: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 29

ALTER TABLE matière ALTER TABLE matière

ADD COLUMN coefficient ADD COLUMN coefficient NUM(1)NUM(1)

DROP TABLE apprendDROP TABLE apprendRENAME apprend to notationRENAME apprend to notation

« LDD » « LDD »

Page 30: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

30

ELEVE

Numéro élèveNom élèvePrénom élèveDate de naissance

MATIERE

Numéro matièreLibellécoefficient

PROFESSEUR

Numéro professeurNom professeurPrénom professeur

APPREND

ENSEIGNE

1-1

0-N

1-N

0-NNOTE

INTERVIENT dans

CLASSE

Numéro classeNiveau

EST AFFECTE à

1-1

1-N

1-N

0-N

ALTER

Page 31: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

31

ELEVE

Numéro élèveNom élèvePrénom élèveDate de naissance

MATIERE

Numéro matièreLibellécoefficient

PROFESSEUR

Numéro professeurNom professeurPrénom professeur

ENSEIGNE

1-1

0-N

1-N

INTERVIENT dans

CLASSE

Numéro classeNiveau

EST AFFECTE à

1-1

1-N

0-N

DROP

Page 32: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

32

ELEVE

Numéro élèveNom élèvePrénom élèveDate de naissance

MATIERE

Numéro matièreLibellécoefficient

PROFESSEUR

Numéro professeurNom professeurPrénom professeur

NOTATION

ENSEIGNE

1-1

0-N

1-N

0-NNOTE

INTERVIENT dans

CLASSE

Numéro classeNiveau

EST AFFECTE à

1-1

1-N

1-N

0-N

RENAME

Page 33: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 33

« Les autorisations d’accès» : « Les autorisations d’accès» :

GRANT & REVOKEGRANT & REVOKEGRANT privilège ON objet TO public

Qui (public) a le droit de Qui (public) a le droit de faire quoi (privilège) faire quoi (privilège)

à quoi (objet)à quoi (objet)

Page 34: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 34

GRANT INSERT ON apprend TO professeur

GRANT SELECT ON apprend TO PUBLIC

REVOKE ALL ON apprend FROM PUBLIC

« Les autorisations d’accès» :« Les autorisations d’accès» :

Page 35: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 35

« LMD » : langage de manipulation « LMD » : langage de manipulation des donnéesdes données

SELECTSELECTINSERTINSERTUPDATEUPDATEDELETEDELETE

Page 36: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 36

SELECT SELECT

nomélève, prénomélèvenomélève, prénomélève

FROM élèveFROM élève

WHERE annaissance = 1994WHERE annaissance = 1994

ORDER BY nomélève ORDER BY nomélève

SELECTSELECT

Page 37: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 37

SELECT SELECT nomélève, prénomélèvenomélève, prénomélèveFROM élève, apprendFROM élève, apprendWHERE annaissance = 1994WHERE annaissance = 1994AND élève.numéro-élève = AND élève.numéro-élève =

apprend.numéro-élèveapprend.numéro-élèveAND note NOT NULLAND note NOT NULL ORDER BY nomélève ORDER BY nomélève

SELECT avec jointureSELECT avec jointure

Page 38: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 38

INSERTINSERT

INSERT INTO élève INSERT INTO élève (numéroélève, nomélève, (numéroélève, nomélève, prénomélève, annaissance)prénomélève, annaissance)

VALUES (105, durant, alexis, VALUES (105, durant, alexis, 2000)2000)

Page 39: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 39

UPDATEUPDATE

UPDATE apprendUPDATE apprend

SET note = 14SET note = 14

WHERE numéroélève = 106 WHERE numéroélève = 106

AND numéromatière = 5AND numéromatière = 5

Page 40: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 40

DELETEDELETE

DELETE FROM DELETE FROM élève, apprendélève, apprendWHERE WHERE numéroélève = 78numéroélève = 78

Page 41: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 41

Les agrégats : SUMLes agrégats : SUM

SELECT SUM (montant) SELECT SUM (montant)

FROM commande FROM commande

GROUP BY numéro-clientGROUP BY numéro-client

Page 42: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 42

AVGAVG

SELECT nom-élève SELECT nom-élève FROM élèveFROM élèveSELECT AVG (note) SELECT AVG (note) FROM apprendFROM apprendGROUP BY numéro-élèveGROUP BY numéro-élève

Page 43: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 43

MIN ou MAXMIN ou MAX

SELECT MAX(note) SELECT MAX(note)

FROM apprendFROM apprend

WHERE numéro-élève = 105WHERE numéro-élève = 105

Page 44: Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio

Quinio 44

COUNTCOUNT

SELECT COUNT SELECT COUNT

FROM apprendFROM apprend

SELECT COUNT FROM SELECT COUNT FROM apprendapprend

WHERE numéro-élève = 102WHERE numéro-élève = 102