Qu'est-ce qu'un SGBDR

fadace

Définition d'un système de gestion de base de données relationnelle, selon Codd

- Titre : Qu'est-ce qu'un SGBDR

- Auteur : fadace

- Parution : 6 janvier 2007

- Mise à jour : 6 janvier 2007

- Licence : Copyright ® 2007 Fadace. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

Sur developpez.com, et bien sûr ailleurs, le débat des fervents et des détracteurs d'une base de données a souvent tourné autour d'une question : la base en question pouvait-elle être considérée à proprement parler comme un SGBDR.

Foin de débat : le plus sûr pour répondre à cette épineuse question est de se rabattre sur la définition d'un SGBDR (RDBMS en anglais). Et qui est de plus à même d'amener une définition que le celui-là même qui est à l'origine de la théorie du modèle relationnel, à savoir ce cher Edgar F. Codd (Ted pour les intimes).

Les 12 règles de Codd sont un ensemble de treize règles (eh oui, comme informaticien, on commence à compter à 0) proposées par Edgar F. « Ted » Codd, conçues pour définir ce qui est exigé d'un système de gestion de base de données afin de savoir s'il pourra être considéré comme relationnel, c'est-à-dire un SGBDR.

Au début des années 80, Codd s'est brouillé avec les éditeurs (et plus particulièrement son employeur IBM) qu'il accusait de pervertir son modèle dans leurs implémentations. Il a donc produit ces règles afin d'empêcher ces derniers de s'éloigner de sa vision du SGBDR. Ce faisant, il les obligea à suivre sa ligne.

N°

Règle

Description / explication

0

Le système doit se qualifier comme relationnel, comme base de données, et comme système de gestion

Pour qu'un système soit qualifié de système de gestion de base de données relationnelle (SGBDR), ce système doit employer (exclusivement ) le modèle relationnel pour contrôler la base de données.

1

Information

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.

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.

3

Traitement systématique 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 tout autre nombre, » 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.

4

Catalogue en ligne actif basé sur le modèle 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.

5

Sous-langage de données complet

Le système doit soutenir au moins un langage relationnel qui

1. a une syntaxe linéaire

2. peut être employé interactivement et dans des programmes d'application,

3. 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).

6

Mise à jour des vues

Toutes les vues pouvant théoriquement être mises à jour doivent pouvoir l'être par le système.

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 tuples et/ou de multiples tables. 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 de tuples issus de plusieurs tables que juste pour un tuple unique issu d'une table unique.

8

Indépendance de donnée 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.

9

Indépendance de donnée 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.

10

L'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.

11

L'indépendance de distribution

La distribution des parties de la base de données à de diverses localisations devrait être invisible aux utilisateurs de la base de données. Les applications existantes devraient continuer à fonctionner avec succès

1. quand une version distribuée du système de gestion de bases de données est d'abord présentée, et

2. quand des données existantes sont redistribuées dans le système.

12

Non subversion

Si le système fournit une interface de bas niveau, alors cette interface ne peut pas être employée pour contourner le système, par exemple, pour contourner une contrainte relationnelle de sécurité ou d'intégrité.

Source : selon traduction de la version anglaise sous Wikipédia