2009-09-03 5 views
5

Récemment, je lisais environ Codd's 12 Rules, et j'ai compris tout sauf le numéro 12, la règle de 'non-subversion'. Si quelqu'un peut m'expliquer la règle (en utilisant un exemple, de préférence), ce serait très utile.Que signifie la règle de non-subversion de Codd?

Merci.

+0

damn! Pendant un moment, je me suis demandé ce que Codd avait à faire avec Subversion. La partie supérieure "Subversion" dans la question est à blâmer :) Quelqu'un peut-il l'éditer s'il vous plaît? (pour éviter plus de confusion à ppl comme moi) –

+0

@Vijay: oui, j'étais confus aussi. Édité. –

Répondre

10

Règle 12: La règle de nonsubversion:

Si le système fournit une interface de bas niveau (record à-un-temps), puis cette interface ne peut pas être utilisé pour subvertir le système, pour Par exemple, en contournant une sécurité relationnelle ou une contrainte d'intégrité .

Supposons que vous définissiez une contrainte non nulle sur une colonne. Pouvez-vous contourner le SGBDR (par exemple en utilisant une API utilitaire de bas niveau fournie par Oracle) pour insérer une valeur nulle dans cette colonne? Si oui, vous avez violé cette règle.

5

Ce que Michael a dit, et il s'applique également aux chargeurs en vrac. Supposons que SQL * Loader vous permette de charger en bloc des lignes dans une table, sans vérifier si les lignes dupliquent déjà les lignes dans la table, en violation d'une contrainte unique. Cela équivaudrait à une subversion des règles exprimées dans le schéma.

D'autres produits SGBD ont des chargeurs en vrac, et certains d'entre eux permettent la subversion, afin d'accélérer le chargement en vrac.

La règle 12 l'interdit.