Base de données relationnelle

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En informatique, une base de données relationnelle est un stock d'informations décomposées et organisées dans des matrices appelées relations ou tables conformément au modèle de données relationnel. Le contenu de la base de données peut ainsi être synthétisé par des opérations d'algèbre relationnelle telles que l'intersection, la jointure et le produit cartésien.

Une base de données est un ensemble d'informations, connexes de manière directe ou indirecte, enregistrées dans un dispositif informatique. Dans une base de données relationnelle, les informations sont stockées sous forme de groupe de valeurs : les enregistrements. Un ensemble d'enregistrements relatif à un sujet forme une relation et est stocké dans une table. La base de données comporte une ou plusieurs tables et les sujets sont connexes.

Le modèle de données relationnel permet d'utiliser les opérateurs de l'algèbre relationnelle pour retrouver une information quelconque stockée dans la base de données, ainsi que les informations connexes.

Histoire[modifier | modifier le code]

Cette section ne cite pas suffisamment ses sources. Pour l'améliorer, ajouter en note des références vérifiables ou les modèles {{Référence nécessaire}} ou {{Référence souhaitée}} sur les passages nécessitant une source.

Dans les années 1965-1975, avec le développement de l'informatique dans les grands comptes, le besoin d'organiser les données selon un modèle qui permettrait d'établir une séparation entre la représentation logique des données et leur organisation physique (informatique) s'est fait de plus en plus sentir. Les modèles alors disponibles (modèles hiérarchique et réseau — rien à voir avec TCP/IP ou Internet) établissaient des liens forts (en fait des pointeurs physiques de stockage) à l'intérieur même du modèle de représentation des données. Le modèle de données relationnel a été défini en 1970 par l'informaticien britannique Edgar F. Codd, et publié dans sa thèse A Relational Model of Data for Large Shared Data Banks. En 2010 le modèle de données relationnel est utilisé dans la grande majorité des bases de données.

