SE516562C2 - Förfarande för extrahering av information från en databas - Google Patents

Förfarande för extrahering av information från en databas

Info

Publication number
SE516562C2
SE516562C2 SE9900894A SE9900894A SE516562C2 SE 516562 C2 SE516562 C2 SE 516562C2 SE 9900894 A SE9900894 A SE 9900894A SE 9900894 A SE9900894 A SE 9900894A SE 516562 C2 SE516562 C2 SE 516562C2
Authority
SE
Sweden
Prior art keywords
data
tables
variables
variable
value
Prior art date
Application number
SE9900894A
Other languages
English (en)
Other versions
SE9900894D0 (sv
SE9900894L (sv
Inventor
Haakan Wolge
Original Assignee
Qliktech Internat Ab
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 Qliktech Internat Ab filed Critical Qliktech Internat Ab
Priority to SE9900894A priority Critical patent/SE516562C2/sv
Publication of SE9900894D0 publication Critical patent/SE9900894D0/sv
Priority to PCT/SE2000/000482 priority patent/WO2000055766A1/en
Priority to EP11189938.1A priority patent/EP2450809B1/en
Priority to CA2367181A priority patent/CA2367181C/en
Priority to US09/936,500 priority patent/US7058621B1/en
Priority to JP2000605924A priority patent/JP4463431B2/ja
Priority to EP11189942A priority patent/EP2450810A3/en
Priority to EP00917562A priority patent/EP1177512A1/en
Priority to AU38518/00A priority patent/AU3851800A/en
Publication of SE9900894L publication Critical patent/SE9900894L/sv
Publication of SE516562C2 publication Critical patent/SE516562C2/sv

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

25 30 35 p1s116 sazšßš-'fš ~' 2 Vid en lösning enligt känd teknik är ett dator- program utformat att bearbeta databasen och utvärdera alla tänkbara matematiska funktioner opererande på alla tänkbara beräkningsvariabler uppdelat på alla tänkbara klassificeringsvariabler, även kallade dimensioner.
Resultatet av denna operation är en stor datastruktur som vanligtvis kallas för en màngdimensionell kub. Denna màngdimensionella kub erhålls genom en mycket tids- krävande operation, vilken typiskt utföres över en natt.
Kuben innehåller de utvärderade resultaten av de matema- tiska funktionerna för varje unik kombination av de före- kommande värdena på klassificeringsvariablerna. Använ- daren kan sedan, i ett annat datorprogram som opererar på den màngdimensionella kuben, utforska databasens data, exempelvis genom att åskådliggöra vald data i pivot- tabeller eller grafiskt i tvådimensionella och tre- dimensionella diagram. När användaren definierar en matematisk funktion och en eller flera klassificerings- variabler, elimineras alla andra klassificeringsvariabler genom en summering över de i kuben för denna matematiska funktion lagrade resultaten, varvid summeringen görs för alla andra klassificeringsvariabler. Således kan använ- daren genom att lägga till eller ta bort klassificerings- variabler röra sig upp och ned i kubens dimensioner.
Detta tillvägagångssätt har vissa oönskade begräns- ningar. Om den màngdimensionella kuben efter utvärdering innehåller medelvärdesbildade storheter, exempelvis me- delförsäljningen uppdelad pà ett antal klassificerings- variabler, kan användaren ej eliminera en eller flera av dessa klassificeringsvariabler eftersom en summering över medelvärdesbildade storheter ej ger ett korrekt totalme- delvärde. I detta fall måste den màngdimensionella kuben också innehålla den medelvärdesbildade storheten uppdelad på varje tänkbar kombination av klassificeringsvariabler, vilket ger en extra komplexitet till operationen att bygga den màngdimensionella kuben. Samma problem upp- kommer för andra storheter, exempelvis medianvärden. 10 15 20 25 30 35 tt5-'f 6 5 6 3 .. .
Det är ofta svårt att förutspå alla relevanta mate- matiska funktioner, beräkningsvariabler och klassifice- ringsvariabler innan man gör en första inspektion av data i databasen¿ Efter att ha identifierat trender och möns- ter skulle användaren kunna se ett behov av att lägga till en funktion eller en variabel för att nå underlig- gande detaljer i nämnda data. Dà måste den tidskrävande processen att bygga en ny mångdimensionell kub initieras.
Sammanfattning av uppfinningen Följaktligen är ändamålet med föreliggande uppfin- ning att minska ovannämnda nackdelar och att anvisa ett förfarande för extrahering av information från en data- bas, vilket förfarande tillåter användaren att fritt välja matematiska funktioner och införliva beräknings- variabler i dessa funktioner samt att fritt välja klassi- ficeringsvariabler för presentation av resultaten.
Detta ändamål uppnås genom förfarandet med de sär- drag som anges i det självständiga patentkravet 1. Före- dragna utföringsformer återges i de osjälvständiga patentkraven.
Enligt föreliggande uppfinning anvisas ett förfa- rande för generering av en slutlig datastruktur, dvs en mångdimensionell kub, från data i en databas pà ett effektivt sätt, både med avseende pà processtid och min- nesbehov. Eftersom kuben kan genereras mycket snabbare än vid lösningar enligt känd teknik är det möjligt att gene- rera màngdimensionella kuber ad hoc. Användaren kan in- teraktivt definiera och generera en kub utan att vara begränsad till ett mycket litet antal matematiska funk- tioner och variabler. Den matematiska funktionen är nor- malt sammansatt av en kombination av matematiska uttryck.
Om användaren behöver modifiera den matematiska funktio- nen genom att ändra, lägga till eller ta bort ett matema- tiskt uttryck kan normalt en ny kub genereras pà en till- räckligt kort tid för att ej störa användaren i dennes arbete. Pà liknande vis kan kuben mycket snabbt regenere- 10 15 20 25 30 35 'I av v , , . _ . v a» rv an: ,, ,' u ,;s1 6 :asëïï-'ïí 4 n 1 oc... , , . ras om användaren önskar lägga till eller ta bort en variabel.
Detta uppnàs genom en ändamålsenlig gruppering av alla relevanta datatabeller i gränstabeller respektive förbindningstabeller, pà basis av den i varje tabell in-i gående typen av variabler. Genom att välja en av dessa tabeller som en startpunkt och genom att bygga en lämplig omvandlingsstruktur kan den slutliga datastrukturen effektivt genereras fràn starttabellen med användning av omvandlingsstrukturen.
Databasens dataposter läses företrädesvis först in i primärminnet hos en dator så att nämnda data kan bearbe- tas fristående. Detta kommer ytterligare att minska tiden för sökning i databasen och generering av den slutliga datastrukturen. Databasen kan vara lagrad på ett sekun- därminne eller vara en fjärrlagrad databas till vilken datorn ansluts via ett modem. Det bör inses att den såle- des i primärminnet inlästa databasen kan vara en vald del av en större databas eller en kombination av tvâ eller flera databaser.
I en föredragen utföringsform tillordnas varje en- skilt värde på varje datavariabel en binärkod och lagras dataposterna i binärkodad form. Med anledning av binär- kodningen kan mycket snabbare sökningar verkställas i datatabellerna. Dessutom kan redundant information av- lägsnas, vilket resulterar i en minskad mängd data.
I en annan föredragen utföringsform avgränsas en delmängd av alla gräns- och förbindningstabeller som innehåller beräkningsvariabler med ett behov av frekvens- data, dvs variabler för vilka antalet upprepningar av varje värde är nödvändigt för korrekt utvärdering av den matematiska funktionen. Genom att välja starttabellen från denna delmängd och att införliva frekvensdata i om- vandlingsstrukturen kan man uppnà mycket minneseffektiv lagring av upprepningar vid uppbyggnaden av den slutliga datastrukturen. 10 15 20 25 30 35 m ss 5 I omvandlingsstrukturen kan frekvensdata införlivas genom mångfaldigande av varje värde, dvs omvandlings- strukturen kommer att innehålla en länk från varje värde på en förbindningsvariabel i starttabellen till ett korrekt antal av varje värde pà minst en motsvarande vald variabel i en gränstabell. Alternativt kan en räknare vara införlivad i omvandlingsstrukturen för varje unikt värde på varje förbindningsvariabel i starttabellen.
Företrädesvis väljs den gräns- eller förbindnings- tabell som har det största antalet dataposter som start- tabell. Detta tenderar att minimera mängden frekvensdata som måste införlivas i omvandlingsstrukturen, vilken därför kan byggas snabbare.
I en ytterligare föredragen utföringsform skapas en virtuell datapost genom läsning av en datapost hos start- tabellen och genom användning av omvandlingsstrukturen för omvandling av varje värde på varje förbindningsvaria- bel i denna datapost till ett värde på minst en motsva- rande vald variabel. Därigenom kommer den virtuella data- posten att innehålla en aktuell kombination av värden på de valda variablerna. Den slutliga datastrukturen kan byggas gradvis genom sekventiell läsning av dataposter från starttabellen, genom uppdatering av innehållet i den virtuella dataposten på basis av innehållet i varje sådan datapost, och genom utvärdering av den matematiska funk- tionen på basis av innehållet i varje sådan uppdaterad, virtuell datapost. Denna procedur minimerar mängden da- torminne som krävs för extrahering av den önskade infor- mationen från databasen. Dessutom kan ofta virtuella dataposter som innehåller odefinierade värden, s k NULL- värden, på någon beräkningsvariabel ofta avlägsnas ome- delbart, i synnerhet när alla beräkningsvariabler uppvi- sar NULL-värden, eftersom sådana värden i många fall ej kan användas i utvärderingen av den matematiska funktio- nen. Detta särdrag kommer att bidra till en optimerad prestanda. 10 15 20 25 30 35 nuvfl' 1....- 6 I en annan föredragen utföringsform byggs en mellan- liggande datastruktur på basis av innehållet i den virtu- ella dataposten. Varje datapost hos den mellanliggande datastrukturen innehåller ett fält för varje vald klassi- ficeringsvariabel och ett aggregeringsfält för varje ma- tematiskt uttryck som ingår i den matematisk funktionen.
För varje uppdaterad, virtuell datapost utvärderas varje matematiskt uttryck, och resultatet aggregeras i det lämpliga aggregeringsfältet på basis av det aktuella värdet på varje vald klassificeringsvariabel. En sådan mellanliggande datastruktur tillåter användaren att i en matematisk funktion kombinera matematiska uttryck med olika behov av frekvensdata. Genom att bygga flera om- vandlingsstrukturer innehållande motsvarande frekvens- data, och genom att utvärdera dataposterna hos en start- tabell för varje sådant matematiskt uttryck på basis av en motsvarande omvandlingsstruktur, är det möjligt att sammanfoga resultaten av dessa utvärderingar i en mellan- liggande datastruktur. Om användaren modifierar den mate- matiska funktionen genom att lägga till ett nytt matema- tiskt uttryck som opererar på de redan valda beräknings- variablerna är det likaså endast nödvändigt att lägga till ett aggregeringsfält till den existerande, mellan- liggande datastrukturen, eller att utöka ett existerande aggregeringsfält.
Det bör noteras att den virtuella dataposten i all- mänhet verkligen är virtuell, dvs den allokeras ej fy- siskt något minne, under övergången från en datapost hos starttabellen till den slutliga datastrukturen. En sådan virtuell datapost kan emellertid alltid, åtminstone im- plicit, identifieras under proceduren för omvandling av innehållet i en datapost hos starttabellen till aktuella värden på den valda variablerna.
Beskrivning av föredragna utföringsformer Föreliggande uppfinning kommer nu att beskrivas i exemplifierande syfte med hänvisning till tabellerna i Appendix A och till fig 1 på ritningen, vilken visar 10 15 20 25 30 35 5, 7 o u u | a »o innehållet i en databas efter identifiering av relevanta datatabeller i överensstämmelse med förfarandet enligt uppfinningen.
En databas, såsom visas i fig 1, omfattar ett antal datatabeller (Tabell 1-5). Varje datatabell innehåller datavärden pà ett antal datavariabler. Exempelvis inne- håller i Tabell 1 varje datapost datavärden på data- och "Del". något specifikt värde i ett fält hos dataposten, anses detta fält innehålla ett NULL-värde. innehåller varje datapost i Tabell 2 värden på variab- "Kund”, ”Produkt” och "Antal". lagras datavärdena i form av ASCII-kodade strängar. variablerna ”Produkt”, ”Pris” Om det saknas Pà liknande vis lerna "Datum”, Typiskt Förfarandet enligt föreliggande uppfinning är imple- menterat med hjälp av ett datorprogram. I ett första steg läser programmet alla dataposter i databasen, exempelvis med användning av en SELECT-programsats som väljer alla tabellerna hos databasen, dvs Tabell 1-5 i detta fall.
Typiskt läses databasen in i datorns primärminne.
För att öka utvärderingshastigheten är det före- draget att varje unikt värde på varje datavariabel i databasen tillordnas en egen binärkod och att datapos- terna lagras i binärkodad form. Detta görs typiskt när programmet först läser dataposterna från databasen. För varje intabell verkställs följande steg. Först läses successivt tabellens kolumnnamn, dvs variablerna. Varje gång en ny datavariabel framträder instantieras en data- struktur för denna. Sedan instantieras en intern tabell- struktur för upptagning av alla dataposterna i binär form, varpà dataposterna successivt läses och binàrkodas.
För varje datavärde kontrolleras datastrukturen hos mot- svarande datavariabel för fastställande om värdet tidi- gare har tillordnats en binärkod. Om sà är fallet, in- fogas denna binärkod pà rätt plats i ovannämnda tabell- struktur. Om så ej är fallet läggs datavärdet till i datastrukturen och tillordnas en ny binärkod, företrädes- vis nästa i stigande ordning, innan det infogas i tabell- 10 15 20 25 30 35 ._ ,, n un: . a ø v I ° , | . ~ o I strukturen. Med andra ord tillordnas varje unikt data- värde en unik binärkod för varje datavariabel.
Tabell 6-12 i Appendix A visar de binàrkoder som tillordnas olika datavärden pà vissa datavariabler som ingàr i databasen i fig l. _ Efter att ha läst alla dataposter i databasen analy- serar programmet databasen för identifiering av alla för- bindelser mellan datatabellerna. En förbindelse mellan två datatabeller innebär att dessa datatabeller har en variabel gemensam. Olika algoritmer för utförande av en sådan analys är tidigare kända. Efter analysen är alla datatabeller virtuellt förbundna. I fig 1 âskàdliggörs sådana virtuella förbindelser medelst dubbelsidiga pilar (a). De virtuellt förbundna datatabellerna bör bilda minst en s k snöflingestruktur (snowflake structure), dvs en förgrenande datastruktur i vilken det finns en och endast en förbindningsväg mellan varje par av data- tabeller i databasen. En snöflingestruktur innehåller således inga slingor. Om slingor förekommer bland de virtuellt förbundna datatabellerna, exempelvis om tvà tabeller har mer än en variabel gemensam, kan en snö- flingestruktur i vissa fall fortfarande bildas med hjälp av speciella algoritmer som är kända på området för upp- lösning av sådana slingor.
Efter denna inledande analys kan användaren börja att undersöka databasen. Därvid definierar användaren en matematisk funktion, vilken kan vara en kombination av matematiska uttryck. Antag att användaren vill extrahera den totala försäljningen per är och kund frán databasen i fig 1. Användaren definierar en motsvarande matematisk funktion ”SUM(x*y)” och väljer beräkningsvariablerna att ”Pris” och "Antal". Använda- ren väljer också klassificeringsvariablerna: ”Kund” och "Ar" .
Datorprogrammet identifierar sedan alla relevanta införlivas i denna funktion: datatabeller, dvs alla datatabeller som innehåller någon av de valda beräknings- och klassificeringsvariablerna, 10 15 20 25 30 35 . , u a a: u .once , | . r vv .nu varvid sådana datatabeller betecknas som gränstabeller, samt alla mellanliggande datatabeller i förbindnings- A vägen/-vägarna mellan dessa gränstabeller i snöflinge- strukturen, varvid sådana datatabeller betecknas som förbindningstabeller. Av tydlighetsskäl är gruppen av relevanta datatabeller (Tabell 1-3) inrättade i en första ram (A) i fig 1. Uppenbarligen saknas förbindnings- tabeller i detta speciella fall.
I det föreliggande fallet måste alla förekomster av varje värde, dvs frekvensdata, pà de valda beräknings- variablerna inkluderas för utvärdering av den matematiska funktionen. I fig l indikeras de valda variablerna p (”Pris”, ”Antal") som kräver sådan frekvensdata medelst feta pilar (b), medan återstående valda variabler indi- keras medelst streckade linjer (b'). Nu kan en delmängd (B) definieras som omfattar alla gränstabeller (Tabell 1- 2) innehållande sådana beräkningsvariabler och eventuella förbindningstabeller mellan sådana gränstabeller i snö- flingestrukturen. Det bör noteras att frekvenskravet för en viss variabel fastställs av det matematiska uttryck i vilket den ingår. Fastställning av ett medelvärde eller ett medianvärde kräver frekvensinformation. I allmänhet är detsamma sant för fastställande av en summa, medan fastställande av ett maximum eller ett minimum ej kräver frekvensdata för beräkningsvariablerna. Det kan också noteras att klassificeringsvariabler i allmänhet ej kräver frekvensdata.
Sedan väljs en starttabell, företrädesvis bland datatabellerna inom delmängden (B), helst datatabellen med det största antalet dataposter i denna delmängd. I fig 1 väljs Tabell 2 som starttabell. Således innehåller (”Kund", ”Antal") och ”Produkt”). starttabellen valda variabler Dessa för- till förbindningsvariabler (”Datum”, bindningsvariabler länkar starttabellen (Tabell 2) (Tabell 1 och 3).
Därefter byggs en omvandlingsstruktur, gränstabellerna såsom visas i Tabell 13 och 14. Denna omvandlingsstruktur används för 10 15 20 25 30 35 , . Q | n n . n o u u c va» n att översätta varje värde på varje förbindningsvariabel (”Datum”, ”Produkt”) i starttabellen (Tabell 2) till ett värde på en motsvarande vald variabel (”År”, ”Pris”) i gränstabellerna (Tabell 3 resp 1). Tabell 13 byggs genom successiv läsning av dataposter hos Tabell 3 och genom å bildande av en länk mellan varje unikt värde på förbind- ningsvariabeln (”Datum”) och ett motsvarande värde på den valda variabeln (”Ãr”). Det kan noteras att det ej före- ligger någon länk fràn värde 4 (”Datum: 1999-01-12"), eftersom detta värde ej ingår i gränstabellen. På lik- nande vis byggs Tabell 14 genom successiv läsning av dataposter hos Tabell 1 och genom bildande av en länk mellan varje unikt värde på förbindningsvariabeln (”Produkt”) och ett motsvarande värde på den valda varia- beln (”Pris”). I detta fall är värdet 2 (”Produkt: Tand- kräm”) länkat till två värden på den valda variabeln (”Pris: 6,5”), eftersom denna förbindelse förekommer två gånger i gränstabellen. Således införlivas frekvensdata i omvandlingsstrukturen. Notera även att det ej föreligger någon länk från värde 3 (”Produkt: Schampo”).
När omvandlingsstrukturen har byggts skapas en vir- tuell datapost. En sådan virtuell datapost, såsom visas i Tabell 15, innehåller alla valda variabler (”Kund”, ”År”, ”Pris”, ”Antal”) i databasen. Under uppbyggnaden av den virtuella dataposten läses först en datapost från start- tabellen (Tabell 2). dataposten värdet pà varje vald variabel (”Kund”, Sedan införlivas i den virtuella ”Antal”) i den aktuella dataposten hos starttabellen.
Dessutom omvandlas med användning av omvandlingsstruk- turen (Tabell 13-14) varje värde på varje förbindnings- variabel (”Datum”, ”Produkt”) i den aktuella dataposten hos starttabellen till ett värde på en motsvarande vald variabel (”År”, ”Pris”), och detta värde införlivas också i den virtuella dataposten.
I detta skede används den virtuella dataposten för att bygga en mellanliggande datastruktur (Tabell 16).
Varje datapost hos den mellanliggande datastrukturen 10 15 20 25 30 35 innehåller varje vald klassificeringsvariabel (dimension) och ett aggregeringsfält för varje matematiskt uttryckå som impliceras av den matematiska funktionen. Den mellan- liggande datastrukturen (Tabell 16) byggs på basis av värdena pà de valda variablerna i den virtuella data- posten. Således utvärderas varje matematiskt uttryck pà basis av ett eller flera värden på en eller flera rele- vanta beräkningsvariabler i den virtuella dataposten, och resultatet aggregeras i det passande aggregeringsfältet på basis av kombinationen av aktuella värden på klassi- ficeringsvariablerna (”Kund”, ”År”).
Ovanstående procedur upprepas för alla dataposter hos starttabellen. Således byggs en mellanliggande data- struktur genom successiv läsning av dataposter hos start- tabellen, genom införlivande av de aktuella värdena på de valda variablerna i en virtuell datapost och genom ut- värdering av varje matematiskt uttryck på basis av inne- hållet i den virtuella dataposten. Om den aktuella kombi- nationen av värden på klassificeringsvariablerna i den virtuella dataposten är ny, skapas en ny datapost i den mellanliggande datastrukturen för upptagning av resul- tatet av utvärderingen. I annat fall återfinns snabbt den passande dataposten, och resultatet av utvärderingen aggregeras i aggregeringsfältet. Således tillförs den mellanliggande datastrukturen dataposter under det att starttabellen genomlöpes. Företrädesvis är den mellan- liggande datastrukturen en datatabell som är tillordnad ett effektivt indexsystem, såsom en AVL-struktur. I de flesta fall implementeras aggregeringsfältet som ett summa-register, i vilket resultatet av det utvärderade matematiska uttrycket ackumuleras. I vissa fall, exempel- vis vid utvärdering av ett medianvärde, implementeras aggregeringsfältet i stället att uppta alla individuella resultat för en unik kombination av värden på de angivna klassificeringsvariablerna. Det bör noteras att endast en virtuell datapost krävs i proceduren att bygga den mel- lanliggande datastrukturen från starttabellen. Således 10 15 20 25 30 35 12 uppdateras innehållet i den virtuella dataposten för varje datapost hos starttabellen. Detta kommer att mini- mera minnesbehovet vid exekvering av datorprogrammet.
Proceduren att bygga den mellanliggande datastruk- turen kommer att beskrivas ytterligare med hänvisning till Tabell 15-16. Vid skapandet av den första virtuella dataposten R1, såsom visas i Tabell 15, tas värdena pà de och ”Antal” första dataposten hos starttabellen (Tabell 2). Sedan valda variablerna ”Kund” direkt fràn den överförs värdet ”l999-01-02” pà förbindningsvariabeln ”Datum” till värdet ”1999” pà den valda variabeln ”Ãr”, medelst omvandlingsstrukturen (Tabell 13). Pà liknande vis överförs värdet ”Tandkräm” pà förbindningsvariabeln ”Produkt” till värdet "6,5” på den valda variabeln ”Pris” medelst omvandlingsstrukturen (Tabell 14), varigenom den virtuella dataposten Rl bildas. Sedan skapas en datapost i den mellanliggande datastrukturen, såsom visas i Tabell 16. I detta fall har den mellanliggande datastrukturen tre kolumner, av vilka tvâ upptar valda klassificerings- variabler (”Kund”, "År”). Den tredje kolumnen upptar ett aggregeringsfält, i vilket det utvärderade resultatet av det matematiska uttrycket (”x*y”) opererande på de valda beräkningsvariablerna (”Antal”, ”Pris”) aggregeras. Vid utvärderingen av den virtuella dataposten R1 läses först de aktuella värdena (binärkoder: 0,0) på klassificerings- variablerna och införlivas i denna datapost hos den mellanliggande datastrukturen. Sedan läses de aktuella värdena (binärkoder: 2,0) på beräkningsvariablerna. Det matematiska uttrycket utvärderas för dessa värden och adderas till det tillordnade aggregeringsfältet.
Härnäst uppdateras den virtuella dataposten pà basis av starttabellen. Eftersom omvandlingsstrukturen (Tabell 14)indikerar en dubblett av värdet "6,5” pà den valda variabeln "Pris" för värdet ”Tandkräm” pà förbindnings- variabeln ”Produkt”, förblir den uppdaterade virtuella dataposten R2 oförändrad och identisk med R1. Sedan ut- värderas den virtuella dataposten R2 pà ovan beskrivet 10 15 20 25 30 35 1 3 vis. I detta fall innehåller den mellanliggande data- strukturen en datapost som motsvarar de aktuella värdena (binärkoder: 0,0) på klassificeringsvariablerna. Således ackumuleras det utvärderade resultatet av det matematiska uttrycket i det tillordnade aggregeringsfältet.
Härnäst uppdateras den virtuella dataposten på basis av den andra dataposten hos starttabellen. Vid utvärde- ring av denna uppdaterade virtuella datapost R3 skapas en ny datapost i den mellanliggande datastrukturen, o s v.
Det bör noteras att NULL-värden återges av en binär- kod av -2 i detta exempel. I det áskådliggjorda exemplet bör också noteras att varje virtuell datapost som inne- håller ett NULL-värde (-2) på någon av beräkningsvariab- lerna direkt kan elimineras, eftersom NULL-värden ej kan utvärderas i det matematiska uttrycket (”x*y”). Det bör också noteras att alla NULL-värden (-2) på klassifice- ringsvariablerna behandlas som varje annat giltigt värde och placeras i den mellanliggande datastrukturen.
Efter genomlöpning av starttabellen innehåller den mellanliggande datastrukturen fyra dataposter, som var och en innehåller en unik kombination av värden (0,0; 1,0; 2,0; 3,-2) på klassificeringsvariablerna, och det (4l; 37,5; 60; 75) av det utvärderade matematiska uttrycket. motsvarande ackumulerade resultatet Företrâdesvis bearbetas också den mellanliggande datastrukturen för eliminering av en eller flera klassi- ficeringsvariabler (dimensioner). Detta görs företrädes- vis under processen att bygga den mellanliggande data- strukturen, såsom beskrivits ovan. Varje gång en virtuell datapost utvärderas skapas extra dataposter, eller àter- finns om de redan existerar, i den mellanliggande data- strukturen. Var och en av dessa extra dataposter är av- sedd att uppta en aggregering av det utvärderade resul- tatet av det matematiska uttrycket för alla värden på en eller flera klassificeringsvariabler_ När starttabellen har genomlöpts kommer således den mellanliggande data- strukturen att innehålla både de aggregerade resultaten 10 15 20 25 30 35 ; | u o un o .--u 14 för alla unika kombinationer av värden pà klassifice- ringsvariablerna, samt de aggregerade resultaten efter eliminering av varje relevant klassificeringsvariabel.
Denna procedur att eliminera dimensioner i den mel- lanliggande datastrukturen kommer att beskrivas ytterli- gare med hänvisning till Tabell 15 och 16. När den virtu- ella dataposten Rl utvärderas (Tabell 15) och den första dataposten (0,0) skapas i den mellanliggande datastruktu- ren skapas extra dataposter i denna struktur. Sådana extra dataposter är avsedda att uppta de motsvarande resultaten när en eller flera dimensioner elimineras. I Tabell 16 är en klassificeringsvariabel tillordnad en binärkod av -1 i den mellanliggande datastrukturen för att beteckna att alla värden pà denna variabel ut- värderas. I detta fall skapas tre extra dataposter, som var och en upptar en ny kombination av värden (-1,0; O,-1; -1,-1) pà klassificeringsvariablerna. Det utvärderade resultatet aggregeras i det tillordnade aggregeringsfältet för dessa extra dataposter. Den första (-1,0) av dessa extra dataposter är avsedd att uppta det aggregerade resultatet för alla värden pà klassificer- ingsvariabeln ”Kund” när klassificeringsvariabeln ”År” har värdet ”l999”. Den andra (0,-1) extra dataposten är avsedd att uppta det aggregerade resultatet för alla värden på klassificeringsvariabeln ”År” när klassificer- ingsvariabeln ”Kund” är "Nisse". Den tredje (-1,-1) extra dataposten är avsedd att uppta det aggregerade resultatet för alla värden på båda klassificeringsvariablerna ”Kund” och "År". _ När den virtuella dataposten R2 utvärderas aggrege- ras resultatet i det aggregeringsfält som är tillordnat den aktuella kombinationen av värden (binärkoder: 0,0) på klassificeringsvariablerna, samt i de aggregeringsfält som är tillordnade relevanta extra dataposter (binär- -l,O; O,-l; R3 utvärderas aggregeras resultatet i det aggregerings- koder: -l,-l). När den virtuella dataposten fält som är tillordnat den aktuella kombinationen av vär- 10 15 20 25 30 35 a n u u , n.. _ 1 o u j -, s 1k ~e 15 non: . . v.. . n o u nu yo den (binärkoder: 1,0) på klassificeringsvariablerna_ Re- sultatet aggregeras också i aggregeringsfältet hos en nyskapad extra datapost (binärkoder: 1,-1) och i de agg- regeringsfält som är tillordnade relevanta existerande dataposter (binärkoder: -1,0; -1,~1) i den mellanliggande datastrukturen.
Efter genomlöpning av starttabellen innehåller den mellanliggande datastrukturen elva dataposter, såsom vi- sas i Tabell 16.
Om den mellanliggande datastrukturen inrymmer mer än två klassificeringsvariabler kommer företrädesvis den mellanliggande datastrukturen, för varje eliminerad klas- sificeringsvariabel, att innehålla de utvärderade resul- taten aggregerade över alla värden på denna klassifice- ringsvariabel för varje unik kombination av värden på återstående klassificeringsvariabler.
När den mellanliggande datastrukturen har byggts skapas en slutlig datastruktur, dvs en mångdimensionell kub, såsom visas i icke-binär notation i Tabell 17, genom utvärdering av den matematiska funktionen ("SUM(x*y)”) pà basis av de resultat av det matematiska uttrycket (”x*y”) som är upptagna i den mellanliggande datastrukturen. Där- vid kombineras resultaten i aggregeringsfälten för varje unik kombination av värden på klassificeringsvariablerna.
I det àskàdliggjorda fallet är bildandet av den slutliga datastrukturen okomplicerat, tack vare den aktuella mate- matiska funktionens triviala natur. Innehållet i den slutliga datastrukturen skulle sedan kunna presenteras för användaren i en tvàdimensionell tabell, såsom visas i Tabell 18. Alternativt, om den slutliga datastrukturen innehåller många dimensioner, kan data presenteras i en pivottabell, i vilken användaren interaktivt kan röra sig upp och ned i dimensioner, såsom är väl känt på området.
Nedan ges ett andra exempel pà den uppfinningsenliga förfarandet med hänvisning till Tabell 20-29. Beskriv- ningen kommer endast att avhandla vissa aspekter av detta exempel, nämligen uppbyggnaden av en omvandlingsstruktur 10 15 20 25 30 35 ' 16 med data från förbindningstabeller, och uppbyggnaden av en mellanliggande datastruktur för en mer komplicerad I matematisk funktion. I detta exempel vill användaren extrahera försäljningsdata per kund från en databas, vilken innehåller de i Tabell 20-23 visade data- tabellerna. För att underlätta förståelsen utelämnas binärkodningen i detta exempel.
Användaren har specificerat följande matematiska funktioner, för vilka resultatet skall uppdelas per kund: a) ”IF(Only(Miljöindex)='I') THEN Sum(Antal*Pris)*2, ELSE Sum(Antal*Pris))”, b) ”Avg(Antal*Pris)” _ Den matematiska funktionen (a) anger att försälj- och ningssiffrorna skall dubbleras för produkter som tillhör en produktgrupp med ett miljöindex av 'I', medan de fak- tiska försäljningssiffrorna skall användas för andra pro- dukter. Den matematiska funktionen (b) har inkluderats som referens.
I detta fall är de valda klassificeringsvariablerna ”Miljöindex” och ”Kund”, och de valda beräkningsvariab- lerna är ”Antal” och "Pris". Tabellerna 20, 22 och 23 identifieras som gränstabeller, medan Tabell 21 identi- fieras som en förbindningstabell. Tabell 20 väljs som starttabell. Således innehåller starttabellen valda variabler (”Antal”, ”Kund") och en förbindningsvariabel (”Produkt”).
(Tabell 20) till gränstabellerna (Tabell 22-23) via för- bindningstabellen (Tabell 21).
Härnäst kommer bildandet av omvandlingsstrukturen Förbindningsvariabeln länkar starttabellen att beskrivas med hänvisning till Tabell 24-26. En första del (Tabell 24) av omvandlingsstrukturen byggs genom suc- cessiv läsning av dataposter hos en första gränstabell (Tabell 23) och genom bildande av en länk mellan varje unikt värde pà förbindningsvariabeln (”Produktgrupp”) och ett motsvarande värde på den valda variabeln (”Miljö- index”). Pà liknande vis byggs en andra del (Tabell 25) av omvandlingsstrukturen genom successiv läsning av data- 10 15 20 25 30 35 17 poster hos en andra gränstabell (Tabell 22) och genom bildande av en länk mellan varje unikt värde pà förbind- ningsvariabeln (”Prisgrupp”) och ett motsvarande värde pà den valda variabeln (”Pris”). Sedan läses successivt dataposter hos förbindningstabellen (Tabell 21). Varje värde pà förbindningsvariablerna (”Produktgrupp” resp ”Prisgrupp”) i Tabell 24 och 25 ersätts med ett mot- svarande värde pá en förbindningsvariabel (”Produkt”) i Tabell 21. Resultatet sammanfogas i en slutlig omvand- lingsstruktur, såsom visas i Tabell 26.
Sedan byggs en mellanliggande datastruktur genom successiv läsning av dataposter hos starttabellen (Ta- bell 20), genom användning av omvandlingsstrukturen (Tabell 26) för införlivning av de aktuella värdena pà de valda variablerna (”Miljöindex”, ”Kund”, ”Antal”, ”Pris”) i den virtuella dataposten, och genom utvärdering av varje matematiskt uttryck pà basis av det aktuella inne- hållet i den virtuella dataposten.
Av tydlighetsskäl visar Tabell 27 motsvarande inne- hàll i den virtuella dataposten för varje datapost hos starttabellen. Såsom noterades i anslutning till det första exemplet behövs endast en virtuell datapost. Inne- hàllet i denna virtuella datapost uppdateras, dvs utby- tes, för varje datapost hos starttabellen.
Varje datapost hos den mellanliggande datastruktu- ren, sàsom visas i Tabell 28, inrymmer ett värde pà varje vald klassificeringsvariabel (”Kund”, ”Miljöindex”) och ett aggregeringsfält för varje matematiskt uttryck som I detta fall innehåller den mellanliggande datastrukturen två aggrege- impliceras av den matematiska funktionerna. ringsfält. Ett aggregeringsfält innehàller det aggrege- rade resultatet av det matematiska uttrycket (”x*y”) opererande pà de valda beräkningsvariablerna (”Antal”, ”Pris”), samt en räknare för antalet sådana operationer.
Utformningen av detta aggregeringsfält ges av det faktum att en medelvärdesbildad storhet skall beräknas (”Avg(X*Y)”). Det andra aggregeringsfältet är avsett att 10 15 20 25 30 35 1 6 18 uppta de lägsta och högsta värdena pà klassificerings- variabeln ”Miljöindex” för varje kombination av värden på klassificeringsvariablerna.
Liksom i det första exemplet byggs den mellanlig- gande datastrukturen (Tabell 28) genom utvärdering av det matematiska uttrycket för det aktuella innehållet i den virtuella dataposten (varje rad i Tabell 27), och genom aggregering av resultatet i det passande aggregerings- fältet pá basis av kombinationen av aktuella värden pà klassificeringsvariablerna (”Kund”, ”Miljöindex”). Den mellanliggande datastrukturen innehållet också dataposter i vilka värdet ”” har tillordnats endera eller båda- dera av klassificeringsvariablerna. De motsvarande aggre- geringsfälten innehåller det aggregerade resultatet när en eller flera klassificeringsvariabler (dimensioner) elimineras.
När den mellanliggande datastrukturen har byggts skapas en slutlig datastruktur, dvs en màngdimensionell kub, genom utvärdering av de matematiska funktionerna på basis av de i den mellanliggande datastrukturen upptagna, utvärderade resultaten av de matematiska uttrycken. Varje datapost hos den slutliga datastrukturen, såsom visas i Tabell 29, upptager ett värde på varje vald klassifice- ringsvariabel (”Kund”, ”Miljöindex”) och ett aggrege- ringsfält för varje av användaren vald matematisk funk- tion.
Den slutliga datastrukturen byggs pà basis av resul- taten i aggregeringsfälten hos den mellanliggande data- strukturen för varje unik kombination av värden på klas- sificeringsvariablerna. När funktionen (a) utvärderas, genom sekventiell läsning av dataposter hos Tabell 28, kontrollerar programmet först om båda värdena i den sista kolumnen av Tabell 28 är lika med 'I'. Om så är fallet, multipliceras det relevanta resultat som är upptaget i det första aggregeringsfältet hos Tabell 28 med två och lagras i Tabell 29. Om så ej är fallet, lagras det rele- vanta resultat som är upptaget i det första aggregerings- 10 15 20 25 30 ø o ø | nu fältet hos Tabell 28 direkt i Tabell 29. När funktionen (b) utvärderas divideras det aggregerade resultatet av det matematiska uttrycket (”x*y”) opererande pà de valda beräkningsvariablerna (”Antal”, ”Pris”) med antalet sådana operationer, av vilka bädadera är lagrade i det första aggregeringsfältet hos Tabell 28. Resultatet lagras i det andra aggregeringsfältet hos Tabell 29.
Det är tydligt att föreliggande uppfinning tillåter användaren att fritt välja matematiska funktioner och in- förliva beräkningsvariabler i dessa funktioner samt att fritt välja klassificeringsvariabler för presentation av resultaten.
Som ett alternativ, om än mindre minneseffektivt,_ till den illustrerade proceduren för uppbyggnad av en mellanliggande datastruktur pà basis av sekventiella dataposter från starttabellen, är det tänkbart att först bygga en s k skarvtabell (join table). Denna skarvtabell byggs genom genomlöpning av alla dataposter hos start- tabellen och, med användning av omvandlingsstrukturen, genom omvandling av varje värde pà varje förbindnings- variabel i starttabellen till ett värde pá minst en mot- svarande vald variabel i en gränstabell. Således kommer dataposterna hos skarvtabellen att innehålla alla före- kommande kombinationer av värden på de valda variablerna.
Sedan byggs den mellanliggande datastrukturen på basis av innehållet i skarvtabellen. För varje post hos skarv- tabellen utvärderas varje matematiskt uttryck, och resul- tatet aggregeras i det passande aggregeringsfältet på basis av det aktuella värdet på varje vald klassifice- ringsvariabel. Denna alternativa procedur kräver emeller- tid mer datorminne för extrahering av den önskade infor- mationen. . .gang-rg Aggendix A Tabell 6 -P1-çfifel1l:=1=;»:f*l e Tvål Såpa Tandkräm Schampo WNPO š§.nacum:<: Tabell 8 1999-o1-oi 1999-01-07 1999-01-08 1999-01-11 1999-01-12 1999-01-15 Lflnßla-INI-'O Tabell 11 pe Arf 1999 4 0 20 Tabell 7 7,5 O 9,35 1 6,5 2 Tabell 9 Gullan Kalle Pekka Jens »Iä-UJNI-'O Tabell 12 »låna-nd Sverige 0 Danmark 1 Finland 2 Tabell 10 Iabfilljâ Datum-à År O 1 um Iabfilljå Klient År Pris Antal OOOION-UOOOO 0 O O 0 2 0 0 2 0 0 0 1 0 0 2 0 -2 3 -2 0 4 0 0 3 +++++++ Ialzelljß Kund OCOÅJIU-IOC Kund Nisse Gullan Kalle Pekka Nisse Gullan Kalle Pekka -1 -1 -1 -1 -1 1 999 1 999 1999 1 999 UI *ESC P; Iahelljá Produkt Pris E AntaPPrls Sum = Sum (0) + 3 x 6,5 ->20,5 Sum = Sum (20,5) + 3 X 6,5 ->41 Sum = Sum (0) + 5 x 7,5 -> 37,5 Sum = Sum (0) + 8 x 7,5 -> 60 Sum = Sum (60) + 2 x (NULL) -> 60 Sum = Sum (0) + 10 x 7,5 -> 75 Sum = Sum (41) + 2 x (NULL) ~> 41 Sum = Sum (0) + 20,5 + 20,5 + 37,5 + 60 + 0 + 0 -> 138,5 Sum = Sum (0) + 75 -> 75 Sum = Sum (0) + 20,5 + 20,5 + 0 -> 41 Sum = Sum (0) + 37,5 -> 37,5 Sum = Sum (0) + 60 + 0 -> 60 Sum = Sum (0) + 75 -> 75 Sum = Sum (0) + 20,5 + 20,5 + 37,5 + 60 + 0 + 75 + 0 -> 213,5 Ialzelljß Sum (Antal x Pris) Sum (Pris*Antal) Per Kund,År 41 37,5 1999 NULL 60 Nisse 41 41 75 Gullan 37,5 37.5 138,5 Kalle 60 60 75 Pekka 75 75 41 138,5 75 213,5 37,5 60 75 213,5 Tabell 20 elf 22 H &_atñm ¿Produkt¿f 1998-12-zø B s Nisse 1999-oz-os A 7 Kalle 1999-02-os B 9 Kalle Tabell 21 ~.;§:~jr<>au1;:_ :fgrisgrfipp A 4 B 3 Tabell 22 ePrisgrupp Jia; Pris.'^ 3 s,s 4 3,5 Tabell 23 yprodukcgruppf Mi1jöindex^ Rätcs1ig:stätušï x I JA Y Ix _ NEJ z II JA un uu .unc u . n av oungno 0 u . 23 Iabßlzá Iabfilllâ Produktgrupp->Mi|jöindex Prisgrupp->Pris X--> I 3---> 5.5 V5 IX 4-> 3,5 Z:> Il Iahelllfi Produkt->Pris,MiIjöindex '- A-b 3,5,I| Nisse Kalle 8:) 5,5,I Kalle Iahelllß Kund Miljöindex i E-AntaIxPris . E-Miijöindex 'I Nisse I Ex: 27,5, N: 1 First: I, Last: I KaIIe II Ex: 24,5, N: 1 First: II, Last: ll KaIIe I Ex: 49,5, N: 1 First: I, Last: I I Ex: 77. N: 2 First: I, Last: I Il Ex: 24,5, N: 1 First: II, Last: II Ex: 101,5, N: 3 First: I, Last: II Iab.el|_29 |F(Only(Mi|jöindex)='I', i Kund Miljöindex Sum(Antal'Pris)*2,Sum(Anta|'Pris) Avg(Anta|'Pris) Nisse I 55,00 27,5 KaIle II 24,50 24,5 Kalle I 99,00 49,5 I 154,00 38,5 Il 24,50 24,5 33,8

