Hierarhiline andmebaasimudel: määratlus, omadused ja näited

Määratlus ja struktuur

Hierarhiline andmebaasimudel on andmemudel, kus andmed on organiseeritud puustruktuurina. Iga kirje (sõlme) koht ja tähendus määratakse tema positsiooni järgi puus: on olemas vanem- ja lapsseosed, kus iga vanem võib omada mitut last, kuid igal lapsel on ainult üks otsene vanem. Selle mudeli puhul grupeeritakse ühe entiteeditüübi kõik atribuudiandmed üheks objektiks ehk olemitüübiks.

Hierarhilises mudelis vastab olemitüüp klassikalisele tabelile: iga üksik kirje on kui rida ja iga atribuudi väärtus veerg. Olemitüübid on omavahel seotud 1: N ehk üks-mitmele suhete kaudu — seosed on suunatud ja puuvõrgu kujulised.

Olulised omadused

  • Üks-vanem piirang: iga lapsseos võib omada ainult ühte vanemat.
  • Hierarhia: andmed peegelduvad loogilises vanem-laps-korralduses (nt kaustad ja alamkaustad).
  • Rekureerimine ja navigeerimine: andmete päringud ja ligipääs põhinevad puul kõndimisel (traversal), mitte alati deklaratiivsel päringul nagu SQL-is).
  • Tihe rambivaldbus: seotud andmed on sageli füüsiliselt või loogiliselt koondatud, mis võib kiirendada hierarhiliste päringute läbiviimist.

Eelised

  • Lihtne ja intuitiivne struktuur loogiliste hierarhiate jaoks (nt organisatsiooniskeemid, kataloogid).
  • Kiire juurdepääs vanem-laps-ahelatele — sobib hästi olukordadesse, kus andmeid loetakse peamiselt hierarhilises järjekorras.
  • Vähem keerukust, kui andmete loogika on looduse poolest rangelt hierarhiline.
  • Mõned süsteemid (nt registrid ja konfiguratsioonihalduse andmehoidlad) on hierarhilise mudeli tõttu väga efektiivsed ja lihtsad hallata.

Puudused

  • Paindumatuse puudumine: raske modelleerida mõõtmetega või paljude ühe-toa-mitme (many-to-many) suhetega andmeid ilma andmete duplitseerimiseta.
  • Andmete kordus: samade andmete hoidmine mitmes puu kohas võib tekitada duplikaate ja terviklikkuse probleeme.
  • Skemamuutused: skeemi või struktuuri muutmine võib nõuda suuremahulist ümberkorraldust või migratsiooni.
  • Päringute piirangud: navigeerimistel põhinevad päringud võivad olla keerukad, kui on vaja koostada keerulisemaid seotud otsinguid, mida relatsioonitabelis oleks lihtsam teha SQL-iga.

Näited ja kasutusjuhtumid

Kõige tuntumad hierarhilised andmebaasid on IBMi poolt välja töötatud IMS ja Microsofti poolt välja töötatud Windows Registry. Neid kasutatakse tüüpiliselt süsteemide konfiguratsiooni, metadata ja kiire navigeeritava informatsiooni hoidmisel.

Muud hierarhilise lähenemise näited (kontseptsioonina):

  • Failisüsteemid: kataloogid ja alamkataloogid.
  • Organisatsioonidiagrammid: ettevõtte — osakond — meeskond — töötaja.
  • XML ja JSON dokumendid: puustruktuurid, mis esindavad sildistatud andmeid.
  • Registrid ja konfiguratsioonipuu: süsteemi seaded, mis on hierarhiliselt struktureeritud.

Lihtne näide

Kujutame andmebaasi, kus on organisatsioon: juhi all on osakonnad ja iga osakonna all töötajad. Hierarhiliselt:

  • Ettevõte
    • Turundus
      • Maria (Turundusjuht)
      • Jüri (Sisuturundaja)
    • Arendus
      • Liis (Vanemarendaja)
      • Kalev (Arendaja)

Sellises mudelis saab kiiresti leida kõik ühe osakonna töötajad, kuid kui töötaja peab kuuluma mitmesse osakonda, tekib piiratuse tõttu keerukus või andmete duplitseerimine.

Võrdlus relatsioonimudeliga

Relatsiooniline mudel kasutab tabeleid ja võõrvõtmeid (foreign keys) vormindamaks mõlemapoolseid suhteid ja mitmekülgseid ühendusi. Hierarhiline mudel on seevastu optimeeritud rangelt vanem-laps-suhetena ja ei toeta loomulikult mitut vanemat lapsel. Relatsiooniline mudel annab parema paindlikkuse ja deklaratiivse päringuvõime (SQL), kuid võib olla vähem efektiivne, kui põhitoimingud on eelkõige hierarhilised traversal-operatsioonid.

Kui kasutada hierarhilist mudelit?

  • Kui andmestruktuur on loomult puuline ja suhete keerukus on madal (peamiselt 1:N).
  • Kui vajalik on kiire navigeerimine hierarhilistest juurtest allapoole (nt konfiguratsiooni- ja registrisüsteemid).
  • Kui skemamuutused on harvad ja andmete duplitseerimine on hallatav või aktsepteeritud.

Kokkuvõte

Hierarhiline andmebaasimudel on selge, intuitiivne ja võimas, kui andmete loogika järgib puustruktuuri. See sobib hästi kiirete traversal-päringute ja hierarhiliste metaandmete hoidmiseks (näiteks IBMi IMS või Microsofti Windows Registry). Samas piiravad seda mudelit paindlikkus, rasked skemamuutused ja keerukamate suhete modelleerimise vajadus — olukordades, kus sobivam lahendus võib olla relatsiooniline mudel või tänapäevased dokumendipõhised NoSQL-andmebaasid.

Näide hierarhilisest mudelist.Zoom
Näide hierarhilisest mudelist.

Küsimused ja vastused

K: Mis on hierarhiline andmebaasi mudel?


V: See on andmemudel, kus andmed on organiseeritud nagu puu.

K: Kuidas on hierarhilises andmebaasi mudelis lubatud teabe kordamine?


V: Teabe kordamine on lubatud, kasutades vanem-laps-suhteid, kus igal vanemal võib olla palju lapsi, kuid igal lapsel on ainult üks vanem.

K: Mis on andmebaasis üksuse tüüp?


V: Entiteeditüüp on samaväärne tabeliga, kus on loetletud konkreetse kirje kõik atribuudid.

K: Kuidas on andmebaasis esitatud iga üksik kirje?


V: Iga üksik kirje on esitatud reana ja atribuut veergudena.

K: Kuidas on olemitüübid andmebaasis omavahel seotud?


V: Entiteeditüübid on omavahel seotud, kasutades 1:N seost, mida tuntakse ka kui üks-mitmele suhet.

K: Millised on kõige enam tunnustatud ja kasutatavad hierarhilised andmebaasid?


V: Kõige tuntumad ja kasutatavamad hierarhilised andmebaasid on IBMi poolt välja töötatud IMS ja Microsofti poolt välja töötatud Windows Registry.

K: Mis vahe on vanema ja lapse vahel hierarhilise andmebaasi mudelis?


V: Vanemal võib olla palju lapsi, kuid igal lapsel on ainult üks vanem.

AlegsaOnline.com - 2020 / 2025 - License CC3