Skip to main content

En veiledning for å forstå databaseavhengigheter

Brille | Hva er mest irriterende på Facebook? | TVNorge (April 2025)

Brille | Hva er mest irriterende på Facebook? | TVNorge (April 2025)
Anonim

En avhengighet er en begrensning som gjelder for eller definerer forholdet mellom attributter. Det oppstår i en database når informasjon lagret i den samme databasetabellen, bestemmer unikt annen informasjon som er lagret i samme tabell. Du kan også beskrive dette som et forhold der det å kjenne verdien av ett attributt (eller et sett med attributter) er nok til å fortelle verdien av et annet attributt (eller sett av attributter) i samme tabell.

Databaseavhengigheter forveksler ofte både studenter og databasepersonell. Heldigvis er de ikke så kompliserte som de kan virke. De kan best forklares ved hjelp av noen få eksempler. Her undersøker vi vanlige typer av databaser.

Databaseavhengigheter og funksjonelle avhengigheter

Å si at det er en avhengighet mellom attributter i et bord, er det samme som å si at det er en funksjonell avhengighet mellom disse egenskapene. Hvis det er en avhengighet i en database slik at attributt B er avhengig av attributt A, vil du skrive dette som:

A -> B

For eksempel, i en tabell som viser ansattes egenskaper, inkludert SSN og navn, kan det sies at navnet er avhengig av SSN (eller SSN -> navn) fordi en ansattes navn kan unikt bestemmes fra en SSN. Den omvendte setningen (navn -> SSN) er imidlertid ikke sant fordi flere enn en ansatt kan ha samme navn, men har alltid forskjellige SSN-er.

Trivial funksjonelle avhengigheter

En triviell funksjonell avhengighet oppstår når du beskriver en funksjonell avhengighet av et attributt på en samling av attributter som inkluderer det opprinnelige attributtet. For eksempel er {A, B} -> B en triviell funksjonell avhengighet, som er {name, SSN} -> SSN. Denne typen funksjonell avhengighet kalles trivial fordi den kan stamme fra sunn fornuft. Det er åpenbart at hvis du allerede vet verdien av B, kan verdien av B unikt bestemmes av den kunnskapen.

Fulle funksjonelle avhengigheter

En full funksjonell avhengighet oppstår når du allerede oppfyller kravene til en funksjonell avhengighet, og settet av attributter på venstre side av funksjonell avhengighetserklæring kan ikke reduseres ytterligere. For eksempel er {SSN, alder} -> navn en funksjonell avhengighet, men det er ikke en fullstendig funksjonell avhengighet fordi du kan fjerne alder fra venstre side av setningen uten å påvirke avhengighetsforholdet.

Transitiv avhengighet

Transitiv avhengighet oppstår når det er et indirekte forhold som forårsaker en funksjonell avhengighet. For eksempel er A -> C en transitiv avhengighet når den er sant bare fordi både A -> B og B -> C er sanne.

Multivalued Dependence

Multivalgerte avhengigheter oppstår når tilstedeværelsen av en eller flere rader i et bord innebærer tilstedeværelse av en eller flere andre rader i samme tabell. For eksempel, tenk på et bilfirma som produserer mange modeller av bil, men gjør alltid både røde og blå farger på hver modell. Hvis du har et bord som inneholder modellnavn, farge og år for hver bil produserer selskapet, er det en multivalued avhengighet i den tabellen. Hvis det er en rad for et bestemt modellnavn og år i blått, må det også være en lignende rad som svarer til den røde versjonen av den samme bilen.

Betydningen av avhengighet

Databaseavhengigheter er viktige å forstå fordi de gir de grunnleggende byggeblokkene som brukes i databasen normalisering, prosessen med å organisere data effektivt i en database. For eksempel:

  • For at et bord skal være i andre normale formularer (2NF), må det ikke være tilfelle av et nonprime-attributt i tabellen som er funksjonelt avhengig av en delmengde av en kandidatnøkkel.
  • For at et bord skal være i tredje normale form (3NF), må hver nonprime-attributt ha en uavhengig funksjonell avhengighet av hver kandidatnøkkel.
  • For et bord å være i Boyce-Codd Normal Form (BCNF), må hver funksjonell avhengighet (unntatt trivielle avhengigheter) være på en supernøkkel.
  • For at et bord skal være i fjerde normal form (4NF), må det ikke ha flere multivalente avhengigheter.