SE510000C2 - Struktur vid databas - Google Patents

Struktur vid databas

Info

Publication number
SE510000C2
SE510000C2 SE9702761A SE9702761A SE510000C2 SE 510000 C2 SE510000 C2 SE 510000C2 SE 9702761 A SE9702761 A SE 9702761A SE 9702761 A SE9702761 A SE 9702761A SE 510000 C2 SE510000 C2 SE 510000C2
Authority
SE
Sweden
Prior art keywords
information
elements
belonging
data
difference
Prior art date
Application number
SE9702761A
Other languages
English (en)
Other versions
SE9702761L (sv
SE9702761D0 (sv
Inventor
Ulf Mikael Ronstroem
Original Assignee
Ericsson Telefon Ab L M
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Priority to SE9702761A priority Critical patent/SE510000C2/sv
Publication of SE9702761D0 publication Critical patent/SE9702761D0/sv
Priority to JP2000504524A priority patent/JP2001511563A/ja
Priority to AU83651/98A priority patent/AU8365198A/en
Priority to PCT/SE1998/001333 priority patent/WO1999005617A2/en
Priority to KR1020007000596A priority patent/KR20010022028A/ko
Priority to CN98809345A priority patent/CN1271442A/zh
Priority to EP98934047A priority patent/EP0996902B1/en
Priority to BR9810766-6A priority patent/BR9810766A/pt
Priority to US09/115,947 priority patent/US6249788B1/en
Publication of SE9702761L publication Critical patent/SE9702761L/sv
Publication of SE510000C2 publication Critical patent/SE510000C2/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

15 20 25 30 35 510 000 _ 2 _ Ordningen av element inom en nod utgör en logisk ordning av- seende data-informationen, såsom alfabetisk eller numerisk ordning.
Data-informationen inom respektive element utgöres av skill- naden i data-information relativt data-informationen hörande till föregående element i hierarkin.
N nI R 'rÅNnP N Det är sedan länge känt att nyttja olika datastrukturer för att lagra data inom en databas. Dessa strukturer erbjuder olika fördelar avseende exempelvis nyttjat lagringsutrymme och möjlighet till snabb genomsökning.
En känd struktur bygger på ett B-träd varigenom en logisk fördelning av element i en tabell inom en databas erbjuds.
Ett element kan omfatta en intern adress inom en databas, och vilken är kopplad till en extern nyckel, såsom exempelvis ett telefonnummer. Vid införandet av ett nytt telefonnummer i en tabell beräknas i vilket element telefonnumrets interna adress skall placeras medelst en logisk ordning.
B-trädets uppgift är att distribuera adresserna i tabellen så att dessa fördelas på ett sätt varigenom det är enkelt att finna detsamma igen.
B-trädet används huvudsakligen för att skapa en ordnad och enkel struktur.
Varje träd börjar med en rot-nod vilken pekar vidare på ytter- ligare noder, där det, genom vissa kriterier, är möjligt att söka sig till en eftersökt nod. Dessa noder innehåller ofta en nyckel eller ett index.
Exempel på nycklar som lagras i ett B-träd är http-adresser, 10 15 20 25 30 35 510 ÛÛÛ _ 3 _ filnamn, tidsstämplar, telefonnummer, med mera.
Det skall även nämnas att här benämnda noder är en nod i en trädstruktur avsedd att beskriva en hierarki av lagrade nycklar eller index och inte en processornod i en distribuerad databas.
Det är tidigare känt att, i de fall där det förekommer logiskt efter varandra följande datamängder, endast lagra skillnads- informationen mellan två på varandra följande datamängder.
Detta används exempelvis inom bildbehandling där mycket infor- mation krävs för att lagra och återge rörliga bilder men där skillnaden mellan två på varandra följande bilder kan vara mycket liten, varför endast skillnaden mellan dessa bilder lagras och nyttjas vid återgivningen av bilderna.
Detta är även känt i samband med länkade listor, där endast skillnaden mellan två sammanlänkade element lagras i stället för hela elementet.
Detta kräver mindre lagringsutrymme men erbjuder samma infor- mation.
Det skall även nämnas att i samband med exempelvis filnamn eller http-adresser används olika format och ändelser vilket gör att det kan vara svårt att på ett enkelt sätt beskriva skillnads-informationen mellan två närliggande noder.
Följande publikationer beskriver ytterligare hanteringen av information strukturerad i B-träd.
"Transaction Processing: Concepts and Techniques", J. Gray, A.
Reuter, Morgan Kaufman, 1993.
"Prefix B-trees", R. Bayer, K. Unterauer, ACM Trans. on Database Systems, vol 2, no 1, p ll-26, 1977. 10 15 20 25 30 35 510 000 _ 4 _ Det skall även nämnas att det är tidigare känt att lagra olika element i en så kallad container, där elementen ligger konsek- utivt efter varandra och där en container kan behandlas som en enhet.
IEKEl§KI_2BQBLEM Under beaktande av teknikens tidigare ståndpunkt, såsom den beskrivits ovan, torde det få anses vara ett tekniskt problem att kunna erbjuda en struktur för lagring av data-information inom en databas där strukturen erbjuder en stor minskning av det lagringsutrymme som krävs relativt känd teknik, även relativt känd komprimering med hjälp av att endast lagra skillnads-information relativt föregående nod.
Det är ett tekniskt problem att kunna erbjuda en komprimerings- struktur som dessutom erbjuder en bibehållen möjlighet att på ett effektivt sätt finna ett eftersökt element eller objekt.
Det är ett tekniskt problem att kunna erbjuda en struktur varigenom ett data-ord kan beskriva de förekommande skillnaderna på ett entydigt och enkelt sätt.
Det är ett tekniskt problem att kunna erbjuda ett struktur för data-ordet som på ett enkelt sätt hanterar olika ändelser hos den data-information som skall lagras.
Det är ett tekniskt problem att kunna erbjuda en möjlighet att på ett enkelt sätt representera en skillnad mellan två data- informationer, där denna skillnad ej ligger i slutet av data- informationen, utan att därför behöva representera de likheter som finns efter skillnaden i data-informationen.
Det är ytterligare ett tekniskt problem att kunna erbjuda en möjlighet att hantera förändringar av element eller objekt 10 15 20 25 30 35 510 ÛÛÛ _ 5 _ ingående i ett komprimerat B-träd.
Det är ett tekniskt problem att kunna erbjuda en möjlighet att hantera en kopiering av element eller objekt ingående i ett komprimerat B-träd.
Det är ett tekniskt problem att kunna påskynda genomsökandet av ett B-träd vid eftersökningen av ett specifikt element.
Det är ett tekniskt problem att kunna erbjuda en struktur där komprimeringen av data-information erbjuder en möjlighet att väsentligen snabba upp genomsökandet av ett B-träd vid eftersökningen av ett specifikt element.
Det är även ett tekniskt problem att kunna erbjuda en struktur varigenom element på ett enkelt och effektivt sätt kan läggas till och tagas bort från ett B-träd, där data-informationen är komprimerad och endast omfatta skillnads-information relativt föregående nod.
Det är ett tekniskt problem att kunna erbjuda en struktur varigenom en nod med ett flertal element blir tillgänglig genom en inläsning till cache-minnet.
Det är vidare ett tekniskt problem att kunna erbjuda en struktur där mängden adressering-information som krävs vid referenser mellan olika noder och däri ingående element är väsentligen mindre än vad som traditionellt krävs.
För att kunna lösa ett eller flera av de ovan angivna tekniska problemen, och med utgångspunkt från en struktur enligt den i inledningen beskrivna, anvisar nu föreliggande uppfinning att data-informationen inom rot-elementet utgör ett startvärde, vilket startvärde utgöres av den faktiska data-informationen.
Vidare utgöres skillnads-informationen inom övriga element av 10 15 20 25 30 35 510 ÛÛÛ _ 5 _ ett data-ord som representerar den faktiska skillnaden hos data-informationen relativt data-informationen hörande till föregående element, oavsett var skillnaden är inom data- informationen.
Eftersom endast den faktiska skillnaden lagras, oavsett om denna är i slutet eller ej, så erbjuds härigenom en mycket komprimerad struktur.
Ett av föreliggande uppfinning föreslaget sätt att skapa en sådan struktur är ett låta skillnads-informationen omfatta om något skall tas bort relativt data-informationen hörande till föregående element, och i sådana fall vad som skall tas bort samt var inom data-informationen det skall tas bort, samt att låta den omfatta om något skall läggas till relativt data- informationen hörande till föregående element, och i sådana fall vad som skall läggas till samt var inom data-informationen det skall läggas till.
Med avsikten att erbjuda ett komprimerat sätt att uttrycka denna skillnads-information anvisar föreliggande uppfinning att ett data-ord omfattar ett huvud och en informationsdel, där huvudet anger hur informationsdelen skall tolkas.
Vidare anvisas att informationsdelen kan omfatta fem olika grupper av bitar, där; - en första grupp, här benämnd ändelse, representerar vilken typ av ändelse data-informationen har, här benämnd minusinformation, representerar - en andra grupp, hur många bytes som skall tas bort relativt föregående element, - en tredje grupp, här benämnd plusinformation, representerar hur många bytes som skall läggas till relativt föregående element, lO 15 20 25 30 35 510 000 _ 7 _ - en fjärde grupp, här benämnd likhet, representerar hur många bytes från slutet, bortsett från ändelsen, som är lika relativt föregående element, och - en femte grupp, här benämnd skillnad, utgör de tecken som skall läggas till, det vill säga plusinformationen i klartext.
Med avsikten att erbjuda en möjlighet att tolka ovanstående grupper på ett korrekt sätt anvisas att huvudet utgöres av tre bitar, där; - en första bit visar huruvida den fjärde gruppen existerar eller ej, det vill säga om skillnaden ligger i slutet av data-informationen eller ej, - en andra bit anger huruvida den andra och tredje gruppen omfattar fyra eller åtta bitar, och - en tredje bit anger huruvida den andra, tredje och femte gruppen existerar eller ej, det vill säga huruvida det finns någon skillnadsinformation förutom ändelsen eller ej.
Således erbjuds en struktur där den första gruppen omfattar fem bitar, den andra och tredje gruppen omfattar fyra eller åtta bitar, den fjärde gruppen omfattar noll eller åtta bitar, och den femte gruppen omfattar nödvändigt antal bytes för att representera det som eventuellt skall läggas till relativt föregående element.
Detta medför att, förutom den femte gruppen, all skillnads- information kan representeras genom i minsta fall åtta bitar, det vill säga en byte, i det fall som det endast föreligger en skillnad i ändelse, eller i mesta fall trettiotvå bitar, det vill säga fyra bytes, i det fall som samtliga grupper omfattar maximalt antal bitar. 10 15 20 25 30 35 510 ÛÛÛ _ 3 _ En till fyra bytes plus den faktiska skillnads-informationen, i det fall som denna utgöres av plusinformation, är en betydlig komprimering relativt känd teknik. Denna informationsmängd kräver ett minnesutrymme som motsvarar cirka 20% av vad som krävs utan komprimering.
Den första gruppen kan, via sina fem bitar, representera tret- tiotvà olika ändelser enligt en förbestämd lista av ändelser, vilket erbjuder en möjlighet att hantera ett stort antal ändel- ser vilka var och en kan representeras genom endast fem bitar.
Datainformationen inom respektive löv-element omfattar även det eftersökta objektet.
Med avsikten att hantera låsning av objekt i samband med att ett objekt är föremål för en transaktion anvisar föreliggande uppfinning att respektive objekt omfattar fyra olika bitkom- binationer, där en första bitkombination representerar huruvida objektet är låst eller ej.
I det fall som den första bitkombinationen visar att ett objekt är olåst utgör en andra bitkombination statusbitar för objektet, en tredje bitkombination omfattar information om längden för en till objekt hörande objekt-nyckel, och en fjärde bitkombination omfattar objekt-nyckeln.
I det fall som den första bitkombinationen visar att objektet är låst representerar bitarna hörande till övriga bitkombina- tioner en referens till ett transaktions-register. Detta transaktions-register omfattar statusbitarna för objektet, information om längden för en till objektet hörande objekt- nyckel, objekt-nyckeln, samt information rörande vilken typ av lås som är applicerat på objektet.
Statusbitarna nyttjas vid kopieringsprocesser av objektet, där respektive bit indikerar huruvida objektet är kopierat eller ej kopierat. Ett flertal samtidiga kopieringsprocesser nyttjar var 10 15 20 25 30 35 510 ÛÛÛ sin statusbit.
Med avsikten att erbjuda en möjlighet att taga bort ett element ur ett B-träd anvisar föreliggande uppfinning att skillnads- informationen hörande till ett eventuellt efterföljande element anpassas till att utgöra skillnads-information i relation till ett för det borttagna element föregående element, att adresserings-informationen hörande till ett efterföljande element anpassas till att peka mot det föregående elementet, och att adresserings-informationen hörande till det föregående elementet anpassas till att peka mot det efterföljande elementet.
På samma sätt anvisas att vid ett tillförandet av ett element, skillnads-informationen hörande till det tillförda elementet anpassas till att utgöra skillnads-information i relation till ett föregående element, att adresserings-informationen hörande till det tillförda elementet anpassas till att peka mot det föregående elementet samt ett eventuellt efterföljande element, att skillnads-informationen hörande till det eventuella efterföljande elementet anpassas till att utgöra skillnads- information i relation till det tillförda elementet, att adres- serings-informationen hörande till det efterföljande elementet anpassas till att peka mot det tillförda elementet, och att adresserings-informationen hörande till det föregående elementet anpassas till att peka mot det tillförda elementet.
Med avsikten att snabba upp genomsöknings-möjligheterna genom ett B-träd anvisar föreliggande uppfinning att en nod utgöres av en container, och att respektive element hörande till en nod är tilldelade positioner direkt efter varandra inom containern.
Vidare är informationsmängden i en container är anpassad till att vara mindre än, eller lika med, mängden information som vid ett tillfälle kan läsas till ett cache-minne hörande till en processor verkande inom databasen, eller nyttjande databasen. 10 15 20 25 30 35 _10- Begränsningen i storleken på en container erbjuder ett bibehållande av den flexibilitet som ett B-träd erbjuder vid lagringen av informationen i ett minne.
Trots begränsningen i storlek så kan ett relativt stort antal element få plats i en container på grund av den omfattande komprimeringen av respektive element.
Detta medför att vid en access av ett minne så läses vid ett och samma tillfälle ett flertal element in till cache-minnet, vilket, skulle kräva en access av minnet för varje inläst element. i fallet med en normal länkad lista, i många fall Vidare kräver en konsekutiv lagring av elementen i en container en mindre mängd pekare än vad som krävs i en länkad lista, vilket i sig tillåter en ytterligare komprimering av nödvändigt utrymme.
Ett ytterligare sätt att erbjuda en möjlighet att nyttja så lite adressering-information som möjligt är att i största möjliga mån placera de till träd-strukturen ingående noderna på en gemensam sida, eftersom referenser inom en sida kräver avsevärt mindre adressering-information än vad referenser till andra sidor kräver.
F"R R De fördelar som främst kan få anses vara kännetecknande för en struktur enligt föreliggande uppfinning är att härigenom kan vilka skillnader som helst representeras mellan två närliggande noder eller element. Om man bortser från nödvändig adress- information så kan med denna metod behovet av lagringsutrymme minskas till storleksordningen 20% av vad som krävs för ett icke komprimerat B-träd.
Vidare erbjuds genom föreliggande uppfinning en möjlighet att genomsöka ett B-träd med ett mycket litet antal accesser till 10 15 20 25 30 35 510 ÜÜÜ _11- det minne, eller de minnen, vari informationen finns lagrad.
En träd-struktur enligt föreliggande uppfinning erbjuder således en möjlighet att optimera (minimera) nödvändigt lagringsutrymmet av adresser i en data-struktur som bygger på länkade listor, där lagringsstrukturen är en ordnad struktur som erbjuder en logisk relativt snabb sökmöjlighet genom den länkade listan.
Totalt erbjuds en effektiv hantering genom en bättre kompri- mering än vad som tidigare är känt och genom en större möj- lighet att stuva om på en sida i samband med att element läggs till eller tas bort från trädet. Möjligheterna att enkelt och effektivt stuva om erbjuds genom att varje container kan läsas in till cache-minnet vid ett tillfälle och hanteras inom cache- minnet, vilket är en mycket snabb och effektiv hantering.
Det som främst kan få anses vara kännetecknande för en struktur, i enlighet med föreliggande uppfinning, anges i det efterföljande patentkravets l kännetecknande del.
En struktur, uppvisande de med föreliggande uppfinning förknippade egenheterna, skall i exemplifierande syfte nu när- mare beskrivas med hänvisning till bifogad ritning, där; figur l visar schematiskt och mycket förenklat en, enligt känd teknik, länkad lista med element, figur 2 visar schematiskt en del av en länkad lista enligt figur l på känt sätt strukturerad enligt en träd-struktur, 10 15 20 25 30 35 510 ÛÛÛ figur figur figur figur figur figur figur figur visar schematiskt hur ett data-ord, avsett att representera skillnads-informationen mellan två närliggande element, är strukturerat enligt föreliggande uppfinning, visar schematiskt uppbyggnaden av ett icke låst objekt, visar schematiskt uppbyggnaden av ett låst objekt, visar schematiskt hur ett element kan tas bort från en träd-struktur, visar schematiskt hur ett element kan läggas till en träd-struktur, visar en alternativ utföringsform där elementen hörande till en nod är samlade i en container, visar schemaiskt hur ett träd kan delas upp i ett antal mindre delträd och visar schematiskt ett B-träd och hur genomför- andet av en sökning genom ett B-träd kan gå till. “v R .. _. N F R Med avsikten att förenkla förståelsen av föreliggande upp- finning skall inledningsvis en träd-struktur, avsedd att nyttjas vid lagringen av data-information, beskrivas med den terminologi som sedan kommer att användas för att beskriva föreliggande uppfinning.
En träd-struktur är ett sätt att lägga upp en länkad lista i form av ett träd för att därmed förenkla och effektivisera 10 15 20 25 30 35 510 ÛÛÛ _ 13 _ sökandet efter ett visst element i listan.
För att förenklat beskriva ett B-träd skall vi använda ett exempel där 1000 element är numrerade O till 999. Dessa kan läggas i en vanlig länkad lista A enligt figur l, eller i ett träd B, enligt figur 2, där ett antal element El, E2, E3, ... i nummerordning från O till 999 indelats i en trädstruktur.
Om vi exempelvis eftersöker element "312" E313 i en normal länkad lista A så startar sökningen i element "O" El vilket länkar vidare till element "1" E2 och så vidare till element "312" E3l3. Detta resulterar i 312 sökningar, inte inkluderat sökningen efter det första elementet "O" El.
I och med en trädstruktur enligt figur 2 så kan samma element finnas genom ett färre antal sökningar.
I figuren visas att en rot-nod 1 omfattar ett rot-element IE med värdet "O-999". mellanliggande nod 2 med ett antal element 2El, 2E2, Detta element länkar vidare till en första ZE3, _...
Vart och ett av dessa element länkar vidare till ytterligare en mellanliggande nod som omfattar ytterligare element. Figur 2 visar hur element "300-399" ZE4 länkar vidare till en mellanliggande nod 3.
Elementen 3El, 3E2, 3E3, länkar i sin tur vidare till en löv-nod som omfattar ett antal i den mellanliggande noden 3 löv-element. Figur 2 visar hur elementet "310-319" 3E2 länkar vidare till en löv-nod 4 som omfattar ett antal löv-element 4E1, 4E2, 4E3, ....
Löv-elementen innehåller den faktiska informationen som eftersöks.
I vårt exempel eftersöks elementet "312" 4E3, vilket i träd- strukturen görs enligt följande. 10 15 20 25 30 35 510 ÛÛÛ _14- Först genomsöks elementen 2E1, ZE2, ZE3, _.. i den första mellanliggande noden 2 till dess att elementet "300-399" 2E4 hittats, vilket kräver fyra sökningar.
Därefter söker man genom den andra mellanliggande noden 3 fram till elementet "3l0-319" 3E2, vilket kräver två sökningar.
Slutligen genomsöks löv-elementen 4E1, 4E2, 4E3, _.. fram till det eftersökta elementet "3l2" 4E3, vilket kräver tre sök- ningar.
Detta resulterar i totalt nio sökningar, inte inkluderat sökningen efter rot-elementet "O-999" lE, till skillnad från 312 sökningar i fallet med en normal länkad lista A.
Vid en sökning efter element "999" El000 krävs i den normala länkade listan A 1000 sökningar medans det i B-trädet B krävs 30 sökningar. Å andra sidan hittas elementen "O" till "9“ snab- bare i den normala länkade listan A eftersom det i B-trädfallet krävs två extra sökningar för att komma ner till löv-elementen.
Det är även känt att i samband med länkade listor endast lagra skillnaden mellan två sammanlänkade element i stället för hela elementet.
I exemplet enligt figur 2 skulle således rot-elementet lE kunna innehålla data-informationen "0", samtliga element i den första mellanliggande noden 2 skulle då kunna innehålla data-in- formationen "+100", vilket är skillnaden till föregående ele- ment, på samma sätt skulle samtliga element i den andra mellan- liggande noden 3 kunna innehålla data-informationen "+10" och löv-elementen i löv-noderna 4 skulle kunna innehålla data- informationen “+l".
Detta kräver mindre lagringsutrymme men erbjuder samma informa- tion. 10 l5 20 25 30 35 510 000 _ 15 _ Det är inte alltid som information kan lagras och sorteras på ett så enkelt sätt som visas i ovanstående exempel.
I samband med exempelvis filnamn eller http-adresser utgör data-informationen en mer komplex data-struktur, och dessutom används olika format och ändelser vilket gör att det kan vara svårt att på ett enkelt sätt beskriva skillnadsinformationen mellan två närliggande noder.
Som exempel på detta visas följande länkade http-adresser: 1) http://www.ericsson.se/ndb/description.html 2) http://www.ericsson.se/ndb/nodedescription.html 3) http://www.ericsson.se/ndb/system_arch.pdf 4) http://www.ericsson.se/ndb/system_arch.ps Informationen för 2, 3 och 4 kräver här 128 bytes. Detta kan beskrivas komprimerat med utgångspunkt från ett startvärde, vilket blir adress nummer l. Med en metod där skillnaden till föregående element lagras skulle ovanstående adresser exempelvis kunna representeras på följande sätt: l) http://www.ericsson.se/ndb/description.html 2) -"description.html"+"nodedescription.html" 3) -"nodedescription.html"+"system_arch.pdf" 4) -"df"+"s" vilket kräver 80 bytes för 2, 3 och 4 och således blir en komprimering av den data-information som måste lagras för att återge önskad information. Detta motsvarar cirka 60% av det lagringsutrymme som krävs utan komprimering.
Uppfinningen bygger på huvudsakligen på en metod som grundar sig på att endast skillnaden till föregående element i ett B- träd lagras i respektive element, där metoden erbjuder en möjlighet att ytterligare komprimera eller minska den data- information som krävs i en träd-struktur i relation till känd 10 15 20 25 30 35 teknik.
Denna metod erbjuder en möjlighet att skapa skillnads- i det fall som skillnaden inte ligger i slutet av elementet, behöva lagra information mellan två närliggande element utan att, hela slutet av data-informationen.
I exemplet ovan finns exempelvis skillnaden mellan startvärdet (1) och efterföljande element (2) en ett antal tecken in i data-informationen.
Detta medför att skillnads-informationen blir större än nöd- vändigt, -"description.html"+"nodedescription.html", då den faktiska skillnaden mellan data-informationen i de två elemen- ten i praktiken är ganska liten, +"node".
Föreliggande uppfinning anvisar att skillnads-informationen inom de olika elementen utgöres av ett data-ord som represen- terar den faktiska skillnaden hos data-informationen relativt data-informationen hörande till föregående element, oavsett var skillnaden är inom data-informationen.
Denna skillnads-information omfattar om något skall tas bort relativt data-informationen hörande till föregående element, och i sådana fall vad som skall tas bort samt var inom data- informationen det skall tas bort.
Vidare omfattar skillnads-informationen om något skall läggas till relativt data-informationen hörande till föregående element, och i sådana fall vad som skall läggas till samt var inom data-information det skall läggas till.
Figur 3 avser att visa uppbyggnaden för att data-ord. Här visas att ett data-ord 5 omfattar ett huvud 51 och en informationsdel 52, där huvudet 51 anger hur informationsdelen 52 skall tolkas.
Informationsdelen 52 kan omfatta fem olika grupper av bitar, 10 15 20 25 30 35 510 ÛÛÛ _ 17 _ där - en första grupp 521, här benämnd ändelse, representerar vilken typ av ändelse data-informationen har, - en andra grupp 522, här benämnd minusinformation, repre- senterar hur många bytes som skall tas bort relativt före- gående element, - en tredje grupp 523, här benämnd plusinformation, represen- terar hur många bytes som skall läggas till relativt föregående element, - en fjärde grupp 524, här benämnd likhet, representerar hur många bytes från slutet, bortsett från ändelsen, som är lika relativt föregående element, och - en femte grupp 525, här benämnd skillnad, utgör de tecken som skall läggas till, det vill säga plusinformationen 523 i klartext.
Huvudet 51 utgöres av tre bitar, där - en första bit 511 visar huruvida den fjärde gruppen 524 existerar eller ej, det vill säga om skillnaden ligger i slutet av data-informationen eller ej, - en andra bit 512 anger huruvida den andra och tredje gruppen 522, 523 omfattar fyra eller åtta bitar, och - en tredje bit 513 anger huruvida den andra, tredje och femte gruppen 522, 523, 525 existerar eller ej, det vill säga huruvida det finns någon skillnadsinformation förutom ändelsen 521 eller ej.
Den första gruppen 521 omfattar fem bitar, den andra och tredje gruppen 522, 523 omfattar fyra eller åtta bitar, den fjärde 10 15 20 25 30 35 _18- gruppen 524 omfattar noll eller åtta bitar, och den femte gruppen 525 omfattar nödvändigt antal bytes för att representera vad som eventuellt skall läggas till.
Detta medför att, förutom den femte gruppen 525, all skillnads- information kan representeras genom i minsta fall åtta bitar, det vill säga en byte, i det fall som det endast föreligger en skillnad i ändelse, eller i mesta fall trettiotvå bitar, det vill säga fyra bytes, i det fall som samtliga grupper omfattar maximalt antal bitar.
Den första gruppen kan 521, via sina fem bitar, representera trettiotvå olika ändelser enligt en förbestämd lista av ändelser.
Exempelvis kan ändelsen "html" tilldelas värdet "OOOOO" och "pdf" kan tilldelas värdet “O00Ol". I båda fallen representeras respektive ändelse av 5 bitar, utskrivet kräver däremot "html" fyra bytes, 32 bitar, och "pdf" tre bytes, 24 bitar.
För att exemplifiera ovanstående hänvisas åter till exemplet på länkade http-adresser: 1) http://www.ericsson.se/ndb/description.html 2) http://www.ericsson.se/ndb/nodedescription.html 3) http://www.ericsson.se/ndb/system_arch.pdf 4) http://www.ericsson.se/ndb/system_arch.ps Detta kan enligt föreliggande uppfinning beskrivas ytterligare komprimerat än vad som visades enligt känd teknik såsom följer: l) http://www.ericsson.se/ndb/description.html 2) huvudet 51: 101 (3 bitar); ändelse 521: html (5 bitar); minusinformation 522: -O (4 bitar); plusinformation 523: 4 (4 bitar); likhet i slutet 524: ll (8 bitar); skillnad 525: "node" (4 bytes) 10 15 20 25 30 35 510 ÛÛÛ _ 19 _ 3) huvudet 51: 001 (3 bitar); ändelse 521: pdf (5 bitar); minusinformation 522: -15 (4 bitar); Plusinformation 523: +11 (4 bitar); skillnad 525: "system_arch" (ll bytes) 4) huvudet 51: 000 (3 bitar); ändelse 521: ps (5 bitar); vilket resulterar i 21 bytes för raderna 2, 3 och 4, till skillnad från 80 bytes för komprimering enligt känd teknik och 128 bytes för icke komprimerad information.
Till denna information tillkommer även den adresserings-infor- mation som krävs för att upprätthålla träd-strukturen samt erbjuda en sökning genom densamma.
Data-information hörande till respektive löv-element omfattar även det faktiska objektet, exempelvis den interna representa- tionen för den externa http-adress som en användare ser, en så kallad objekt-nyckel.
Ett element kan beröras av en transaktion på olika sätt, exempelvis genom en förändring eller uppdatering av objektet.
Vid vissa sådana förändringar måste elementet, eller objektet, låsas för andra transaktioner. Olika typer av lås kan förekomma beroende på i vilken grad tillgång av objektet kan erbjudas andra transaktioner.
Föreliggande uppfinning anvisar att ett objekt 6 omfattar fyra olika bitkombinationer, enligt figur 4.
En första bitkombination 61 inom objektet 6 representerar huruvida objektet är låst eller ej.
I det fall som den första bitkombinationen 61 visar att objektet 6 är olåst utgör en andra bitkombination 62 status- bitar för objektet, en tredje bitkombination 63 omfattar information om längden för en till objektet hörande objekt- nyckel, och en fjärde bitkombination 64 omfattar själva objekt- 10 15 20 25 30 35 5”i0 ÛÛÛ nyckeln.
I det fall som den första bitkombinationen 61 visar att objek- tet är låst, representerar bitarna hörande till övriga bitkom- binationer en referens 65 till ett transaktions-register 7 hörande till den transaktion som orsakat låset, enligt figur 5 Detta transaktions-register 7 omfattar statusbitarna 62 för objektet, informationen 63 om längden för objekt-nyckeln, objekt-nyckeln 64 i sig, samt information 66 rörande vilken typ av lås som är applicerat på objektet 6.
Statusbitarna 62 nyttjas vid kopieringsprocesser av objektet 6 genom att respektive bit indikerar huruvida objektet är kopi- erat eller ej. Ett flertal samtidiga kopieringsprocesser nyttjar var sin statusbit, således är objektet tillgängligt för kopiering för lika många olika kopieringsprocesser som det finns statusbitar.
Figur 6 avser att visa hur ett borttagande av ett element E'2 genomföres enligt föreliggande uppfinning. Här visas att skillnads-informationen E'3l hörande till ett eventuellt efterföljande element E'3 anpassas till att utgöra skillnads- information i relation till ett för det borttagna elementet E'2 föregående element E'l.
Eventuell adresserings-information E'l3 hörande till det efter- följande elementet E'3 skall även det anpassas till att peka mot det föregående elementet E'l, och adresserings-informa- tionen E'l3 hörande till det föregående element E'l skall anpassas till att peka mot det efterföljande elementet E'3.
På samma sätt visar figur 7 att, vid ett tillförandet av ett element E"2, skillnads-informationen E"2l hörande till det tillförda elementet E"2 anpassas till att utgöra skillnads- information i relation till ett föregående element E"l. 10 15 20 25 30 35 510 ÛÛÛ _ 21 _ Skillnads-informationen E"3l hörande till ett eventuellt efterföljande element E"3 skall då anpassas till att utgöra skillnads-information i relation till det tillförda elementet E"2.
Eventuell adresserings-information E"l2, E"23 hörande till det tillförda elementet E"2 anpassas till att peka mot det föregående elementet E"l samt ett eventuellt efterföljande element E"3, adresserings-informationen E"23 hörande till det efterföljande elementet E"3 anpassas till att peka mot det tillförda elementet E"2, och adresserings-informationen E"l2 hörande till det föregående elementet E"1 anpassas till att peka mot det tillförda elementet E"2.
I ovanstående beskrivning är elementen inom en nod länkade till varandra i en länkad lista. Detta medför att en sökning genom dessa element kan kräva en access av ett minne för varje element.
Eftersom den ovan beskrivna komprimerings-strukturen erbjuder en väsentlig komprimering av nödvändigt minnesutrymme erbjuder denna struktur en möjlighet att lagra ett ental element i en gemensam container.
Figur 8 avser att illustrera en föredragen utföringsform av föreliggande uppfinning där respektive nod utgöres av en container 8.
Respektive element 8El, 8E2, 8E3, _.. hörande till en nod är tilldelade positioner direkt efter varandra inom containern 8.
För att ytterligare effektivisera sökningsmöjligheterna genom en träd-struktur enligt föreliggande uppfinning anvisas vidare att informationsmängden i en container 8 är mindre än, eller lika med, mängden information som vid ett tillfälle kan läsas till ett cache-minne hörande till en processor verkande inom databasen, eller nyttjande databasen. 10 15 20 25 30 35 510 ÛÛÛ _ 22 _ 8E2, ligger konsekutivt efter varandra är det inte nödvändigt att Eftersom elementen 8El, 8E3, ... inom en container 8 respektive element omfattar all den adresserings-information som krävs i en länkad lista.
Således anvisar föreliggande uppfinning att, i de fall där BE2, länkar, och därtill hörande adresserings-information, elementen 8E1, 8E3, ... omfattas av en container, de som finns inom respektive mellanliggande element 8El, 8E2, 8E3, ... är begränsade till en länk 81, och därtill hörande adresserings- information, avseende ett första element 8'El hörande till en i hierarkin efterföljande nod 8', samt en länk 82, och därtill hörande adresserings-information, från respektive första mellanliggande element 8El till ett element 8"E3 i en i hierarkin föregående nod och tillhörande container 8".
På samma sätt är länkar och därtill hörande adresserings- 8'E3, ... begränsad till en länk 81, och därtill hörande adresserings- information inom respektive löv-element 8'E1, 8'E2, information, från respektive första löv-element 8'El till ett element 8E3 i en i hierarkin föregående nod och tillhörande container 8.
Vid adressering inom en tabell behövs olika stor mängd adressering-information beroende på hur de olika noderna placeras. Om en nod på en annan sida skall adresseras kan i värsta fall upp till åtta bytes krävas vid adresseringen.
Sidornas storlek är valbart olika stora och anpassas till olika data-strukturer.
Föreliggande uppfinning anvisar speciellt att noderna hörande till ett träd i största möjliga mån skall placeras inom samma sida. Detta medför att det är lättare att referera till en annan nod. En container enligt föreliggande uppfinning är tilldelad en specifik storlek anpassad till att kunna läsas in till ett cache-minne vid ett tillfälle. 10 15 20 25 30 35 510 ÛÛÛ Dagens processorer kan vanligtvis läsa in 128 bytes i taget till cache-minnet och följande beskrivning utgår från detta värde. Det skall dock förstås att storleken för en container enligt föreliggande uppfinning, samt andra dimensioneringar i den följande beskrivningen, skall, för att erhålla önskad effekt, anpassas till hur mycket som kan läsas in åt gången till cache-minnet hos aktuella processorer.
Ytterligare en parameter som det kan bli aktuellt att taga hän- syn till i framtida tillämpningar av föreliggande uppfinning är den tid det tar att processa innehållet av inläst information till cache-minnet. I det fall som processtiden överskrider tiden för en cache-miss är det lämpligt att begränsa storleken för en container, samt andra dimensioneringar, till att proces- sandet av en container skall understiga tidsåtgången för en cache-miss oavsett hur mycket som kan läsas till cache-minnet åt gången.
Då man vill kunna adressera samtliga containers som får plats på en sida med en anpassat liten mängd adressering-information, anvisar föreliggande uppfinning att en sida anpassas till att åtminstone rymma den mängd containrar som kan adresseras med hjälp av en byte. Med en byte kan 256 containrar adresseras, vilket motsvaras av 32 768 bytes. Således skall en sida anpassas till att kunna omfatta åtminstone 33 kBytes samt nödvändig annan information hörande till en sida.
Figur 9 visar schematiskt hur ett B-träd delats upp i ett antal mindre delträd, Tl, T2, T3. På detta sätt kan ett träd som är för stort för att få plats på en sida delas upp i mindre delträd.
Där ett delträd Tl får plats på en sida pl kräver nödvändig adresserings-information Rl endast en byte per referens.
Där referenserna R2, R3 är mellan delträden Tl, T2, T3 krävs en 10 15 20 25 30 35 510 0:30 _24- större mängd adresserings-information, nämligen den informati- onsmängd som krävs för att addresera containrar på olika sidor pl, P2, ---, Pn- Således kan de flesta referenserna inom det totala trädet rymmas inom en bytes vardera. Endast referenser mellan delträden kräver ett större minnesutrymme.
I det följande skall ett exempel lämnas på hur en sökning genom ett B-träd enligt föreliggande uppfinning kan gå till.
Figur 10 visar schematiskt ett träd. En sökning startar från en så kallad rot-sida och fortsätter neråt. Eftersom B-trädets element endast innehåller skillnads-information i är det nödvändigt att ha ett startvärde vid alla nivåer i sökningen.
Genom att nyttja startvärdet och skillnads-informationen kan det faktiska objektet som är lagrat finnas. Rot-noden på rot- sidan innehåller startvärdet "NULL".
Det eftersökta objektet jämförs med ett första element 9ell. Om objektet är mindre än eller lika med elementet 9ell följer sökningen den vänstra pekaren 9pl1, annars följer en jämförelse med nästa element 9el2. Om mindre än eller lika med detta element 9el2 följer sökningen pekaren till vänster 9pl2, vilket är fallet i vårt exempel.
Startvärdet för den nod som pekaren 9pl2 pekar på är då elementet 9el2 eftersom alla element inom denna nod är större än elementet 9el2. På detta sätt fortsätter sökningen ner genom noderna på en sida.
Om sökningen övergår till en annan sida har denna sida samma startvärde som rot-noden, som om sökningen fortsatt genom trädet utan hänsyn till sidorna. Ovanstående visar att startvärdet är implicit känt genom hela sökningen. Således krävs ingen lagring av startvärden i samband med sökningar. 10 510 000 _25..
Om ett objekt ej får plats i en container allokeras ytterligare en container vilken slås ihop med den första containern och således bildas en större container som har nödvändigt utrymme.
Denna container är då för stor för att kunna läsas in till ett cache-minne vid ett tillfälle vilket medför en cache-miss i samband med en eftersökning av vissa element inom denna con- tainer. Detta erbjuder en funktionalitet vilket dock kostar en del i prestanda.
Uppfinningen är givetvis inte begränsad till den ovan såsom exempel angivna utföringsformen utan kan genomgå modifikationer inom ramen för uppfinningstanken illustrerad i efterföljande patentkrav.