Claims (15)

10 15 20 25 30 35 s .sez 24 PATENTKRAV
1. Förfarande för extrahering av information från en databas, vilken omfattar ett antal datatabeller som inne- håller värden pà ett antal variabler och som var och en består av minst en datapost innehållande minst två av nämnda värden, varvid informationen extraheras genom ut- värdering av minst en matematisk funktion som opererar på en eller flera valda beräkningsvariabler, varvid den ex- traherade informationen uppdelas på en eller flera valda klassificeringsvariabler, k ä n n e t e c k n a t av stegen: att identifiera alla datatabeller innehållande minst ett värde pà minst en av nämnda valda variabler, varvid sådana datatabeller är gränstabeller; att identifiera alla datatabeller som, direkt eller indirekt, har variabler gemensamma med gränstabellerna och förbinder desamma, varvid sådana datatabeller är för- bindningstabeller; att välja en starttabell bland gräns- och förbind- ningstabellerna; att bygga en omvandlingsstruktur som länkar värden på varje vald variabel i gränstabellerna till motsvarande värden på en eller flera förbindningsvariabler i start- tabellen; och att utvärdera den matematiska funktionen för varje datapost hos starttabellen, med användning av omvand- lingsstrukturen för omvandling av varje värde på varje förbindningsvariabel till minst ett värde pà minst en motsvarande vald variabel, på ett sådant sätt att ut- värderingen ger en slutlig datastruktur innehållande ett resultat av den matematiska funktionen för varje unikt värde på varje klassificeringsvariabel.
2. Förfarande enligt krav l, k ä n n e t e c k n a t av det ytterligare steget att presentera relevanta delar 10 15 20 25 30 35 .ïsffi -sez 25 . av den resulterande datastrukturen för användaren i en form som kan läsas av människor.
3. Förfarande enligt krav 1 eller 2, k ä n n e - t e c k n a t av det ytterligare steget att inlednings- vis inläsa dataposterna hos databasen i primärminnet hos en datorr
4. Förfarande enligt något av föregående krav, k ä n n e t e c k n a t av det ytterligare steget att inledningsvis tilldela en egen binärkod till varje unikt värde på varje datavariabel i databasen och lagra data- posterna i binärkodad form.
5. Förfarande enligt något av föregående krav, k ä n n e t e c k n a t av de ytterligare stegen att in- ledningsvis identifiera alla datatabeller i databasen som har gemensamma variabler, och att tillordna virtuella förbindelser mellan sådana datatabeller, varigenom det skapas en databas med en snöflingestruktur, varvid för- bindningstabellerna är lokaliserade mellan gräns- tabellerna i snöflingestrukturen.
6. Förfarande enligt något av föregående krav, k ä n n e t e c k n a t av de ytterligare stegen att identifiera alla beräkningsvariabler för vilka antalet förekomster av varje värde är nödvändigt för korrekt ut- värdering av den matematiska funktionen, att definiera en delmängd av datatabeller bestående av grânstabeller som innehåller sådana variabler och datatabeller som förbin- der sådana gränstabeller, att välja starttabellen från ldelmängden, och att inkludera data avseende antalet före- komster av varje värde i omvandlingsstrukturen.
7. Förfarande enligt något av föregående krav, k ä n n e t e c k n a t av att starttabellen är den data- tabell bland gräns- och förbindningstabellerna som har det största antalet dataposter.
8. Förfarande enligt något av föregående krav, k ä n n e t e c k n a t av det ytterligare steget att bygga den slutliga datastrukturen, vilken innefattar ett antal dataposter som var och en innehåller ett fält för 10 15 20 25 30 35 -tïå516 5-62' 26 varje vald klassificeringsvariabel och ett aggregerings- fält för den matematiska funktionen, varvid byggsteget innefattar att sekventiellt läsa en datapost hos start- tabellen, att skapa en aktuell kombination av värden pà de valda variablerna med användning av omvandlings- i strukturen för omvandling av varje värde på varje för- bindningsvariabel i nämnda datapost till ett värde pà minst en motsvarande vald variabel, att utvärdera den matematiska funktionen för den aktuella kombinationen av värden, och att aggregera resultatet av nämnda utvärde- ring i det adekvata aggregeringsfältet på basis av det aktuella värdet på varje vald klassificeringsvariabel.
9. Förfarande enligt något av kraven 1-7, k ä n - n e t e c k n a t av det ytterligare steget att skapa en virtuell datapost som innehåller en kombination av värden på de valda variablerna, varvid skapandesteget innefattar att läsa en datapost hos starttabellen och använda om- vandlingsstrukturen för omvandling av varje värde på varje förbindningsvariabel i nämnda datapost till ett värde på minst en motsvarande vald variabel.
10. Förfarande enligt krav 9, k ä n n e t e c k - n a t av det ytterligare steget att bygga den slutliga datastrukturen, vilken innefattar ett antal dataposter som var och en innehåller ett fält för varje vald klassi- ficeringsvariabel och ett aggregeringsfält för den mate- matiska funktionen, varvid byggsteget innefattar att sekventiellt läsa en datapost hos starttabellen, att upp- datera innehållet i den virtuella dataposten på basis av innehållet i varje sådan datapost, att utvärdera den ma- tematiska funktionen på basis av den uppdaterade vir- tuella dataposten, och att aggregera resultatet av nämnda utvärdering i det adekvata aggregeringsfältet på basis av det aktuella värdet på varje vald klassificeringsvariabel i den uppdaterade virtuella dataposten.
11. ll. Förfarande enligt krav 9, k ä n n e t e c k - n a t av det ytterligare steget att bygga en mellanlig- gande datastruktur, vilken innefattar ett antal datapos- 10 15 20 25 30 35 få 562 2 7 ter som var och en innehåller ett fält för varje vald klassificeringsvariabel och ett aggregeringsfält för varje matematiskt uttryck som impliceras av den matema- tiska funktionen, varvid byggnadssteget innefattar att sekventiellt läsa en datapost hos starttabellen, att upp- datera innehållet i den virtuella dataposten på basis av innehållet i varje sådan datapost, att utvärdera varje matematiskt uttryck på basis av den uppdaterade virtuella dataposten, och att aggregera resultatet av nämnda utvär- dering i ett adekvat aggregeringsfält på basis av det aktuella värdet på varje vald klassificeringsvariabel i den uppdaterade virtuella dataposten.
12. Förfarande enligt krav 11, k ä n n e t e c k - n a t av att steget att bygga den mellanliggande data- strukturen innefattar: att eliminera en av klassificeringsvariablerna i den mellanliggande datastrukturen genom att aggregera nämnda resultat över alla värden på nämnda en klassificerings- variabel för varje unik kombination av värden på åter- stående klassificeringsvariabler, genom att skapa extra dataposter och genom att införliva de aggregerade resul- taten i de extra dataposterna hos den mellanliggande datastrukturen.
13. Förfarande enligt krav 11 eller 12, k ä n n e - t e c k n a t av det ytterligare steget att utvärdera den matematiska funktionen på basis av nämnda resultat i aggregeringsfälten för varje unik kombination av värden på klassificeringsvariablerna, för att därigenom bygga den slutliga datastrukturen.
14. Förfarande enligt något av föregående krav, k ä n n e t e c k n a t av att steget att bygga omvand- lingsstrukturen innefattar: a) att läsa dataposter hos en gränstabell och skapa en omvandlingsstruktur som innehåller en länk mellan varje unikt värde på minst en förbindningsvariabel i gränstabellen och varje motsvarande värde på minst en vald variabel däri; 10 “fvfålê 562 za b) att gå från gränstabellen mot starttabellen; c) att, poster hos förbindningstabellen och ersätta varje unikt om en förbindningstabell hittas, läsa data- värde på nämnda minst en förbindningsvariabel i omvand- lingsstrukturen med minst ett motsvarande unikt värde på minst en förbindningsvariabel i förbindningstabellen; och d) att upprepa stegen (b)-(c) tills starttabellen hittas.
15. Produkt omfattande ett datorläsbart medium med ett därpå lagrat datorprogram för verkställande av stegen hos ett förfarande för extrahering av information från en databas enligt något av föregående krav.
SE9900894A 1999-03-12 1999-03-12 Förfarande för extrahering av information från en databas SE516562C2 (sv)

