NSI · Terminale

Bases de données : le modèle relationnel

Découvrez le modèle relationnel, les notions clés (relation, attribut, domaine, clé primaire, clé étrangère) et la structuration des schémas relationnels.

Le modèle relationnel

Introduction

Il existe différents types de bases de données (hiérarchiques, objet, NoSQL...), mais les bases de données relationnelles sont de loin les plus utilisées au monde. C'est ce modèle que nous allons étudier.

Le modèle relationnel a été mis au point en 1970 par Edgar Frank Codd (1923-2003), un informaticien britannique chercheur chez IBM. Ce modèle repose sur un fondement théorique solide issu de la théorie mathématique des ensembles et de la logique des prédicats.

Edgar Frank CoddEdgar Frank Codd

Notion de relation

Dans le modèle relationnel, toutes les données sont représentées sous forme de relations.

Définition

Relation (ou Table)

Une relation (souvent appelée table) peut être représentée sous forme d'un tableau à deux dimensions, composé d'un en-tête et d'un corps :

  • En-tête : Un ensemble d'attributs (colonnes du tableau).
  • Corps : Un ensemble de t-uplets ou n-uplets (lignes ou enregistrements du tableau).

Voici un exemple de relation nommée LIVRES :

Relation LIVRESRelation LIVRES

Relation LIVRES

idtitreauteurann_publinote
11984Orwell194910
2DuneHerbert19658
3FondationAsimov19519
4Le meilleur des mondesHuxley19317
5Fahrenheit 451Bradbury19537
6UbikK.Dick19699
7Chroniques martiennesBradbury19508
8La nuit des tempsBarjavel19687
9Blade RunnerK.Dick19688
10Les RobotsAsimov19509
11La Planète des singesBoulle19638
12RavageBarjavel19438
13Le Maître du Haut ChâteauK.Dick19628
14Le monde des ĀVan Vogt19457
15La Fin de l’éternitéAsimov19558
16De la Terre à la LuneVerne186510

Dans la relation ci-dessus :

  • Le t-uplet (ligne) correspondant à l'id 11 contient les éléments suivants : (11, "La Planète des singes", "Boulle", 1963, 8).
  • L'attribut titre (colonne) est composé de l'ensemble des titres de romans.

Notion de domaine

Définition

Domaine

Le domaine d'un attribut correspond à l'ensemble (fini ou infini) des valeurs admissibles pour cet attribut.

Par exemple :

  • Le domaine de l'attribut id correspond à l'ensemble des entiers (INT).
  • Le domaine de l'attribut titre correspond à l'ensemble des chaînes de caractères (TEXT).
  • Le domaine de l'attribut note correspond à l'ensemble des entiers positifs compris par exemple entre 0 et 10.

Au moment de la création d'une relation, il est nécessaire de spécifier le domaine de chaque attribut. Le SGBD s'assure qu'aucune donnée invalide n'est insérée. Par exemple, si vous tentez d'ajouter une note non entière (comme 8.5) alors que le domaine attend un entier (INT), le SGBD signalera une erreur et bloquera l'enregistrement.

Clé primaire

Une contrainte fondamentale dans les bases de données relationnelles est qu'une relation ne peut pas contenir deux t-uplets identiques.

Afin de respecter de manière simple cette contrainte, on utilise la notion de clé primaire.

Définition

Clé primaire

