Cours bases de donnees : le modele relationnel
-
Cours bases de données : le modèle relationnel
1. INTRODUCTION : LES OBJECTIFS DU MODÈLE
Le modèle relationnel a été introduit par E. F. Codd [Codd70], qui travaillait au fameux centre de recherche d’IBM San-José et s'opposait au développement du modèle DIAM, un modèle utilisant des entités liées par de multiples pointeurs. La première volonté du modèle relationnel fut d’être un modèle ensembliste simple, supportant des ensembles d’enregistrements aussi bien au niveau de la description que de la manipulation. Les premières idées d’un modèle ensembliste avaient été proposées un peu avant, notamment dans [Childs68]. Le modèle relationnel est aujourd’hui la base de nombreux systèmes, et les architectures permettant d’accéder depuis une station de travail à des serveurs de données s’appuient en général sur lui. Le relationnel a donc atteint ses objectifs au-delà de toute espérance. Les premiers objectifs du modèle ont été formulés par E. F. Codd [Codd70] comme suit :
1. Permettre un haut degré d’indépendance des programmes d’applications et des activités interactives à la représentation interne des données, en particulier aux choix des ordres d’implantation des données dans les fichiers, des index et plus généralement des chemins d’accès.
2. Fournir une base solide pour traiter les problèmes de cohérence et de redondance des données.
Ces deux objectifs, qui n’étaient pas atteints par les modèles réseau et hiérarchique, ont été pleinement satisfaits par le modèle relationnel, d’une part grâce à la simplicité des vues relationnelles qui permettent de percevoir les données sous forme de tables à deux dimensions, et d’autre part grâce aux règles d’intégrité supportées par le modèle et ses fondements logiques. En addition aux objectifs fixés par E. F. Codd, le modèle relationnel a atteint un troisième objectif :
3. Permettre le développement de langages de manipulation de données non procéduraux basés sur des théories solides.
Ce troisième objectif est atteint d’une part à l’aide de l’algèbre relationnelle qui permet de manipuler des données de manière très simple et formelle — comme les opérateurs arithmétiques permettent de manipuler des entiers —, et d’autre part à l’aide des langages assertionnels basés sur la logique qui permettent de spécifier les données que l’on souhaite obtenir sans dire comment les obtenir.
Finalement, le modèle relationnel a atteint deux autres objectifs non prévus initialement :
4. Etre un modèle extensible permettant de modéliser et de manipuler simplement des données tabulaires, mais pouvant être étendu pour modéliser et manipuler des données complexes.
5. Devenir un standard pour la description et la manipulation des bases de données.
L’objectif 4 est très important, car il a permis d’intégrer de nouveaux concepts au modèle relationnel, notamment la plupart des concepts de l’orienté objets que nous étudierons dans la troisième partie de cet ouvrage. Les premiers travaux de recherche dans ce sens ont été effectués par Codd lui-même [Codd79], puis poursuivis à Bell Laboratories [Zaniolo83], à Berkeley [Stonebraker87] et, en France, à l’INRIA [Gardarin89]. L’objectif 5 a été réalisé en particulier grâce à IBM : le modèle relationnel et son langage SQL ont été normalisés au niveau international en 1986 [ISO89]. Nous ferons un point sur le langage SQL et sa standardisation dans le chapitre suivant. Dans ce chapitre, nous allons tout d’abord présenter les concepts structuraux de base du modèle relationnel qui permettent de modéliser les données sous forme de tables à deux dimensions. Nous exposerons ensuite les règles de cohérence des relations qui sont considérés comme partie intégrante du modèle. Puis nous introduirons l’algèbre relationnelle, qui est l’outil formel indispensable pour manipuler des relations. Les nombreuses extensions de cette algèbre seront également présentées. En conclusion, nous démontrerons les vastes possibilités d’enrichissement offertes par le modèle relationnel, possibilités qui seront étudiées plus en détail au niveau des modèles objets et logiques, sujets d’autres parties de ce livre.
2. LES STRUCTURES DE DONNÉES DE BASE
2.1 Domaine, attribut et relation
Le modèle relationnel est fondé sur la théorie mathématique bien connue des relations. Cette théorie se construit à partir de la théorie des ensembles. Trois notions sont importantes pour introduire les bases de données relationnelles. La première permet de définir les ensembles de départ. Ces ensembles sont les domaines de valeurs.
Notion VI.1 : Domaine (Domain) Ensemble de valeurs caractérisé par un nom.
Les domaines sont donc les ensembles dans lesquels les données prennent valeur. Comme un ensemble, un domaine peut être défini en extension, en donnant la liste des valeurs composantes, ou en intention, en définissant une propriété caractéristique des valeurs du domaine. Au départ, les domaines ENTIER, REEL, BOOLEEN, CARACTERES (une chaîne de caractères de longueur fixe ou variable) sont définis en intention. A partir de ces domaines, il est possible de définir en intention des domaines plus spécifiques tels que MONNAIE (réel avec 2 chiffres derrière la virgule), DATE (entier de 6 chiffres jour, mois et an), TEMPS (heure en secondes), etc. Un domaine peut toujours être défini en extension, par exemple le domaine des couleurs de vins : COULEUR-VINS = {Rosé, Blanc, Rouge}. Rappelons que le produit cartésien d’un ensemble de domaines D1, D2,..., Dn est l’ensemble des vecteurs où, pour i variant de 1 à n, vi est une valeur de Di. Par exemple, le produit cartésien des domaines COULEUR-VINS = {ROSE, BLANC, ROUGE} et CRUS = {VOLNAY, SANCERRE, CHABLIS} est composé des neuf vecteurs représentés figure VI.1.
…
Sous-ensemble d’un produit cartésien, une relation est composée de vecteurs. Une représentation commode d’une relation sous forme de table à deux dimensions a été retenue par Codd. Elle est généralement utilisée. Chaque ligne correspond à un vecteur alors que chaque colonne correspond à un domaine du produit cartésien considéré ; un même domaine peut bien sûr apparaître plusieurs fois. Par exemple, à partir des domaines COULEURS_VINS et CRUS, il est possible de composer la relation COULEURS_CRUS représentée sous forme tabulaire figure VI.2.
…
Pour pouvoir distinguer les colonnes d’une relation sans utiliser un index, et ainsi rendre leur ordre indifférent tout en permettant plusieurs colonnes de même domaine, il est nécessaire d’associer un nom à chaque colonne. Une colonne se distingue d’un domaine en ce qu’elle prend valeur dans un domaine et peut à un instant donné comporter seulement certaines valeurs du domaine. Par exemple, si le domaine est l’ensemble des entiers, seules quelques valeurs seront prises à un instant donné, par exemple {10, 20, 30}. L’ensemble des valeurs d’une colonne de relation est en général fini. Afin de bien distinguer domaine et colonne, on introduit la notion d’attribut comme suit : Notion VI.3 : Attribut (attribute) Colonne d’une relation caractérisée par un nom.
Le nom associé à un attribut est souvent porteur de sens. Il est donc en général différent de celui du domaine qui supporte l’attribut. Ainsi, la première colonne de la relation COULEURCRUS pourra être appelée simplement COULEUR et la deuxième CRU. COULEUR et CRU seront donc deux attributs de la relation COULEUR-CRUS.
- Evaluation :
-
Soyez le premier à écrire un commentaire sur ce fichier!
Veuillez vous identifier ou vous enregistrer.