Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Cours bd
1. Le modèle relationnel et la normalisation
Objectifs d'apprentissage
• connaître les principes et caractéristiques du modèle
relationnel
• connaître les principes de normalisation
• connaître les diverses notions de clés
• connaître les règles de dépendances fonctionnelles
• connaître les principales formes normales
• savoir comment concevoir une base à partir de
dépendances fonctionnelles
• connaître les principaux SGBD relationnels
1
2. Le modèle Relationnel
• Basé sur la théorie des Relations
• Étant donnés les ensembles D1, D2, ... Dn Codd(IBM)
R est une relation sur ces n ensembles si c'est un ensemble ordonné de n-uplets <d1,
d2, ... dn> tels que
d1 ε D1, d2 ε D2, ... dn ε Dn
D1, D2, ... Dn sont des domaines de R
n est le degré de la Relation
-> Ex: Relation Pièce Pièces Pno Pnom Couleur Poids
P1 boulon blanc 5
P2 vis noir 2
P3 boucho rouge 7
Tuple ou nuplet n
P4 cle vert 25
P5 volant jaune 15
2
3. • Il n'existe pas 2 n-uplets identiques
• L'ordre des colonnes n'importe pas
• L'ordre des lignes n'importe pas
• Un domaine particulier est la "clé primaire" (Ex.: Pno)
• Chaque valeur de Pno est différente
* Chaque valeur identifie de manière unique le n-uplet
• Cas où deux domaines(attributs) représentent le même ensemble (domaine):
Composant (PnoC, Pnoc Qté)
P1 P2 2
P1 P4 4
Clé Primaire P5 P3 1
P3 P6 3
P6 P7 9
P5 P6 8
P2 P4 4
3
4. * chaque valeur d'un domaine(attribut) n'est pas décomposable
⇒ relation normalisée 3FN
Exemple: rlto
eain
VNE
ET Fo
n P
Q
Fo
n Po
n, Qé
t
Po
n, Qé
t
F
1 P
1 3
F
1 3 F
1 P
2
P
1 F
1 2
P
3
P
2 2 .
0FN P
3 4
.
.
.
.
.
.
4
.
1FN
P
4 2 .
.
P
5 1
.
F
2 P
1 3
P
2 4
F
3 P
3 4
P
5 2
Le modèle relationnel est formé d'une collection de relations
normalisées de différents degrés (variable avec le temps).
• Avec relation ≅ fichier, domaine ≅ champs, n-uplet enregistrement ,
mais propriétés (normalisation) différentes
4
5. Exemple d'un modèle relationnel
CP
FUN
OR Po Po
n nm ct
a vle
il P Po
n Po
nm cuer
olu pis
od
FP Fno Pno Qte
Dtot
éri P1 Clse
uas bac
ln 25
F1 Fr
od 1
F1 P1 1 000
F F2 GE 2 NY
.. P2 buo
oln jue
an 8
CE F1 P2 10 000
Tko
oy P3 Vs
i bac
ln 5
F3 Htci
iah 2
F1 P4 10 000
Trno
oot P4 crut
ici ni
or 2
F4 RdoS
ai- 4
F2 P4 100
LA
.. P5 cpt
ao bie
eg 5
F5 Mtrl
oooa 4 F2 P6 200
LA
.. P6 taso
rnf ni
or 58
F6 ..
. 4 F3 P4 300
F1 P2 F4 P4 1 000
F5 P4 200
• Chaque fournisseur fournit des pièces et chaque pièce est fournie
par des fournisseurs (correspondance plusieurs-plusieurs)
clé candidate ≠ clé alternée
5
6. Règles ou contraintes d'intégrité
1- Aucune clé primaire ne peut être nulle (en tout ou partie)
2- Intégrité référentielle
FP ( #F, #P , Qté )
C lé é trangè re
clés primaire
P ( #P, NOM, POIDS, COULEUR )
⇒ Chaque valeur de #P dans FP doit être égale à celle de #P dans P.
• Définition: schéma relationnel
– structure
– contraintes d'intégrité
• Conception d'une base relationnelle
– méthode -> décomposition
-> composition
– normalisation 1FN, 2FN,...... 5FN
6
7. • Ajout: Il est facile d'ajouter une nouvelle pièce (P7) -> ajout d'un nouveau tuple
• Suppression: On peut supprimer F1 sans perdre l'information sur la pièce fournie
• M.A.J. : On peut changer la couleur de la pièce P2 (en jaune) sans problèmes de recherche
et sans possibilité d'incohérence.
⇒ Résout de nombreux problèmes des modèles hiérarchiques et en réseau.
• Modèle industrialisé petit à petit depuis début 80. Diffusion large actuellement
• Offre la plus grande souplesse de vue, de manipulation
• Réalise les objectifs d'indépendance recherchés
• Optimisation nécessaire
7
8. Caractéristiques des SGBD relationnels
• Suivant Codd, un système est relationnel<=> il supporte au moins les
propriétés suivantes:
1 - Il y a une Base de données relationnelle (la base de données est perçue par
l'usager selon les tables)
2 - On a au moins les opérations:
sélection, projection, jointure naturelle
sans détails sur les accès physiques entraînés par ces opérations.
Par exemple, si on ne peut que sélectionner des enregistrements indexés
(champs indexés), ce n'est pas un Système Relationnel (S.R.).
8
9. RAISONS
• S, P, J sont un sous-ensemble de l'algèbre (très utile). Ils résolvent
presque tous les problèmes.
• un système qui supporte uniquement l'aspect relationnel (tables) ne
permet pas la qualité d'utilisation d'un S.R.véritable
• un système qui fournit les opérateurs relationnels mais nécessite une
prédéfinition des chemins d'accès n'obéit pas au principe
d'indépendance physique.
• les opérateurs relationnels doivent être implémentés avec optimisation
=> tâche non triviale => raison du délai d'apparition des SGBD
industriels.
9
10. Schématiquement
– Chaque secteur => une propriété fondamentale du modèle (structurale, intégrité,
manipulation) (S I M)
– Le degré de la propriété S
M
» Systèmes tabulaires (sans set d'opérateurs)
==> ce ne sont pas des relationnels.
I
» tables + opérations de S, P, J (pas d'autres)
==> est relationnel minimal => Dbase 4
S M
» tables + tous les opérateurs
==> Relationnel complet
⇒ DB2, SQL/DS, INGRES, ORACLE RdB/VMS, ... I
» tous les aspects du modèle => notions de domaines et les deux règles d'intégrité, est
totalement relationnel S M
actuellement aucun, mais en préparation.
I 10
11. _ DEPENDANCES FONCTIONNELLES _
• soit uj C U ou U est l ’ensemble des attributs
• soient x et y C uj et R(uj) une relation définie sur les attributs uj
x y est appelée dépendance fonctionnelle (DF) si la
connaissance de x entraine celle de y
Ou encore si on a x1 y1 et x1 y2 alors y1=y2
• Si on a 2 DF x --> y et si y --> x alors x <--> y
Ex.: dept <-->dir.
• Un schéma relationnel est défini à partir de U et Σ
R = (U, Σ) Σ = ensemble des DF
11
12. Problèmes posés par un schéma relationnel
• --> Insertion, mise-à-jour, suppression
• R(PR,P,F,AF,N) et PR,P --> F, F --> AF
• N: nombre de pièces fournies par un fournisseur pour un projet et un
produit
• R: (PR, P, F, AF, N) un fournisseur f d'adresse af
Ex.: P4 100 f1 af1 500 a fourni n pièces p pour le
P5 100 f1 af1 600 projet P
P4 200 f1 af1 100 F --> AF
• 1- Anomalies de mise-à-jour
• Si on veut mettre à jour l'adresse du fournisseur f1 on doit le faire pour
tous les tuples sinon F --> AF n'est plus valide
• ===>> redondance d'information
12
13. • 2- Anomalies d'insertion
• On ne peut introduire un fournisseur que s'il approvisionne une pièce
pour un projet.
• Si valeurs indéfinies => valeur de clé (PR, P, F) indéfinie
• 3- Anomalies de suppression
• Suppression d'un tuple fait perdre de l'information (adresse d'un
fournisseur s'il est unique)
• Une solution: décomposition de R en projections
• R1(PR, P, F, N) et R2(F, AF)
• 4- Remplacement de schémas
• Le pilote p effectue le vol v sur l'avion a.
• R(vol,avion,pilote) vol --> avion, vol --> pilote, avion --> pilote
13
14. • R ( vol avion pilote )
• v1 a1 p1
• v2 a1 p1 vol --> avion
• v3 a2 p2 vol --> pilote
• v4 a3 p2 avion --> pilote
• Même anomalies décomposition en R1 et R2
• R1 (vol pilote ) R2 (vol, avion )
• v1 p1 v1 a1
• v2 p1 v2 a1
• v3 p2 v3 a2
• v4 p2 v4 a3
• SI : Ajout de v4 a1 à la place de v4 a3 => ok, mais:R1 JOIN R2 = R1*R2 (vol, avion, pilote )
• v1 a1 p1
• v2 a1 p1
• v3 a2 p2
• v4 a1 p2
• sauf que la dépendance avion --> pilote plus vérifiée, a1 -->p1 et a1 -->p2 14
15. Algèbre des dépendances fonctionnelles
• On dispose d’un certain nombre de règles d'inférence (ou dérivation) ou axiomes
• FD1 (réflexivité): si Y C X , alors X --> Y
• ==>Dépendance triviale
• X C X => X --> X
• FD2 (augmentation):
• Si X --> Y alors XZ --> YZ, et aussi XZ --> Y
• FD3(transitivité):
• Si X --> Y et Y --> Z, alors X --> Z
• FD4 (pseudo-transitivité):
• Si X --> Y et YW --> Z, alors XW --> Z
15
16. • FD5 (union ou additivité):
• Si X --> Y et X --> Z, alors X --> YZ
• Pour: X --> Y | - X --> YZ
X --> Z
• FD6 (décomposition et projection):
• Si X --> YZ alors X --> Y
• X --> Z
• Remarque
• Si (U, Σ) quels sont les r(u) qui satisfont chaque DF dans Σ ?
• L’algorithme de vérification est de temps polynomial
• On doit vérifier== > | r | (| r | - 1) tuples au total
• 2
• Soit == > 0 (| Σ | . | r |2) au total
16
17. Dérivation de dépendances fonctionnelles
• Séquence de dérivation de σ dans Σ
• Σ |-σ une séquence finie σ 1, σ 2,..., σ κ ou
– chaque σj peut-être dérivé de σ 1, σ 2,..., σ j−1 ou σj est un membre de σ
qui peut-être dérivé de σ 1, σ 2,..., σ j−1 par application d'une règle deDF
et
– σ est le dernier élément σ k dans la séquence
– on dit que est σ dérivable à partir de Σ
Exemple de dérivation
• S {P -> T; H,P ->Y; H,N ->P; H,Y ->N}
• H,N --> T
• H,N --> Y
• P,H,N --> Y
• P,H,N --> H
• P,N,H --> H
17
18. Fermeture des DF
• (U, Σ ) Σ+ est la fermeture de Σ si
• 1 - Σ est sous-ensemble de la fermeture (Σ C Σ+)
• 2 - si Σ ' | - X -->Y pour Σ ' C Σ alors
• X --> Y est dans Σ +
• 3 - il n'y a rien de plus dans Σ +
• Cas particulier: si Σ = Σ + alors Σ est complet
• Fermeture de X
• Étant donné Σ et U et X CU
• la fermeture de X notée X + est telle que
• 1 - Χ C X+
• 2 - si Ζ C X+ et Z --> Y est dans Z alors
• Y C X+
• 3 - il n'y a rien de plus dans X+
18
19. • _ Redondance _
• Une DF est redondante si elle peut être dérivée de Σ - { σ }, et non redondante dans cas ≠
• Un ensemble est non redondant si il est constitué de DF non redondantes.
• Exemple:
Σ 1 { A --> B, B --> C} non redondant
Σ 2 { A --> BC, B --> C} redondant
• Clés et superclés
• R (U Σ )
• X CU est une superclé de R si
– X --> U est dans Σ +
• XCU est une clé de R si
– X est une superclé de R et
– Y --> U ∉ Σ + pour chaque Y C X
• Exemple: R = (U, Σ ) U= ABCDEFG
Σ {A --> BCF, C --> D, BD --> E, EF --> G}
• A+ = U, C+ = CD
• BD+ = BDE, EF+ = EFG ==> A clé (A est non décomposable)
19
20. • Attributs superflus
A C X ou B C Y est superflu pour X --> Y si
• (X - A) --> Y est dans Σ + ou si
• X --> B est redondant
• (c.a.d. si Σ - (X-->B) | -(X -->B)
• Couverture
• Soient FD(u) l'ensemble des DF sur U
Σ 1 et Σ 2 C FD(u) Σ 1 est une couverture de Σ 2 si Σ 1+ = Σ 2 +
• Ex: Σ 1 {A-->BC} Σ2 {A-->B}
• {B-->C} {B-->C}
redondant non redondant
Σ 1 + = Σ 2+
• A+ = ABC B+ = BC
20
21. NORMALISATION
• 1ère forme normale
• R = A1 ... Ai ... Ar...
• est en première forme normale (1FN) si le domaine de chaque attribut est simple
• Ex: (dept, stock, dir, qte) en 1FN
• si depk = dept stock
• ==> la relation (depk*,dir, qte) n'est pas en 1FN
• *relation
• 2e forme normale
• Déf.: attribut premier,A, si A C clé
• Déf: dépendance partielle
• soit X --> A , A est partiellement dépendant de X si ∃ Y --> A pour YCX
• X --> A est dépendance partielle (DP)
21
22. • Déf.:dépendance totale (DT)
• X --> A DT si Y -/-> A pour Y C X
• Def.:R = ( U, Σ ) en 2FN
Si chaque attribut non premier de U n'est pas partiellement dépendant
d'une clé de R
• 3e forme normale
• Ex1: Logement (Numloc, Immeuble, Loyer)
• Immeuble --> Loyer
• Numloc --> Immeuble --> Loyer
22
23. Numloc Immeuble Loyer
100 Cartier 1200
150 Champlain 800
200 Cartier 1200
250 Maisonneuve 1000
300 Cartier 1200
Relation en 2FN mais on une dépendance transitive.
Si on supprime le second tuple ? On perd l’information sur
la personne mais aussi sur le loyer de l ’immeuble.
On ne peut pas introduire le fait que le coût du loyer de Hull est
de 900 sans avoir de personne qui habite.
--> on enlève cette dépendance transitive
23
25. • DEF: R en 3FN, si chaque attribut non premier n'est pas transitivement dépendant d'une
clé.
• Ex: de la relation précédente on déduit
• (dept, dir) et (dept, stock, qte) en 3FN
• R (emp, nom, dept, dir) Σ: emp --> nom, dept dept --> dir
• (emp)+ = U ==> R1 (emp, nom, dept)
• R2 (dept, dir)
• La troisième forme normale suffit généralement à éliminer la majorité des
problèmes
• Ex: R (A B C D) Σ: {A --> B, B --> C}
• A+ = ABC B+ = BC ==> AD est clé
• B, C non premiers
• Comme AD --> B et A --> B dep part et dep transit. On transforme en deux
relations
• ==> R1(A C D) AD --> C
• R2 (A B) A --> B
25
26. Forme normale de Boyce- Codd (FNBC)
• Une relation est FNBC, si toutes les DF proviennent des clés.
ou encore: R est en FNBC si pour chaque DF non triviale X --> A, X est
une super-clé de R, c ’est à dire dire contient une clé.
• Ex1: R (A, B, C) AB --> C, C --> A
est en 3FN mais pas en FNBC
• C --> A ne contient pas une clé / C --> A pas super-clé.
R1(A B) R2(C A) OUI
• Ex 2: R(A B C D E F) AB --> E, AC --> F, AD --> B, B --> C, C -->
D
non en FNBC
• dans B --> C et C --> D B et C ne sont pas superclés.
26
27. • Ex: R (A B C D) Σ: {A --> B, B --> C}
• A+ = ABC B+ = BC ==> AD est clé
• B, C non premiers
• Comme AD --> B et A --> B dep part et dep transit. On
transforme en deux relations
• ==> R1(A C D) AD --> C
• R2 (A B) A --> B
27
28. 4e forme normale
• Fait intervenir la notion de dépendances multivaluées DMV
• Il existe une dépendance multivaluée entre les constituants x et y si la
connaissance de x détermine un ensemble de valeurs de y.
• Ex:
• R (Employé, année,fonction, enfants)
e1 1995 pgmeur anabelle
e1 1995 pgmeur eric
e1 1998 analyste anabelle
e1 1998 analyste eric
e2 1999 graphiste philippe
e3 1999 graphiste nathalie
28
29. • Si la connaissance d'un employé implique la connaissance
des fonctions alors on a une DMV entre fonction et enfants
• employé, année --- »fonction
• employé, année --- » enfants
• Pour éliminer cette anomalie on élimine les dépendances
multivaluées
• R1(employé, année, fonction)
• R2(employé, année, enfants)
29
30. Forme normale de clé élémentaire (FNCE)
• DEF: X --> A est une DF élémentaire (DFE) Α ⊄ X, si elle
n'est pas partielle.
une clé K est élémentaire si K --> A est élémentaire dans
toutes les DF possibles
• Ex:
• R (A B C D E) Σ: AB --> CE, AC --> BD, B --> CE,
• C --> BD
30
31. • DEF :une relation est en forme normale de clé élémentaire (FNCE) si pour chaque DFE
de la forme X --> A, une des conditions suivantes est satisfaite:
A
• 1- X est une clé OU
• 2- A est un attribut premier élémentaire
• Ex: R (A B C) AB --> C, C --> A
• AB+ = ABC
• 1 - AB --> C DFE et AB est clé
• 2 - C --> A DFE A est attribut premier élémentaire (fait partie d'une clé
élémentaire)
• R est FNCE
• Ex: R1 (AC) R2 (ABE) R3 (BCDEF)
• C --> A AE --> B BF --> C, CD --> EF, EF --> CD
BEF BCD BDF
• Ne sont pas FNCE (toutes) car R3 n'est pas FNCE
31
32. Conception de bases de donnés relationnelles
1 - Méthode de composition
Algorithme de synthèse de Bernstein
(U1, Σ) --> un ensemble de Ri normalisées en 3 FN
1 - Prendre les DF,
2 - Pour chaque DF les rendre DFE (Σ --> Σ1)
3 − Chercher la fermeture Σ1+ non redondante. Enlever les dépendances
transitives
4 - Partitionner Σ1+ en groupe tels que toutes les DF aient la même partie
gauche. Fusionner des groupes ayant partie gauche équivalente (tels que Xi
--> Xj et Xj --> Xi .
5 - Pour chaque groupe construire un schéma (Xi, Σ i), la partie gauche
étant clé
32
33. • 2- Méthode de décomposition FAGIN
• Chaque décomposition utilise une DF ou une DMV dans une relation et le
reste des attributs - ceux impliqués dans la DF} dans la 2e relation.
On élimine les dept. transitives.
• Ex : U: {A B C D E F G H I J}
• A--> BCD D A ->-> D
• CD --> A A ->-> B, C, F, D
• E, G --> A A ->-> E, G, J, H, I
• A --> F
• GBC --> A
• E --> H, J
• GA --> I
33