Skip navigation

Specializáló kapcsolat leképezése relációsémává

Specializáló kapcsolat leképezése

A specializáló kapcsolatok egy hierachiát, "típusoltságot" (főtípust, altípust) jelölnek. Ezeket a kapcsolatokat kétféleképpen lehet leképezni. Lássuk az alábbi példát:

  1. Leképezzük a főtípus egyedet egy relációsémába, majd leképezzük az altípus egyedeket egy-egy relációsémába úgy, hogy feltüntetjük a főtípus összes attribútumát.
    Helyiség ( ajtószám, alapterület )
    Számítógépes terem (ajtószám, alapterület, számítógépek száma)
    Tanterem ( ajtószám, alapterület, van-e vetítő )

  2. Leképezzük a főtípus egyedet egy relációsémába, majd leképezzük az altípus egyedeket egy-egy relációsémába úgy, hogy a főtípus egyed kulcsát vesszük hozzá az egyedek attribútumaihoz.
    Helyiség (ajtószám, alapterület)
    Számítógépes terem (ajtószám, számítógépek száma)
    Tanterem (ajtószám, van-e vetítő)

Hogy melyik a jobb megoldás, arról lehet vitatkozni, leginkább azt kell végiggondolni, hogy a milyen adatra vonatkoznak majd a leggyakoribb lekérdezések és módosítások, és mennyi adatot fognak tárolni ezek a táblák. Ha kevés beszúrás és módosítás érinti ezeket a táblákat és sok lekérdezést hajtunk rajtuk végre, akkor az első megoldás a jobb, mert többnyire elegendő lesz csak az egyik táblát beolvasni. Ha viszont - tegyük fel - lenne a helyiségekhez egy "kulcsot vitte", vagy utolsó "tűzvédelmi ellenőrzés időpontja", attribútum, akkor a második megoldás lenne célravezetőbb, mert akkor ezek az értékek csak Helyiség táblában játszanak fontos szerepet, viszonylag gyakran módosulnak, és akkor nem kellene minden táblában módosítani ezeket az értékeket. Ezen kívül a lekérdezésnél sem fontos az adott terem tanterem vagy számítógépes terem.