Contenus | Capacités attendues | Commentaires |
---|---|---|
Base de données relationnelle. | Savoir distinguer la structure d’une base de données de son contenu. Repérer des anomalies dans le schéma d’une base de données. | La structure est un ensemble de schémas relationnels qui respecte les contraintes du modèle relationnel. Les anomalies peuvent être des redondances de données ou des anomalies d’insertion, de suppression, de mise à jour. On privilégie la manipulation de données nombreuses et réalistes. |
Nous allons voir plus en détail ce que sont les bases de données relationnelles, et mettre en évidence quelques anomalies qui peuvent être rencontrées.
Nous allons définir le vocabulaire de l'algèbre relationnelle inventée en 1970 par Edgar Frank Codd, et le mettre en relation avec le vocabulaire plus abordable des tableaux.
Dans le modèle relationnel, les données sont stockées dans des tables, aussi appelées relations.
L'illustration ci-dessus présente une relation appelée voiture
.
Le nom d'une colonne d'une relation est appelé attribut.
La relation voiture
possède trois attributs: marque
, couleur
et plaque
.
Un enregistrement (ligne) d'une relation est appelé n-uplet.
ID voiture
, marque
de la table voiture.ID carburant
, type
de la table carburant.Le domaine d'un attribut est l'ensemble des valeurs qui peuvent être prises par cet attribut.
Une base de donnée sqlite il n'y a que cinq domaines de valeurs possibles:
NULL
. La valeur est une valeur NULL.INTEGER
. La valeur est un entier signé, stocké dans 1, 2, 3, 4, 6 ou 8 octets en fonction de
l'amplitude de la valeur.REAL
. La valeur est une valeur à virgule flottante, stockée sous forme de nombre à virgule
flottante IEEE de 8 octets.TEXT
. La valeur est une chaîne de texte, stockée à l'aide du codage de la base de données
(UTF-8, UTF-16BE ou UTF-16LE).BLOB
. La valeur est une donnée binaire brute, stocké exactement comme elle a été entrée.En MariaDb il y a beaucoup plus de types avec notamment des formats pour les dates (voir doc).
Pour résumer, le tableau suivant montre celui, rigoureux, issu de l'algèbre relationnelle et celui, plus vague, correspondant à la représentation par table. Les termes de chaque ligne seront considérés comme équivalents, mais on privilégiera les premiers qui sont plus précis.
Terme de l'algèbre relationnelle | Terme de la représentation par table |
---|---|
Relation | Table |
n-uplet | ligne |
Nom d’attribut | Nom de colonne |
Valeur d’attribut | Cellule |
Domaine | Type |
Philippe Rigaux sur sql.dbpedia.fr CC-BY-NC-SA
Chaque ligne de la table doit comporter un attribut qui l'identifie de façon unique, on l'appelle la clé primaire.
voiture
l'attribut plaque
pourrait constituer la clé primaire.identifiant
unique pour créer votre
ligne dans la base de données.On préférera utiliser une clé primaire complètement indépendante des données métier, afin de s'assurer que le champ est toujours rempli et n'évolue pas dans le temps.
Toutes les bases de données proposent des mécanismes prenant en charge une numérotation utilisable pour les clés primaires.
Une clé secondaire ou clé étrangère est une clé utilisée dans une table pour faire référence à un enregistrement d'une autre table.
By Puerto01 at French Wikipedia, CC BY 2.5, Link
Dans la table voiture
l'attribut ID carburant
fait référence à la table de carburants: c'est
une clé étrangère de la table voiture
.
L'ensemble constitué d'une clé primaire et d'une clé étrangère sert à établir des relations entre tables.
Les SGBD modernes permettent de garder les données conformes au modèle relationnel. Trois types de contraintes d'intégrité font partie intégrante du modèle de données relationnel:
Dans la table voiture
l'ID voiture ne pourrait pas être choisi comme clé primaire car deux
enregistrements ont la valeur 1.
Si vous tentez de supprimer la ligne 2 de la table carburant, le SGBD vous le refusera en raison de sa présence dans la table des voitures à la ligne de la BMW.
S'assurer qu'une valeur est bien un email, un numéro de téléphone ou un code postal.
Une fois la contrainte déclarée, le SGBD refusera toute modification du contenu de la base de données qui violerait une de ces règles et casserait l'intégrité.
Nous allons montrer sur un l'exemple d'une base de donnée de DVD mal construite quels types d'anomalies peuvent apparaitre.
Mirian Halfeld-Ferrari Université d'Orléans
Comme vous le voyez cette table est mal construite:
Maintenant intéressons-nous aux anomalies qui pourraient se présenter:
Elisabeth
est renommé Élisabeth
pour satisfaire les clients francophones?〈102,1/1/99,
Elisabeth, drama,110, PG13〉
123
?Une base de données bien structurée:
Le processus de conception peut-être scindé comme suit: