12 reguloj de Codd

El Vikipedio

La 12 reguloj de Codd estas aro da dek-tri (tiel) reguloj por datenbankaj sistemoj. Ilin proponis Edgar Frank Codd por difini, je kiuj kondiĉoj datenbanka sistemo nomiĝu "rilata" aŭ, pli percize, kiel "rilata datenbank-mastruma sistemo" (RDBMS).

Codd vortigis tiujn regulojn komence de la 1980-aj jaroj.

[redaktu] La reguloj

  • Regulo 0: La sistemo devas esti rilata, datenbanko, kaj mastruma sistemo.
Por esti akceptita kiel rilata datenbank-administra sistemo, la sistemo devas uzi nur siajn rilatajn kapablojn por administri (mastrumi) la datenbankon.
  • Regulo 1: La informa regulo:
Ĉia informo en la datenbanko devas esti deprezentata en ununura maniero, per valoroj en kolumnoj ene de horizontaloj en tabeloj.
  • Regulo 2: La regulo de garantiita aliro:
Ĉiuj datenoj devas esti alireblaj sen ambigueco. Tiu regulo esence estas alia vortigo de la baza postulo pri primaraj ŝlosiloj. Ĝi diras, ke ĉiu opa valoro en la datenbanko devas esti logike adresebla per specifado de la nomo de la koncerna tabelo, la nomo de la kolumno enhavanta ĝin kaj la primara ŝlosilo de la horizontala enhavanta ĝin.
  • Regulo 3: sistema traktado de valoro "nenio" (NULL)
La DBMS devas permesi, ke ajna kampo enhavu nulon (nenion). Speciale, ĝia reprezentado de "manka informoj" aŭ "neaplikebla informo" devas esti sistema kaj kongrua, kaj malsama al ĉiuj ordinaraj valoroj (ekzemple, en okazo de nombraj valoroj, malsama al la nombro nulo kaj al ĉiu alia nombro), kaj sendependa de datentipoj. Implicitas, ke la DBMS devas manipuli tiajn reprezentaĵojn en unueca, kongrua maniero.
  • Regulo 4: Aktiva enkomputila katalogo bazita sur la rilata modelo:
La sistemo devas provizi enkomputilan rilatan katalogon, alireblan al rajtigitaj uzuloj per la ordinara demandolingvo. Tio signifas, ke uzuloj povas aliri la strukturon (katalogon) de la datenbanko uzante la saman demandolingvon, kiun ili uzas por aliri la datenojn en la datenbanko.
  • Regulo 5: Universala datena sublingvo
La sistemo devas oferti almenaŭ unu rilatan lingvon, kiu
  • havas linian sintakson
  • estas uzeblaj kaj dialoge kaj el aplikaj programoj
  • permesas la difinadon de datenoj (inkluzive de vidoj), la manipuladon de datenoj (ŝanĝo kaj lego), sekurecajn kaj integrecajn restriktojn kaj transakciajn operaciojn (komenco, plenumo kaj malfaro).
  • Regulo 6: Ŝanĝo tra vidoj
Se vido al la datenbanko teorie estas manipulebla (ŝanĝebla), la sistemo devas kapabli ŝanĝi ĝin.
  • Regulo 7: altnivelaj (plur-objektaj) enigo (aldono, ŝanĝo kaj forigo):
La sistemo devas oferti operatorojn por enigi, ŝanĝi aŭ forigi aron da datenoj samtempe. Tio signifas, ke datenoj povu esti legataj de rilata datenbanko en aroj konstruitaj el pluraj horizontaloj kaj/aŭ pluraj tabeloj. La regulo deklaras, ke enigo, ŝanĝo kaj forigo funkciu por ĉia legebla aro, ne nur por unu horizontalo en unu tabelo.
  • Regulo 8: Sendependeco de fizikaj datenoj:
Ŝanĝoj je "fizika" nivelo (kiel datenoj estas storataj, ekzemple en vektoroj aŭ ligitaj listoj) ne postulu ŝanĝon en plikaĵo, kiu uzas la datenojn.
  • Regulo 9: Sndependeco de logikaj datenoj:
Ŝanĝoj je "logika" nivelo (kiel datenoj estas organizitaj en tabeloj, kolumnoj, horizontaloj ktp.) ne postulu ŝanĝon en plikaĵo, kiu uzas la datenojn. Logika sendependeco estas malpli facile atingebla ol fizika sendependeco.
  • Regulo 10: integreca sendependeco:
Integrecaj restriktoj devas esti specifataj aparte de aplikaj programoj kaj memorataj en la katalogo. Devas esti eble ŝanĝi tiajn restriktojn laŭ bezono sen kaŭzi nenecesajn malavantaĝojn al aplikaĵoj.
  • Regulo 11: sendependeco de distribuo:
La distribuiteco de partoj de la datenbanko al pluraj lokoj estu nevidebla al ĝiaj uzantoj. Ekzistantaj aplikaĵoj sukcese funkciu plu, kiam
  • iu DBMS estas ŝanĝita al distribuita sistemo, aŭ
  • jam distribuitaj datenoj estas redistribuitaj malsame ene de la sistemo.
  • Regulo 12: regulo de nedifektado:
Se la sistemo ofertas malalt-nivelan (unu-objektan) uzo-interfacon, tiu interfaco ne permesu difektadon de la sistemo, ekzemple per preteriro de rilataj sekurecaj aŭ integrecaj restriktoj.

Tiuj ĉi reguloj estis difinitaj en la artikolo "Is Your DBMS Really Relational?" (ĉu via sistemo vere estas rilata) de Codd, publikigita en la revuo ComputerWorld" en du partoj, je la 14-a kaj 21-a de oktobro 1985.