Salut à toi, élève de NSI, comment puis-je t'aider ?
Intégrité d'un BDD
Structure
Les bases de données relationnelles sont structurées à partir des notions de clef primaire et de clef étrangère. Ces notions se retrouvent à la création des bases de données lors de la définition des relations.
Voici la commande SQL permettant de créer la relation LesRealisateurs vue précédemment :
Cette commande pose la structure de la relation, sans y insérer de données. Cependant cette commande imposera ensuite plusieurs types de contraintes :
Des contraintes référentielles (la clef étrangère fait référence à une clef primaire)
Des contraintes de domaine (ici le film_id est un entier et le réalisateur est un texte)
Des contraintes relationnelles (contraintes liées au modèle relationnel, vues précédemment)
L'ensemble des ces contraintes permet de maintenir l'intégrité de la structure relationnelle de la base.
Relever dans la commande SQL précédente:
1. La commande qui garantit l'unicité de la clef primaire :
2. La commande qui garantit la référence de la clef secondaire :
3. Les domaines des deux attributs de la relation :
Nous constatons ici qu'il est essentiel de séparer la structure d'une base de données de son contenu.
La structure est un ensemble de schémas relationnels qui respecte les contraintes du modèle relationnel.
Reprenons le schéma de base de données vu précédemment :
Relations :
1. Déterminer les deux contraintes référentielles :
2. Proposer des contraintes de domaine pour les différents attributs :
3. En s'inspirant de l'exemple ci-dessus, proposer la commande SQL permettant de créer la relation 'LesAnimaux' :
(vous pouvez la tester dans l'éditeur ci-dessous).
L'ensemble des contraintes de structure vues précédemment impose aux données de respecter les règles mises en places dans la cadre du modèles relationnel.
Le système de gestion de bases de données (SGBD) veillera à faire respecter ces contraintes et signalera des anomalies en cas d'erreur. Son unique objectif est la cohérence des données.
Les anomalies peuvent être :
des redondances de données
des anomalies d’insertion
des anomalies de suppression
des anomalies de mise à jour
Redondances de données
Apparition de données identiques dans la base de données
Anomalies d’insertion
Tentative d'insertion de données non conformes, soit pour une raison de domaine, soit pour un problème de clef
Anomalies de suppression
Tentative de suppression de données porteuses d'une clef primaire entraînant un incohérence référentielle sur une clef secondaire.
Anomalies de mise à jour
La modification d'une clef primaire peut entraîner un doublon, ou une rupture de contrainte référentielle avec une clef étrangère.
Vous trouverez ci dessous une structure de base de données avec l'ensemble des données présentes dans les relations (c'est bien sur une base "exemple", il n'y a que très peu de données)
Vous devez :
Proposer sur papier 2 requêtes pour chaque catégories (insertion, suppression, mise à jour) générant une anomalie
Récupérer ici la petite base de données correspondante
Tester vos requêtes sur la base dans l'éditeur ci-dessous.