Comment maintenir l'intégrité de domaine dans une base de données SQL multitable

Vous pouvez habituellement pas garantir qu'un élément de données particulier dans une base de données SQL est correct, mais vous pouvoir déterminer si un élément de données est valide. De nombreux éléments de données ont un nombre limité de valeurs possibles. Si vous faites une entrée qui ne sont pas l'une des valeurs possibles, que l'entrée doit être une erreur.

Les États-Unis, par exemple, dispose de 50 États plus le District de Columbia, Puerto Rico, et quelques possessions. Chacun de ces domaines a un code à deux caractères que le Service postal des États-Unis reconnaît. Si votre base de données a une État colonne, vous pouvez appliquer l'intégrité de domaine en exigeant que toute entrée dans cette colonne soit l'un des codes de deux caractères reconnus.




Si un opérateur entre un code qui est pas sur la liste des codes valides, que l'entrée viole l'intégrité de domaine. Si vous testez l'intégrité de domaine, vous pouvez refuser d'accepter une opération qui provoque une telle violation.

Intégrité de domaine préoccupations surviennent si vous ajoutez de nouvelles données à une table en utilisant soit le INSERT déclaration ou la METTRE À JOUR déclaration. Vous pouvez spécifier un domaine pour une colonne en utilisant un CREATE DOMAIN déclaration devant vous utilisez cette colonne dans un CREATE TABLE déclaration, comme le montre l'exemple suivant, qui crée une table pour les grandes équipes de baseball:

CREATE DOMAIN LeagueDom CHAR (8) CHECK (EN VALEUR («américaine», «national»)) - CREATE TABLE TEAM (Nom de l'équipe CHAR (20) NOT NULL, Ligue LeagueDom NOT NULL) -

Le domaine de la Ligue colonne comprend seulement deux valeurs valides: Américain et National. Votre SGBD ne vous permet pas de commettre une entrée ou à la mise à jour ÉQUIPE à moins que le tableau Ligue colonne de la ligne que vous ajoutez a une valeur de soit «Américaine» ou «National».


» » » » Comment maintenir l'intégrité de domaine dans une base de données SQL multitable