Priority Applications (9)

Application Number Priority Date Filing Date Title
SE9900894A SE516562C2 (sv) 1999-03-12 1999-03-12 Förfarande för extrahering av information från en databas
AU38518/00A AU3851800A (en) 1999-03-12 2000-03-10 Method for extracting information from a database
US09/936,500 US7058621B1 (en) 1999-03-12 2000-03-10 Method for extracting information from a database
EP11189938.1A EP2450809B1 (en) 1999-03-12 2000-03-10 Method for extracting information from a database
CA2367181A CA2367181C (en) 1999-03-12 2000-03-10 Method for extracting information from a database
PCT/SE2000/000482 WO2000055766A1 (en) 1999-03-12 2000-03-10 Method for extracting information from a database
JP2000605924A JP4463431B2 (ja) 1999-03-12 2000-03-10 データベースから情報を抽出するための方法
EP11189942A EP2450810A3 (en) 1999-03-12 2000-03-10 Method for extracting information from a database
EP00917562A EP1177512A1 (en) 1999-03-12 2000-03-10 Method for extracting information from a database

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9900894A SE516562C2 (sv) 1999-03-12 1999-03-12 Förfarande för extrahering av information från en databas

Publications (3)

Publication Number Publication Date
SE9900894D0 SE9900894D0 (sv) 1999-03-12
SE9900894L SE9900894L (sv) 2000-09-13
SE516562C2 true SE516562C2 (sv) 2002-01-29

