đ Le modĂšle relationnel#
Il sâagit du modĂšle de SGBD le plus rĂ©pandu et utilisĂ© Ă lâheure actuelle, nous pouvons notamment citĂ© comme SGBDR:
ORACLE,
SQLServer,
MySQL/MariaDB,
PostGreSQL,
SQLite, etc.
à la différence du modÚle entité-association, celui-ci se base sur un seul type de structure pour représenter les données: la relation (table).
Les donnĂ©es sont stockĂ©es sous forme de tables Ă deux dimensions et manipulĂ©s par des opĂ©rateurs dâalgĂšbre relationnelle.
id |
firstname |
lastname |
job |
1 |
Luke |
Skywalker |
Jedi |
2 |
Han |
Solo |
Smuggler |
3 |
Ben |
Kenobi |
Jedi Master |
Les tables constituent la structure logique du modÚle relationnel, la cohérence est définie par un ensemble de CI.
Exemple de schéma relationnel
Histoire du modĂšle relationnel#
Il sâagit dâun modĂšle logique, proposĂ© en 1970 par Tedd Codd, basĂ© sur la notion de relations au sens mathĂ©matique et la thĂ©orie des ensembles. Le premier SGBDR Ă lâimplĂ©menter est SQL/DS dâOracle en 1980.
Terminologie
- Relation
Une table avec des colonnes et des lignes.
- Attribut
Une colonne nommée de la relation.
- Tuple
(ou enregistrement) Une ligne dans une relation.
- Domaine
Un ensemble de valeurs admissibles pour un ou plusieurs attributs.
- Degré
Nombre dâattributs dâune relation.
- Clé candidate
Ensemble minimum dâattributs quâidentifie de façon unique un tuple au sein dâune relation.
- Clé primaire
La clé candidate choisie pour identifier de façon unique les tuples au sein de la relation.
- Clé étrangÚre
Un ensemble dâattributs dâune relation qui correspond Ă une clĂ© candidate dâune relation.
Passage du modĂšle EA au modĂšle relationnel#
Une fois notre modĂšle conceptuel des donnĂ©es obtenu par lâĂ©tablissement dâun schĂ©ma entitĂ© association ou mieux un schĂ©ma UML, il convient de traduire celui-ci en schĂ©ma relationnel.
Traduction des entités#
Toute entitĂ© du diagramme entitĂ©/association (ou classe du diagramme de classes) est reprĂ©sentĂ©e par une relation. La clĂ© de cette relation est lâidentifiant de lâentitĂ©.
Ainsi lâentitĂ© « Boardgame » prĂ©cĂ©dente se traduit:
Traduction des associations#
Toute association est transformée en relation. La clé de cette relation est composée de tous les identifiants des entités participantes.
Ainsi lâassociation « is made by » prĂ©cĂ©dente se traduit:
Optimisation de la traduction des associations#
Toute associations reliĂ©es Ă une entitĂ© avec une cardinalitĂ© de type \(0,1\) ou \(1,1\) peut ĂȘtre fusionnĂ©e avec lâentitĂ©. Dans ce cas on dĂ©place les attributs de lâassociation vers ceux de la relation traduisant lâentitĂ©.
Cas n°1
Ce cas n°1 se traduit:
Cas n°1.1
Ce cas n°1.1 se traduit:
Cas n°2
Cas n°2 se traduit:
Ici \(\#b1\) est une clé étrangére au sein de la relation \(A\), une autre notation pour la clé étrangére est \(b1 \Rightarrow B\) tel que \(A(\underline{a1}, a2, .., an, b1 \Rightarrow B)\).
Cas n°3
Cas n°3 se traduit:
Cas n°3.1
Cas n°3.1 se traduit:
Exemple un peu plus concret
Ce schéma se traduit:
Redondance et normalisation#
Il est difficile de dĂ©finir un bon modĂšle conceptuel, un bon modĂšle logique relationnel est un modĂšle oĂč la redondance est contrĂŽlĂ©e. A dĂ©faut de disposer dâoutils systĂ©matiques pour obtenir de bons modĂšles conceptuels, on cherche donc Ă critiquer les modĂšles relationnels obtenus.
La thĂ©orie de la normalisation est une thĂ©orie qui permet de critiquer, puis dâoptimiser, des modĂšles relationnels, de façon Ă en contrĂŽler la redondance.
Principe de la normalisation#
Câest une thĂ©orie destinĂ©e Ă concevoir un bon schĂ©ma dâune base de donnĂ©es sans redondance dâinformation et sans risques dâanomalie de mise Ă jour. Elle a Ă©tĂ© introduite dĂšs lâorigine dans le modĂšle relationnel.
La théorie de la normalisation est fondée sur deux concepts principaux :
Les dépendances fonctionnelles: Elles traduisent des contraintes sur les données.
Les formes normales: Elles définissent des relations bien conçues.
Dépendance fonctionnelle#
Note
Soient \(R(A1, A2, ... , An)\) un schéma de relation, \(X\) et \(Y\) des sous-ensembles de \(A1, A2, ... , An\).
On dit que \(X\) dĂ©termine \(Y\), ou que \(Y\) dĂ©pend fonctionnellement de \(X\), si et seulement sâil existe une fonction qui Ă partir de toute valeur de \(X\) dĂ©termine une valeur unique de \(Y\).
Si \(X\) détermine \(Y\), on note : \(X \longrightarrow Y\)
Axiomes dâArmstrong
Les DF obĂ©issent Ă des propriĂ©tĂ©s mathĂ©matiques particuliĂšres, dites axiomes dâArmstrong.
- Réflexivité
Tout groupe dâattributs se dĂ©termine lui mĂȘme et dĂ©termine chacun de ses attributs (ou sous groupe de ses attributs). Soient \(X\) et \(Y\) des attributs :
\(XY \longrightarrow XY\)
et \(XY \longrightarrow X\)
et \(XY \longrightarrow Y\)
- Augmentation
Si un attribut \(X\) dĂ©termine un attribut \(Y\), alors tout groupe composĂ© de \(X\) enrichi avec dâautres attributs dĂ©termine un groupe composĂ© de \(Y\) et enrichi des mĂȘmes autres attributs.
Soient \(X\), \(Y\) et \(Z\) des attributs : \(X \longrightarrow Y \Rightarrow XZ \longrightarrow YZ\)
- Transitivité
Si un attribut \(X\) détermine un attribut \(Y\) et que cet attribut \(Y\) détermine un autre attribut \(Z\), alors \(X\) détermine \(Z\).
Soient \(X\), \(Y\) et \(Z\) des attributs : \(X \longrightarrow Y\) et \(Y \longrightarrow Z \Rightarrow X \longrightarrow Z\)
- Union
Si un attribut détermine plusieurs autres attributs, alors il détermine tout groupe composé de ces attributs.
Soient \(X\), \(Y\) et \(Z\) des attributs : \(X \longrightarrow Y\) et \(X \longrightarrow Z \Rightarrow X \longrightarrow YZ\)
- Décomposition
Si un attribut dĂ©termine un groupe dâattribut, alors il dĂ©termine chacun des attributs de ce groupe pris individuellement.
Soient \(X\), \(Y\) et \(Z\) des attributs : \(X \longrightarrow YZ \Rightarrow X \longrightarrow Z\) et \(X \longrightarrow Y\)
Dépendance fonctionnelle élémentaire#
Note
Soit \(G\) un groupe dâattributs et \(A\) un attribut, une DF \(G \longrightarrow A\) est Ă©lĂ©mentaire si :
\(A\) nâest pas incluse dans \(G\),
et sâil nâexiste pas dâattribut \(A'\) de \(G\) qui dĂ©termine \(A\).
Important
On peut toujours réécrire un ensemble de DF en un ensemble de DFE, en supprimant les DF triviales obtenues par réflexivité et en décomposant les DF à partie droite non atomique en plusieurs DFE.
Fermeture transivite des DFE
On appelle fermeture transitive \(\bar{F}\) dâun ensemble \(F\) de DFE, lâensemble de toutes les DFE qui peuvent ĂȘtre composĂ©es par transitivitĂ© Ă partir des DFE de \(F\).
Soit lâensemble: \(F = \{ A \rightarrow B,\ B \rightarrow C,\ B \rightarrow D,\ A \rightarrow E \}\).
La fermeture transitive de F est \(\bar{F} = \{ A \rightarrow B, B \rightarrow C, B \rightarrow D, A \rightarrow E, A \rightarrow C, A \rightarrow D \}\)
Couverture minimale des DFE#
Note
La couverture minimale dâun ensemble de DFE est un sous-ensemble minimum des DFE permettant de gĂ©nĂ©rer toutes les autres DFE. Tout ensemble de DFE (et donc tout ensemble de DF) admet au moins une couverture minimale (et en pratique souvent plusieurs).
Lâensemble \(F = \{A \rightarrow B,\ A \rightarrow C,\ B \rightarrow C,\ C \rightarrow B\}\) admet les deux couvertures minimales :
\(CM1 = \{A \rightarrow C,\ B \rightarrow C,\ C \rightarrow B \}\) et
\(CM2 = \{A \rightarrow B,\ B \rightarrow C,\ C\rightarrow B \}\)
Graphe des DFE#
On peut reprĂ©senter un ensemble de DFE par un graphe orientĂ© (ou plus prĂ©cisĂ©ment un rĂ©seau de PĂ©tri), tel que les nĆuds sont les attributs et les arcs les DFE (avec un seul attribut en destination de chaque arc et Ă©ventuellement plusieurs en source).
Soit la relation \(Boardgame(\underline{id}, name, price, description)\) avec lâensemble des DF
On peut représenter \(F\) par le graphe ci-dessous:
Soit les relations suivantes:
On peut les représenter par le graphe ci-dessous:
DĂ©finition formelle dâune clĂ©#
Note
Soient une relation \(R(A1,A2,...,An)\) et \(K\) un sous-ensemble de \(A1,A2,... ,An\).
\(K\) est une clĂ© de \(R\) si et seulement si : \(K \rightarrow A1,A2,...,An\) et il nâexiste pas \(X\) inclus dans \(K\) tel que \(X \rightarrow A1,A2,...,An\).
Une clĂ© est donc un ensemble minimum dâattributs dâune relation qui dĂ©termine tous les autres.
Clés candidates et clé primaire
Si une relation comporte plusieurs clĂ©s, chacune est dite clĂ© candidate et lâon en choisit une en particulier pour ĂȘtre la clĂ© primaire.
Toutes les clĂ©s candidates sont des clĂ©s, pas seulement la clĂ© primaire. Toute clĂ© candidate dĂ©termine les autres clĂ©s candidates, puisque quâune clĂ© dĂ©termine tous les attributs de la relation.
Relation « toute clé »
Ătant donnĂ© quâune relation dispose forcĂ©ment dâune clĂ©, si une relation \(R\) nâadmet aucune clĂ© \(K\) sous ensemble des attributs \(A1..An\) de \(R\), alors câest que \(K=A1..An\) (la clĂ© est composĂ©e de tous les attributs de \(R\)). On parle de relation « toute clé ».
Formes normales
Elles ont pour objectif de dĂ©finir la dĂ©composition des schĂ©mas relationnels, tout en prĂ©servant les DF et sans perdre dâinformations afin de reprĂ©senter les objets et associations canoniques du monde rĂ©el de façon non redondante.
Principes de la décomposition#
La dĂ©composition dâun schĂ©ma de relation \(R(A1,A2,...,An)\) est le processus de remplacement de ce schĂ©ma par une collection de schĂ©mas \(R1,R2,...,Rn\) telle quâil est possible de reconstruire \(R\) par des opĂ©rations relationnelles de jointure sur \(R1,R2,...,Rn\).
Une dĂ©composition dâune relation \(R\) en relations \(R1,R2,...Rn\) prĂ©serve les DF si la fermeture transitive \(\bar{F}\) des DF de \(R\) est la mĂȘme que la fermeture transitive \(\bar{F}\) de lâunion des DF de \(R1,R2,...,Rn\).
- PremiĂšre forme normale
Une relation est en 1NF si elle possÚde au moins une clé et si tous ses attributs sont atomiques.
Un attribut est atomique si il ne contient quâune seule valeur pour un tuple donnĂ©, et donc sâil ne regroupe pas un ensemble de plusieurs valeurs.
- DeuxiĂšme forme normale
Une relation est en 2NF si elle est en 1NF et si tout attribut nâappartenant Ă aucune clĂ© candidate ne dĂ©pend pas dâune partie seulement dâune clĂ© candidate.
- TroisiĂšme forme normale
Une relation est en 3NF si elle est en 2NF et si tout attribut nâappartenant Ă aucune clĂ© candidate ne dĂ©pend directement que de clĂ©s candidates.
Câest Ă dire que toutes les DFE vers des attributs nâappartenant pas Ă une clĂ©, sont issues dâune clĂ©.
- Forme normale de Boyce-Codd
Une relation est en BCNF si elle est en 3NF et si les seules DFE existantes sont celles pour lesquelles une clé candidate détermine un attribut.
La BCNF est la forme normale la plus facile Ă apprĂ©hender intuitivement et formellement, puisque les seules DFE existantes sont de la forme \(K \rightarrow A\) oĂč \(K\) est une clĂ©. Pour prouver quâune BD nâest pas redondante, on pourra se contenter de vĂ©rifier quâelle est en BCNF.
Comment trouver les dépendances fonctionnelles ?
Elle est dĂ©finie par lâintension du schĂ©ma et traduit une certaine perception de la rĂ©alitĂ©. La seule maniĂšre de dĂ©terminer une DF est donc de regarder soigneusement ce que signifient les attributs et de trouver les contraintes qui les lient dans le monde rĂ©el.
Lâidentification des DF est la base indispensable pour dĂ©terminer dans quelle forme normale est une relation et comment en diminuer la redondance.