Claims (17)

10 15 20 25 30 35 510 ÛÛÛ _25.. BAIEHIKBAE
1. Struktur för lagring av data-information inom en databas, vilken data-information är strukturerad i en hierarki av noder, vilken hierarki utgöres av en träd-struktur, där nämnda träd omfattar en rot-nod, eventuellt en eller flera nivåer av mel- lanliggande noder, samt en eller flera löv-noder, där nämndai rot-nod omfattar ett eller flera rot-element, respektive mel- lanliggande nod omfattar ett eller flera mellanliggande ele- ment, och respektive löv-nod omfattar ett eller flera löv- element, där ett första mellanliggande element inom en mellan- liggande nod är länkad till nämnda rot-element eller till ett mellanliggande element inom en i nämnda hierarki högre placerad mellanliggande nod, och där övriga mellanliggande element inom nämnda mellanliggande nod är länkade till nämnda första mellan- liggande element, där ett första löv-element inom respektive löv-nod är länkad till nämnda rot-element eller till ett mel- lanliggande element inom en av nämnda mellanliggande noder, och där övriga löv-element inom nämnda löv-nod är länkade till näm- nda första löv-element, där respektive element omfattar nödvän- dig adresserings-information för nämnda länkar samt nämnda data-information, där ordningen av element inom en nod utgör en logisk ordning avseende nämnda data-information, såsom alfa- betisk eller numerisk ordning, och där data-informationen inom respektive element utgöres av skillnaden i data-information relativt data-informationen hörande till föregående element i nämnda hierarki, k ä n n e t e c k n a d därav, att data-in- formationen inom nämnda rot-element utgör ett startvärde, att nämnda startvärde utgöres av den faktiska data-informationen, att skillnads-information inom övriga element utgöres av ett data-ord som representerar den faktiska skillnaden hos nämnda data-information relativt data-informationen hörande till föregående element, oavsett var nämnda skillnad är inom nämnda data-information.
2. Struktur enligt patentkravet l, k ä n n e t e c k n a d därav, att nämnda skillnads-information omfattar om något skall 10 15 20 25 30 35 510 ÛÛÛ _27- tas bort relativt data-informationen hörande till föregående element, och i sådana fall vad som skall tas bort samt var inom nämnda data-information det skall tas bort, och att nämnda skillnads-information omfattar om något skall läggas till relativt data-informationen hörande till föregående element, och i sådana fall vad som skall läggas till samt var inom nämnda data-information det skall läggas till.
3. Struktur enligt patentkravet 2, k ä n n e t e c k n a d därav, att nämnda data-ord omfattar ett huvud och en informa- tionsdel, att nämnda huvud anger hur nämnda informationsdel skall tolkas.
4. Struktur enligt patentkravet 3, k ä n n e t e c k n a d därav, att nämnda informationsdel kan omfatta fem olika grupper av bitar, där - en första grupp, här benämnd ändelse, representerar vilken typ av ändelse nämnda data-information har, - en andra grupp, här benämnd minusinformation, represente- rar hur många bytes som skall tas bort relativt föregående element, - en tredje grupp, här benämnd plusinformation, represente- rar hur många bytes som skall läggas till relativt före- gående element, - en fjärde grupp, här benämnd likhet, representerar hur många bytes från slutet, bortsett från nämnda ändelse, som är lika relativt föregående element, och - en femte grupp, här benämnd skillnad, utgör de tecken som skall läggas till, det vill säga nämnda plusinformation i klartext.
5. Struktur enligt patentkravet 4, k ä n n e t e c k n a d 10 15 20 25 30 35 510 000 _28.. därav, att nämnda huvud utgöres av tre bitar, - att en första bit visar huruvida nämnda fjärde grupp exi- sterar eller ej, det vill säga om skillnaden ligger i slutet av nämnda data-information eller ej, - att en andra bit anger huruvida nämnda andra och tredje grupp omfattar fyra eller åtta bitar, och - att en tredje bit anger huruvida nämnda andra, tredje och femte grupp existerar eller ej, det vill säga huruvida det finns någon skillnadsinformation förutom ändelsen eller ej.
6. Struktur enligt patentkravet 5, k ä n n e t e c k n a d därav, att nämnda första grupp omfattar fem bitar, att nämnda andra och tredje grupp omfattar fyra eller åtta bitar, att näm- nda fjärde grupp omfattar noll eller åtta bitar, och att nämnda femte grupp omfattar nödvändigt antal bytes.
7. Struktur enligt patentkravet 6, k ä n n e t e c k n a d därav, att nämnda första grupp, via nämnda fem bitar, kan representera trettiotvå olika ändelser enligt en förbestämd lista av ändelser.
8. Struktur enligt patentkravet 8, k ä n n e t e c k n a d därav, att, för respektive löv-element, nämnda datainformation omfattar ett eftersökt objekt, att nämnda objekt omfattar fyra olika bitkombinationer, där en första bitkombination represen- terar huruvida objektet är làst eller ej.
9. Struktur enligt patentkravet 8, k ä n n e t e c k n a d därav, att, i det fall nämnda första bitkombination visar att nämnda objekt är olåst, en andra bitkombination utgör status- bitar för nämnda objekt, att en tredje bitkombination omfattar information om längden för en till nämnda objekt hörande ob- jekt-nyckel, och att en fjärde bitkombination omfattar nämnda 10 15 20 25 30 35 510 ÛÛÛ _29- objekt-nyckel.
10. Struktur enligt patentkravet 8, k ä n n e t e c k n a d därav, att, i det fall nämnda första bitkombination visar att nämnda objekt är låst, bitarna hörande till övriga bitkombina- tioner representerar en referens till ett transaktions-regis- ter, att nämnda transaktions-register omfattar statusbitar för nämnda objekt, information om längden för en till nämnda objekt hörande objekt-nyckel, nämnda objekt-nyckel, samt information rörande vilken typ av lås som är applicerat på nämnda objekt.
11. ll. Struktur enligt patentkravet 9 och 10, k ä n n e t e c - k n a d därav, att nämnda statusbitar nyttjas vid kopierings- processer av nämnda objekt, att respektive bit indikerar huru- vida nämnda objekt är kopierat eller ej kopierat, och att ett flertal samtidiga kopieringsprocesser nyttjar var sin status- bit.
12. Struktur enligt patentkravet 1, k ä n n e t e c k n a d därav, att, vid ett borttagande av ett element, skillnads-in- formationen hörande till ett eventuellt efterföljande element anpassas till att utgöra skillnads-information i relation till ett för nämnda borttagna element föregående element, att adres- serings-informationen hörande till nämnda efterföljande element anpassas till att peka mot nämnda föregående element, och att adresserings-informationen hörande till nämnda föregående element anpassas till att peka mot nämnda efterföljande element.
13. Struktur enligt patentkravet l, k ä n n e t e c k n a d därav, att, vid ett tillförandet av ett element, skillnads- informationen hörande till nämnda tillförda element anpassas till att utgöra skillnads-information i relation till ett föregående element, att adresserings-informationen hörande till nämnda tillförda element anpassas till att peka mot nämnda föregående element samt ett eventuellt efterföljande element, att skillnads-informationen hörande till nämnda eventuella 10 15 20 25 30 35 510 ÜÜÜ _ 30 _ efterföljande element anpassas till att utgöra skillnads- information i relation till nämnda tillförda element, att adresserings-informationen hörande till nämnda efterföljande element anpassas till att peka mot nämnda tillförda element, och att adresserings-informationen hörande till nämnda föregående element anpassas till att peka mot nämnda tillförda element.
14. Struktur enligt patentkravet 1, k ä n n e t e c k n a d därav, att en nod utgöres av en container, och att respektive element hörande till en nod är tilldelade positioner direkt efter varandra inom nämnda container.
15. Struktur enligt patentkravet 14, k ä n n e t e c k n a d därav, att informationsmängden i en container är mindre än, eller lika med, mängden information som vid ett tillfälle kan läsas till ett cache-minne hörande till en processor verkande inom nämnda databas, eller nyttjande nämnda databas.
16. Struktur enligt patentkraven 14 eller 15, k ä n n e - t e c k n a d därav, att nämnda länkar och därtill hörande adresserings-information inom respektive mellanliggande element är begränsad till en länk och därtill hörande adresserings- information avseende ett första element hörande till en i nämnda hierarki efterföljande nod, och att nämnda länkar och därtill hörande adresserings-information inom respektive löv- element är begränsad till en länk och därtill hörande adresse- rings-information från respektive första löv-element till ett element hörande till en i nämnda hierarki föregående nod.
17. Struktur enligt patentkravet 13, k ä n n e t e c k n a d därav, att en sida är anpassad till att kunna omfatta det antal noder, vilket antal gör att nämnda noder är adresseringsbara medelst en byte, att en träd-struktur delas upp i ett antal delträd, där respektive delträd omfattas av en sida, att adresserings-informationen hörande till respektive referens mellan två noder inom ett gemensamt delträd utgöres av en byte, 510 ÛÛÛ _ 31 _ och att adresserings-informationen hörande till respektive referens mellan två olika delträd utgöres av därför nödvändigt mínnesutrymme.
SE9702761A 1997-07-21 1997-07-21 Struktur vid databas SE510000C2 (sv)