Une clé primaire est un attribut (ou un ensemble d'attributs) dont la valeur permet d'identifier de manière unique chaque t-uplets (ligne) de la relation. Deux lignes distinctes ne peuvent jamais posséder la même valeur pour leur clé primaire.

Reprenons l'exemple de la relation LIVRES :

  • L'attribut note ne peut pas être une clé primaire (plusieurs livres ont la même note).
  • L'attribut ann_publi ne peut pas l'être (plusieurs livres sont publiés la même année).
  • L'attribut auteur ne peut pas l'être non plus (un auteur peut écrire plusieurs livres).
  • L'attribut titre pourrait à première vue convenir, mais deux livres différents peuvent avoir le même titre (par exemple, deux auteurs différents publiant un livre de même titre).

L'attribut id (pour *identifiant*) a donc été ajouté de manière artificielle pour servir de clé primaire. Il s'incrémente automatiquement à chaque nouvel ajout de roman. Ajouter un attribut id numérique est une pratique extrêmement courante (bien que non obligatoire) dans la conception de bases de données.

Clé étrangère

La redondance des données

Supposons que nous souhaitions enrichir notre relation LIVRES en y ajoutant des informations complémentaires sur les auteurs. Nous pourrions ajouter de nouveaux attributs :

Relation LIVRES_AUTEURS

idtitrenom_auteurprenom_auteurdate_nai_auteurlangue_ecriture_auteurann_publinote
11984OrwellGeorge1903anglais194910
2DuneHerbertFrank1920anglais19658
3FondationAsimovIsaac1920anglais19519
6UbikK.DickPhilip1928anglais19699
9Blade RunnerK.DickPhilip1928anglais19688
10Les RobotsAsimovIsaac1920anglais19509

On remarque que les informations sur Philip K.Dick ou Isaac Asimov sont dupliquées à chaque livre. Cette redondance pose problème :

  • Elle gaspille de l'espace de stockage.
  • Elle risque de créer des incohérences (si on modifie l'orthographe d'un nom à un endroit, il faut penser à le modifier sur toutes les lignes concernées).

Pour éviter cela, on sépare les données dans plusieurs tables liées.

Notion de clé étrangère

Définition

Clé étrangère

Une clé étrangère est un attribut d'une table qui fait référence à la clé primaire d'une autre table. Elle matérialise le lien (la relation) entre les deux tables.

Créons une table AUTEURS et modifions la table LIVRES :

Relation AUTEURS

idnomprenomann_naissancelangue_ecriture
1OrwellGeorge1903anglais
2HerbertFrank1920anglais
3AsimovIsaac1920anglais
4HuxleyAldous1894anglais
5BradburyRay1920anglais
6K.DickPhilip1928anglais
7BarjavelRené1911français
8BoullePierre1912français
9Van VogtAlfred Elton1912anglais
10VerneJules1828français

Relation LIVRES

idtitreid_auteurann_publinote
119841194910
2Dune219658
3Fondation319519
7Chroniques martiennes519508
9Blade Runner619688

L'attribut id_auteur de la table LIVRES fait référence à l'attribut id de la table AUTEURS. C'est une clé étrangère. Grâce à ce lien, nous n'avons plus aucune redondance.

Le SGBD assure la contrainte d'intégrité référentielle : il empêchera par exemple d'enregistrer un livre associé à un id_auteur égal à 99 si cet auteur n'existe pas dans la table AUTEURS.

Schéma relationnel

Définition

Schéma relationnel

On appelle schéma relationnel la structure décrivant l'ensemble des relations d'une base de données. Il contient :

  1. Le nom de chaque relation.
  2. Pour chaque relation, la liste de ses attributs et leurs domaines.
  3. Les clés primaires (généralement soulignées).
  4. Les clés étrangères (généralement précédées d'un symbole # ou d'une étoile * et pointant vers la table cible).

Exemple pour notre base de données littéraire :

Définition

Schéma relationnel de la base db_livres

  • AUTEURS ( id : INT, nom : TEXT, prenom : TEXT, ann_naissance : INT, langue_ecriture : TEXT )
  • LIVRES ( id : INT, titre : TEXT, #id_auteur : INT, ann_publi : INT, note : INT )

Exercice d'application

On considère la relation PRODUITS suivante :

Relation PRODUITS

refnomprix_unitairefournisseur
1278X-221264AMC-V
1580Y-3256YAMEL
1665BN657ABS-united
1447Z3248AMC-V
2568Y-6790YAMEL
3558OIP-7890ABS-united
2222BN660ABS-united
  1. Expliquez en quelques lignes ce qu'est un SGBD (système de gestion de base de données).
  2. Expliquez l'avantage de cette structure par rapport au stockage brut dans un fichier CSV.
  3. Donnez le nom d'un des attributs de la relation PRODUITS.
  4. Donnez un exemple de t-uplet de la relation PRODUITS.
  5. Déterminez le ou les attributs pouvant servir de clé primaire (justifiez votre réponse).

Avez-vous compris ce chapitre ?

Cochez-le pour l'enregistrer dans votre progression d'apprentissage.