Trois grandes tendances lourdes : Partant du constat que la première forme normale est une contrainte très importante du modèle relationnel, différentes propositions fondées sur la notion de N1NF (Non First Normal Form) ont été proposées pour permettre de gérer des informations structurées et s'affranchir du fait que le modèle relationnel met l'ensemble des informations « à plat » (tout au même niveau d'abstraction). Les conférences de Laguna Beach et de Kyoto (DOOD) en Décembre 1989 ont mis en exergue deux grandes approches pour les évolutions futures des bases de données. La première approche consiste à utiliser l'existant et à l'améliorer (approche supportée par des universitaires comme Stonebraker). La deuxième approche consiste à utiliser l'existant dans les langages de programmation orienté objet et à essayer d'introduire la notion de persistance (approche supportée par des universitaires comme Atkinson ou Bancilhon). Ces deux approches ont permis le développement des bases de données dites relationnelle à objets pour la première approche et orientée objet pour la deuxième. Dans une direction complètement différente une tentative a été effectuée à la même époque pour permettre à des systèmes experts, capables de grandes capacités déductives mais pas très performants sur la gestion de gros volumes de données (les faits) d'être couplés avec des bases de données, capables de gérer des gros volumes de données mais à capacités d'analyses faibles (algèbre relationnelle, tri, agrégats). Cette approche a conduit à des prototypes fondés sur Datalog mais n'a donné lieu qu'à des marchés de niches.

Modèle relationnel[modifier | modifier le code]

Deux tables et une clé étrangère.
Article détaillé : modèle relationnel.

Le modèle de données relationnel est fondé sur la notion de relation : une matrice qui contient un ensemble de groupes de valeurs (les n-uplet) stockés dans les enregistrements d'une base de données. Une relation est stockée dans une table de la base de données.

Selon le modèle relationnel, il peut y avoir plusieurs relations connexes. Dans une base de données relationnelle chaque enregistrement d'une table contient un groupe d'informations relatives à un sujet et les différents sujets sont connexes. Les liens existants entre les informations sont stockés dans les champs des enregistrements (composants des n-uplets) sous forme de clé primaire et clé étrangère.

Les opérations d'algèbre relationnelle telles que l'intersection, la jointure ou le produit cartésien sont utilisées pour faire des rapprochements entre les enregistrements et créer de nouvelles relations à partir des relations enregistrées dans la base de données.

Une composante N d'un n-uplet est une clé primaire lorsque par nature la valeur de cette composante est différente pour chaque n-uplet d'une relation, et que, pour une valeur donnée, il n'existe qu'un seul n-uplet dans toute la relation dont la composante a cette valeur (absence de redondance).

Une composante N d'un n-uplet est une clé étrangère lorsque les valeurs de cette composante sont des références à une clé primaire. Il y a une situation d'intégrité référentielle lorsqu'à chaque valeur de la clé étrangère A correspond une valeur de la clé primaire référencée B.

Le schéma, c'est-à-dire le plan des relations, des clés et des références est créé par un ingénieur. Il vise à minimiser la redondance, et maximiser la cohérence. Les formes normales sont des modèles d'organisation du contenu des bases de données relationnelles.

Algèbre relationnelle[modifier | modifier le code]

Article détaillé : algèbre relationnelle.

L'algèbre relationnelle est une théorie qui se situe dans l'interdisciplinarité entre les mathématiques et l'informatique, en utilisant des concepts de la théorie des ensembles.

Selon cette théorie, les informations sont classées dans des relations : des matrices contenant un ensemble de n-uplets (un n-uplet est un groupe de n valeurs). Des opérations permettent à partir d'une relation d'obtenir une autre relation ainsi que de combiner deux relations et obtenir une troisième relation.

Il existe cinq opérateurs d'algèbre relationnelle (Sélection, Projection, Union, Différence et Produit Cartésien). À partir de ces opérateurs, des opérateurs dérivés peuvent être conçus comme par exemple l'intersection (A inter B = A différence (A différence B)), la jointure (une sélection sur le produit cartésien) ou la division (une différence entre deux relations dont une est obtenue par projection et la deuxième construite à partir d'une projection sur la différence entre un produit cartésien et une relation).

Opérateurs :

  • Sélection : à partir d'un ensemble A, obtenir un ensemble B contenant uniquement les n-uplets de A qui correspondent à certains critères. Selon une approche de matrice, le nombre de colonnes n'est pas modifié mais le nombre de lignes est en général inférieur ;
  • Projection : à partir d'un ensemble A, obtenir un ensemble B dont les n-uplets contiennent certaines composantes des n-uplets de A. Selon une approche de matrice, le nombre de colonne est modifié (seules les colonnes pertinentes sont conservées) et éventuellement le nombre de ligne. En effet, si une ou plusieurs colonnes retenues permettent d'identifier une ligne de manière unique (par exemple, une colonne contient les numéros d'employé ou de sécurité sociale), alors il n'y aura pas de modification du nombre de lignes. Mais dans le cas contraire, en vertu du principe de la théorie des ensembles excluant la présence de doublons, le nombre de ligne sera éventuellement inférieur ;
  • Union : à partir des ensembles A et B, obtenir un ensemble C qui contient les n-uplets présents dans A ou dans B. voir aussi union (mathématiques) ;
  • Différence : à partir des ensembles A et B, obtenir un ensemble C qui contient les n-uplets présents dans A mais pas dans B. voir aussi différence ;
  • Produit cartésien : à partir des ensembles A et B, obtenir un ensemble C qui contient des n-uplets qui sont toutes les combinaisons possibles des n-uplets de A avec les n-uplets de B. voir aussi produit cartésien.

Opérateurs dérivés :

  • Intersection : à partir des ensembles A et B, obtenir un ensemble C qui contient les n-uplets présents à la fois dans A et dans B. voir aussi intersection (mathématiques) ;
  • Jointure : à partir des ensembles A et B, obtenir un ensemble C qui est le produit cartésien de chaque n-uplet de A pour lesquels il existe des n-uplets de B où la valeur de la composante M de A est identique à la valeur de la composante N de B ;
  • Division cartésienne : à partir des ensembles A et B, obtenir un ensemble C, où la combinaison de chaque n-uplet de B avec chaque n-uplet de C (produit cartésien de B et C) existe dans A.

En pratique[modifier | modifier le code]

Un système de gestion de base de données (SGBD) relationnel est un logiciel qui permet de manipuler le contenu des bases de données relationnelles. Il permet en particulier de synthétiser n'importe quel lot d'informations en exploitant le contenu des différentes tables de la base de données par application des opérations de l'algèbre relationnelle telles que la jointure, la sélection et la projection.

Ces SGBD résolvent sur demande (anglais query) des requêtes utilisant des opérateurs d'algèbre relationnelle. SQL (sigle de Structured Query Language) est le langage informatique le plus répandu utilisé pour formuler des requêtes d'algèbre relationnelle[1]. En plus de l'algèbre relationnelle, SQL permet l'expression de fonctions (comme par exemple, le minimum, maximum, comptage…) que n'offre pas l'algèbre relationnelle, la notion de tri (compte tenu du fait que le support théorique est la notion d'ensemble et donc sans ordre), ainsi que la notion de récursion (non disponible dans l'algèbre relationnelle car le nombre de jointure est a priori non connu à l'avance — comme par exemple pour gérer un arbre généalogique et rechercher les ancêtres). Le langage SQL est également utilisé pour ajouter ou supprimer du contenu dans la base de données. Lors de la définition de l'organisation des données (partie langage de définition de données de SQL) des contraintes d'intégrité permettent de définir les règles à suivre pour garantir la cohérence de la base lors de manipulation autres que la consultation : comme par exemple vérifier que le nouveau contenu ne casse pas l'intégrité référentielle entre les clés, ou crée de la redondance.

Les SGBD relationnels peuvent être exploités à partir d'autres logiciels par l'intermédiaire d'interface de programmation telles que ODBC ou JDBC. Ces interfaces permettent d'envoyer des requêtes sous forme de phrases d'interrogation et récupérer le résultat.

Selon l'architecture Ansi/Sparc, la manière dont les informations sont organisées dans un logiciel qui utilise le SGBD peut différer de la manière dont le SGBD présente les informations par l'intermédiaire de l'interface de programmation. Cette organisation peut différer de celle qui est utilisée par le SGBD pour stocker les informations sur un support informatique.

Un SGBD est dit relationnel lorsque les informations sont présentées selon le modèle relationnel. Un SGBD est dit orienté objet lorsque les informations sont présentées sous forme d'objets, et un SGBD objet-relationnel peut présenter les informations alternativement sous formes de relations ou d'objets.

Les logiciels écrits en langage de programmation orientée objet utilisent parfois des composants logiciels de mapping objet-relationnel pour présenter le contenu d'une base de données relationnelle sous forme d'objets.

Annexes[modifier | modifier le code]

Notes et références[modifier | modifier le code]

  1. (en) V. Rajaraman, Introduction to Information Technology, PHI Learning Pvt. Ltd.,‎ 2004 (ISBN 9788120324022) p. 540.

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]