12 Codd-regler

De 12 Codd-reglene er et sett med regler av Edgar F. Codd , designet for å definere hva som kreves av et databasestyringssystem (DBMS) slik at det kan betraktes som relasjonelt (RDBMS).

Reglene

Regel 1 Unikt  : All informasjon i databasen er representert på en og bare en måte, nemlig av verdier i kolonnefelt i tabeller. Regel 2 Tilgangsgaranti  : Alle data må være tilgjengelige uten tvetydighet. Denne regelen er i hovedsak en justering av grunnbetingelsen for primærnøkler. Det indikerer at hver enkelt skalarverdi i databasen må være logisk tilgjengelig ved å spesifisere navnet på den inneholder tabellen, navnet på den inneholder kolonnen og den primære hovedverdien til den inneholder raden. Regel 3 Behandling av nullverdier  : Databehandlingssystemet må tillate at hvert felt forblir null (eller tomt). Spesielt må den støtte en representasjon av "manglende informasjon og ikke-håndhevbar informasjon" som er systematisk, forskjellig fra alle vanlige verdier (f.eks. "Forskjellig fra null eller andre tall", i tilfelle numeriske verdier), og dette uansett av typen data. Det innebærer også at slike representasjoner må styres av databasestyringssystemet på en systematisk måte. Regel 4 Selve katalogen relasjonell  : Systemet må støtte en online, integrert, relasjonell katalog som er tilgjengelig for autoriserte brukere som bruker deres vanlige spørrespråk. Brukerne må derfor ha tilgang til strukturen i databasen (katalog) ved hjelp av det samme spørrespråket som de bruker for å få tilgang til dataene i databasen. Regel 5 Datasub-språk  : Systemet må støtte minst ett relasjonsspråk som:
  1. har lineær syntaks
  2. kan brukes interaktivt og i applikasjonsprogrammer,
  3. støtter operasjoner for å definere tilleggsinformasjon (inkludert visningsdefinisjoner), datamanipulering (oppdatering samt henting), sikkerhets- og integritetsbegrensninger og transaksjonsadministrasjonsoperasjoner (starte, validere og avbryte en transaksjon).
Regel 6 Oppdaterer visninger  : Alle visninger som teoretisk kan oppdateres, må kunne oppdateres av systemet. Regel 7 Sett inn, oppdater og slett på høyt nivå  : Systemet må støtte batchinnsetting, oppdatering og sletting. Dette betyr at data kan hentes fra en relasjonsdatabase i sett bestående av data fra flere tupler og / eller flere tabeller. Denne regelen forklarer at innsettings-, oppdaterings- og slettingsoperasjoner skal støttes både for grupper med tupler fra flere tabeller og bare for en enkelt tuple fra en enkelt tabell. Regel 8 Fysisk uavhengighet  : Endringer på det fysiske nivået (hvordan data lagres, enten det er i rader eller koblede lister osv.) Krever ikke endring i et program basert på strukturer. Regel 9 Logisk uavhengighet  : Endringer på det logiske nivået (tabeller, kolonner, rader osv.) Bør ikke kreve endring i det strukturbaserte programmet. Logisk datauavhengighet er vanskeligere å oppnå enn fysisk datauavhengighet. Regel 10 Integritetsuavhengighet  : Integritetsbegrensninger må spesifiseres separat fra applikasjonsprogrammer og lagres i katalogen. Det bør være mulig å endre slike begrensninger over tid uten å unødvendig påvirke eksisterende applikasjoner. Regel 11 Distribusjonsuavhengighet  : Distribusjonen av deler av databasen til forskjellige steder bør være usynlig for databasebrukerne. Eksisterende applikasjoner skal fortsette å fungere vellykket:
  1. når en distribuert versjon av databasestyringssystemet først presenteres; og
  2. når eksisterende data blir distribuert i systemet.
Regel 12 Regelen om ikke-subversion  : Hvis systemet gir et grensesnitt på lavt nivå, må dette grensesnittet ikke tillate at systemet blir omgått (for eksempel en relasjonell sikkerhets- eller integritetsbegrensning).

Noen ganger vurderer vi en regel 0, som bestemmer at alle funksjonene til RDBMS må være tilgjengelige med relasjonsmodellen. Codd formulerte ytterligere seks regler i 1990.

Referanser

  1. Edgar Frank Codd , “  Er DBMS virkelig relasjonelt?  ", ComputerWorld ,14. oktober 1985.
  2. Edgar Frank Codd , “  Kjører DBMS etter reglene,  ” ComputerWorld ,21. oktober 1985.

Se også