Skip to main content

En guide til forståelse af databaseafhængigheder

Hvad er en database? (April 2025)

Hvad er en database? (April 2025)
Anonim

En afhængighed er en begrænsning, der gælder for eller definerer forholdet mellem attributter. Det forekommer i en database, når oplysninger, der er gemt i den samme database tabel, bestemmer unikt andre oplysninger, der er gemt i samme tabel. Du kan også beskrive dette som et forhold, hvor man ved at kende værdien af ​​en attribut (eller et sæt attributter) er nok til at fortælle værdien af ​​en anden attribut (eller sæt attributter) i samme tabel.

Database afhængigheder forveksler ofte både studerende og databasepersonale. Heldigvis er de ikke så komplicerede, som de kan synes. De kan bedst forklares ved hjælp af et par eksempler. Her undersøger vi almindelige databaseafhængighedstyper.

Database afhængigheder og funktionelle afhængigheder

At sige, at der er en afhængighed mellem attributter i et bord, er det samme som at sige, at der er en funktionel afhængighed mellem disse attributter. Hvis der er en afhængighed i en database, sådan at attribut B er afhængig af attributt A, ville du skrive dette som:

A -> B

For eksempel kan i en tabel med medarbejderegenskaber, herunder Social Security Number (SSN) og navn, siges, at navnet er afhængigt af SSN (eller SSN -> navn), fordi en medarbejders navn kan være unikt bestemt af en SSN. Den omvendte erklæring (navn -> SSN) er dog ikke sandt, fordi mere end én medarbejder kan have samme navn, men altid har forskellige SSN'er.

Trivial funktionelle afhængigheder

En triviel funktionel afhængighed opstår, når du beskriver en funktionel afhængighed af en attribut på en samling af attributter, der indeholder den oprindelige attribut. For eksempel er {A, B} -> B en triviel funktionel afhængighed, som det er {navn, SSN} -> SSN. Denne type funktionel afhængighed kaldes trivial, fordi den kan stamme fra sund fornuft. Det er indlysende, at hvis du allerede kender værdien af ​​B, så kan værdien af ​​B være entydigt bestemt af den viden.

Fuld funktionelle afhængigheder

En fuld funktionel afhængighed opstår, når du allerede opfylder kravene til en funktionel afhængighed, og sæt af attributter på venstre side af den funktionelle afhængighedserklæring kan ikke reduceres yderligere. For eksempel er {SSN, alder} -> navn en funktionel afhængighed, men det er ikke en fuld funktionel afhængighed, fordi du kan fjerne alder fra venstre side af udsagnet uden at påvirke afhængighedsforholdet.

Transitive afhængigheder

Transitive afhængigheder opstår, når der er et indirekte forhold, der forårsager en funktionel afhængighed. For eksempel er A -> C en transitiv afhængighed, når den kun er sand, fordi både A -> B og B -> C er sande.

Multivalente afhængigheder

Multivalente afhængigheder opstår, når tilstedeværelsen af ​​en eller flere rækker i en tabel indebærer tilstedeværelsen af ​​en eller flere andre rækker i samme tabel. Forestil dig for eksempel en bilvirksomhed, der fremstiller mange bilmodeller, men gør altid både røde og blå farver på hver model. Hvis du har et bord, der indeholder modelnavn, farve og år for hver bil, som firmaet fremstiller, er der en multivalued afhængighed i den tabel. Hvis der er en række til et bestemt modelnavn og år i blåt, skal der også være en tilsvarende række svarende til den røde version af den samme bil.

Betydningen af ​​afhængigheder

Database afhængigheder er vigtige at forstå, fordi de giver de grundlæggende byggesten, der bruges i databasen normalisering, processen med effektivt at organisere data i en database. For eksempel:

  • For at et bord skal være i anden normal form (2NF), må der ikke være noget tilfælde af en nonprime-attribut i tabellen, der er funktionelt afhængig af en delmængde af en kandidatnøgle.
  • For at et bord skal være i tredje normale form (3NF), skal alle nonprime attributter have en ikke-transitiv funktionel afhængighed af hver kandidatnøgle.
  • For at et bord skal være i Boyce-Codd Normal Form (BCNF), skal hver funktionel afhængighed (bortset fra trivielle afhængigheder) være på en superkey.
  • For at et bord skal være i fjerde normal form (4NF), må det ikke have flere multivalente afhængigheder.