Family

ID=20414818

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9900894A SE516562C2 (sv) 1999-03-12 1999-03-12 Förfarande för extrahering av information från en databas

Country Status (7)

Country Link
US (1) US7058621B1 (sv)
EP (3) EP1177512A1 (sv)
JP (1) JP4463431B2 (sv)
AU (1) AU3851800A (sv)
CA (1) CA2367181C (sv)
SE (1) SE516562C2 (sv)
WO (1) WO2000055766A1 (sv)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE516562C2 (sv) 1999-03-12 2002-01-29 Qliktech Internat Ab Förfarande för extrahering av information från en databas
FR2876474B1 (fr) * 2004-10-12 2006-12-29 Progilys Sarl Dispositif de traitement de donnees a definition formelle
EP1934719A2 (en) * 2005-09-20 2008-06-25 Sterna Technologies (2005) Ltd. A method and system for managing data and organizational constraints
US7873598B2 (en) * 2008-04-15 2011-01-18 Microsoft Corporation Slicing of relational databases
EP2146292B8 (en) * 2008-07-18 2019-03-20 QlikTech International AB Method and apparatus for extracting information from a database
US8463739B2 (en) * 2008-08-28 2013-06-11 Red Hat, Inc. Systems and methods for generating multi-population statistical measures using middleware
US8595610B2 (en) * 2011-01-25 2013-11-26 Infineon Technologies Ag Method, software and computer system for manipulating aggregated data
US9244990B2 (en) * 2011-10-07 2016-01-26 Oracle International Corporation Representation of data records in graphic tables
US8745099B2 (en) * 2011-11-11 2014-06-03 Håkan Wolgé Dimension limits in information mining and analysis
US9390240B1 (en) * 2012-06-11 2016-07-12 Dell Software Inc. System and method for querying data
US9501744B1 (en) 2012-06-11 2016-11-22 Dell Software Inc. System and method for classifying data
US9779260B1 (en) 2012-06-11 2017-10-03 Dell Software Inc. Aggregation and classification of secure data
US9578060B1 (en) 2012-06-11 2017-02-21 Dell Software Inc. System and method for data loss prevention across heterogeneous communications platforms
US10324917B2 (en) * 2012-10-15 2019-06-18 Qliktech International Ab Methods and systems for data management
US10698918B2 (en) 2013-11-20 2020-06-30 Qliktech International Ab Methods and systems for wavelet based representation
US11144184B2 (en) 2014-01-23 2021-10-12 Mineset, Inc. Selection thresholds in a visualization interface
US9349016B1 (en) 2014-06-06 2016-05-24 Dell Software Inc. System and method for user-context-based data loss prevention
US10262021B2 (en) 2014-06-09 2019-04-16 Qliktech International Ab Methods and systems for processing data using QR factorization
US10326748B1 (en) 2015-02-25 2019-06-18 Quest Software Inc. Systems and methods for event-based authentication
US10417613B1 (en) 2015-03-17 2019-09-17 Quest Software Inc. Systems and methods of patternizing logged user-initiated events for scheduling functions
US9990506B1 (en) 2015-03-30 2018-06-05 Quest Software Inc. Systems and methods of securing network-accessible peripheral devices
US9569626B1 (en) 2015-04-10 2017-02-14 Dell Software Inc. Systems and methods of reporting content-exposure events
US9563782B1 (en) 2015-04-10 2017-02-07 Dell Software Inc. Systems and methods of secure self-service access to content
US9842218B1 (en) 2015-04-10 2017-12-12 Dell Software Inc. Systems and methods of secure self-service access to content
US9842220B1 (en) 2015-04-10 2017-12-12 Dell Software Inc. Systems and methods of secure self-service access to content
US9641555B1 (en) 2015-04-10 2017-05-02 Dell Software Inc. Systems and methods of tracking content-exposure events
US10536352B1 (en) 2015-08-05 2020-01-14 Quest Software Inc. Systems and methods for tuning cross-platform data collection
US10218588B1 (en) 2015-10-05 2019-02-26 Quest Software Inc. Systems and methods for multi-stream performance patternization and optimization of virtual meetings
US10157358B1 (en) 2015-10-05 2018-12-18 Quest Software Inc. Systems and methods for multi-stream performance patternization and interval-based prediction
US11681704B2 (en) 2016-02-01 2023-06-20 Qliktech International Ab Methods and systems for distributed data analysis
US10142391B1 (en) 2016-03-25 2018-11-27 Quest Software Inc. Systems and methods of diagnosing down-layer performance problems via multi-stream performance patternization
US10628401B2 (en) * 2016-04-14 2020-04-21 Qliktech International Ab Methods and systems for bidirectional indexing
EP3239862B1 (en) 2016-04-29 2020-06-03 QlikTech International AB Selection query language methods and systems
EP3869357A1 (en) 2016-04-29 2021-08-25 QlikTech International AB System and method for interactive discovery of inter-data set relationships
EP3364314B1 (en) 2017-02-15 2022-10-19 QlikTech International AB Methods and systems for indexing using indexlets
EP3483738A1 (en) 2017-05-12 2019-05-15 QlikTech International AB Index machine
EP3401808A1 (en) 2017-05-12 2018-11-14 QlikTech International AB Interactive data exploration
EP3979092A1 (en) 2017-05-12 2022-04-06 QlikTech International AB Method for querying indexed, partitioned dimension tables
EP3483739A1 (en) 2017-05-12 2019-05-15 QlikTech International AB Cognitive rule engine
EP3617898A1 (en) 2018-08-30 2020-03-04 QlikTech International AB Scalable indexing architecture
EP3678033A1 (en) 2019-01-07 2020-07-08 QlikTech International AB A computer implemented method for indexlet based aggregation
EP3678032A1 (en) 2019-01-07 2020-07-08 QlikTech International AB Computer implemented methods and systems for improved data retrieval
CN111400305B (zh) * 2020-02-20 2022-03-08 深圳市魔数智擎人工智能有限公司 基于特征工程血缘关系的可回溯、可视化方法
US20240004509A1 (en) 2022-07-03 2024-01-04 Qliktech International Ab Closed-loop generation of insights from source data

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517641A (en) * 1992-05-27 1996-05-14 Cdb Software, Inc. Restartable method to reorganize DB2 tablespace records by determining new physical positions for the records prior to moving using a non sorting technic
US5423035A (en) 1992-12-23 1995-06-06 Hughes Aircraft Company Method for evaluating relational database queries with automatic indexing and ordering of join components
US5842209A (en) 1996-09-03 1998-11-24 International Business Machines Corporation User interface for visually depicting inner/outer/left/right joins in a database system
US5960428A (en) * 1997-08-28 1999-09-28 International Business Machines Corporation Star/join query optimization
US6480836B1 (en) * 1998-03-27 2002-11-12 International Business Machines Corporation System and method for determining and generating candidate views for a database
US6434545B1 (en) * 1998-12-16 2002-08-13 Microsoft Corporation Graphical query analyzer
SE516562C2 (sv) 1999-03-12 2002-01-29 Qliktech Internat Ab Förfarande för extrahering av information från en databas
US6356900B1 (en) * 1999-12-30 2002-03-12 Decode Genetics Ehf Online modifications of relations in multidimensional processing
US6775681B1 (en) * 2002-02-26 2004-08-10 Oracle International Corporation Evaluation of grouping sets by reduction to group-by clause, with or without a rollup operator, using temporary tables

