Hierarkkinen tietomalli on tietomalli , joka käyttää tietokantaesitystä puu ( hierarkkinen ) rakenteen muodossa, joka koostuu eri tasoisista objekteista ( tiedoista ).
Objektien välillä on linkkejä, jokainen objekti voi sisältää useita alemman tason kohteita. Tällaiset objektit ovat suhteessa esi-isään (juurta lähempänä olevaan esineeseen) lapseen (alemman tason esineeseen), kun taas on mahdollista, että esi-isillä on useita lapsia, kun taas lapsiobjektilla täytyy olla vain yksi esi-isä. Objekteja, joilla on yhteinen esi-isä, kutsutaan kaksosiksi (ohjelmoinnissa tietorakenteen suhteen puuta kutsutaan veljiksi).
Hierarkkiset tietokannat ovat vanhimpia ja olivat ensimmäisiä keskustietokoneiden tietokantojen hallintajärjestelmiä . Sen on kehittänyt 1950- ja 1960-luvuilla esimerkiksi IBM :n tietohallintajärjestelmä (IMS) [1] .
Jos esimerkiksi hierarkkinen tietokanta sisältäisi tietoja asiakkaista ja heidän tilauksistaan, siellä olisi asiakasobjekti (emo) ja tilausobjekti (lapsi). Asiakasobjektissa on osoittimet jokaiselta asiakkaalta asiakkaan tilausten fyysiseen sijaintiin tilausobjektissa .
Tässä mallissa kysely hierarkiaa alaspäin on yksinkertaista (esimerkiksi mitkä tilaukset kuuluvat tälle asiakkaalle). Hierarkiassa ylöspäin suunnattu kysely on kuitenkin monimutkaisempi (esimerkiksi mikä asiakas teki tämän tilauksen). Lisäksi ei-hierarkkista dataa on vaikea esittää tätä mallia käytettäessä.
Hierarkkinen tietokanta on tiedostojärjestelmä, joka koostuu juurihakemistosta, jossa on alihakemistojen ja tiedostojen hierarkia.
Tärkeimmät tietoyksiköt hierarkkisessa tietomallissa ovat segmentti ja kenttä. Tietokenttä määritellään pienimmäksi jakamattomaksi käyttäjän käytettävissä olevaksi datayksiköksi. Segmentille määritetään segmentin tyyppi ja segmentin esiintymä. Segmentti-ilmentymä muodostetaan tietyistä tietokenttäarvoista. Segmenttityyppi on nimetty kokoelma sen tietokenttätyyppejä.
Kuten verkko, myös hierarkkinen tietomalli perustuu datakonstruktion graafiseen muotoon, ja käsitteellisellä tasolla se on vain verkkotietomallin erikoistapaus. Hierarkkisessa tietomallissa kaavion yläreuna vastaa segmenttityyppiä tai vain segmenttiä ja kaaret vanhempi-lapsi-suhteiden tyyppejä. Hierarkkisissa rakenteissa jälkeläissegmentillä on oltava täsmälleen yksi vanhempi.
Hierarkkinen malli on yhdistetty suuntaamaton graafi puurakenteesta, joka yhdistää segmenttejä. Hierarkkinen tietokanta koostuu järjestetystä joukosta puita.
Hierarkkisen mallin puitteissa erotetaan datan kuvauskielityökalut (DDL) ja datan manipulointityökalut (DML). Jokaisen fyysisen tietokannan kuvaa joukko operaattoreita, jotka määrittävät sekä sen loogisen rakenteen että tietokannan tallennusrakenteen. Tässä tapauksessa pääsymenetelmä määrittää tavan, jolla fyysiset tietueet liittyvät toisiinsa.
Seuraavat pääsytavat on määritelty:
Tietokannan nimen ja pääsytavan määrittämisen lisäksi kuvauksissa tulee sisältää määritelmät tietokannan muodostavien segmenttien tyypeistä hierarkian mukaisesti juurisegmentistä alkaen. Jokainen fyysinen tietokanta sisältää vain yhden juurisirpaleen, mutta järjestelmässä voi olla useita fyysisiä tietokantoja.
Tiedonkäsittelyoperaattoreita ovat tiedonhakuoperaattorit, tiedonhakuoperaattorit, joissa on muokkausmahdollisuus, ja tiedonmuokkausoperaattorit. Tietojenkäsittelyoperaatioiden joukko hierarkkisessa tietokannassa on pieni, mutta varsin riittävä.
Esimerkkejä tyypillisistä tiedonhakuoperaattoreista, joita voidaan muokata:
Esimerkkejä tyypillisistä muokkausoperaattoreista hierarkkisesti järjestetylle datalle, jotka suoritetaan toisen ryhmän jonkin operaattorin suorittamisen jälkeen (tietohaku muokkausmahdollisuudella):
Hierarkkisessa mallissa referenssieheys säilyy automaattisesti esivanhempien ja jälkeläisten välillä. Perussääntö: yksikään lapsi ei voi olla olemassa ilman vanhempiaan.
Esimerkkejä tietokannoista, joissa on hierarkkinen malli, ovat [2] :
Käsitteellisen mallin muuntaminen hierarkkiseksi tietorakenteeksi on monella tapaa samanlaista kuin sen muuntaminen verkkomalliksi , mutta siinä on myös joitain eroja, koska hierarkkinen malli edellyttää kaiken tiedon järjestämistä puun muotoon.
Esivanhemman ja jälkeläisen välinen yksi-moneen -suhteen muutos on lähes automaattista, jos jälkeläisellä on yksi esi-isä, ja tämä tapahtuu seuraavasti. Jokaisesta objektista ominaisuuksineen, joka osallistuu tällaiseen suhteeseen, tulee looginen segmentti. Kahden loogisen segmentin välille muodostetaan yksi-moneen -suhde. "Monen" puolen segmentistä tulee lapsi, ja "yhden" puolen segmentistä tulee esi-isä.
Tilanne muuttuu paljon monimutkaisemmaksi, jos jälkeläisellä ei ole yksi, vaan kaksi tai useampi esi-isä yhteydessä. Koska tällainen tilanne on hierarkkiselle mallille mahdoton, heijastuva tietorakenne tarvitsee muunnoksia, jotka päätyvät esimerkiksi yhden puun korvaamiseen kahdella (jos esi-isiä on kaksi). Tällaisen muunnoksen seurauksena tietokantaan ilmestyy redundanssi, koska ainoa mahdollinen ulospääsy tästä tilanteesta on tietojen päällekkäisyys.
Tietokanta | |
---|---|
Käsitteet |
|
Objektit |
|
Avaimet | |
SQL | |
Komponentit |