Ett beroende är en begränsning som gäller för eller definierar förhållandet mellan attribut. Det förekommer i en databas när information som lagras i samma databastabell bestämmer unikt annan information som lagras i samma tabell. Du kan också beskriva detta som ett förhållande där man känner till värdet av ett attribut (eller en uppsättning attribut) är tillräckligt för att berätta värdet av ett annat attribut (eller uppsättning attribut) i samma tabell.
Databasberoende förvirrar ofta både studenter och databaspersonal. Lyckligtvis är de inte så komplicerade som de kan tyckas. De kan bäst förklaras med några exempel. Här ska vi undersöka vanliga typer av databasberoende.
Databasberoende och funktionshinder
Att säga att det finns ett beroende mellan attribut i en tabell är detsamma som att det finns ett funktionellt beroende mellan dessa attribut. Om det finns ett beroende i en databas så att attribut B är beroende av attribut A, skulle du skriva detta som:
A -> B
Till exempel kan det sägas att ett namn enligt SSN (eller SSN -> namn) i en tabell med anställdas egenskaper, inklusive SSN (Social Security Number) och namn, kan bero på att en anställds namn kan fastställas unikt från en SSN. Det omvända uttalandet (namn -> SSN) är emellertid inte sant eftersom mer än en anställd kan ha samma namn men alltid ha olika SSN. Ett trivialt funktionellt beroende uppstår när du beskriver ett funktionellt beroende av ett attribut på en samling attribut som innehåller det ursprungliga attributet. Till exempel är {A, B} -> B ett trivialt funktionellt beroende, vilket är {name, SSN} -> SSN. Denna typ av funktionellt beroende kallas trivialt eftersom det kan härledas från sunt förnuft. Det är uppenbart att om du redan vet värdet av B, kan värdet av B vara unikt bestämt av den kunskapen. Ett fullständigt funktionellt beroende uppstår när du redan uppfyller kraven för ett funktionellt beroende och uppsättningen attribut på vänster sida av funktionsberoende uttalandet kan inte minskas ytterligare. Exempelvis är {SSN, ålder} -> namn ett funktionellt beroende, men det är inte ett fullständigt funktionellt beroende eftersom du kan ta bort ålder från vänster sida av uttalandet utan att påverka beroendeförhållandet. Transitiva beroenden uppträder när det finns ett indirekt förhållande som orsakar ett funktionellt beroende. Till exempel är A -> C ett transitivt beroende när det är sant bara eftersom både A -> B och B -> C är sanna. Multivalenta beroenden uppträder när närvaron av en eller flera rader i ett bord innebär att en eller flera andra rader finns i samma tabell. Tänk dig exempelvis ett bilföretag som tillverkar många modeller av bil, men gör alltid både röda och blåa färger i varje modell. Om du har ett bord som innehåller modellnamn, färg och år för varje bil tillverkar företaget, finns det ett multivalent beroende i den tabellen. Om det finns en rad för ett visst modellnamn och år i blått, måste det också finnas en liknande rad som motsvarar den röda versionen av samma bil. Databasberoende är viktiga att förstå eftersom de tillhandahåller de grundläggande byggstenarna som används i databas normalisering, processen för att organisera data effektivt i en databas. Till exempel: Trivial Funktionella Beroenden
Fullständiga funktionella beroenden
Transitiva beroende
Multivalenta beroende
Betydelsen av beroende