Priority Applications (9)

Application Number Priority Date Filing Date Title
SE9702761A SE510000C2 (sv) 1997-07-21 1997-07-21 Struktur vid databas
BR9810766-6A BR9810766A (pt) 1997-07-21 1998-07-07 Estrutura para o armazenamento de informações de dados dentro de uma base de dados
KR1020007000596A KR20010022028A (ko) 1997-07-21 1998-07-07 데이터-베이스 구조
AU83651/98A AU8365198A (en) 1997-07-21 1998-07-07 Structure for a data-base
PCT/SE1998/001333 WO1999005617A2 (en) 1997-07-21 1998-07-07 Structure for a data-base
JP2000504524A JP2001511563A (ja) 1997-07-21 1998-07-07 データベースのための構造
CN98809345A CN1271442A (zh) 1997-07-21 1998-07-07 数据库结构
EP98934047A EP0996902B1 (en) 1997-07-21 1998-07-07 Structure for a data-base
US09/115,947 US6249788B1 (en) 1997-07-21 1998-07-15 Structure for a database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9702761A SE510000C2 (sv) 1997-07-21 1997-07-21 Struktur vid databas

Publications (3)

Publication Number Publication Date
SE9702761D0 SE9702761D0 (sv) 1997-07-21
SE9702761L SE9702761L (sv) 1999-01-22
SE510000C2 true SE510000C2 (sv) 1999-03-29

