Skip to content

I. Le modèle relationnel


Introduction


Cours

Il existe plusieurs moyens de structurer une base de données, s’appuyant sur des modèles différents comme le modèle hiérarchique, les bases de données objet ou nosql. Le plus utilisé aujourd’hui est aussi l’un des plus anciens : le modèle relationnel.

A. Représentation

Le modèle relationnel, qui fut proposé en 1970 par Edgar Frank Codd, consiste à représenter les données dans des tableaux, appelés relations ou tables. Chaque relation peut être vue comme une sorte de classe (POO) définie par un certain nombre d’attributs.

Prenons pour exemple une base de données rassemblant les figures du monde de l’informatique. On définit une première table regroupant des informations personnelles :

nom prenom naissance nationalite

Structure de la table

Une fois la structure définie, nous pouvons y insérer des données. Sur chaque ligne, on ajoute un ensemble d’éléments correspondant aux différentes colonnes : un n-uplet, c’est-à-dire une collection d’éléments n’ayant pas forcément le même type.

Par exemple :

nom prenom naissance nationalite
Lovelace Ada 1815 britannique
Turing Alan 1912 britannique

Insertion de deux tuples sur les deux premières lignes de la table précédente

B. Vocabulaire

Définitions

  • Une relation est un ensemble de n-uplets ayant les mêmes attributs. On la représente par une table.

Dans une relation :

  • Chaque ligne correspond à un n-uplet, qui peut être désigné par le terme enregistrement (élément d’une table).

Exemple

Lovelace, Ada, 1815, britannique

  • Les attributs sont des caractéristiques qui correspondent au nom des colonnes.

Exemple

nom, prenom, naissance, nationalite

  • Le domaine d’un attribut est son type : entier, flottant, caractères, booléen, etc.

    N.B. : il existe une grande variété de domaines dans le langage SQL que nous allons utiliser. Dans la partie théorique, nous utiliseront ceux cités ci-dessus.

Exemples

nom est de type caractères
prénom est de type caractères
naissance est de type entier
nationalite est de type caractères

  • L’ensemble des attributs d’une relation, associés à leur domaine, constitue le schéma de la relation.

Exemple

Le schéma de la relation Figures est :
{nom: caractères, prenom: caractères, naissance: annee, nationalite: caractères}

  • Une base de données relationnelle est constituée d’une ou de plusieurs relations.

C. Clés primaires et étrangères

C.1. Clé primaire

Pour pouvoir accéder à une instance d'une table, et être sûr qu'il s'agit de la bonne, il faut pouvoir l’identifier de manière unique.

Dans notre table représentant la relation Figures, avons-nous un attribut permettant de le faire ?

Il n'y en a pas, car plusieurs personnes peuvent avoir le même nom. Les valeurs des attributs ne sont pas uniques.

Rajoutons donc un attribut id_f, dont le domaine est entier, dans lequel on stocke un nouveau numéro à chaque nouvel enregistrement inséré :

id_f nom prenom naissance nationalite
1 Lovelace Ada 1815 britannique
2 Turing Alan 1912 britannique

Table de la relation Figures dans laquelle l’attribut ID a été ajouté.

id_f est ce que l’on appelle la clé primaire de la table.

Définition d’une clé primaire :

C'est l'attribut identifiant de manière unique un n-uplet d'une relation. Ses valeurs ne peuvent être nulles.

Nous aimerions aussi disposer, dans notre base, de données sur les avancées dont ces figures sont à l’origine. Nous créons donc une deuxième table Avancées, disposant elle aussi d’une clé primaire id_a pour identifier chaque enregistrement de manière unique.

id_a nom date
1 Premier programme informatique 1843
2 Machine universelle 1936
3 Déchiffrement d’Enigma 1941

Table de la relation Avancées

C.2. Clé étrangère

On veut à présent associer les différentes avancées avec la figure qui en est à l’origine. Pour cela, on y insère un attribut qui correspond à la clé primaire de la table Figures dans la table Avancées.

