Le modèle relationnel et ses concepts

Spé. NSI · Terminale · cours rédigé et vérifié par Claryo, conforme au Bulletin officiel

L'essentiel

Le modèle relationnel, proposé par Edgar F. Codd en 1970, organise les données en relations (les tables). Une relation est faite d'attributs (les colonnes, chacune avec un nom et un domaine, c'est-à-dire un type) et de n-uplets (les lignes, aussi appelés enregistrements). Le schéma d'une relation est la liste de ses attributs et de leurs domaines ; les n-uplets en sont les valeurs.

Pour identifier de façon non ambiguë chaque ligne, on désigne une clé primaire : un attribut (ou un groupe d'attributs) qui respecte deux propriétés obligatoires, l'unicité (jamais deux lignes avec la même valeur de clé) et la non-nullité (la clé primaire ne peut pas être vide). Pour relier deux relations, on utilise une clé étrangère : un attribut qui référence la clé primaire d'une autre table. La clé étrangère est le mécanisme central des bases relationnelles : c'est lui qui matérialise les liens entre entités.

Les bases relationnelles sont protégées par des contraintes d'intégrité. La contrainte de domaine impose qu'une valeur respecte le type de l'attribut. La contrainte d'intégrité référentielle impose que toute valeur de clé étrangère corresponde à une valeur existante de la clé primaire référencée : on ne peut pas relier une ligne à une entité inexistante (pas de référence « orpheline »).

Un objectif majeur du modèle est d'éviter la redondance. Répéter la même information dans plusieurs lignes gaspille de l'espace et, surtout, crée des anomalies de mise à jour : si on modifie une copie et qu'on en oublie une autre, les données deviennent incohérentes. La solution consiste à décomposer l'information en plusieurs relations liées par des clés, de sorte que chaque fait ne soit stocké qu'une seule fois.

Formules et schémas clés

· Notation d'un schéma : Eleve([id_eleve], nom, prenom, id_classe -> Classe) (clé primaire soulignée/entre crochets, clé étrangère fléchée). · Clé primaire = unicité + non-nullité. · Clé étrangère = référence vers une clé primaire d'une autre table.

Schéma à savoir dessiner : deux tables Eleve et Classe reliées par une flèche Eleve.id_classe -> Classe.id_classe.

Méthode type bac

Pour modéliser : 1) repérer les entités (objets du monde réel) -> une table par entité ; 2) choisir une clé primaire par table ; 3) traduire les liens par des clés étrangères ; 4) vérifier qu'aucune information n'est dupliquée inutilement.

Pièges

· Une clé primaire ne peut jamais être NULL ; une clé étrangère peut l'être (si la relation est optionnelle). · Ne pas confondre attribut (colonne) et n-uplet (ligne). · Stocker une donnée dérivable (ex : le nom de la classe dans chaque élève) crée de la redondance : à éviter. · Supprimer une ligne encore référencée par une clé étrangère viole l'intégrité référentielle.

Pour l'épreuve

Savoir définir relation / attribut / n-uplet, distinguer clé primaire et clé étrangère avec leurs propriétés, expliquer l'intégrité référentielle, et concevoir un petit schéma relationnel sans redondance (bibliothèque, club, scolarité). Ces notions sont indissociables du chapitre SQL.