Family

ID=20407792

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9702761A SE510000C2 (sv) 1997-07-21 1997-07-21 Struktur vid databas

Country Status (9)

Country Link
US (1) US6249788B1 (sv)
EP (1) EP0996902B1 (sv)
JP (1) JP2001511563A (sv)
KR (1) KR20010022028A (sv)
CN (1) CN1271442A (sv)
AU (1) AU8365198A (sv)
BR (1) BR9810766A (sv)
SE (1) SE510000C2 (sv)
WO (1) WO1999005617A2 (sv)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684985A (en) 1994-12-15 1997-11-04 Ufil Unified Data Technologies Ltd. Method and apparatus utilizing bond identifiers executed upon accessing of an endo-dynamic information node (EDIN)
KR100289331B1 (ko) * 1998-10-27 2001-05-02 정선종 고차원 색인 구조의 동시성 제어 방법
JP3464172B2 (ja) * 1999-06-30 2003-11-05 株式会社次世代情報放送システム研究所 送信装置および送信方法、受信装置および受信方法、ならびに、送受信システムおよび送受信方法
WO2001014948A2 (en) * 1999-08-19 2001-03-01 Matrix Device Limited Recursive dynamic access to a data model having a hierarchical tree structure
US20020029229A1 (en) * 2000-06-30 2002-03-07 Jakopac David E. Systems and methods for data compression
US6842878B1 (en) * 2000-09-29 2005-01-11 International Business Machines Corporation Method to document relations between objects using a graphical interface tree component
GB2369695B (en) * 2000-11-30 2005-03-16 Indigo One Technologies Ltd Database
KR100488414B1 (ko) * 2000-12-30 2005-05-11 한국전자통신연구원 다중탐색 트리의 노드 생성 방법, 및 그에 따라 생성된 다중탐색 트리 구조의 자료 탐색 방법
US6959303B2 (en) * 2001-01-17 2005-10-25 Arcot Systems, Inc. Efficient searching techniques
US20040234995A1 (en) * 2001-11-09 2004-11-25 Musick Eleanor M. System and method for storage and analysis of gene expression data
KR20030044498A (ko) * 2001-11-30 2003-06-09 엘지전자 주식회사 주기억 장치 데이터베이스 관리 시스템의 자료 구조와블록 할당 및 레코드 검색 방법
US7062499B2 (en) * 2002-01-08 2006-06-13 Intel Corporation Enhanced multiway radix tree and related methods
US7707416B2 (en) 2002-02-01 2010-04-27 Novell, Inc. Authentication cache and authentication on demand in a distributed network environment
US7487535B1 (en) * 2002-02-01 2009-02-03 Novell, Inc. Authentication on demand in a distributed network environment
US6785674B2 (en) * 2003-01-17 2004-08-31 Intelitrac, Inc. System and method for structuring data in a computer system
AU2003259097A1 (en) * 2002-07-09 2004-01-23 Intelitrac, Inc. System and method for structuring data in a computer system
JP2006508436A (ja) * 2002-11-28 2006-03-09 インターナショナル・ビジネス・マシーンズ・コーポレーション ファイルをハイパーリンクするための方法及びシステム
US7315862B1 (en) * 2002-12-20 2008-01-01 Nortel Networks Limited Concurrent lock-free access to a record by write and read processes
US7058640B2 (en) * 2003-02-05 2006-06-06 International Business Machines Corporation Systems, methods, and computer program products to efficiently update multidimensional databases
US7401105B2 (en) 2003-10-02 2008-07-15 International Business Machines Corporation Method, system, and program product for retrieving file processing software
US7805710B2 (en) * 2003-07-15 2010-09-28 International Business Machines Corporation Shared code caching for program code conversion
JP2005301904A (ja) * 2004-04-15 2005-10-27 Mitsubishi Electric Corp 住所データベースおよびこれを用いた住所検索システム
CN100432999C (zh) * 2005-06-06 2008-11-12 上海宝信软件股份有限公司 Oracle下利用表结构体对整记录进行数据存取的方法
CN100452047C (zh) * 2005-12-27 2009-01-14 国际商业机器公司 执行关系数据库搜索的系统和方法
JP5121146B2 (ja) * 2006-02-22 2013-01-16 株式会社東芝 構造化文書管理装置、構造化文書管理プログラムおよび構造化文書管理方法
FR2902209B1 (fr) * 2006-06-07 2008-08-01 Sagem Defense Securite Procede de gestion d'une memoire comportant des elements pourvus d'une information d'identification indicative de l'ascendance desdits elements
JP4567754B2 (ja) * 2008-01-17 2010-10-20 株式会社エスグランツ ビット列検索装置、検索方法及びプログラム
US8380684B2 (en) * 2008-09-30 2013-02-19 Microsoft Corporation Data-tier application component fabric management
US9155320B2 (en) * 2011-07-06 2015-10-13 International Business Machines Corporation Prefix-based leaf node storage for database system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02130647A (ja) * 1988-11-11 1990-05-18 Toshiba Corp 索引木構造の更新方式
US5274805A (en) * 1990-01-19 1993-12-28 Amalgamated Software Of North America, Inc. Method of sorting and compressing data
US5151697A (en) * 1990-10-15 1992-09-29 Board Of Regents Of The University Of Washington Data structure management tagging system
US5430869A (en) * 1991-05-29 1995-07-04 Hewlett-Packard Company System and method for restructuring a B-Tree
US5404505A (en) * 1991-11-01 1995-04-04 Finisar Corporation System for scheduling transmission of indexed and requested database tiers on demand at varying repetition rates
GB9204450D0 (en) * 1992-03-02 1992-04-15 Ibm Concurrent access to indexed data files
US5497485A (en) * 1993-05-21 1996-03-05 Amalgamated Software Of North America, Inc. Method and apparatus for implementing Q-trees
US5649023A (en) * 1994-05-24 1997-07-15 Panasonic Technologies, Inc. Method and apparatus for indexing a plurality of handwritten objects
JP3441807B2 (ja) * 1994-09-19 2003-09-02 株式会社日立製作所 B木インデクスの管理方法およびシステム
EP0718980A1 (en) * 1994-12-20 1996-06-26 International Business Machines Corporation Data compression method of individual sequences of strings of a data stream based on a dictionary and device for performing the same
US5734381A (en) * 1994-12-21 1998-03-31 Nec Corporation Cancel undo method and system for tree structure data edition based on hierarchical menu inquiry
US5842196A (en) * 1996-04-03 1998-11-24 Sybase, Inc. Database system with improved methods for updating records
US5842197A (en) * 1996-08-29 1998-11-24 Oracle Corporation Selecting a qualified data repository to create an index
US6067574A (en) * 1998-05-18 2000-05-23 Lucent Technologies Inc High speed routing using compressed tree process