id_a nom date id_f
1 Premier programme informatique 1843 1
2 Machine universelle 1936 2
3 Déchiffrement d’Enigma 1941 2

Table de la relation Avancées dans laquelle on associe chaque enregistrement à un enregistrement de Figures

Les deux tables sont ainsi associées avec id_f, la clé primaire de Figures, qui est appelée clé étrangère de la table Avancées.

Définition d’une clé étrangère :

attribut d'une table faisant référence à la clé primaire d'une autre table.

D. Schémas relationnels

Chaque table d’une base de données peut être représentée sous la forme d’un schéma relationnel.

Compléter le schéma donné précédemment pour la relation Figures avec sa clé primaire identifiée :

{id_f: entier, nom: caractères, prenom: caractères, naissance: annee, nationalite: caractères}

Quel est celui, sous la même forme, de la table Avancées ? (identifier ses clés)

{id_a: entier, nom: caractères, date: entier, #id_f: entier}

Ces deux schémas relationnels forment le schéma relationnel de la base de données. On le représente souvent sous laforme d’un diagramme UML (Unified Modelling Language) :

E. Contraintes d’intégrité

Afin de maintenir des données valides et cohérentes tout au long de la vie de la base de données, il faut s'assurer en permanence du respect des contraintes d'intégrité suivantes qui sont fixées à la création de la base de données :

L'intégrité de domaine

Les valeurs de chaque attribut doivent appartenir au domaine fixé.

L'intégrité de relation

Chaque n-uplet est unique et doit être identifié par une clé primaire qui ne peut être nulle

L'intégrité de référence entre deux relations

Toute clé étrangère doit correspondre à une clé primaire existante.

Conclusion

En apportant une vision plus abstraite de la table avec la notion de relation, le modèle relationnel permet de s'affranchir de la façon dont les données sont organisées et stockées en mémoire et de maintenir leur cohérence grâce aux contraintes d’intégrité.


TD : Modéliser des tables

Exercice 1 : la base de données sur l'historique de l'informatique

Nous avons utilisé dans le cours une base de données comprenant des tables de figures de l’informatique et d'avancées dans le domaine. Le programme de NSI a des liens avec ces informations. On se propose de créer une 3ème table Programme dans cette base de données, permettant d’associer les contenus appris en NSI à la figure en informatique qui les a inventés.

1) Proposer le schéma relationnel de cette table Programme, qui inclura des contenus, auxquels sont associées des capacités et font partie d’une des thématiques du programme (pour des exemples, se référer au bulletin officiel disponible sur l’ENT).

2) Représenter les 3 tables sous la forme de diagramme. Les clés primaires et étrangères doivent apparaître clairement.

Exercice 2 : rangement d’une médiathèque

La médiathèque de vos parents commence à nécessiter un peu de rangement : on trouve par endroits des livres, des films, des séries, des disques… Pour savoir quels objets culturels sont effectivement présents chez eux, ils se proposent de créer une base de données. Celle-ci se décomposera en 4 tables : Livres, Films, Séries et Disques.

1) Proposer un schéma relationnel pour chacune de ces tables indépendamment, en incluant les informations qui vous semblent pertinentes.

2) Comment modifier vos schéma pour prendre en compte que certains films et séries sont des adaptations de livres, et que des disques peuvent correspondre à la bande originale de films/séries ? Représenter le diagramme de la base de données.

Exercice 3 : stocker les informations sur le lycée

Dans un lycée, les élèves de terminale sont regroupés par classe, qui a chacune ses délégués, son professeur principal, etc. Les élèves ont chacun des caractéristiques qui leur sont propres : comme le choix des 2 spécialités, des langues et des éventuelles options, et un professeur référent. Les professeurs sont eux associés à une matière.

Représenter les informations décrites ci-dessus sous la forme de tables (vous êtes libres d’en décider le nombre). Vous pouvez ajouter d’autres informations, mais elles ne doivent pas être redondantes.