Base de données relationnelles
Numérique et sciences informatiques
Base de données relationnelles
Les bases de données (BDD) sont apparues à la fin des années 60, à une époque où la nécessité d'un système de gestion de données souple se faisait ressentir pour éviter les inconvénients de l'organisation en fichiers. Nous avons vu qu'une base de données représente à la fois les données décrivant les objets du monde réel et les liens (ou associations) existant entre ces objets.
Depuis l'apparition des bases de données, quatre modèles se sont succédés pour permettre la structuration des données :
- Modèle hiérarchique,
- Modèle réseau,
- Modèle relationnel,
- Modèle orienté objet.
Ces quatre modèles se distinguent par la façon selon laquelle les liens entre les données sont représentés.
Le principe de base du modèle relationnel consiste à représenter aussi bien les objets que les liens à l'aide d'une structure appelé table. Inventé par Edgar Frank Codd en 1970, le modèle relationnel est basée sur l'algèbre assembliste. Une table est une structure tabulaire dont les colonnes, appelées aussi attributs, correspondent aux caractéristiques de l'objet ou de l'association à représenter et les lignes, appelées aussi tuples ou n-uplets, correspondent aux occurrences. Ce modèle est aujourd'hui celui le plus utilisé et c'est celui que nous allons étudier.
Remarque :
Il ne faut pas confondre fichier et table. Les données d'un fichier sont stockées dans un même et seul fichier alors que les données d'une table peuvent être stockées sur un ou plusieurs fichiers, comme on peut regrouper dans un même fichier les données de plusieurs tables.
Il y a donc une indépendance entre la structure d'une table et son implémentation physique sur les supports de stockage (disque). C'est le système de gestion de base de données (SGBD) qui assure cette indépendance.
Selon le modèle relationnel, une base de données BDD est composé essentiellement de :
- Tables
- Colonnes
- Lignes
- Clés primaires
- Clés étrangères
- Contraintes d'intégrité
Une colonne est décrite par :
- Un attribut ou champ : C'est le nom de la colonne. Il est sous forme de code et il est généralement soumis aux mêmes règles de nommage des variables dans les langages de programmation.
- Un type de données : C'est le type de données prises par cette colonne. Les types de données les plus connus sont : numérique, chaîne de caractères (ou texte), date et booléen. Certains systèmes de gestion de base de données supportent des types de données multimédias telles que les images, le son et la vidéo.
- Une taille éventuelle: Pour certains types de données tel que le type numérique ou chaînes de caractères, la taille indique la longueur maximale que peut prendre la colonne.
- Un indicateur de présence obligatoire : indique si cette colonne doit être toujours renseignée ou peut être vide dans certains cas. Lorsque la colonne n'est pas renseignée, on dit qu'elle contient une valeur nulle. Il est à noter que la valeur nulle est différente de zéro pour les colonnes de type numérique et de la chaîne vide pour les chaînes de caractères.
- Une valeur par défaut éventuelle : Permet d'attribuer une valeur par défaut lorsqu'aucune valeur n'a été attribuée à cette colonne.
- Une règle éventuelle indiquant les valeurs autorisées : Dans certains cas, une colonne peut être soumise à certaines règles tel que : les valeurs attribuées à cette colonne doivent être inférieures à une certaine valeur, supérieures à une certaine valeur ou bien comprises entre deux valeurs.
Une ligne correspond à une occurrence du sujet représenté par la table. On dit aussi qu'elle correspond à un objet du monde réel.
Une table est initialement vide lorsqu'elle est créée, c'est—à-dire qu'elle ne contient aucune ligne. L'exploitation d'une table consiste à y insérer de nouvelles lignes, à modifier certaines lignes ou à consulter certaines lignes en fonction de critères bien déterminés.
La clé primaire d'une table est un attribut ou un groupe de colonnes permettant d'identifier de façon unique chaque ligne de la table. Autrement dit, la connaissance de la valeur de la clé primaire, permet de connaître sans aucune ambiguïté les valeurs des autres attributs de la table.
Chaque table doit comporter une et une seule clé primaire.
Entraînement 1:
Identifier la clé primaire pour les tables suivantes :
Une base de données est la représentation d'un ou plusieurs domaines composé chacun d'un ensemble d'entité. Les différentes entités de chaque domaine sont généralement inter-reliés par des liens (ou associations). Pour que la base de données constitue une représentation fidèle, les liens entre les sujets du monde réel doivent se retrouver dans la base de données.
Si nous avons une table représentant les élèves et une autre table représentant les lycées, la phrase suivante «Un élève est inscrit dans un lycée » correspond à un lien (ou association) entre ces deux tables.
Un lien entre deux table A et B est représenté par l'ajout dans la table B d'une colonne correspondant à la clé primaire de la table A. Cette nouvelle colonne est une clé étrangère.
Exemple :
Les deux tables suivantes représentent les établissements et les élèves qui y sont inscrits :
Eleve (NumElev, NomElev, PrenomElev, DnaissElev, # CodeEtab )
Entraînement 2 :
Un commerçant veut organiser sa gestion des commandes auprès de ses fournisseurs. Ceux—ci sont définis par un numéro (fno), un nom et une adresse (adr). Les produits ont un numéro (pno), un nom, un priX, un poids et une couleur.
- Dégager les tables correspondantes.
- Choisir la clé primaire pour chaque table.
- Traduire la représentation textuelle en représentation graphique.:
Savoir faire
- Savoir identifier les concepts définissant le modèle relationnel (relation, attribut, domaine, clef primaire, clef étrangère, schéma relationnel.
- Savoir distinguer la structure d’une base de données de son contenu.
- Savoir repérer des anomalies dans le schéma d’une base de données
Fiche de cours