Funkcionális függőség (programozás)

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. június 30-án áttekintett verziótól ; az ellenőrzések 13 szerkesztést igényelnek .

A funkcionális függőség  egy bináris kapcsolat egy adott kapcsolat attribútumkészletei között , és valójában egy a többhez kapcsolat. Használata annak a ténynek köszönhető, hogy lehetővé teszi számos probléma formális és szigorú megoldását.

A funkcionális függőség olyan fogalom, amely számos, a relációs adatbázisokkal kapcsolatos kérdés hátterében áll , beleértve különösen a tervezésüket.

Definíciók

Funkcionális függőség

Legyen egy reláció adott sémával (fejléc) , és  legyen a reláció attribútumkészletének néhány részhalmaza . Egy halmaz funkcionálisan attól függ , hogy a halmaz minden értéke pontosan a halmaz egy értékéhez van-e társítva . Kijelölve .

Más szóval, ha két sor azonos értékkel rendelkezik -ben , akkor azonos értéke van -ben .

Ebben az esetben a  determináns  a függő rész.

A funkcionális függőséget triviálisnak mondjuk, ha a függő rész a determináns részhalmaza.

Függőségcsoport bezárása

Egyes funkcionális függőségek más funkcionális függőségekre is utalhatnak. Például funkcionális függőség,

.

Az összes funkcionális függőség halmazát, amelyet a funkcionális függőségek adott halmaza tartalmaz , a halmaz lezárásának nevezzük .

Attribútumkészlet lezárása

Legyen  a reláció attribútumainak valamilyen halmaza , és  legyen ennek a relációnak a funkcionális függőségeinek halmaza. Az attribútumhalmaz határokon belüli zárása a reláció összes attribútumának olyan halmaza, hogy a funkcionális függőség a zárás tagja .

A függőségek irreducibilis halmazai

Legyen és  legyen néhány funkcionális függőségi halmaz.

Lezárás értékelése

Armstrong következtetési szabályai

1974-ben William Armstrong egy olyan szabályrendszert javasolt, amellyel az adatokból új funkcionális függőségekre lehet következtetni.

Tegyük fel, hogy van egy relációnk és egy attribútumkészletünk . A rekord lerövidítéséhez egyszerűen ezt fogjuk írni .

Armstrong következtetési szabályai teljesek (felhasználásukból származtathatóak az adott halmaz összes többi funkcionális függősége) és megbízhatóak ("felesleges" funkcionális függőségek nem vezethetők le: a származtatott funkcionális függőség mindenhol érvényes, ahol az eredeti funkcionális függőségek (ahonnan származott származtatott) érvényesek).

Ezenkívül számos további szabály egész egyszerűen levezethető ezekből a szabályokból, amelyek leegyszerűsítik a funkcionális függőségek levezetésének feladatát.

Tétel: A funkcionális függőségek adott halmazából az Armstrong-féle következtetési szabályok szerint akkor és csak akkor következtetünk funkcionális függőséget .

Attribútumkészlet lezárása

Ha az előző szakasz szabályait addig alkalmazzuk, amíg az új funkcionális függőségek létrehozása magától meg nem áll, akkor egy adott funkcionális függőségi halmazra egy lezárást kapunk. A gyakorlatban ritkán szükséges önmagában kiszámítani ezt a zárást, leggyakrabban sokkal inkább az érdekel minket, hogy ez vagy az a funkcionális függőség benne lesz-e a zárásban. Ehhez elég kiszámolnunk a determináns zárását. Erre van egy meglehetősen egyszerű algoritmus.

  1. Legyen  attribútumok halmaza, amely végül lezárássá válik.
  2. Megkeressük a , ahol és a formák funkcionális függőségeit . Minden talált függőség függő részét hozzáadjuk a -hoz .
  3. Addig ismételje a 2. lépést, amíg nem lehet attribútumokat hozzáadni a készlethez.
  4. Az a készlet , amelyhez nem lehet attribútumokat hozzáadni, lezárás lesz.

Alkalmazás

Adatbázis tervezés

A funkcionális függőségek integritási megkötések, és meghatározzák az adatbázisban tárolt adatok szemantikáját. A DBMS -nek minden frissítéskor ellenőriznie kell a megfelelőséget. Ezért a nagyszámú funkcionális függőség jelenléte nem kívánatos, ellenkező esetben lelassítja a munkát. A feladat egyszerűsítése érdekében szükséges a funkcionális függőségek halmazát a minimálisra csökkenteni.

Az If a funkcionális függőségek kezdeti halmazának redukálhatatlan fedője , akkor a funkcionális függőségek teljesülésének ellenőrzése -ból automatikusan garantálja az összes funkcionális függőség teljesülését -ból . Így a minimálisan szükséges halmaz megtalálásának feladata a funkcionális függőségek halmazának egy irreducibilis fedőjének megtalálására redukálódik, amelyet az eredeti halmaz helyett használunk.

Lásd még

Irodalom