Le modèle relationnel est une manière de modéliser les relations existantes entre plusieurs informations et de les ordonner entre elles. Cette modélisation, qui repose sur des principes mathématiques mis en avant par E.F. Codd en 1970, est souvent retranscrite physiquement (« implémentée ») dans une base de données.

Brève description

Relation On appelle « relation » un ensemble d'attributs qui caractérisent une proposition ou une combinaison de propositions.

Par exemple, « un employé a un matricule, il a un nom, il a un employeur ». Ici, les attributs de l'employé sont : son matricule, son nom et son employeur.

Uplet Chaque combinaison de propositions ainsi formée est appelée uplet ou collection ordonnée d'objets.

Par exemple l'ensemble (« 1245 », « Jean Dupond », « Compagnie des belles lettres ») constitue un uplet de relation « employé ».

Table Les relations sont, d'ordinaire, représentées sous la forme de tables. Dans l'exemple précédent, la table serait libellée « employé ».

Usuellement, les praticiens accordent la même signification aux concepts de « relation » et de « table ». De même, ils assimilent, d'une part, la « ligne dans la table » à l'uplet ; d'autre part, le « libellé de colonne dans la table » à l'attribut.

Attribut unique Par définition, chaque uplet d'une relation est unique. Il est identifié par un attribut (un identifiant unique appelé "clef primaire") ou une combinaison de plusieurs attributs qui forme la clef. L'ordre des uplets n'est pas significatif.

Algèbre relationnelle Codd a défini une algèbre relationnelle et des opérateurs qui permettent de construire de nouvelles relations en combinant des relations préalablement définies Edgar Frank Codd, A relational model of data for large shared data banks.. Ses idées ont été implémentées dans les systèmes de gestion des bases de données relationnelles ou SGDBD, telles que le projet expérimental IBM System R, puis des produits commerciaux tels qu'Oracle, DB2 ou MySQL et dans le langage de manipulation des données SQL.

Le modèle relationnel est basé sur deux instruments puissants : l’algèbre relationnelle, c'est-à-dire le concept mathématique de relation en théorie des ensembles, et la notion de produit cartésien. Ce modèle définit une façon de représenter les données, les opérations qui peuvent être effectuées ainsi que les mécanismes pour préserver la cohérence des données.

Le modèle relationnel est aujourd’hui l'un des modèles les plus utilisés. « Les premiers systèmes de gestion de base de données (SGBD ou DBMS en anglais) bâtis sur ce modèle ont été SQL/DS et DB2 de IBM, d'où est né le langage de manipulation de bases relationnelles, SQL (Structured Query Language) »Chapitre 1 le modèle relationnel, Inrets.

Opérateurs relationnels

Selon E. F. Codd, une base de données définie selon le modèle relationnel est manipulée à l'aide d’un ensemble d’opérations formelles sur les relations. Les opérations relationnelles permettent par exemple de créer une nouvelle relation, qui est représentée dans ce modèle, par une table à deux dimensionsCodd, E. F. , New York, ACM, 1970 ..

Le modèle relationnel définit cinq opérateurs de base qui sont l'union, la différence, la sélection (ou restriction), la projection et le produit cartésien. Ces opérateurs présentent l'avantage d'être fermés (ils agissent sur les relations et renvoient des relations qui peuvent de nouveau être combinées grâce aux opérateurs).

