Vocabulaire des bases de données

icône de pdf
Signaler

Nous allons montrer les limites de la représentation d’informations complexes dans des structures de données plates et introduire le vocabulaire des schémas relationnels.

I. Limites des structures plates

1) Exemple : représentation d’un jeu multi-joueurs

Dans un jeu multi-joueurs, chaque joueur possède un pseudonyme, appartient à un peuple et à une alliance. Il dirige par ailleurs un ou plusieurs villages, qui ont chacun un nom qu’il choisit ; ces villages possèdent, entre autres choses, une certaine population et ont des coordonnées spatiales.

Une représentation en Python pourrait consister en un dictionnaire où les clés sont les joueurs et leurs valeurs associées sont une liste contenant leur peuple, leur alliance et une liste de villages, ceux-ci étant eux-mêmes codés par une liste. Par exemple :

b30b75f6-c415-4310-b87d-a220187e3842

2) Les limites de la représentation

Le choix de cette représentation n’est pas anodin : il est facile de déterminer l’alliance à laquelle appartient un joueur ou la population totale des villages qu’il contrôle :

61927335-c8bd-49f2-9c21-9e98509e6e8d

Cependant, il est plus malaisé d’extraire certaines informations comme la population totale des villages contrôlés par un peuple :

5783cc1c-b4c6-44c9-8512-a1d792e3c01b

Dans cette représentation de données, dite plate, une appartenance est privilégiée par rapport aux autres (l’appartenance à une alliance, à un peuple, à un joueur, etc.).

Or, on peut être amené à effectuer des recherches indépendamment de tout lien. Un nouveau modèle s’avère donc nécessaire dans lequel les données sont représentées dans plusieurs tables, sans hiérarchie particulière, et liées entre elles.

II. Vocabulaire des schémas relationnels

Un attribut est un couple (nom, domaine) où le nom (représentant un titre de colonne) prend ses valeurs dans un domaine.

Un domaine est donc un ensemble de valeurs que peut prendre une donnée, à rapprocher de la notion de type en Python, par exemple des entiers (ensemble noté N), des chaînes de caractères (noté S), des dates (noté D), des booléens (noté B), etc.

On appelle schéma d’une relation un ensemble ordonné d’attributs de la forme S=(A1, A2, …, An), où les Ai sont des attributs deux à deux distincts, le schéma précisant en général les domaines de chaque attribut.

Une table, ou relation, de schéma S=(A1, A2, …, An) est un ensemble fini de n-uplets (x1, …, xn) où les xi prennent leurs valeurs dans Ai.

Les éléments d’une table R sont appelés les enregistrements de la relation. Leur nombre (fini) est appelé le cardinal de R et est noté #R.

III. Exemple de schéma

Représentons quelques données relatives aux élèves d’une classe de Terminale.

f5b63770-b0ec-41d7-92ba-27b0b09389ef

Le schéma de cette relation est :

8bcdad79-c281-4f82-b556-890639fb0359

Il est indépendant de la notion de relation qui lui est associée, qui est représentée par une table (on parlera indifféremment de relation ou de table dans la suite).

La relation R comporte 3 enregistrements (ou valeurs), on a donc #R = 3.

Mot-clé

Lorsqu’une base de données comporte plusieurs tables, l’ensemble des schémas de ces relations s’appelle le schéma relationnel de la base de données.