Hierarkisk datamodell

En hierarkisk datamodell  är en datamodell som använder en databasrepresentation i form av en trädstruktur ( hierarkisk ) bestående av objekt ( data ) på olika nivåer.

Det finns länkar mellan objekt, varje objekt kan innehålla flera objekt på en lägre nivå. Sådana objekt är i relation till en förfader (ett föremål närmare roten) till ett barn (ett föremål på en lägre nivå), medan det är möjligt att förfaderobjektet har flera barn, medan det underordnade objektet bara måste ha en förfader. Objekt som har en gemensam förfader kallas tvillingar (i programmering, i förhållande till datastrukturen, kallas ett träd bröder).

Hierarkiska databaser är bland de äldsta och var de första hanteringssystemen för stordatordatabas . Utvecklat på 1950- och 1960-talen, till exempel av IBM :s Information Management System (IMS) [1] .

Exempel

Till exempel, om en hierarkisk databas innehöll information om kunder och deras beställningar, skulle det finnas ett kundobjekt (förälder) och ett orderobjekt (underordnat). Kundobjektet kommer att ha pekare från varje kund till den fysiska platsen för kundens beställningar i beställningsobjektet .

I den här modellen är det enkelt att söka ner i hierarkin (till exempel vilka beställningar som tillhör denna kund). En fråga som riktas uppåt i hierarkin är dock mer komplex (till exempel vilken kund som lagt denna beställning). Det är också svårt att representera icke-hierarkiska data när man använder denna modell.

En hierarkisk databas är ett filsystem som består av en rotkatalog som har en hierarki av underkataloger och filer.

Strukturell del av den hierarkiska modellen

De viktigaste informationsenheterna i den hierarkiska datamodellen är segmentet och fältet. Ett datafält definieras som den minsta odelbara enhet av data som är tillgänglig för en användare. För ett segment definieras en segmenttyp och en segmentinstans. En segmentinstans bildas av specifika datafältvärden. En segmenttyp är en namngiven samling av dess datafältstyper.

Liksom nätverket är den hierarkiska datamodellen baserad på datakonstruktionens grafform, och på konceptuell nivå är det bara ett specialfall av nätverksdatamodellen. I en hierarkisk datamodell motsvarar toppen av grafen en segmenttyp eller bara ett segment, och till bågarna, typerna av förälder-barn-relationer. I hierarkiska strukturer måste ett efterkommande segment ha exakt en förälder.

Den hierarkiska modellen är en sammankopplad oriktad graf av en trädstruktur som kombinerar segment. En hierarkisk databas består av en ordnad uppsättning träd.

Kontrolldelen av den hierarkiska modellen

Inom ramen för den hierarkiska modellen särskiljs databeskrivningsspråkverktyg (DDL) och verktyg för datamanipulation (DML). Varje fysisk databas beskrivs av en uppsättning operatörer som bestämmer både dess logiska struktur och databaslagringsstrukturen. I det här fallet bestämmer åtkomstmetoden hur de fysiska posterna är relaterade.

Följande åtkomstmetoder är definierade:

Förutom att ange databasnamn och åtkomstmetod måste beskrivningar innehålla definitioner av de typer av segment som utgör databasen, i enlighet med hierarkin, med början från rotsegmentet. Varje fysisk databas innehåller bara en rotskärva, men ett system kan ha flera fysiska databaser.

Datamanipuleringsoperatorer inkluderar datasökoperatorer, datasökningsoperatorer med möjlighet till modifiering och datamodifieringsoperatorer. Uppsättningen av datamanipuleringsoperationer i en hierarkisk databas är liten, men ganska tillräcklig.

Exempel på typiska datasökningsoperatorer

Exempel på typiska datasökoperatorer med möjlighet till modifiering:

Exempel på typiska modifieringsoperatorer för hierarkiskt organiserade data som exekveras efter exekvering av en av operatorerna i den andra gruppen (datasökning med möjlighet till modifiering):

I en hierarkisk modell upprätthålls automatiskt referensintegritet mellan förfäder och ättlingar. Grundregel: inget barn kan existera utan sin förälder.

Känd hierarkisk DBMS

Exempel på databaser med en hierarkisk modell är [2] :

Konvertera en konceptuell modell till en hierarkisk datamodell

Att konvertera en konceptuell modell till en hierarkisk datastruktur liknar på många sätt att konvertera den till en nätverksmodell , men den har också vissa skillnader på grund av att en hierarkisk modell kräver att all data organiseras i form av ett träd.

Omvandlingen av en en-till-många-relation mellan en anfader och en ättling sker nästan automatiskt om ättlingen har en enda anfader, och detta sker enligt följande. Varje objekt med dess attribut som deltar i en sådan relation blir ett logiskt segment. En en-till-många-relation upprättas mellan två logiska segment. Segmentet på "många"-sidan blir ett barn, och segmentet på "en"-sidan blir en förfader.

Situationen blir mycket mer komplicerad om ättlingen inte har en, utan två eller flera förfäder i anslutning. Eftersom en sådan situation är omöjlig för en hierarkisk modell behöver den reflekterade datastrukturen transformationer, som går ut på att ersätta ett träd, till exempel, med två (om det finns två förfäder). Som ett resultat av en sådan transformation uppstår redundans i databasen, eftersom den enda möjliga vägen ut ur denna situation är dataduplicering.

Anteckningar

  1. 1 2 3 Databashanteringssystemkoncept  (obestämd) . — F.K. Publikationer. - S. 32 -. — ISBN 978-93-80006-33-8 .
  2. Introduktion till databashanteringssystem  . — Laxmi Publikationer. - S. 77 -. — ISBN 978-93-81159-31-6 .
  3. Setrag Khoshafian. Objektorienterade databaser  (neopr.) . - John Wiley, 1993. - ISBN 978-0-471-57058-5 .
  4. Prakash M. Nadkarni. Metadatadrivna mjukvarusystem inom biomedicin : Designa system som kan anpassas till förändrad kunskap  . — Springer Science & Business Media , 2011. — S. 72—. - ISBN 978-0-85729-510-1 .