12 Codds 12 regler - 13 regler (i dette tilfælde starter beregningen fra 0), som ethvert relationelt databasestyringssystem (RDBMS) skal opfylde [1] .
Foreslået af den engelske matematiker Edgar Codd i 1985 i artikler i ComputerWorld [2] [3] .
Faktisk er reglerne så strenge, at alle de populære såkaldte RDBMS'er ikke lever op til mange af kriterierne.
Regel 0: Grundlæggende regel :
Et system, der annonceres for eller placeres som et RDBMS, skal være i stand til at administrere databaser udelukkende ved brug af dets relationelle muligheder.Regel 1 : Informationsreglen :
Al information i en relationsdatabase på det logiske niveau skal udtrykkeligt repræsenteres på én måde: ved værdier i tabeller .Regel 2: Garanteret adgangsregel :
I en relationsdatabase skal hver enkelt (atomare) dataværdi være logisk tilgængelig ved hjælp af en kombination af tabelnavn, kolonnenavn og primærnøgleværdi .Regel 3: Systematisk behandling af nulværdier :
Ukendte eller manglende NULL -værdier ud over enhver kendt værdi skal understøttes for alle datatyper i alle operationer. For eksempel, for numeriske data, bør ukendte værdier ikke behandles som nuller, og for tegndata, som tomme strenge.Regel 4: Adgang til dataordbogen i forhold til den relationelle model ( Aktivt onlinekatalog baseret på den relationelle model ):
Dataordbogen skal opbevares i form af relationelle tabeller, og DBMS skal understøtte adgang til den ved hjælp af standard sprogfaciliteter, de samme som bruges til at arbejde med relationelle tabeller indeholdende brugerdata.Regel 5: Regel for omfattende dataundersprog :
Et relationsdatabasestyringssystem skal understøtte mindst ét relationssprog, der (a) har en lineær syntaks , (b) kan bruges både interaktivt og i applikationsprogrammer, (c) understøtter datadefinition, visningsdefinition, datamanipulation ( interaktiv og programmatisk), integritetsbegrænsninger, adgangskontrol og transaktionsstyringsoperationer ( start, commit og rollback ).Regel 6: Mulighed for at ændre visninger ( Se opdateringsregel ):
Hver visning skal understøtte alle datamanipulationsoperationer, som relationelle tabeller understøtter: handlinger for at hente, indsætte, opdatere og slette.Regel 7: Tilstedeværelse af datahåndteringsoperationer på højt niveau ( Indsæt, Opdater og Slet på højt niveau ):
Indsættelse, opdatering og sletning skal understøttes ikke kun på en enkelt række i en relationstabel, men også på ethvert sæt rækker.Regel 8: Uafhængighed af fysiske data :
Applikationer bør ikke afhænge af de metoder, der bruges til at lagre data på medier, af hardwaren på de computere, hvorpå relationsdatabasen er placeret.Regel 9: Logisk datauafhængighed :
Præsentationen af data i en applikation bør ikke afhænge af strukturen af relationelle tabeller. Hvis normaliseringsprocessen opdeler en relationel tabel i to, skal visningen sikre, at dataene flettes, så ændringer i strukturen af relationstabellerne ikke påvirker applikationer.Regel 10: Integritet Uafhængighed :
Alle oplysninger, der er nødvendige for at bevare integriteten, skal være i dataordbogen. Et datasprog skal udføre inputvalidering og automatisk opretholde dataintegriteten.Regel 11 : Distributionsuafhængighed :
Databasen kan distribueres, kan placeres på flere computere, og dette bør ikke påvirke applikationer. Overførsel af en database til en anden computer bør ikke påvirke applikationer.Regel 12: Nonsubversion -reglen :
Hvis der bruges et dataadgangssprog på lavt niveau, må det ikke tilsidesætte sikkerheds- og integritetsreglerne, der understøttes af sproget på højere niveau.