Funktionellt beroende (programmering)

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 30 juni 2018; kontroller kräver 13 redigeringar .

Funktionellt beroende  är ett binärt förhållande mellan uppsättningar av attribut för en given relation och är i själva verket en en-till-många-relation. Dess användning beror på det faktum att det tillåter dig att formellt och strikt lösa många problem.

Funktionellt beroende är ett koncept som ligger till grund för många frågor relaterade till relationsdatabaser , inklusive i synnerhet deras design.

Definitioner

Funktionellt beroende

Låt en relation ges med ett schema (header) , och  vara några delmängder av relationens attributuppsättning . En uppsättning är funktionellt beroende av om och endast om varje värde i uppsättningen är associerat med exakt ett värde av uppsättningen . Utsedda .

Med andra ord, om två tupler har samma värde i , då har de samma värde i .

I det här fallet är  determinanten  den beroende delen.

Ett funktionellt beroende sägs vara trivialt om den beroende delen är en delmängd av determinanten.

Stänga en uppsättning beroenden

Vissa funktionella beroenden kan innebära andra funktionella beroenden. Till exempel funktionellt beroende,

.

Uppsättningen av alla funktionella beroenden som impliceras av en given uppsättning av funktionella beroenden kallas stängningen av uppsättningen .

Attributuppsättning stängning

Låt vara  en uppsättning av attribut för relationen , och  vara uppsättningen av funktionella beroenden av denna relation. Stängningen av uppsättningen attribut inom gränserna är en sådan uppsättning av alla attribut i relationen att det funktionella beroendet är en medlem av stängningen .

Oreducerbara uppsättningar av beroenden

Låt och  vara några uppsättningar av funktionella beroenden.

Stängningsutvärdering

Armstrongs slutledningsregler

1974 föreslog William Armstrong en uppsättning regler för att sluta sig till nya funktionella beroenden från data.

Låt oss säga att vi har en relation och en uppsättning attribut . För att förkorta posten skriver vi helt enkelt istället .

Armstrongs slutledningsregler är kompletta (med hjälp av dem kan man härleda alla andra funktionella beroenden som impliceras av den givna mängden) och tillförlitliga ("överflödiga" funktionella beroenden kan inte härledas: det härledda funktionella beroendet är giltigt var de ursprungliga funktionella beroenden än var (från vilka det var härledda) är giltiga).

Dessutom härleds flera ytterligare regler helt enkelt från dessa regler, vilket förenklar uppgiften att härleda funktionella beroenden.

Teorem: Ett funktionellt beroende härleds från en given uppsättning funktionella beroenden enligt Armstrongs slutledningsregler om och endast om .

Attributuppsättning stängning

Om vi ​​tillämpar reglerna från föregående avsnitt tills skapandet av nya funktionella beroenden stoppar av sig själv, får vi en stängning för en given uppsättning funktionella beroenden. I praktiken är det sällan nödvändigt att beräkna denna stängning av sig själv, oftast är vi mycket mer intresserade av att veta om det eller det funktionella beroendet kommer att ingå i stängningen. För att göra detta räcker det för oss att beräkna stängningen av determinanten. Det finns en ganska enkel algoritm för detta.

  1. Låt vara  en uppsättning attribut som så småningom kommer att bli en stängning.
  2. Vi söker efter funktionella beroenden av formen , var och . Vi lägger till den beroende delen av varje hittat beroende till .
  3. Upprepa steg 2 tills det är omöjligt att lägga till attribut till uppsättningen.
  4. En uppsättning som inga attribut kan läggas till kommer att vara en stängning.

Applikation

Databasdesign

Funktionella beroenden är integritetsbegränsningar och definierar semantiken för data som lagras i databasen. Med varje uppdatering måste DBMS kontrollera deras överensstämmelse. Därför är närvaron av ett stort antal funktionella beroenden oönskad, annars saktar det ner arbetet. För att förenkla uppgiften är det nödvändigt att minska uppsättningen funktionella beroenden till det minimum som krävs.

Om är en irreducerbar täckning av den initiala uppsättningen av funktionella beroenden , då en kontroll av uppfyllandet av funktionella beroenden från garanterar automatiskt uppfyllandet av alla funktionella beroenden från . Således reduceras uppgiften att hitta den minsta nödvändiga uppsättningen till att hitta en irreducerbar täckning av uppsättningen funktionella beroenden, som kommer att användas istället för den ursprungliga uppsättningen.

Se även

Litteratur