kategória | ||||||||||
|
||||||||||
|
||
Sémakezelés és tárolási struktúrák hierarchikus adatbázisokban
1. Bevezetés
Szemben a hálós modellel ez az adatmodell úgymond "szervesen" alakult ki, nem egy bizottság munkájának eredménye. Például a hierarchikus adatmodellt használja az IMS (IBM), illetve a SYSTEM 2000 (egyetemi fejlesztés).
Alapötlete az, hogy próbáljuk meg a világ - esetleg vélt - hierarchiái mentén megszervezni a DB-t. Ilyen hierarchiát követnek az emberi szervezetek, közösségek, vagy a hierarchikus világmodellek (pl.: állatok).
A hierarchia többé-kevésbé olyan hálós modellnek tekinthető, melynek komponensei (felfelé) irányított gyökeres fák (azaz nem tartalmaz köröket). Az, hogy csak "többé-kevésbé" az, abból ered, hogy a kapcsolatok több-egy jellege rekord, és nem típus-szinten igaz.
Például: a film-színész kapcsolatban (több-több jellegű) annyi Marlon Brando-rekordot kell felvenni, ahány film van. Óhatatlan tehát a redundancia, amit úgy kell megoldani, hogy a valóságban csak egy igazi rekordot tartunk nyilván, a többi rekord pedig virtuális lesz.
2. A hierarchikus modell elemei
A rekordtípusokat téglalappal jelöljük, a kapcsolatot pedig egy vonal reprezentálja - nyíl és név nélkül (azaz automatikusan "felfele mutat").
Példa több-egy kapcsolatra:
Példa több-több kapcsolatra és hierarchikus megoldására:
És ugyanez hierarchikusan: a színész redundanciát hordoz
A navigáció mindig fentről lefelé
történik. Érdemes a gyökeret VRT-nek (virtuális
rekordtípusnak) választani.
Általánosan
Def.: Adatbázis rekord
Egy gyökér típusú rekord és leszármazottai együttesen egy adatbázis rekordot alkotnak.
Pl. a film és a benne szereplő színészek egy adatbázis rekordba tartoznak, vagy ugyanígy: a színész és a filmek, amelyben szerepel.
A tárolás alapegysége a hierarchikus modellben a DB-rekord.
Állítás: minden hálós séma átírható hierarchiákká (amely műveletben általában VRT-kre is szükség van).
Az állítás bizonyítását egy példán keresztül mutatjuk be:
Hálós séma -> hierarchia
Az átíráskor minden rekordtípust és nyilat ábrázolunk.
Kijelöljük az első gyökeret - ez általában egy nagy be-fokszámú rekordtípus. (Itt: A)
Az átalakítással gyakran nem kapunk "szép" fát, sokszor nem is lehet a feladatot egyetlen fával megoldani. Ezért célszerű vagy szükséges is lehet több gyökeret választani.
Hierarchia -> hálós séma
A módszer elvileg jó, de nem ad túl értelmes megoldást. (Hármas lépcsőben nemigen kérdezünk.)
3. A hierarchikus DDL
A hierarchikus DDL-ben irányított fákat írunk le:
TREE <fanév> <rekordtípusok leírása>
<rekordtípusok leírása> ::= <rekordnév> <információ>
<információ> ::=
Mezők: név, szint, típus, hossz
Hely a fában:
ROOT (gyökér)
PARENT <rekordnév> (szülő)
Virtualitás
virtuális: igen / nem
hol az eredetije
VIRTUAL <rekordnév> IN <fanév>
Példa: (3. melléklet)
4. Hierarchikus DML (DL/I) köv. tétel
Találat: 1736