Le modèle relationnel a été proposé par E.F. Codd en 1970 [Codd70]. Il est souvent considéré comme le plus simple et le plus élégant des modèles. Sa simplicité est due à une vision tabulaire des données très intuitive. Son élégance résulte de bases formelles issues de la théorie mathématique des ensembles.
Les objectifs du modèle relationnel étaient différents de ceux des modèles réseau et hiérarchique: Parmi les lacunes de ces modèles auxquelles E.F. Codd souhaitait apporter une solution nous en retenons deux :
Permettre un haut degré d'indépendance entre les applications (programmes, interfaces) et la représentation interne des données (fichiers, chemins d'accès)
Etablir une base solide pour traiter les problèmes de cohérence et de redondance des données.
Le modèle relationnel présente également de nombreux avantages dus au fait qu'il soit basé sur la théorie des ensembles : Langage de manipulation des données ensemblistes grâce à l'algèbre relationnelle et grâce à des langages assertionnels qui permettent de spécifier ce que l'on souhaite obtenir sans dire comment l'obtenir. Le SGBD est responsable de la politique d'exécution des requêtes.
On considère le schéma relationnel suivant qui modélise une application sur la gestion de livres et de disques dans une médiathèque :
DISQUE (CodeOuv, Titre, Style, Pays, Année, Producteur)
Cette relation regroupe un certain nombre d’informations sur un disque : le code d’ouvrage (CodeOuv) qui est la clé de la relation, le titre, le style (par exemple Jazz ou Rock), le pays, l’année de sortie et le producteur (par exemple Barclay). Ces informations sont générales et pour un enregistrement de la relation DISQUE, on aura n (n > 1) enregistrements dans la relation E_DISQUE correspondant aux exemplaires de ce disque possédés par la médiathèque.
E_DISQUE (CodeOuv, NumEx, DateAchat, Etat)
Cette relation contient un enregistrement pour chaque exemplaire de disque possédé par la médiathèque. Chaque exemplaire est identifié par son code (CodeOuv) et un numéro d’exemplaire (NumEx). On trouve également la date d’achat (DateAchat) et l’état du disque (par exemple Neuf ou Abimé).
LIVRE (CodeOuv, Titre, Genre, Editeur, Collection)
Cette relation regroupe un certain nombre d’informations sur un livre : le code d’ouvrage (CodeOuv) qui est la clé de la relation, le titre, le genre (par exemple Policier ou Roman), l’éditeur (par exemple Glénat) et la collection (par exemple livre de poche). Ces informations sont générales et pour un enregistrement de la relation LIVRE, on aura n (n > 1) enregistrements dans la relation E_LIVRE correspondant aux exemplaires de ce livre possédés par la médiathèque.
E_LIVRE (CodeOuv, NumEx, DateAchat, Etat)
Cette relation contient un enregistrement pour chaque exemplaire de livre possédé par la médiathèque. Chaque exemplaire est identifié par son code (CodeOuv) et un numéro d’exemplaire (NumEx). On trouve également la date d’achat (DateAchat) et l’état du livre (par exemple Neuf ou Abimé).
AUTEUR (CodeOuv, Identité)
Chaque enregistrement de cette relation correspond à l’un des auteurs d’un ouvrage particulier (livre ou disque). L’attribut identité peut avoir pour valeur un nom de personne (par exemple Alexandre Dumas) ou un nom de groupe (par exemple Rolling Stones).
ABONNE (NumAbo, Nom, Prénom, Rue, Ville, CodeP, Téléphone)
Cette relation regroupe les informations sur les abonnés de la médiathèque : NumAbo qui identifie tout abonné de manière individuelle, le nom (Nom) et le prénom (Prénom) de l’abonné, son adresse (Rue, Ville, CodeP), son téléphone (Téléphone).
PRET (CodeOuv, NumEx, NumAbo, DatePrêt)
Cette relation contient un enregistrement par prêt effectué. Pour chaque prêt, on trouve l’identifiant du livre ou du disque (code ouvrage CodeOuv et numéro d’exemplaire NumEx) , le numéro de l’abonné effectuant le prêt (NumAbo) et enfin la date du prêt (DatePrêt). Cette relation ne contient des informations que pour les prêts en cours c’est à dire pour les emprunts non encore rendus.
PERSONNEL (NumEmp, Nom , Prénom, Adresse, Fonction, Salaire)
Cette relation contient un enregistrement par employé. Chaque employé est identifié par un numéro NumEmp. Pour chaque employé, la relation donne son nom, son prénom, son adresse, sa fonction et son salaire mensuel.
Définition :
Un domaine D est un ensemble de valeurs caractérisé par un nom. Du point de vue du modèle relationnel, chaque valeur du domaine est atomique et donc indivisible.
Cette notion permet de définir les ensembles de départ. Un domaine peut être défini en extension en donnant la liste des valeurs composantes ou en compréhension en définissant une propriété caractéristique du domaine.
Du point de vue de la réalisation informatique, le domaine se restreint à la notion de type de données. Néanmoins, il est essentiel au cours de l'étape de conception de clairement définir les domaines.
Définition
Un schéma de relation R, dénoté R(A1:D1, A2:D2, ..., An:Dn) est un ensemble d’attributs. Chaque attribut Ai est le nom d’un rôle joué par son domaine Di dans le schéma de relation R.
Un schéma de relation R est utilisé pour décrire une relation.
Le schéma de relation ABONNE se compose de l’attribut NumAbo qui prendra pour valeur un entier représentant le numéro de l’abonné; l’attribut Nom aui prendra pour valeur le nom de l’abonné; l’attribut Prénom aui prendra pour valeur le prénom de l’abonné. Définir un schéma de relation revient à spécifier un nouveau type de données équivalent à un type RECORD en langage Pascal. Le modèle relationnel n’autorise qu’un seul niveau de structure. Il n'est pas possible par exemple de définir un attribut Adresse qui se décompose en Rue, Ville CodeP.
Définition
Une relation r dénotée r(R) du schéma de relation R(A1:D1, A2:D2, ..., An:Dn) est un ensemble d'enregistrements. Chaque enregistrement ei est une liste ordonnée de n valeurs ei = <v1, v2, ...,vn> ou chaque vi est une valeur du domaine de l’attribut Ai ou une valeur nulle spéciale représentant l’absence d’information.
Notons que la présence de valeurs nulles dans une relation est souvent difficile à interpréter et rend plus complexe les manipulations.
Définition
Une clé de relation est un sous-ensemble d'attributs qui permet de caractériser tout enregistrement d'une relation.
Par définition, une relation est un ensemble de enregistrements et il ne peut donc pas y avoir deux enregistrements strictement identiques dans la même relation. Il existe généralement un sous-ensemble SC d’attributs d’un schéma de relation R pour lequel deux enregistrements de toute relation r(R) ne peuvent avoir la même combinaison de valeurs pour ces attributs.
Quelque soit t1, t2 Î r(R), t1 [SC] ¹ t2 [SC].
Tout ensemble d'attributs vérifiant cette propriété est appelé superclé du schéma R. Il existe au moins une superclé qui est l'ensemble de tous les attributs.
Une clé C d'un schéma R est une superclé ayant la propriété suivante :
si l'on enlève un attribut à C alors C n'est plus une superclé.
De manière informelle, une clé est un ensemble minimum d'attributs dont la connaissance des valeurs permet d'identifier un enregistrement unique de la relation considérée [Gardarin89]. Une clé est invariante dans le temps.
En général, il existe plusieurs clés pour une même relation R. Parmi les clés possibles, on choisit une clé qui sera appelée clé primaire . Lors de la définition d'un schéma cette clé est mise en évidence (soulignement).
Un schéma de base de données relationnel S est un ensemble de schémas de relation S = {R1, R2, …, Rp} et un ensemble de contraintes d'intégrité CI.
Une contrainte d’intégrité est une propriété du schéma, invariante dans le temps.
Il existe différents types de contraintes d'intégrité:
liées au modèle (pas de doublons dans une relation.);
de domaine (nb_heure < 100; pas de valeur nulle pour la clé primaire);
référentielles dites de clé étrangère qui impose que la valeur d'attribut de la relation r1 apparaîssent comme valeur de clé dans une autre relation r2.
Une instance de base de données relationnelle BD est un ensemble d'instances de relations
BD = {r1, r2, ..., rn} ou chaque ri respecte les contraintes d'intégrité.
L’algèbre relationnelle est une collection d’opérations permettant d’opérer sur les concepts du modèle relationnel. Elle permet par exemple de sélectionner certains enregistrements d’une relation satisfaisant une condition ou encore de regrouper des enregistrements de relations différentes. Le résultat de toute opération de l’algèbre est une nouvelle relation. Cette propriété implique notamment qu’il n’y a pas de doublons dans le résultat et permet l’écriture d’expressions de calcul. Etant donnée, que le modèle relationnel est basé sur la théorie des ensembles, l’algèbre relationnelle utilise les opérateurs classiques de manipulation des ensembles (union, intersection, différence et produit cartésien) et introduit des opérateurs propres aux bases de données (sélection, projection, jointure, division).
Deux relations sont union-compatibles si elles ont le même nombre d'attribut et que ceux-ci ont le même domaine.
È, Ç et - necéssitent que les relations soient union-compatibles.
Définition
Soient R et S, deux relations de schémas respectifs X et Y. Les schémas X et Y doivent être union-compatibles c’est à dire posséder le même nombre d’attributs et que ceux-ci soient de même domaine. L’union des deux relations, R È S produit une nouvelle relation de schéma identique à R possédant les enregistrements appartenant à R ou à S ou aux deux relations.
Définition
Soient R et S, deux relations de schémas respectifs X et Y. Les schémas X et Y doivent être union-compatibles. L’intersection des deux relations R Ç S produit une nouvelle relation de schéma identique à R possédant les enregistrements appartenant conjointement à R et à S.
Définition
Soient R et S, deux relations de schémas respectifs X et Y. Les schémas X et Y doivent être union-compatibles. La différence des deux relations R / S produit une nouvelle relation de schéma identique à R possédant les enregistrements présents dans R mais pas dans S.
Le produit cartésien est un opérateur issu de la théorie des ensembles défini comme suit : si A et B sont deux ensembles, leur produit cartésien A X B contient toutes les paires (a, b) avec a Î A et b Î B [Plotkin94]. Ceci signifie que le produit cartésien permet d’obtenir toutes les combinaisons possibles entre les éléments de deux ensembles. Dans le cadre de l’algèbre relationnelle nous définirons donc le produit cartésien comme suit :
Définition
Soient R et S, deux relations de schémas respectifs X et Y. Les schémas X et Y doivent être disjoints c’est à dire ne pas avoir d’attributs communs. Le produit cartésien des deux relations R X S produit une nouvelle relation de schéma Z égal à l’union des schémas R et S et possédant comme enregistrements, la concaténation des enregistrements de R avec ceux de S.
Définition
L'affectation permet d'identifier le résultat d'une expression algébrique afin de pouvoir réutiliser cette expression dans une autre expression ou bien de renommer une relation et ses attributs ou de construire une image d'une relation.
Syntaxe
R ( A1; A2; ...; An ) ¬ < relation >
Définition
La sélection prend en entrée une relation R de schéma X et produit en sortie une nouvelle relation de schéma X ayant comme enregistrements ceux de R satisfaisant la condition de sélection.
La condtion de sélection utilise les opérateurs de comparaison ( <; <=; >; =>; =; != ), les connecteurs logiques (et ou non) et les parenthèses.
Syntaxe
s < condition >
Définition
La projection prend en entrée une relation R de schéma X et produit en sortie une nouvelle relation de schéma A1; A2; ...; An (schéma inclu dans X) ayant comme enregistrements ceux de R restreints au sous-schéma A1; A2; ...; An.
Syntaxe
p A1; A2; ...; An ( < relation > )
Définition
Soient R et S deux relations de schéma respectif X et Y. Il faut que les schémas X et Y possèdent une intersection Z non vide.
La relation résultat a un schéma qui est l'union des deux schémas X et Y et comme enregistrements la concaténation des enregistrements de R avec ceux de S s'ils ont la même valeur pour les attributs communs.
Syntaxe
R * S
Définition
La relation résultat est définie sur le schéma X et comprend tous les n-uplets dont la concaténation avec tous les n-uplets de S appartiennent à R.
Syntaxe
R ¸ S
R est défini sur un shéma X;
S est défini sur un schéma Y.
On souhaite créer une base de données concernant une entreprise. Une première étude a mis en évidence trois relations. Pour chacune des relations, la clé est soulignée.
EMPLOYE (NumEmp, Nom, Prénom, Adresse, Téléphone, Qualification)
SERVICE (NomService, Responsable, Téléphone)
PROJET (NomProjet, DateDeb, DateFin, NumEmp)
En considérant les possibilités offertes par ce schéma, répondre aux questions suivantes en justifiant vos réponses par rapport au modèle relationnel et par rapport à la sémantique intuitive des relations :
Question 1 :
Un employé peut il avoir plusieurs qualifications ?
Question 2 :
Un employé peut il faire plusieurs projets en même temps ?
Question 3 :
Une personne peut elle être responsable de plusieurs services ?
Question 4 :
Un service peut il avoir plusieurs responsables ?
![]() |
![]() |
---|