2009-09-03 15 views
5

Recentemente stavo leggendo su Codd's 12 Rules e ho capito tutto tranne il numero 12, la regola 'non-sovversione'. Se qualcuno può spiegarmi la regola (usando un esempio, preferibilmente), sarebbe molto utile.Che cosa significa "regola di non sovversione" di Codd?

Grazie.

+0

dannazione! Per un momento, ho confuso ciò che Codd aveva avuto a che fare con Subversion. La parte superiore "Subversion" racchiusa nella domanda è la colpa :) Qualcuno può modificarlo per favore? (per evitare ulteriore confusione a ppl come me) –

+0

@Vijay: sì, ero confuso anche io. Modificato. –

risposta

10

Regola 12: La regola nonsubversion:

Se il sistema fornisce un basso livello di interfaccia (record at-a-tempo), poi tale interfaccia non può essere utilizzato per sovvertire il sistema, per esempio, bypassando una sicurezza relazionale o il vincolo di integrità .

Supponiamo di definire un vincolo non null su una colonna. Puoi bypassare l'RDBMS (usando, ad esempio, un'API di utilità di basso livello fornita da Oracle) per inserire un valore null in quella colonna? Se è così, hai violato quella regola.

5

Ciò che Michael ha detto, e si applica anche ai caricatori di rinfuse.

Supponiamo che SQL * Loader ti abbia consentito di caricare in serie le righe in una tabella, senza verificare se le righe duplicano già le righe nella tabella, in violazione di un vincolo univoco. Ciò equivarrebbe a sovversione delle regole espresse nello schema.

Altri prodotti DBMS sono dotati di caricatori di carico e alcuni di essi consentono sovversione, al fine di accelerare il carico alla rinfusa.

La regola 12 vieta questo.