Also Published As

Publication number Publication date
US7058621B1 (en) 2006-06-06
CA2367181A1 (en) 2000-09-21
EP2450809B1 (en) 2019-11-27
JP2002539563A (ja) 2002-11-19
EP1177512A1 (en) 2002-02-06
EP2450809A2 (en) 2012-05-09
EP2450810A2 (en) 2012-05-09
EP2450809A3 (en) 2013-01-02
AU3851800A (en) 2000-10-04
SE9900894D0 (sv) 1999-03-12
CA2367181C (en) 2010-11-02
JP4463431B2 (ja) 2010-05-19
EP2450810A3 (en) 2013-01-09
SE9900894L (sv) 2000-09-13
WO2000055766A1 (en) 2000-09-21

Similar Documents

Publication Publication Date Title
SE516562C2 (sv) Förfarande för extrahering av information från en databas
JP3323180B2 (ja) 決定木変更方法およびデータマイニング装置
CN107102999B (zh) 关联分析方法和装置
US6226634B1 (en) Association rule generation and group-by processing system
CN102893265B (zh) 管理可独立访问的数据单元的存储
US7194456B2 (en) Method of querying a structure of compressed data
JPH02227725A (ja) 区画分割方法及び装置
EP3289484B1 (en) Method and database computer system for performing a database query using a bitmap index
Tseng Mining frequent itemsets in large databases: The hierarchical partitioning approach
JP2001331509A (ja) リレーショナルデータベース処理装置、リレーショナルデータベースの処理方法及びリレーショナルデータベースの処理プログラムを記録したコンピュータ読み取り可能な記録媒体
CN115328883A (zh) 一种数据仓库建模方法和系统
JPH09245043A (ja) 情報検索装置
JPWO2013111287A1 (ja) Sparqlクエリ最適化方法
CN116821053B (zh) 数据上报方法、装置、计算机设备和存储介质
CN108319626B (zh) 一种基于名称信息的对象分类方法与设备
CN106033447B (zh) 项集挖掘方法及装置
CN107609110B (zh) 基于分类树的最大多样频繁模式的挖掘方法及装置
JP2004534981A (ja) データベース・システムでデータを編成し、問合せを処理する方法、およびそのような方法を実施するためのデータベース・システムおよびソフトウェア製品
JP2004534981A5 (sv)
WO2011016281A2 (ja) ベイジアンネットワーク構造学習のための情報処理装置及びプログラム
US5245699A (en) Inference processor using metal knowledge
JP3601719B2 (ja) 相関のあるデータ組み合わせの数え上げ方式
CN115168661B (zh) 原生图数据处理方法、装置、设备及存储介质
Abdelguerfi et al. Computational complexity of sorting and joining relations with duplicates
US7209910B2 (en) Method and apparatus for determining a set of large sequences from an electronic data base

Legal Events

Date Code Title Description
NUG Patent has lapsed