Also Published As

Publication number Publication date
KR20010022028A (ko) 2001-03-15
AU8365198A (en) 1999-02-16
SE9702761L (sv) 1999-01-22
WO1999005617A2 (en) 1999-02-04
SE9702761D0 (sv) 1997-07-21
WO1999005617A3 (en) 1999-04-15
EP0996902A2 (en) 2000-05-03
EP0996902B1 (en) 2012-06-13
BR9810766A (pt) 2000-08-15
CN1271442A (zh) 2000-10-25
JP2001511563A (ja) 2001-08-14
US6249788B1 (en) 2001-06-19

Similar Documents

Publication Publication Date Title
SE510000C2 (sv) Struktur vid databas
US11899641B2 (en) Trie-based indices for databases
EP0961211B1 (en) Database method and apparatus using hierarchical bit vector index structure
Aoe An efficient digital search algorithm by using a double-array structure
EP0136710B1 (en) Data structure in a document processing system
US20030135495A1 (en) Database indexing method and apparatus
US7246124B2 (en) Methods of encoding and combining integer lists in a computer system, and computer software product for implementing such methods
US7013304B1 (en) Method for locating digital information files
US20020095421A1 (en) Methods of organizing data and processing queries in a database system, and database system and software product for implementing such methods
US20020095397A1 (en) Method of processing queries in a database system, and database system and software product for implementing such method
EA006640B1 (ru) Способ навигации в базе данных
CN1152365A (zh) 一种存储和检索数据的方法和一种存储器配置
SE510001C2 (sv) Metod för att lagra element i en databas
JP3003915B2 (ja) 単語辞書検索装置
Fischer et al. Deterministic sparse suffix sorting on rewritable texts
US7269684B2 (en) Method and system for persistently storing objects in an object oriented environment
CN101582091B (zh) 一种词库创建方法和系统,及相应的单词查询方法和系统
Hashimoto et al. Computing the Parameterized Burrows–Wheeler Transform Online
KR950006603A (ko) 고정도수를 저장하는 컴퓨터내에서 이용가능한 메모리 주소위치의 수를 증가시키기 위한 메모리 주소지정방법
Hollaar et al. A specialized architecture for textual information retrieval
Kim et al. Practical Space-Efficient Index for Structural Pattern Matching
US20100057685A1 (en) Information storage and retrieval system
JPH0969113A (ja) 文書管理方式
JPH05314183A (ja) 結果自動補正検索システム
JPH0531788B2 (sv)

Legal Events

Date Code Title Description
NUG Patent has lapsed