Bases de donnes
Le modèle relationnel
Le modèle relationnel est basé sur la théorie des ensembles.
a b c d e
A
B
A × B a b c d e A
B
A × B
Une relation est un sous-ensemble du produit cartésien (de n domaines).
Un domaine est un ensemble de valeurs dotées d’une sémantique (domaine ≠ type).
Ex : D_nompilote = {“Dupond” , “Durand” , … } D_nomavion = {“Airbus” , “Caravel” , … } Vol ( D_numvol, D_nompilote, D_nomavion, D_ville, D_ville, D_heure, D_heure ) tuple de la relation vol : ( IT2400, Dupond, Boeing, Montpellier, Paris, 6h45, 8h05 ) Un attribut explicite le rôle joué par un domaine dans une relation. On pourrait travailler sur l’ordre mais c’est peu explicite. Ex : Vol ( numvol, nompilote, nomavion, ville_dep, ville_arr, heure_dep, heure_arr ) Une relation peut être définie par : * Intension : attributs + domaine de définition * Extension : liste de ses instances ou tuples Deux attributs définis sur le même domaine sont dits compatibles ou sémantiquement comparable. Une clé primaire, est un attribut ou un groupe d’attributs, qui permet d’identifier de façon unique un tuple. Il n’y a qu’une clé primaire par relation (elle est soulignée). Ex : Vol ( numvol, nompilote, nomavion, ville_dep, ville_arr, heure_dep, heure_arr ) Un domaine primaire est un domaine sur lequel a été défini une clé primaire. Ex : D_numvol Vol ( numvol, nompilote, nomavion, ville_dep, … ) D_numpil Pilote ( numpilote, nompil, adresse, … ) D_numav Avion ( numav, nomav, type_av, localisation, … )
D_numvol Vol ( numvol, nompilote, nomavion, ville_dep, … ) D_numpil Pilote ( numpilote, nompil, adresse, … ) D_numav Avion ( numav, nomav, type_av, localisation, … )
D_numvol Vol ( numvol, nompilote, nomavion, ville_dep, … ) D_numpil Pilote ( numpilote, nompil, adresse, … ) D_numav Avion ( numav, nomav, type_av, localisation, … )