- Modèle relationnel
-
Le modèle relationnel est une manière de modéliser les informations contenues dans une base de données qui repose sur des principes mathématiques mis en avant par E.F. Codd.
Sommaire
Brève description
On appelle relation un ensemble d'attributs qui définissent un fait - par exemple un employé a un matricule donné, son nom est untel, il travaille dans tel service et a été embauché à telle date. Chaque instance est appelée un tuple. Les relations sont d'ordinaire représentées sous la forme d'une table, et on confond les deux concepts. On confond de même ligne dans la table et tuple. Par définition, chaque tuple d'une relation est unique, et est identifié par un attribut ou une combinaison de plusieurs attributs qui forme la clef. L'ordre des tuples n'est pas significatif.
Codd a défini une algèbre relationnelle et des opérateurs qui permettent de construire d'autres relations à partir de relations. Les idées de Codd ont été implémentées -- plus ou moins fidèlement -- dans les systèmes de gestion des bases de données relationnelles ou SGBDR 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 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). » [1] 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és, les opérations qui peuvent être effectuées et aussi les mécanismes pour préserver la consistance des donnés. E.F Codd a décrit les principes et la conception de modèle relationnel dans son livre « A relational model of data for large shared data banks ». par exemple une bonne utilisation du code nécessite la redéfinition d'une entité qui va être exploitable dans la présentation de données.
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 de deux dimensions[2]. Le modèle relationnel définit 5 opérateurs de base que 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 travaillent sur des relations et retournent des relations qui peuvent de nouveau être utilisées avec des opérateurs, ...). L'opérateur d'union permet de travailler sur deux relations de même schéma (pour simplifier les mêmes attributs) et retourne une relation de même schéma que les relations participantes et dont l'ensemble des n-uplets (tuples, lignes du tableau) est l'union ensembliste des n-uplets des relations participantes (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). L'opérateur de différence est similaire (mais non symétrique) et retourne les n-uplets qui figurent dans la première relation mais pas dans la seconde. 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 à lieu sur le même n-uplet). Il y a alors diminution du nombre de lignes mais le nombre de colonnes reste identique. L'opérateur de projection (unaire) permet de réduire le nombre d'attributs retenus. 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é). L'opérateur de produit cartésien (binaire) permet de construire une relation dont le schéma est constitué des attributs (colonne du tableau) des deux relations. Les n-uplets fournis sont construits sur la base du produit cartésien (toutes les combinaisons possibles entre les lignes de la première relation et chacune des lignes de la deuxième relation). À 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 (et se formalisme comme deux différences), l'opérateur de jointure permet de rapprocher deux relations sur la base de la vérification d'un critère (une sélection appliquée sur un produit cartésien), la division permettant d'exprimer plus facilement un quantificateur universel (une combinaison d'une difference entre relations obtenues en appliquant des produits cartésiens et des différences). Le langage support applicatif d'un Système de Gestion de Bases de Données reposant sur un modèle relationnel est le SQL.
Les règles pour le système relationnel de base des données
- La règle informationnelle : Toutes les informations dans la base des données sont explicites et portent la même structure logique et sont représentées par valeurs dans les tableaux.
- La règle de certitude : Toutes les données sont dans le modèle relationnel accessibles par la combinaison de nom de tableau, la valeur de clé principale et le nom de la colonne.
- Le traitement des valeurs nulles systématique : Les valeurs nulles sont bien adoptées par le modèle relationnel et pour représentation de l’information qui n’est pas définie et ne sont pas dépendantes du type de données.
- Le catalogue en ligne basé sur le modèle relationnel : La description de la base des données est exprimée sur le même niveau logique et de même manière que les dates de client. Alors un utilisateur autorisé peut appliquer la même langue relationnelle pour appliquer sa demande comme utilisateur qui travaille avec les données.
- La langue de définition des données : Le système relationnel peut soutenir plusieurs langues et modes pendant l’utilisation de terminal. Mais il faut qu’il y ait au moins une langue vaste qui puisse définir la structure des données, la manipulation interactive, restrictions intégrales, autorisation pour accéder à la base des données, les commandes transactionnelles etc. (SQL)
- La règle de création de vue : Toutes les vues sont théoriquement possibles et sont aussi créées par système.
- Le pouvoir de créer, insérer et effacer : Il est possible de préserver les règles relationnelles sur les relations de base et aussi relations dérivées non seulement en regardant les données, mais aussi pendant les opérations d’intersection, l’union et effacement des données.
- L’indépendance physique des données : Les programmes d’application sont indépendants de la structure physique des données.
- L’indépendance de la logique des données : Les programmes d’application sont indépendants de la structure logique de base des données.
- L’indépendance intégrale : Les restrictions intégrales doivent être définies par les moyens de la base des données relationnelle ou son langage et doivent être situées dans le catalogue et non dans le programme d’application.
- L’indépendance de la distribution : Il est nécessaire que le système de gestion de base des données relationnel soit capable d’être implémenté sur les autres architectures informatiques.
- La règle d'accès sur la base des données : Si le système relationnel a la langue de niveau bas, on ne peut pas utiliser ce niveau pour exprimer les restrictions intégrales et il est nécessaire de les exprimer en langue relationnelle de niveau supérieur.
Principe du modèle relationnel
Le modèle relationnel est basé sur la notion d’ensemble. Chaque ensemble possède un nom et aussi des attributs nommés qui appartiennent dans cet ensemble et il existe des restrictions intégrales qui limitent cet ensemble. On peut présenter cet ensemble sous forme d’une table relationnelle qui porte son nom et les attributs sont représentés par les colonnes. Dans les cellules de la table peuvent être seulement les éléments atomiques. L’aménagement des dates dans la base des données est pour un utilisateur non essentiel et les dates peuvent exister indépendamment sur le dépôt physique. Un grand avantage de ce modèle est que l’utilisateur n’a pas à savoir où sont les dates physiquement déposées et il peut les utiliser sans problème. C’est un grand avantage par rapport au modèle hiérarchique ou au modèle réseau[3].
La modélisation relationnelle
La modélisation relationnelle permet de présenter les relations sous forme des tables de deux dimensions. Chaque colonne possède un identificateur qui représente un domaine. On appelle tuple ou n-uplet un set des valeurs des attributs incoordonnés, c'est-à-dire la ligne de table. La relation peut donc être définie par le set de n-tuples. « Chaque opération relationnelle sur une table génère une nouvelle relation et les opérateurs relationnels – ceux de la langue SQL, permettent de décrire le résultat que l’on veut obtenir sans avoir à décrire la procédure nécessaire pour arriver au résultat : on dit que la langue relationnel est « non procédural » » [1]
Pour lier les relations ensemble il existe la clé primaire et la clé étrangère. La clé principale d’une relation est un attribut ou un ensemble des attributs qui permet de désigner d’une façon unique un tuple. La seule connaissance de la clé principale peut identifier toute ligne dans une table. De l’autre côté, la clé étrangère est un identificateur qui fait référence à une clé unique dans une autre table[4].
Dans le sens mathématique est la relation un sous-ensemble du produit cartésien des certaines domaines. Un domaine est représenté comme un ensemble des valeurs : R = (A1 X A2 X A3).
Cette relation R est représentée par une table de 3 colonnes (trois attributs) A1, A2, A3 dont chaque ligne est caractérisée par différente valeurs dans les domaines A1, A2, A3.Pour modéliser l’entité du monde réel « voiture » on prendra comme constituants la marque, la couleur, la plaque d’immatriculation et la date de création : voiture (marque, couleur, plaque-immatriculation, date-création). Les domaines correspondant aux identificateurs de colonnes peuvent être déterminés par les ensembles de valeurs suivants :
marque : chaine de 1 à 50 caractères alphabétiques
couleur : chaine de 1 à 30 caractères alphabétiques
plaque-immatriculation : chaine de 1 à 10 caractères alphabétiques
date-création : dates depuis le 1er janvier 1800 jusqu’au présent
Cardinalité de relation
Le modèle relationnel prévoit 3 différents types de relations entre tables : 1:1, 1:N et M:N. Les relations entre les tables sont définies dans la colonne partagée. Ce modèle ne soutient directement pas la relation M:N, est assurée par deux relations 1:N.
Relation 1:1
Dans deux tables A et B de relation 1:1, un élément de la table A se rapporte seulement à un élément de la table B.
Par exemple, un ministre est à la tête d'un ministère et un ministère ne comporte qu'un seul ministre : la table "Ministères" est en relation 1:1 avec la table "Ministres".Relation 1:N
Dans deux tables A et B de relation 1:N, un élément de la table A se rapporte à un ou plusieurs éléments de la table B.
Par exemple, plusieurs membres de la tables "Elèves" peuvent se rapporter à un seul membre de la table "Internats".Relation M:N
Dans deux tables A et B de relation M:N, un élément de la table A se rapporte à un ou plusieurs éléments de la table B et un élément de la table B se rapporte à un ou plusieurs éléments de la table A. Une relation M:N peut donc être décomposées en deux relations 1:N.
Par exemple, dans une école secondaire, une classe a plusieurs professeurs et un professeur est en charge de plusieurs classes : les tables "Classes" et "Professeurs" sont en relation M:N.Voir aussi
- Base de données relationnelle
- Formes normales
- SQL
- Système de gestion de base de données
- Langage d'interrogation de données
- Pick (système d'exploitation)
- Schéma conceptuel
- Table (base de données)
Liens externes
- (fr) Laurent Audibert, « Passage du modèle entités-associations au modèle relationnel » sur developpez.com
- (en) Mapping ER Models into Relations
- (en) HSQLDB sur SourceForge.net
Notes et références
- Chapitre 1 le modèle relationnel, Inrets
- Codd, E. F. A relational model of data for large shared data banks. New York : ACM , 1970 . ISSN:0001‐0782.
- Cours 9 Passage du MCD au MPD Le modèle relationnel, Delisle, Pierre
- Le modele realationnel, Comment ca marche
Wikimedia Foundation. 2010.