A hierarchikus adatmodell olyan adatmodell , amely egy adatbázis -ábrázolást használ különböző szintű objektumokból ( adatokból ) álló fa ( hierarchikus ) struktúra formájában .
Az objektumok között vannak kapcsolatok, minden objektum több, alacsonyabb szintű objektumot is tartalmazhat. Az ilyen objektumok egy őshöz (a gyökérhez közelebb álló objektumhoz) viszonyulnak egy gyermekhez (alacsonyabb szintű objektum), míg lehetséges, hogy az ősobjektumnak több gyermeke van, míg a gyermek objektumnak csak egy őse kell, hogy legyen. Azokat az objektumokat, amelyeknek közös ősük van, ikreknek nevezzük (a programozásban az adatstruktúrával kapcsolatban a fát testvéreknek nevezzük).
A hierarchikus adatbázisok a legrégebbiek közé tartoznak, és ezek voltak az első nagyszámítógépes adatbázis-kezelő rendszerek . Az 1950-es és 1960-as években fejlesztették ki például az IBM Information Management System (IMS) [1] által .
Például, ha egy hierarchikus adatbázis információkat tartalmaz az ügyfelekről és rendeléseikről, akkor lesz egy vevőobjektum (szülő) és egy rendelési objektum (gyermek). A vevőobjektum minden vásárlótól mutat mutatót az ügyfél rendeléseinek fizikai helyére a rendelési objektumban .
Ebben a modellben a hierarchia lekérdezése egyszerű (például, hogy mely rendelések tartoznak ehhez az ügyfélhez). A hierarchiában felfelé irányuló lekérdezés azonban összetettebb (például, hogy melyik ügyfél adta le ezt a megrendelést). Ezenkívül nehéz a nem hierarchikus adatokat ábrázolni ennek a modellnek a használatakor.
A hierarchikus adatbázis egy gyökérkönyvtárból álló fájlrendszer, amely alkönyvtárak és fájlok hierarchiájával rendelkezik.
A hierarchikus adatmodell fő információs egységei a szegmens és a mező. Az adatmező a felhasználó számára elérhető legkisebb oszthatatlan adategység. Egy szegmenshez egy szegmenstípus és egy szegmenspéldány van meghatározva. Egy szegmenspéldány meghatározott adatmezőértékekből jön létre. A szegmenstípus adatmezőtípusainak elnevezett gyűjteménye.
A hálózathoz hasonlóan a hierarchikus adatmodell is az adatkonstrukció gráfformáján alapul, fogalmi szinten pedig csak egy speciális esete a hálózati adatmodellnek. A hierarchikus adatmodellben a grafikon teteje egy szegmenstípusnak vagy csak egy szegmensnek, az íveknek pedig a szülő-gyermek kapcsolatok típusainak felel meg. A hierarchikus struktúrákban a leszármazott szegmensnek pontosan egy szülőnek kell lennie.
A hierarchikus modell egy fastruktúra összefüggő irányítatlan gráfja , amely szegmenseket kombinál. A hierarchikus adatbázis fák rendezett halmazából áll.
A hierarchikus modell keretein belül megkülönböztetik az adatleíró nyelvi eszközöket (DDL) és az adatmanipulációs eszközöket (DML). Minden fizikai adatbázist operátorok csoportja ír le, amelyek meghatározzák a logikai szerkezetét és az adatbázis tárolási struktúráját is. Ebben az esetben a hozzáférési módszer határozza meg a fizikai rekordok kapcsolódási módját.
A következő hozzáférési módszerek vannak meghatározva:
Az adatbázisnév és a hozzáférési mód megadása mellett a leírásoknak tartalmazniuk kell az adatbázist alkotó szegmenstípusok definícióit, a hierarchiának megfelelően, a gyökérszegmenstől kezdve. Minden fizikai adatbázis csak egy gyökérszilánkot tartalmaz, de egy rendszernek több fizikai adatbázisa is lehet.
Az adatmanipulációs operátorok közé tartoznak az adatkereső operátorok, a módosítási lehetőséggel rendelkező adatkereső operátorok és az adatmódosító operátorok. Az adatkezelési műveletek halmaza egy hierarchikus adatbázisban kicsi, de eléggé elegendő.
Példák tipikus adatkeresési operátorokra, módosítási lehetőséggel:
Példák tipikus módosító operátorokra hierarchikusan rendezett adatokhoz, amelyek a második csoport valamelyik operátorának végrehajtása után futnak le (adatkeresés módosítási lehetőséggel):
Egy hierarchikus modellben a hivatkozási integritás automatikusan megmarad az ősök és a leszármazottak között. Alapszabály: egyetlen gyerek sem létezhet szülője nélkül.
Példák a hierarchikus modellt tartalmazó adatbázisokra: [2] :
A koncepcionális modell átalakítása hierarchikus adatstruktúrává sok tekintetben hasonlít a hálózati modellre való konvertáláshoz , de van néhány eltérése is abból a tényből adódóan, hogy a hierarchikus modell megköveteli, hogy minden adatot fa formájába kell rendezni.
Egy ős és leszármazott közötti egy-a-többhöz kapcsolat átalakulása szinte automatikus, ha a leszármazottnak egyetlen őse van, és ez a következőképpen történik. Minden objektum attribútumaival, amely részt vesz egy ilyen kapcsolatban, logikai szegmenssé válik. Egy a többhez kapcsolat jön létre két logikai szegmens között. A „sok” oldali szegmensből gyermek, az „egy” oldali szegmensből pedig ős lesz.
Sokkal bonyolultabbá válik a helyzet, ha a leszármazottnak nem egy, hanem két vagy több őse van kapcsolatban. Mivel egy hierarchikus modellnél egy ilyen helyzet nem lehetséges, a tükrözött adatstruktúra átalakításokat igényel, ami ahhoz vezet, hogy például egy fát kettőre cserélünk (ha két őse van). Egy ilyen átalakítás eredményeként redundancia jelenik meg az adatbázisban, hiszen ebből a helyzetből az egyetlen lehetséges kiút az adatkettőzés.
Adatbázis | |
---|---|
Fogalmak |
|
Objektumok |
|
Kulcsok | |
SQL |
|
Alkatrészek |