SE514556C2 - Metod för hantering av en databas - Google Patents
Metod för hantering av en databasInfo
- Publication number
- SE514556C2 SE514556C2 SE9902639A SE9902639A SE514556C2 SE 514556 C2 SE514556 C2 SE 514556C2 SE 9902639 A SE9902639 A SE 9902639A SE 9902639 A SE9902639 A SE 9902639A SE 514556 C2 SE514556 C2 SE 514556C2
- Authority
- SE
- Sweden
- Prior art keywords
- interval
- objects
- intervals
- database
- coordinate system
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
35 .f h.. 51,4 556 « f - . r ~< » <. <.. <. 2 ansträngning, eftersom det vanligtvis endast är ett fåtal näraliggande objekt som påverkar en beräkning som utförs.
Vidare kan det finnas stora skillnader mellan detal- jeringsgraden mellan olika objekt. En slät vägg kanske modelleras tillräckligt bra av ett enda objekt, làt säga ett rätblock. En klocka som hänger pà väggen kanske där- emot är noggrant modellerad, och innehåller därmed ett stort antal mindre komponenter.
En traditionell lösning pà detta problem innebär att systemet indelar objekten i hierarkiska nivåer eller ska- lor. Mindre delar grupperas i ett sammansatt objekt, som kan representeras pà ett mer informationsfattigt sätt.
Klockan kan exempelvis pà en mindre skala innehålla en mängd objekt, vilka alla representerar en speciell kompo- nent av klockan. Pá en större skala representeras hela klockan av ett enda objekt, vilket exempelvis endast mot- svarar klockans yttre geometri. Den mindre skalan "döljs" för en konstruktör som arbetar pà den större skalan, dä han/hon endast behöver utnyttja samband mellan objekt pà den större skalan. Pà motsvarande sätt deaktiveras rela- tioner pä den större skalan när arbete utförs pà den mindre skalan.
Detta sätt att hantera problemet är otillfredsstäl- lande av flera anledningar. För det första kan användaren endast arbeta i en skala i taget, vilket innebär problem när egenskaper hos ett objekt påverkar objekt pà en mind- re eller större skala. Ett exempel: Om klockan enligt ovan pà den mindre skalan har en upphängningskrok, kan denna pàverka kraften som pà den större skalan häller samman klockan med väggen. En förändring av kroken påver- kar alltsà en relation högre upp i hierarkin. Detta sam- band konstateras inte om arbetet begränsas till en skala i taget.
För det andra är det en svär gränsdragning vilka ob- jekt som kan tillåtas pä en bestämd skala. Olika tillämp- ningar kan ha olika lämpliga indelningar, med bristfällig eller obefintlig kompabilitet som följd. (a. i? ru :=';'.'~:~:.:=_.~-...,,^. ~, 1,: . . ._;,,>../.«« vf.. ...i _ i.. 10 15 20 25 30 35 514 556 « f » ( 1 f 3 Enligt en känd teknik delas rummet upp i ett stort antal delvolymer, som lagras i databasen. Varje objekt kan härvid sträcka sig in i flera delvolymer, och databa- sen lagrar för varje delvolym vilka objekt som åtminstone delvis befinner sig i denna delvolym. En beräkning som utförs för en punkt i rummet behöver i detta fall endast 'påverkas av information avseende objekt som befinner sig i den mindre delvolym som innefattar den aktuella punk- ten. Om beräkningen avser ett objekt som sträcker sig över flera delvolymer involveras naturligtvis information från objekten i samtliga dessa delvolymer. Däremot behö- ver inte information avseende objekt som ligger i delvo- lymer som är helt skilda från den aktuella delvolymen tas med i beräkningen, och systemet undviker därmed en mängd onödiga operationer.
Nackdelen med detta system är att det är helt sta- tiskt. I en volym med ett fåtal stora objekt, vägg, innehåller ett stort antal delvolymer endast refe- rens till ett enda objekt. Där istället ett föremål med såsom en_ många små delar, såsom en klocka, förekommer, kan en del- volym innehålla ett mycket stort antal referenser. Konse- kvensen blir att en beräkning, exempelvis en kollisions- beräkning, som görs någonstans på väggen, blir avsevärt mycket mer beräkningstung om den utförs för någon av del- volymerna vid klockan, än om den utförs på en tom vägg- yta, trots att beräkningen inte nödvändigtvis påverkas av klockan.
Man skulle kunna uttrycka det så att systemet löser problemet med olika hierarkiska nivåer genom att låsa hela koordinatsystemet till en bestämd nivå som antas vara tillräckligt liten. Dessvärre uppstår istället pro- blem med delvolymer med mycket olika informationsinne- håll, helt enkelt en obalans i den matematik som beskri- ver koordinatsystemet och de inplacerade objekten. Följ- den blir mycket krävande beräkningar, exempelvis vid kol- lisions- eller optimeringsanalys. 10 15 20 25 30 35 514 556 Uppfinningens syften Ett första syfte med föreliggande uppfinning är att åstadkomma en dynamisk och automatiskt optimerande indel- ning av en spacemap, dvs ett flerdimensionellt "rum" re- presenterat av ett koordinatsystem.
Ett andra syfte med uppfinningen är att åstadkomma en dynamisk databas. I Ett tredje syfte med uppfinningen är att åstadkomma en databas, där varje man enkelt kan få information om vilka objekt som ligger i närheten av ett objekt.
Sammanfattning av uppfinningen Föreliggande uppfinning avser en metod av inled- ningsvis angivet slag, vidare kännetecknad av att varje gång ett objekt skrivs in i databasen, bestämma vilka flerdimensionella intervall som objektet har en utbred- ning i, för vardera av dessa intervall bestämma antalet objekt som har en utbredning i respektive intervall, jäm- föra nämnda antal objekt med ett förutbestämt tröskelvär- de, i det fall dä tröskelvärdet överskrids, dela upp intervallet i åtminstone två mindre intervall, för att och, därigenom begränsa antalet objekt som är relaterade till en utbredning i ett godtyckligt, definierat intervall.
På detta sätt säkerställs att det i varje intervall endast förekommer så många objekt som anges av tröskel- värdet. I delar av intervallet där många små objekt är placerade delas intervallet i ett stort antal små delin- tervall. I delar av intervallet där endast ett fåtal ob- jekt är placerade delas däremot intervallet in i större delintervall.
Enligt en föredragen utföringsform innefattar meto- den vidare steget att associera varje intervall med en uppsättning objekt som är relaterade till en utbredning i intervallet.
Den uppfinningsenliga metoden för att dynamiskt dela in ett intervall i flera mindre intervall utnyttjas för att erhålla en dynamisk spacemap, där varje objekt är as- 10 15 20 25 30 35 514 556 - < « . . f v v 5 socierat med åtminstone ett intervall, och där flera in- tervall är associerade med åtminstone ett objekt. Infor- mation om hur intervall och objekt år relaterade till varandra kan utnyttjas för att utvinna viktig information om objektens relation. Exempelvis indikerar storleken på ett intervall hur nåra dess objekt ligger andra, intill- liggande intervall.
En omedelbar fördel med denna typ av databas år att olika områden av den flerdimensionella spacemapen indelas i olika många intervall, beroende av hur många och hur små objekt som år relaterade till varje område.
Koordinatsystemet kan innefatta åtminstone en tids- dimension, och en eller flera, företrädesvis tre, rumsdi- mensioner. Detta är lämpligt för att på ett tillfreds- ställande sätt återge den verklighet som koordinatsyste- met representerar.
Varje delning av ett intervall sker lämpligen i en- dast en dimension. Genom att endast dela i en dimension i taget, erhålls bättre kontroll över vilka nya intervall som skapas. V Dà tröskelvärdet överskrids, delas intervallet före- trädesvis i två mindre intervall, och lämpligen i två lika stora intervall. Detta sätt att upprepade gånger halvera intervall lämpar sig utmärkt för implementering i en dator, under tillämpning av binär aritmetik.
Kort beskrivning av ritningarna Föreliggande uppfinning kommer i det följande att beskrivas närmare under hänvisning till bifogade ritning- ar, vilka i exemplifierande syfte visar föredragna utfö- ringsformer av uppfinningen.
Fig 1 illustrerar schematiskt en miljö där metoden enligt uppfinningen kan användas.
Fig 2 visar ett objekt som är inskrivet i ett koordinatsystem som är indelat i fyra intervall. lO 15 20 25 30 35 514 556 tili; rf¿¿";_;{;il¿lfi;. 1; 6 Fig 3 visar schematiskt hur ett objekt är knutet till flera intervall-objekt, och hur varje intervall-ID är knutet till ett objekt-ID.
Fig 4 visar ett flödesschema som illustrerar en ut- föringsform av uppfinningen.
Fig 5 visar ett flödesschema över steget att dela upp ett intervall i fig 4.
Fig 6 visar en uppdelning enligt uppfinningen av ett intervall i ett tvàdimensionellt koordinatsystem.
Pig 7a-7b visar en binär notation av en dimension av ett intervall, enligt en utföringsform av uppfinningen.
Beskrivning av en föredragen utföringsform Metoden enligt uppfinningen appliceras i en dator- miljö som innefattar en databas 1 med ett flertal objekt 2. Varje objekt är knutet (exempelvis medelst pekare) till ett eller flera dokument 3, vilka beskriver objek- tet. Vidare förekommer en första mjukvara 4 som hanterar objekten i databasen och en andra mjukvara 5 som innefat- tar ett användargränssnitt. Naturligtvis kan nämnda för- sta och andra mjukvaror vara integrerade i en mjukvara 6, och kommer i det följande helt generellt att benämnas "mjukvaran" 6. 6 Mjukvaran 6 tillåter en användare att skapa, redige- ra och avlägsna objekt 2, och hanterar kontinuerligt da- tabasen i enlighet med dessa förändringar och enligt en bestämd struktur. Vidare är mjukvaran 6 anordnad att ex- empelvis kunna utföra sökningar i databasen och hantera samband mellan objekt. En miljö av detta slag förekommer i en mängd tillämpningar, exempelvis CAD-konstruktion el- ler den globala databas som kallas WWW.
Metoden enligt uppfinningen är avsedd att implemen- teras i mjukvaran 6, eller i en separat mjukvara, som samverkar med en eller flera databaser.
När ett objekt skrivs in i databasen knyts det till en tidigare skapad modell, eventuellt via en transforma- tionsmatris som definierar hur objektet är orienterat i 10 15 20 25 30 V35 514 556 ««1 w 7 förhàllande till modellen. Objektet innefattar då en fö- rekomst av en modell i ett koordinatsystem, och man kan säga att objektet har en utbredning i koordinatsystemet.
Koordinatsystemet, som representerar en flerdimen- sionell verklighet, innefattar i ett enkelt fall de tre rumsliga dimensionerna, men enligt en föredragen utfö- ringsform även tid och en eller flera abstrakta dimensio- ner, vilka exempelvis kan representera alternativa ut- förande av en komponent eller en process.
Enligt en utföringsform av uppfinningen knyts varje objekt till ett eller flera intervall av koordinatsyste- met, med samma antal dimensioner som koordinatsystemet.
Samtidigt finns i databasen ett flertal intervall-objekt, vilka vardera är knutna till ett eller flera objekt.
I fig 2 visas hur en modell 10 är inskriven i ett koordinatsystem som är indelat i fyra lika stora inter- vall ll-14, och i fig 3 illustreras hur modellen och in- tervallen representeras i databasen 1. Modellen 10 repre- , senteras i databasen 1 av ett objekt 20, med ett objekt- ID 21. Varje intervall ll-14 representeras i databasen av ett intervall-objekt 22-25, som är tilldelat ett inter- vall-ID 26-29. Objektet 20 är knutet till de fyra inter- vall-objekten 22-25, företrädesvis medelst pekare 30 till intervall-objektens ID 26-29. Pà motsvarande sätt är var- je intervall-objekt 22-25 knutet till objektet 20, före- trädesvis medelst pekare 31 till objektets ID 21.
Varje gång ett objekt skrivs in i databasen, tillde- las objektet alltså en referens (pekare) till ett eller flera intervall-objekt. Vart och ett av dessa intervall- objekt tilldelas vidare en referens till det aktuella ob- jektet. Intervallen bestäms sà att de helt innesluter den utbredning i koordinatsystemet som objektet är relaterat till, och samtidigt begränsas antalet objekt som varje intervall är associerat med till ett bestämt tröskelvår- de.
Metoden att dela upp intervallen beskrivs i det föl-W jande med hänvisning till fig 4-5. 10 15 20 25 30 35 -- . _, 1.- .H1 ,._ , ._ _ .~ . . .. L , , _., -' ' ~ v '_- < - -cc-s « < f f < ._ f ~_ .. 4.1 4 ' -t fa -~ < 1 f 1 .
« I = 1- r m, U 8 I steg 41 skrivs ett objekt 20 in i databasen. Genom att jämföra objektets 20 utbredning med databasens inter- vall-objekt 22-25 bestäms vilka intervall objektet 20 har en utbredning inom (steg 42), och stegen 43-44 utföres för samtliga dessa intervall.
I steg 43 bestäms hur många objekt som förekommer i det aktuella intervallet. I den häri beskrivna föredragna utföringsformen av uppfinningen kan detta utläsas ur da- tabasen, eftersom varje intervall-objekt är knutet till en uppsättning objekt. Om databasen saknar denna struktu- rella uppbyggnad, kan mjukvaran 6 för samtliga objekt i databasen kontrollera om de har en utbredning i det aktu- ella intervallet.
I steg 44 jämförs detta antal med tröskelvärdet. Om tröskelvärdet inte överskrids fortsätter programkontrol- len till steg 45, för samtliga i steg 42 identifierade intervall. Om trös- som ser till att steg 43-44 upprepas kelvärdet däremot överskrids flyttas programkontrollen till steg 46, som delar upp intervallet i två intervall.
Programkontrollen återvänder därefter på nytt till steg 42, för att avgöra om objektet har en utbredning i båda dessa interval, eller endast ett av dem, och sedan uppre- pas steg 43 och 44 det ena eller båda intervallen.
När programkontrollen när slutet 47 har varje inter- vall endast sä många objektreferenser (alltså förekomster av objekt) som anges av tröskelvärdet. I en föredragen utföringsform definieras en minsta intervallstorlek, sä att indelningsrutinen begränsas. Visserligen kan då fler objekt förekomma i ett intervall än vad som anges av tröskelvärdet, men denna begränsning underlättar databa- sens hantering avsevärt, eftersom en minsta beståndsdel är väl definierad.
Flödesschemat i fig 5 består av två slingor (steg 43-45 och steg 42-44), vilka kan vävas in i varandra på ett komplicerat sätt, beroende pà hur intervallen delas.
Detta kan dock lösas med enkel programmering, och be- skrivs inte närmare här. 10 15 20 25 30 35 _- ._ - .c -. «. inf .- f, . .l . . n. 1 . .. H , f ;_,_ 1 ~ fw r . <« -'».- 'cr v -' »w 1 r. 1 Q, , Mb , * ( - v, x: . 1 - < L . - ~ -f \- r: d: <1 « 9 Indelningen av intervallet 31 i steg 46 sker exem- pelvis enligt flödesschemat i fig 5.
Det aktuella intervallet delas först av mjukvaran i en dimension (steg 51) varvid två nya delintervall bil- das. För varje intervall bestäms därefter antalet objekt som förekommer i respektive intervall (steg 52), samt an- talet objektreferenser som uppstår (steg 53), dvs antalet pekare från något av intervallen till något objekt. Detta upprepas för varje dimension som finns i koordinatsyste- (steg S4).
I steg 55 avgörs sedan vilken delning som ger den met bästa delningen, alltså vilken dimension som delningen ska utföras i. Definitionen på "bästa" delning kan exem- pelvis formuleras som att antalet nya objektreferenser minimeras och samtidigt en så jämn fördelning som möjligt sker av objekten mellan delintervallen. Andra formule- ringar är möjliga, i beroende av vilken struktur man ef- tersträvar i databasen.
Når mjukvaran avgjort vilken delning som år bäst, skrivs dessa två delintervall in i databasen i form av intervall-objekt (steg 56), varpå programkontrollen åter- vänder till steg 42 (fig 4).
Nedan redovisas med hänvisning till fig 6 ett exem- pel på indelning av ett tvådimensionellt koordinatsystem och med ett tröskelvärde lika med ett. Proceduren blir helt analog vid fler dimensioner, eller vid ett högre tröskelvàrde.
I databasen skapas ett objekt A som tilldelas ett objekt-ID, och eftersom objektet är ensamt i intervallet 61 knyts objektet till detta intervall 61 med en pekare.
På motsvarande sätt knyts intervallet 61 till objektets A ID.
Därefter skrivs ett andra objekt in i koordinatsy- stemet, varvid ännu ett objekt B skapas och tilldelas ett objekt-ID (steg 41). Genom att jämföra objektets B ut- bredning med databasens intervall-objekt bestäms vilka "\:'.«.'. 'Zït\FÉ~T\,É"CE~I\É\IÄS\2996525 $3E__Å(.ï1}.l9í'^7'~ÜE-T:'T. I.â"_f';.íÉ->I' 10 15 20 25 30 35 -'- -fl ~- «- :acc f << ^ " ' <' ' f ~~ w f < x..~-. '_ ' - « «~ L - :ut < < f .,« 1. _. 1 . z. vrf -, r= < LN . « - _ = _ < 1 <. . ._ _' .n f, 10 intervall objektet B har en utbredning inom (steg 42), och i exemplet påträffas endast intervallet 61.
Eftersom i exemplet objektet B också förekommer i intervall 61 konstateras i steg 44 att tröskelvärdet, är satt till ett, Därmed delas intervallet 61 (steg 46) i sin ena dimension i två delintervall 62, 63 (två rektanglar), vilka skrivs in i databasen som tvà nya SOITI överskrids. intervall-objekt. Genom en ny analys av objektets B utb- redning i respektive intervall (steg 42) konstateras att objektet endast förekommer i det vänstra intervallet 62, men där förekommer också objekt A, varför en ny indelning (steg 46) påbörjas. Därför skrivs ytterligare tvâ inter- vall-objekt i databasen, vilka intervall bildas genom att dela det vänstra intervallet i y-led i tvâ delintervall 64, 65, vilket ger snarlikt resultat. Nästa delning sker äter i x-led sä att intervall 66 och 67 bildas, varvid objektet A innefattar koordinatpunkter i báda intervallen 66 och 67. Analysen avslöjar nu objektet B endast före- kommer i intervall 67 och att detta intervall dessutom innehåller en utbredning av objekt A och därför mäste de- las ytterligare. Intervallet 7 delas i y-led i delinter- vallen 68 och 69, varvid endast ett objekt förekommer i respektive delintervall.
I exemplet ovan gjordes flera gånger ett val beträf- fande i vilken dimension (x eller y) som ett intervall skulle delas. Detta val görs enligt metoden som beskrevs ovan med hänvisning till fig 4. I exemplet innebär ovan- stående definition av "bäst" att om möjligt ett objekt hamnar i vardera intervall, och att annars sä få nya ob- jektreferenser som möjligt skapas. (Eftersom nya objekt- referenser enligt ovan skapas varje gäng ett nytt delin- tervall bildas där ett objekt förekommer, skapas det fler nya objektreferenser när en delning sker genom ett ob- jekt.) Det ursprungliga koordinatsystemet har härmed delats in i ett flertal intervall 61-69, vilka samtliga i data-»i basen representeras av intervall-objekt. Varje objekt A, 10 15 20 25 30 35 56 z' I. v 'I I Wim , H ' .' < - .- - f «. u c r _» \ < - i -- < . .-.f l (_ (_ ff' « -. .. .l. ( K n., p - ~ l f 1 ll B är vidare knutet till en uppsättning intervall. Objek- tets A uppsättning innefattar intervall 61, 65, vilket utgör de kvadratiska intervall som omsluter hela objek- tet, och vidare intervall 66 och 69, eftersom detta är de två slutliga delintervall som objektet förekommer i.
Objektets B uppsättning innefattar i sin tur också intervall 61 och 65, intervall 8, som omsluter hela objektet och samtidigt av samma skäl som ovan, och vidare inte är ytterligare uppdelat. På motsvarande sätt är fle- ra intervall 65-69, jekten A, B, knutna till respektive objekt med en pekare.
Intervall 61 och 65 är knutna till båda objekten A, B, intervall 66 och 69 till objekt A, och slutligen inter- vall 68 till objekt B.
Varje intervall-objekt har lämpligen ett ID som in- nehàller information om var intervallet är beläget i ko- som innefattar en del av ett av ob- ordinatsystemet, samt om dess utbredning i varje dimen- sion. Exempelvis kan intervall-objektet ha ett ID pà for- men kl, k2, ,kN, A1, A2, ,AN, där ki betecknar ett koordinatvärde i dimension i, och Ai betecknar storleken' pä intervallet i dimension i.
I det binära talsystemet kan ett par bestående av koordinatvärde och utbredning i en dimension tecknas ge- nom att utnyttja ett tal för koordinatvärdet och ett för utbredningen. Detta illustreras i fig 7a och 7b.
Intervallet 71 är indelat i ett flertal delintervall 72-7 av olika storlek. Det minsta intervallet har längden ett, och motsvaras av den ovan nämnda minsta definierade intervallstorleken. Eftersom den minsta intervallstorle- ken är känd, kan varje möjlig intervallstartpunkt ges en koordinat, i exemplet mellan 0 och 1111 (=15 i decimala talsystemet). Observera att intervallets 71 bortersta punkt (10000 binärt, 16 decimalt) inte kan utgöra start- punkt för ett delintervall av intervallet 71. Varje del- intervalls längd tecknas som en multipel av den minsta intervallängden.
I fig 7a är tre interval 72-74 markerade: 10 15 20 25 30 35 ~ 'c <1 4, ffc . 56 ' .\ '> 1 ' ' '- f* v < -\ ~«~ - ~' :<\ - <.- <~ Cm f ~ «< z . . z ,, _ * ' ~ 12 0 Intervall 72 startar i punkten 10 (2 decimalt), och år 1 långt. 0 Intervall 73 startar i punkten 100 (4), och är 100 (4) långt. 0 Intervall 74 startar i punkten 1110 10 (2) I fig 7b har intervallet 73 delats i två intervall 75, 76. lets 73 beteckning genom att längden halveras lO0'9 10), och att tvâ startpunkter bildas, varav den ena är identisk med inter- vallets 73 startpunkt (100), intervalets 73 startpunkt adderad med den nya inter- vallàngden (100 + 10 110).
Strukturen av intervall-objekt i databasen kan ut- (14), och år långt.
Deras respektive beteckningar erhålls ur interva- (en nolla stryks i det binåra notationen, och den andra är lika med nyttjas till att erhålla information om exempelvis hur nåra grannar ett objekt har, eller var den närmaste gran- nen troligen finns. Eftersom objektet år knutet till in- tervall-ID för de intervall-objekt det utbreder sig inom, räcker det att betrakta dessa intervall-ID, för att få information om hur stor utbredning de har. En del av ob- jektet som ligger i ett intervall med liten utbredning måste vara relativt nåra beläget ett annat objekt, vilket har orsakat denna intervalluppdelning.
Genom att låta en av dimensionerna representera tid, och låta varje objekt vara knutet till en tidsutbredning, dvs ett tidsintervall då de existerar på en bestämd plats, kan databasen enligt uppfinningen utnyttjas till att dela in en dynamisk process i tiden. En förflyttning av ett objekt tar upp en korridor i tid-rummet, en s.k. envelop. När två enveloper kolliderar kan dessa enligt uppfinningen delas med avseende på tiden, för att avgöra om det verkligen sker en kollision mellan de två objek- ten. En förutsättning är att objektet knyts till ett flertal ID vilka vardera år kopplade till ett tidsinter- vall och ett låge. 10 15 20 25 30 35 fy. -5di4 5556. . ¿,~,:¿. {@§f,ÄfÜï 13 En an koordinatsystemets dimensioner kan vara en ab- strakt dimension, som representerar alternativa utföran- den av ett föremål eller process. Tvà objekt kan då be- finna sig på samma plats vid samma tid, men som olika, ömsesidigt uteslutande alternativ.
Strukturen kan också utnyttjas för att fördela inne- hållet i en databas på flera enheter, exempelvis filer eller lagringsenheter. Denna uppdelning kan dä baseras på områden av koordinatsystemet, så att en enhet innehåller alla de intervall-objekt som avser intervall som ingår i detta område, varav det största intervall-objektet avser hela området.
Det är vidare föredraget att alla objekt i databasen har ett objekt-ID som innefattar koordinaterna för en av objektets koordinatpunkter. Alla objekt lagras då lämpli- gen på den enhet där det intervall-objekt är lagrat som innehåller objektets ID-koordinat.
När spacemapen delas upp enligt föreliggande uppfin- ning, kan databasenheterna också förändras i enlighet därmed. Exempelvis kan ett andra tröskelvärde definiera hur många objekt som får lagras samtidigt på en enhet, vilket tröskelvärde bestäms av varje databas egenskaper.
När detta tröskelvärde överskrids, kan halva det område som är kopplat till denna enhet flyttas till en annan en- het, exempelvis en annan fil, en annan disk, eller en helt annan fysisk enhet.
På detta sätt skapas en databas där varje enhet är logiskt kopplad till ett bestämt område av det koordinat- system som representerar den verklighet som avbildas i databasen. Detta är fördelaktigt i en mängd tillämpning- ar, exempelvis konstruktionsarbete, gruvdrift, World Wide Web, lagerdatabaser, etc.
Databasstrukturens nära koppling till objektens tids-rumsliga utbredning gör den speciellt lämplig i tillämpningar där rummet och tiden spelar en avgörande roll. Exempelvis kan nämnas bokningssystem för resor. Ge- nom att ange tid, start och mål kan ett gränssnitt enkelt -".^\' _-~.\ ~r~~\- 1.~'°~.f\r:* c>."'t^r' 2:9 ^"*;-".'~f,'f» h). 'n .t-.á -.-. 'Ja-m \F._.x\.-«.---.-\2.-.'c.,<3 vn.. L: 1 ..v}:»-.~f,~.... |..« m (_).
Q 1 - . ru x 14 plocka fram lämpliga resor. Vid jordbruk med många små àkerarealer, kan dessa administreras med en databas en- ligt uppfinningen.
RD
Claims (9)
1. Metod för hantering av en databas innehållande objekt (2, 20, A, B), vilka har en utbredning i ett koor- dinatsystem som representerar en flerdimensionell verk- lighet, vilket koordinatsystem är indelningsbart i ett flertal definierade, (22-25; 61-69), kännetecknad av stegen att, varje gång ett flerdimensionella intervall objekt skrivs in i databasen, bestämma vilka flerdimensionella intervall som objektet har en utbredning i, för vardera av dessa intervall bestämma antalet objekt som har en utbredning i respektive intervall, jämföra nämnda antal objekt med ett förutbestämt trös- kelvärde, och, i det fall då tröskelvärdet överskrids, dela upp inter- vallet i åtminstone två mindre intervall, för att därige- nom begränsa antalet objekt som är relaterade till en ut- bredning i ett godtyckligt, definierat intervall.
2. Metod enligt krav l, vidare innefattande steget att knyta varje intervall (22-25; 61-69) till en uppsätt- (20; A, B) ning objekt som har en utbredning i interval- let.
3. Metod enligt krav 1 eller 2, vidare innefattande steget att knyta varje objekt (20; A, B) till en uppsätt- ning intervall (22-25; 61-69) som objektet har en utbred- ning inom.
4. Metod enligt krav 1 eller 2, varvid koordinat- systemet innefattar åtminstone en tidsdimension.
5. Metod enligt något av föregående krav, varvid ko- ordinatsystemet innefattar en eller flera, och företrä- desvis tre, rumsdimensioner. lO 15
6. Metod varje delning sion.
7. Metod tröskelvärdet intervall.
8. Metod tröskelvärdet stora interva
9. Metod nefattande st och en utbredning i koordinatsystemet avlägsnas, .g»gÉ5'f4šï5!561 16 enligt något av föregående krav, varvid av ett intervall sker i endast en dimen- enligt något av föregående krav, varvid, då överskrids, intervallet delas i två mindre enligt något av föregående krav, varvid, då överskrids, intervallet delas i två lika ll. enligt något av föregående krav, vidare in- egen att, då relationen mellan ett objekt anpassa indelningen av intervall.
Priority Applications (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| SE9902639A SE514556C2 (sv) | 1999-07-09 | 1999-07-09 | Metod för hantering av en databas |
| PCT/SE2000/001440 WO2001004795A1 (en) | 1999-07-09 | 2000-07-06 | Method for handling a database |
| US10/019,891 US7028048B1 (en) | 1999-07-09 | 2000-07-06 | Method for dividing a coordinate system into a plurality of intervals based on the distribution of objects represented within the coordinate system |
| JP2001510130A JP2003504761A (ja) | 1999-07-09 | 2000-07-06 | データベースの処理方法 |
| EP00946719A EP1196870A1 (en) | 1999-07-09 | 2000-07-06 | Method for handling a database |
| CA002377970A CA2377970A1 (en) | 1999-07-09 | 2000-07-06 | Method for handling a database |
| AU60433/00A AU758168B2 (en) | 1999-07-09 | 2000-07-06 | Method for handling a database |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| SE9902639A SE514556C2 (sv) | 1999-07-09 | 1999-07-09 | Metod för hantering av en databas |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| SE9902639D0 SE9902639D0 (sv) | 1999-07-09 |
| SE9902639L SE9902639L (sv) | 2001-01-10 |
| SE514556C2 true SE514556C2 (sv) | 2001-03-12 |
Family
ID=20416447
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| SE9902639A SE514556C2 (sv) | 1999-07-09 | 1999-07-09 | Metod för hantering av en databas |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US7028048B1 (sv) |
| EP (1) | EP1196870A1 (sv) |
| JP (1) | JP2003504761A (sv) |
| AU (1) | AU758168B2 (sv) |
| CA (1) | CA2377970A1 (sv) |
| SE (1) | SE514556C2 (sv) |
| WO (1) | WO2001004795A1 (sv) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6381605B1 (en) | 1999-05-29 | 2002-04-30 | Oracle Corporation | Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets |
| HUE036870T2 (hu) | 2006-10-24 | 2018-08-28 | Repros Therapeutics Inc | Az endometriális proliferáció elnyomására szolgáló készítmények és módszerek |
| US8914565B2 (en) * | 2007-06-08 | 2014-12-16 | Sap Ag | Locking or loading an object node |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07146871A (ja) * | 1993-11-24 | 1995-06-06 | Hitachi Ltd | 静止画検索装置および静止画検索方法 |
| EP0723247B1 (en) * | 1995-01-17 | 1998-07-29 | Eastman Kodak Company | Document image assessment system and method |
| US5903893A (en) * | 1997-09-15 | 1999-05-11 | International Business Machines Corporation | Method and apparatus for optimizing a merge-join operation across heterogeneous databases |
| US6381605B1 (en) * | 1999-05-29 | 2002-04-30 | Oracle Corporation | Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets |
-
1999
- 1999-07-09 SE SE9902639A patent/SE514556C2/sv not_active IP Right Cessation
-
2000
- 2000-07-06 US US10/019,891 patent/US7028048B1/en not_active Expired - Fee Related
- 2000-07-06 EP EP00946719A patent/EP1196870A1/en not_active Withdrawn
- 2000-07-06 WO PCT/SE2000/001440 patent/WO2001004795A1/en not_active Ceased
- 2000-07-06 CA CA002377970A patent/CA2377970A1/en not_active Abandoned
- 2000-07-06 JP JP2001510130A patent/JP2003504761A/ja not_active Abandoned
- 2000-07-06 AU AU60433/00A patent/AU758168B2/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| EP1196870A1 (en) | 2002-04-17 |
| US7028048B1 (en) | 2006-04-11 |
| SE9902639L (sv) | 2001-01-10 |
| JP2003504761A (ja) | 2003-02-04 |
| WO2001004795A1 (en) | 2001-01-18 |
| CA2377970A1 (en) | 2001-01-18 |
| AU758168B2 (en) | 2003-03-20 |
| SE9902639D0 (sv) | 1999-07-09 |
| AU6043300A (en) | 2001-01-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Campbell et al. | Dynamic octree load balancing using space-filling curves | |
| Greengard et al. | A fast algorithm for particle simulations | |
| EP2370873B1 (en) | Visualizing relationships between data elements | |
| KR102021915B1 (ko) | 프로그래밍 속성의 그래픽 표현 | |
| van Wijk et al. | An environment for computational steering | |
| US5319743A (en) | Intelligent and compact bucketing method for region queries in two-dimensional space | |
| CN111666361B (zh) | 一种存储多边形包含关系的四叉树构建方法及索引方法 | |
| SE514556C2 (sv) | Metod för hantering av en databas | |
| WO2013190577A2 (en) | Polytope and convex body database | |
| CN116232904A (zh) | 一种主机容器网络拓扑图生成方法、终端设备及存储介质 | |
| CN115114487A (zh) | 一种海量层级结构的数据布局展示方法 | |
| CN114861970A (zh) | 有限资源下大规模图的全源最短路径分治求解方法 | |
| Karman et al. | Mixed order mesh curving | |
| Hardy | Map production from an active object database, using dynamic representation and automated generalisation | |
| Sun et al. | Exploring spatial datasets with histograms | |
| Zhao et al. | Parallel computing strategy for solution adaptive, multi-grid unstructured flow solver | |
| Indreberg et al. | Particular: A Functional Approach to 3D Particle Simulation | |
| Saalfeld | Map generalization as a graph drawing problem | |
| Yearsley et al. | A deductive model of planar spatio-temporal objects | |
| Hoskins | Descriptive databases in some design/manufacturing environments | |
| Xu et al. | Efficiently Update Disk-Resident Interval Tree | |
| JPH08161397A (ja) | プロジェクト管理装置 | |
| Wang et al. | Node-based dynamic adaptive grid with quadrilateral and hexahedral elements | |
| Dæhlen et al. | A triangle-based carrier for geographical data | |
| Khokhlov et al. | Fully Threaded Tree Algorithms for Massively Parallel Computations. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| NUG | Patent has lapsed |