2.4.3. Tranzitív függőség
Tranzitív függőség
Az S tranzitíven függ P-től, ha létezik olyan QA,
hogy P → Q, Q → S, de visszafelé nem igazak a függőségek.
Példák:
- DOLGOZÓ {szemszám, név, osztkód, osztelnev}
- RENDELÉSFEJ {rendszám, vkód, vevőnév, vevőcím, kelt, határidő, összérték}
- LÁTOGATÓK {azonosító, név, cég, cégnév, cégcím, cégtel}
A fenti 3 különálló tábla mindegyike redundáns, mert tranzitív függőség van bennük.
A Dolgozóban az osztály elnevezése függ tranzitíven a kulcstól, mégpedig az osztály kódján keresztül. Minden dolgozó valamelyik egyetlen osztályon dolgozik, de többen dolgoznak ugyanazon az osztályon, így több dolgozó mellett ugyanazt az elnevezést tároljuk. Az osztelnev tulajdonság tehát nem maradhat a Dolgozó táblában.
A Rendelésfejben pedig a vevőnév és vevőcím tárolódik feleslegesen sokszor, mert egy vevőnek több rendelésszáma is lehet. A rendszám egyértelműen meghatározza a vevő kódját, attól pedig a vevő törzsadatai függnek teljesen.
A Látogatók táblában pedig a cég törzsadatainak nincs helyük, hiszen a kulcstól tranzitíven függnek a cég kódján keresztül. Valóban több látogatónk is lehet ugyanattól a cégtől, tehát a cég nevét, címét és telefonját nem illik minden dolgozó mellett tárolni.
A következő fejezetben pontosítjuk a részleges és tranzitív függés kiszűrésének menetét, de addig fogadjuk el, hogy a Dolgozóba csak az osztkód kerülhetne az osztályadatok közül, a Rendelésfejbe pedig csak a vkód a vevőadatok közül, illetve a Látogatókba csak a cég a cégadatok közül. A többi leíróval nem volt gond.