Hoppa till innehållet

Hierarkisk databas

Från Wikipedia

Hierarkisk databas var den första typen av databas. Den började användas på 1960-talet, och datat var lagrat på ett sådant sätt att det var lätt att överföra från ett magnetband, dåtidens främsta datalagringsmedium. Namnet har den fått därför att datat lagrades hierarkiskt, på en trädstruktur.

Speciell terminologi

[redigera | redigera wikitext]

Terminologin är annorlunda i en hierarkisk databasmodell jämfört med en relationsmodell: I en hierarkisk databas lagras datat i poster, som motsvarar relationsdatabasens rader (eller tupler). Posterna förbinds med länkar. Hela samlingen poster kallades vanligen för en databas. Detta begrepp motsvarar alltså en tabell i en relationsdatabasmodell.[1]

En hierarkisk databas har som sagt en trädstruktur, det vill säga en en-till-mångastruktur: Varle post består av en föräldradel, som kan ha en eller flera barn med samma struktur inbördes (men vanligtvis skild från utseendet på förälderns interna struktur). Barnen kan alltså endast ha en förälder, medan föräldern kan ha många barn.[1]

Själva strukturen kan illustreras med ett stycke COBOL-kod (observera att det här är ett teoretiskt exempel som fordrar dynamisk minnesallokering om det skulle översättas till verkligt bruk, det är inte implementerbart på alla typer av kompilatorer. Dessutom kommer det givetvis inte ens i närheten av den hierarkiska databasens effektivitet):

01 POST.
05  FOERELDER.
10  FAELT-F1 ...
10  FAELT-F2 ...
...
05  BARN-RAEKNARE PIC H9(10).
05  BARN OCCURS DEPENDING ON BARN-RAEKNARE.
10  FAELT-B1 ...
10  FAELT-B2 ...
  ...

Fördelar kontra nackdelar

[redigera | redigera wikitext]

Om inflexibiliteten, begränsningen till en en-till-mångastruktur, inte innebär några problem har strukturen många fördelar: Den är mycket snabb vid access av poster, det är enkelt (tack vare länkarna) att lägga till och ta bort poster, och den är (och kanske framför allt var) mycket väl anpassad när det gäller att överföra linjära lagringsstrukturer, som exempelvis magnetband, från och till hierarkiska databassystem.[2]

Nackdelarna är emellertid många: Lagringsmässigt är strukturen mycket minneskrävande och därför klart ineffektiv, samma data lagras på ett stort antal olika ställen; fri datasökning, till skillnad från access av poster, är påtagligt långsam, något som ökar med datats storlek; relationsmässigt är modellen stelbent, med endast en, inflexibel en-till-mångarelation att erbjuda.[2] Dessutom saknas något generellt frågespråk i stil med relationsdatabasernas SQL. Frågespråk finns dock utvecklade för specifika hierarkiska DBMS, som IBMs DL/1 för deras databassystem IMS.[1] Det ger dock inte möjlighet till alla de sofistikerade frågekombinationer som är möjliga med SQL.

Fortfarande används dock de hierarkiska databassystemen i tillämpningar som kräver snabb access likt banktillämpningar och telekommunikationssystem.[1] En av de vanligaste hierarkiska databaserna är IBM:s IMS, som ursprungligen utvecklades för användning i Apolloprogrammet.[1] Windows registry är även det en hierarkisk databas.[3]

  1. ^ [a b c d e] Uri Berman, Carl Chamberlin, Don Lundberg, Larry Morgan, Ed Morris och Vern Watts. ”Information Management System” (på engelska). IBM. http://www-03.ibm.com/ibm/history/ibm100/us/en/icons/ibmims/. Läst 4 juni 2015. 
  2. ^ [a b] ”Database Management” (på engelska). IBM. http://databasemanagement.wikia.com/wiki/Category:Hierarchical_Data_Model. Läst 4 juni 2015. 
  3. ^ ”Structure of the Registry” (på engelska). Windows Development Center. Microsoft. 2015. https://msdn.microsoft.com/en-us/library/windows/desktop/ms724946(v=vs.85).aspx. Läst 4 juni 2015.