Les 12 règles de Codd

Le Dr Edgar F. Codd, après ses recherches approfondies sur le modèle relationnel des systèmes de bases de données, a élaboré ses propres règles, auxquelles une base de données doit selon lui obéir pour être considérée comme une véritable base de données relationnelle.

Ces règles peuvent être appliquées à tout système de base de données qui gère les données stockées en utilisant uniquement ses capacités relationnelles. Il s'agit d'une règle fondamentale, qui sert de base à toutes les autres règles.

Règle 1: Règle d'information

Les données stockées dans une base de données, qu'il s'agisse de données utilisateur ou de métadonnées, doivent être une valeur d'une cellule de tableau. Tout dans une base de données doit être stocké dans un format de table.

Règle 2: Règle d'accès garanti

Chaque élément de données (valeur) est garanti pour être accessible logiquement avec une combinaison de nom de table, de clé primaire (valeur de ligne) et de nom d'attribut (valeur de colonne). Aucun autre moyen, tel que des pointeurs, ne peut être utilisé pour accéder aux données.

Règle 3: Traitement systématique des valeurs NULL

Les valeurs NULL d'une base de données doivent faire l'objet d'un traitement systématique et uniforme. Il s'agit d'une règle très importante car un NULL peut être interprété comme l'un des suivants: les données sont manquantes, les données ne sont pas connues ou les données ne sont pas applicables.

Règle 4: Catalogue en ligne actif

La description de la structure de l'ensemble de la base de données doit être stockée dans un catalogue en ligne, appelé data dictionary, accessible aux utilisateurs autorisés. Les utilisateurs peuvent utiliser le même langage de requête pour accéder au catalogue qu'ils utilisent pour accéder à la base de données elle-même.

Règle 5: Règle de sous-langage complet des données

Une base de données n'est accessible qu'à l'aide d'un langage ayant une syntaxe linéaire qui prend en charge la définition de données, la manipulation de données et les opérations de gestion des transactions. Ce langage peut être utilisé directement ou au moyen d'une application. Si la base de données autorise l'accès aux données sans aucune aide de ce langage, cela est considéré comme une violation.

Règle 6: Afficher la règle de mise à jour

Toutes les vues d'une base de données, qui peuvent théoriquement être mises à jour, doivent également pouvoir être mises à jour par le système.

Règle 7: règle d'insertion, de mise à jour et de suppression de haut niveau

Une base de données doit prendre en charge l'insertion, la mise à jour et la suppression de haut niveau. Cela ne doit pas être limité à une seule ligne, c'est-à-dire qu'il doit également prendre en charge les opérations d'union, d'intersection et moins pour générer des ensembles d'enregistrements de données.

Règle 8: Indépendance des données physiques

Les données stockées dans une base de données doivent être indépendantes des applications qui accèdent à la base de données. Toute modification de la structure physique d'une base de données ne doit avoir aucun impact sur la manière dont les données sont accessibles par des applications externes.

Règle 9: Indépendance des données logiques

Les données logiques d'une base de données doivent être indépendantes de la vue de son utilisateur (application). Toute modification des données logiques ne doit pas affecter les applications qui l'utilisent. Par exemple, si deux tables sont fusionnées ou si l'une est divisée en deux tables différentes, il ne devrait y avoir aucun impact ou changement sur l'application utilisateur. C'est l'une des règles les plus difficiles à appliquer.

Règle 10: Intégrité Indépendance

Une base de données doit être indépendante de l'application qui l'utilise. Toutes ses contraintes d'intégrité peuvent être modifiées indépendamment sans qu'il soit nécessaire de modifier l'application. Cette règle rend une base de données indépendante de l'application frontale et de son interface.

Règle 11: Indépendance de la distribution

L'utilisateur final ne doit pas être en mesure de voir que les données sont réparties sur différents emplacements. Les utilisateurs doivent toujours avoir l'impression que les données se trouvent sur un seul site. Cette règle a été considérée comme le fondement des systèmes de bases de données distribuées.

Règle 12: Règle de non-subversion

Si un système a une interface qui permet d'accéder aux enregistrements de bas niveau, l'interface ne doit pas être en mesure de subvertir le système et de contourner les contraintes de sécurité et d'intégrité.