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. 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. 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 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. 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. 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: Trivial funksjonelle avhengigheter
Fulle funksjonelle avhengigheter
Transitiv avhengighet
Multivalued Dependence
Betydningen av avhengighet