La relation que l'on peut représenter comme un tableau à deux dimensions a un formalisme plus précis permettant de la décrire mathématiquement.
On définit U comme un ensemble fini d'attributs. Pour chaque attribut A de U, type(A) est un ensemble de valeurs que pourra prendre cet attribut (entier, chaîne de caractère…).
Un nuplet sur U est une fonction qui associe à chaque attribut A ∈ U, une valeur unique du bon type: type(A).
Exemple de nuplet sur U = {id, nom, capacité, type, lieu}:
Le nuplet ci-dessus à associé à chaque attribut de U, une valeur.
Le schéma d'une base de données se définit comme:
Le type définit essentiellement la structure de la relation.
Une instance de la base de données associe à chaque nom R de relation, une relation sur type(R).
Quelques contres exemples d'objets qui ne sont pas des relations de bases de données relationnelles:
Une relation est un ensemble fini de nuplets, ainsi le tableau ci-dessous associant à chaque entier Naturel sont successeur ne peut pas être considéré comme une base de données relationnelle car il n'est pas fini:
num | successeur |
---|---|
0 | 1 |
1 | 2 |
2 | 3 |
… | … |
Le type est défini, tous les nuplets ont la même structure. Ceci est une spécificité de la base de données relationnelle mais tous les modèles de données n'ont pas cette contrainte.
id | nom | type_etablissement |
---|---|---|
pi | U Pinzuttu | Gîte |
ta | Tabriz | Hôtel |
id | nom | capacité |
bb | Benbow | 20:30 |
La table ci-dessus ne peut pas être traduite en relation de base de donnée relationnelle car sa structure n'est déterminée.
Les entrées doivent être atomiques. La table ci-dessous ne peut pas être traduite en relation car un des attributs n'est pas atomique:
Personne | Enfants |
---|---|
Jean | Lulu, Zaza |
Alice | |
Bob | Mimi |
La clé primaire est un/plusieurs attributs qui identifient de manière unique un nuplet de la relation. Deux nuplet distincts d'une relation ne peuvent pas avoir la même clé.
Les bases de données relationnelles ont trois grands principes qui sont abordés dans les sections suivantes: