Condensé
de définitions importantes de théorie des bases de
données relationnelles
John GALLET - www.saphirtech.com -
novembre 2003
Attention : ce document reprend un
certain nombre de points importants ou de définitions précises
de la théorie des SGBDR. Il ne saurait en aucun cas être
considéré comme un support de cours complet.
Modèle Entité-Association
CHEN 1976 -> merise
Modèle Relationnel CODD (ibm)
1970. Basé sur la théorie des ensembles et des
prédicats.
1) Entité association
Identifiant unique : notion très
dépendante de l'application. Par exemple, une voiture est vue
comme une immatriculation par la Préfecture de Police, mais
comme un numéro de chassis par son constructeur.
Entité / Occurence : le Titanic
est une occurrence de l'entité Bateau. Cette différence
est tout à fait similaire à celle entre une classe et
une de ses instances en POO.
Une entité est “une
notion, définie par un nom, composée d'attributs la
qualifiant, dont la définition est utile pour la modélisation
du monde à représenter.”
Une entité a toujours au moins
un attribut.
La théorie des SGBD impose que
toute entité possède un identifiant unique. Si cet
identifiant est composé de plusieurs attributs, il est dit
“composite”. Si plusieurs attributs ou groupes d'attibuts
peuvent être identifiant unique, ils sont appelés
“candidats”. Il faut alors choisir un attribut ou un
groupe d'attributs parmi les candidats.
Association, occurrence
De la même manière que
l'entité et son occurrence, on différencie en théorie
la ntion de relation et d'occurence de cette relation. Par exemple si
l'on considère la relation “être pilote de
l'avion” une occurrence de cette relation est celle qui reliait
Pierre Closterman au “Grand-Charles” (1) pendant la
seconde guerre mondiale.
(1) : pour ceux qui n'ont pas lu Le
grand Cirque il s'agit du nom de l'avion de ce grand pilote.
Une association est un lien sémantique
défini entre deux ou plusieurds entités ayant un
intérêt pour l'application, identifié par rapport
aux entités participantes, décrit par un ensemble
d'attributs.
Cardinalités : les cardinalités
indiquent, pour chaque couple (type d'entités, type
d'association) les nombres minimal et maximal d'occurences de
l'association pouvant exister pour une occurrence de l'entité.
Forme : c'est un couple de valeurs
(M,N) spécifiant d'une part si la relation est partielle (M=0)
[on trouve aussi le terme “optionnelle”] ou totale (M=1)
[on trouve aussi le terme “obligatoire”] et d'autre part
si la relation est une fonction monovaluée (N=1) ou
multivaluée (N>1)
La Cardinalité au sens de
Chen/entité-association est différente de celle au sens
de Codd (modèle relationnel).
2) modèle relationnel
Il repose à la fois sur la
théorie des ensembles et la théorie des prédicats
(prolog...)
-> simplificatoin du modèle
-> théorie très
stricte
Domaine : ensemble de valeurs caractérisé par un nom.
Définition en extension : liste
précise de valeurs. Couleur_des_voitures= {“rouge”,
“vert”, “bleu”}, Marque_voiture={“bmw”,
“peugeot”}
Définition en intention :
entier, réel, booléen, char, temps (hh:min:ss), date
(yyyy/mm/dd), devise, intervalle par exemple age(0,140);
Produit cartésien : ensemble des
combinaisons possibles de deux domaines. Par exemple, le produit
cartésien des domaines Couleur_des_voitures et Marque_voiture
est :
bmw,rouge
bmw, vert
bmw,bleu
peugeot,rouge
peugeot, vert
peugeot,bleu
Il s'agit de ne pas confondre la
totalité des couples possibles et les valeurs réellement
atteintes.
Relation (ou table) : sous ensemble du
produit cartésien de domaines. Elle est désignée
par un nom, représentée par une table.
Ce sous ensemble est souvent formé
des valeurs réellement atteintes. Par exemple, la relation
“disponibles” :
bmw, rouge
peugeot, vert
peugeot, bleu
La définition impose que :
- une table ne peut contenir deux lignes identiques
- chaque case est atomique, elle ne
peut contenir qu'une valeur unique, non une liste
Attribut : un attribut est une colonne,
caractérisée par un nom, de la table, où seront
exprimées les valeurs de son domaine.
Cardinalité (différente
de celle de du modèle entité association)
Nombre de rangs (t-uples, n-uplets).
Pas de lignes en double, pas
d'attributs en double. Chaque case possède une valeur.
Schéma de relation
Il est constitué du nom de la
relation suivit de la liste de se attributs avec leur domaine.
Exemple:
R(A1:D1, A2:D2,....An:Dn)
R: nom de la relation
QQsoit i,j entiers i!=j => Ai!=Aj
(pas d'attributs en double).
Nb :souvent, les domaines sont omis
dans la notation
Schéma relationnel : ensemble
des schémas de relations modélisant l'univers réel
que l'on souhaite représenter
Clef : par définition, une
relation ne peut pas avoir de doublons. La clef primaire d'une
relation est le plus petit sous-ensemble de ses attributs permettant
d'identifier chacun de ses rangs.
NB1 : une clef primaire peut
parfaitement être composite (constituée de plusieurs
colonnes).
NB2 : une clef primaire définit
les valeurs qui ne peuvent pas être présentes en doublons.
On appelle clef étrangère
d'une relation, un ensemble d'attributs qui est clef primaire d'une
autre relation.
Utilisation des clef étrangères : cohérence des données.
Dépendance fonctionnelle(DF)
Une dépendance fonctionnelle est
présente si l'onpeut déduire la valeur d'un attribut
directement grâce à la valeur d'un autre attribut.
Par exemple : le nom d'un pays permet
de déterminer le nom de sa capitale.
DF multivaluée : le nom d'un
pays permet de déduire la liste de ses aéroports
internationaux
DF élémentaire : tout
attribut dépéndant l'est de tous les attributs
composant la clef
Première forme normale:
Chacun des attributs dépend
fonctionnellement de la clef et est non répétitif pour
une occurrence de celle-ci. Autrement dit, il est interdit d'avoir un
cas du genre “photo1, photo2, photo3” en liste des
attributs.
Deuxième forme normale :
Une relation est dite en deuxième
forme normale si elle est en première forme normale, et si les
dépendances fonctionnelles entre la clef et les autres
attributs sont élémentaires. Autrement dit, tous les
attributs non clef (ne composant pas la clef) doivent dépendre
de tous les attributs composant la clef. Il va de soi que le problème
se pose seulement pour les clefs composites.
Troisième forme normale:
Une relation est dite en troisième
forme normale si elle est en deuxième forme normale et que
tous les attributs non clef ne dépendent que de la clef.
Autrement dit, un attribut ne faisant pas partie de la clef ne peut
pas dépendre fonctionnellement d'un autre attribut ne faisant
pas non plus partie de la clef.
“All attributes of an entity must
depend on the key, the whole key, and nothing but the key (so help me
Codd)”.
Au delà : il exist la forme
normale de Boyce-Codd, la 4eme et 5eme forme normale. Leur but
principal est d'éviter les pertes d'informations en cas de
suppression de données.