Union L'opérateur d' permet de combiner deux relations (ou « tables ») de même schéma (c'est-à-dire deux relations comportant les mêmes attributs). Il renvoie une relation de même schéma que les relations initiales et dont l'ensemble des n-uplets (c'est-à-dire uplets ou « lignes du tableau ») est l'union ensembliste des n-uplets des relations qui ont été combinées. Le terme « ensembliste » signifie qu'il n'y a pas d'ordre dans la présentation des lignes du tableau et qu'il ne peut pas y avoir de doublons.

Différence L'opérateur de différence est similaire, mais non symétrique. Il retourne les n-uplets qui figurent dans la première relation mais pas dans la seconde.

Sélection L'opérateur de sélection (unaire) permet de retourner un sous-ensemble des n-uplets de la relation initiale. Ils doivent vérifier un critère construit sur la base d'une conjonction (et), d'une disjonction (ou), d'une négation de triplets (attribut, comparateur, valeur). Le comparateur peut être >, <, =, <> La notion de valeur peut être soit une constante de type valeur numérique, chaîne de caractères... soit un attribut (mais alors la comparaison a lieu sur le même n-uplet). Il y a alors diminution du nombre de lignes mais le nombre de colonnes reste identique.

Projection L'opérateur de projection (unaire) permet de réduire le nombre d'attributs retenus dans la sélection. Le nombre de colonnes est alors réduit. Cette opération peut entrainer une réduction du nombre de lignes (en cas d'absence d'un identifiant de ligne - clé).

Dans l'exemple de la table « employé », une projection peut être effectuée en ne retenant que les attributs « nom » et « matricule », soit une table résultante réduite à deux colonnes.

Produit cartésien L'opérateur de produit cartésien (binaire) permet de construire une relation dont le schéma est constitué des attributs (libellés des colonnes de la table) des deux relations. Les n-uplets fournis sont construits sur la base du produit cartésien. Toutes les combinaisons possibles entre chaque ligne de la première relation et chacune des lignes de la deuxième relation.

Opérateurs dérivés À partir de ces 5 opérateurs de base peuvent être définis des opérateurs dérivés (n'apportent aucun pouvoir d'interrogation supplémentaire mais permettent de faciliter les manipulations). L'opérateur d'intersection (binaire) fournit les n-uplets présents dans les deux relations, l'opérateur de jointure permet de construire des séries d'uplets comportant un identifiant commun à partir d'un produit cartésien, la division permettant d'exprimer plus facilement un quantificateur universel (une combinaison d'une différence entre relations obtenues en appliquant des produits cartésiens et des intersections).

Le langage support applicatif d'un Système de Gestion de Bases de Données reposant sur un modèle relationnel est le SQL.

Règles de gestion d'un système relationnel de base des données

Règle 1 Unicité : Toute l'information dans la base de données est représentée d'une et une seule manière, à savoir par des valeurs dans des champs de colonnes de tables. Règle 2 Garantie d'accès : Toutes les données doivent être accessibles sans ambiguïté. Cette règle est essentiellement un ajustement de la condition fondamentale pour des clefs primaires. Elle indique que chaque valeur scalaire individuelle dans la base de données doit être logiquement accessible en indiquant le nom de la table contenante, le nom de la colonne contenante et la valeur principale primaire de la rangée contenante. Règle 3 Traitement des valeurs nulles : Le système de gestion de bases de données doit permettre à chaque champ de demeurer nul (ou vide). Spécifiquement, il doit soutenir une représentation "d'information manquante et d'information inapplicable" qui est systématique, distincte de toutes les valeurs régulières (par exemple, "distincte de zéro ou tous autres nombres," dans le cas des valeurs numériques), et ce indépendamment du type de données. Cela implique également que de telles représentations doivent être gérées par le système de gestion de bases de données d'une manière systématique. Règle 4 Catalogue lui-même relationnel : Le système doit supporter un catalogue en ligne, intégré, relationnel, accessible aux utilisateurs autorisés au moyen de leur langage d'interrogation régulier. Les utilisateurs doivent donc pouvoir accéder à la structure de la base de données (catalogue) employant le même langage d'interrogation qu'ils emploient pour accéder aux données de la base de données. Règle 5 Sous-langage de données : Le système doit soutenir au moins un langage relationnel qui: a une syntaxe linéaire peut être employé interactivement et dans des programmes d'application, supporte des opérations de définition d'informations supplémentaires (incluant des définitions de vues), de manipulation de données (mise à jour aussi bien que la récupération), de contraintes de sécurité et d'intégrité, et des opérations de gestion de transaction (commencer, valider et annuler une transaction). Règle 6 Mise à jour des vues : Toutes les vues pouvant théoriquement être mises à jour doivent pouvoir l'être par le système. Règle 7 Insertion, mise à jour, et effacement de haut niveau : Le système doit supporter les opérations par lot d'insertion, de mise à jour et de suppression. Ceci signifie que des données peuvent être extraites d'une base de données relationnelle dans des ensembles constitués par des données issues de plusieurs uplets et/ou de multiples table. Cette règle explique que l'insertion, la mise à jour, et les opérations d'effacement devraient être supportées aussi bien pour des lots d'uplets issues de plusieurs tables que juste pour un uplet unique issu d'une table unique. Règle 8 Indépendance physique : Les modifications au niveau physique (comment les données sont stockées, si dans les rangées ou les listes liées, etc.) ne nécessitent pas un changement d'une application basée sur les structures. Règle 9 Indépendance logique : Les changements au niveau logique (tables, colonnes, rangées, etc) ne doivent pas exiger un changement dans l'application basée sur les structures. L'indépendance de données logiques est plus difficile à atteindre que l'indépendance de données physiques. Règle 10 Indépendance d'intégrité : Des contraintes d'intégrité doivent être indiquées séparément des programmes d'application et être stockées dans le catalogue. Il doit être possible de changer de telles contraintes au fur et à mesure sans affecter inutilement les applications existantes. Règle 11 Indépendance de distribution : La distribution des parties de la base de données à diverses localisations doit être invisible aux utilisateurs de la base de données. Les applications existantes doivent continuer à fonctionner avec succès : quand une version distribuée du système de gestion de bases de données est d'abord présentée ; et quand des données existantes sont redistribués dans le système. Règle 12 Règle de non-subversion : Si le système fournit une interface avec langage de bas niveau, cette interface ne doit pas permettre de contourner le système (par exemple pour ajouter une contrainte relationnelle de sécurité ou d'intégrité) : ces contraintes doivent être exprimées dans le langage relationnel de haut niveau.

Principe L'idée centrale du modèle relationnel est de décrire un ensemble de données comme une collection de prédicats sur un ensemble fini de variables sous-jacentes, décrivant les contraintes sur les valeurs et les combinaisons de valeurs possibles. Le contenu de l'ensemble de données qui en résulte à un instant t, le modèle conceptuel des données, est transcriptible dans une base de données à travers un modèle physique des données. C'est un modèle fini (logique) de la base de données, à savoir un ensemble de relations, une par variable de relation, de telle sorte que tous les prédicats sont satisfaits. Une demande d'informations de la base de données (une requête de base de données) est également un prédicat. Un grand avantage des données construites à partir de ce modèle relationnel est que l’utilisateur peut, dans sa retranscription physique en base de données, y accéder sans savoir où sont physiquement les données ni comment elles sont stockées. C’est un grand avantage par rapport au modèle hiérarchique implémenté dans les bases de données hiérarchique ou au modèle réseauCours 9 Passage du MCD au MPD Le modèle relationnel, Delisle, Pierre .

Modélisation relationnelle et transcription en base de données