Korrelationsdatabase - Correlation database

En korrelationsdatabase er et databasesystem (DBMS), der er datamodeluafhængigt og designet til effektivt at håndtere ikke-planlagte ad hoc- forespørgsler i et analytisk systemmiljø.

I modsætning til rækkeorienterede relationsdatabasehåndteringssystemer , der bruger en optegnelsesbaseret lagringsmetode eller søjleorienterede databaser, der bruger en søjlebaseret lagringsmetode, bruger en korrelationsdatabase en værdibaseret lagerarkitektur (VBS), hvor hver unikke data værdi gemmes kun én gang, og et automatisk genereret indekseringssystem opretholder konteksten for alle værdier.

Struktur

Da en korrelations-DBMS kun gemmer hver unikke dataværdi en gang, er den fysiske databasestørrelse betydeligt mindre end relations- eller kolonneorienterede databaser uden brug af datakomprimeringsteknikker . Over cirka 30 GB kan en korrelations-DBMS blive mindre end rådatasættet.

VBS-modellen, der bruges af et CDBMS, består af tre primære fysiske sæt objekter, der lagres og administreres:

  • en dataordbog ( metadata )
  • et indekserings- og sammenkædningsdatasæt (yderligere metadata); og
  • de faktiske dataværdier, der omfatter den lagrede information.

I VBS-modellen lagres hver unikke værdi i rådata kun en gang; derfor normaliseres dataene altid på niveau med unikke værdier. Dette eliminerer behovet for at normalisere datasæt i det logiske skema.

Dataværdier gemmes sammen i ordnede sæt baseret på datatyper: alle heltal i et sæt, tegn i et andet osv. Dette optimerer de datahåndteringsprocesser, der får adgang til værdierne.

Ud over typiske dataværdier indeholder dataværdilageret en særlig datatype til lagring af forhold mellem tabeller. Dette fungerer på samme måde som fremmednøgler i RDBMS-strukturer, men med en CDBMS er forholdet kendt af ordbogen og gemt som en dataværdi, hvilket gør navigationen mellem tabeller fuldstændig automatisk.

Dataordbogen indeholder typiske metadata plus yderligere statistiske data om tabeller, kolonner og forekomster af værdier i det logiske skema . Det vedligeholder også information om forholdet mellem de logiske tabeller. Indekset og sammenkædningslageret indeholder alle de data, der bruges til at finde indholdet af en post fra de bestilte værdier i datalageret.

Selvom det ikke er et RAM- baseret lagersystem, er et CDBMS designet til at bruge så meget RAM, som operativsystemet kan levere. For store databaser forbedrer yderligere RAM ydeevne. Generelt giver 4 GB RAM optimerede adgangstider op til ca. 100 millioner poster. 8 GB RAM er tilstrækkelig til databaser op til 10 gange den størrelse. Da den forbrugte inkrementelle RAM formindskes, når databasen vokser, understøtter 16 GB RAM generelt databaser, der indeholder op til ca. 20 milliarder poster.

Sammenligning af DBMS-lagringsstrukturer

Eksempelregistreringerne vist nedenfor illustrerer de fysiske forskelle i lagerstrukturer, der anvendes i relationelle, kolonneorienterede og korrelationsdatabaser.

Kunde-id Navn By Stat
12222 ABC Corp. Minneapolis MN
19434 A1 Mfg Duluth MN
20523 J&J Inc. St. Paul MN

Opbevaring i RDBMS

Den rekordbaserede struktur, der bruges i en RDBMS, gemmer elementer i samme række ved siden af ​​hinanden. Variationer som grupperet indeksering kan ændre rækkefølgen af ​​rækkerne, men alle rækker, kolonner og værdier gemmes som i tabellen. Ovenstående tabel kan gemmes som:

      12222,ABC Corp,Minneapolis,MN;19434,A1 Mfg,Duluth,MN;20523,J&J Inc,St. Paul,MN

Opbevaring i kolonneorienterede databaser

I den søjlebaserede struktur lagres elementer i den samme søjle ved siden af ​​hinanden. Fortløbende duplikater inden for en enkelt kolonne kan automatisk fjernes eller komprimeres effektivt.

      12222,19434,20523;ABC Corp,A1 Mfg,J&J Inc;Minneapolis,Duluth,St.Paul;MN,MN,MN

Opbevaring i CDBMS

I VBS-strukturen, der bruges i et CDBMS, lagres hver unikke værdi en gang og får en abstrakt (numerisk) identifikator uanset antallet af forekomster eller placeringer i det originale datasæt. Det oprindelige datasæt konstrueres derefter ved at henvise til disse logiske identifikatorer. Korrelationsindekset kan ligne lageret nedenfor. Bemærk, at værdien "MN", der forekommer flere gange i ovenstående data, kun er inkluderet en gang. Efterhånden som mængden af ​​gentagne data vokser, multipliceres denne fordel.

      1:12222,2:19434,3:20523,4:ABC Corp,5:A1 Mfg,6:J&J Inc,7:Minneapolis,8:Duluth,9:St.Paul,10:MN

Optegnelserne i vores eksempletabel ovenfor kan derefter udtrykkes som:

      11:[1,4,7,10],12:[2,5,8,10],13:[3,6,9,10]

Denne korrelationsproces er en form for database normalisering . Ligesom man kan opnå nogle fordele ved kolonneorienteret lagring inden for en RDBMS, kan man også opnå nogle fordele ved korrelationsdatabasen gennem database normalisering. I en traditionel RDBMS kræver denne normaliseringsproces dog arbejde i form af tabelkonfiguration, lagrede procedurer og SQL-sætninger. Vi siger, at en database er en korrelationsdatabase, når den naturligt udtrykker et fuldt normaliseret skema uden denne ekstra konfiguration. Som et resultat kan en korrelationsdatabase have mere fokuserede optimeringer til denne fuldt normaliserede struktur.

Denne korrelationsproces svarer til hvad der sker i et tekstsøgningsorienteret inverteret indeks .

Fordele og ulemper

Til analytiske datalagerapplikationer har en CDBMS flere fordele i forhold til alternative databasestrukturer. For det første, fordi databasemotoren selv indekserer alle data og automatisk genererer sit eget skema under farten, kan det implementeres hurtigt og er let at opdatere. Der er ikke behov for fysisk præ-design og intet behov for at omstrukturere databasen nogensinde. For det andet muliggør en CDBMS oprettelse og udførelse af komplekse forespørgsler såsom associerende forespørgsler ("vis alt, der er relateret til x "), der er vanskelige, hvis ikke umulige at modellere i SQL . Den primære fordel ved CDBMS er, at den er optimeret til udførelse af ad hoc-forespørgsler - forespørgsler, der ikke forventes i datalagerdesignfasen.

En CDBMS har to ulemper i forhold til databasealternativer. I modsætning til relationsdatabaser, som kan bruges i en lang række applikationer, er en korrelationsdatabase designet specielt til analytiske applikationer og giver ikke transaktionsstyringsfunktioner; det kan ikke bruges til transaktionsbehandling . For det andet, fordi det indekserer alle data under belastningsprocessen, er den fysiske belastningshastighed for en CDBMS langsommere end relationelle eller kolonneorienterede strukturer. Men fordi det eliminerer behovet for logisk eller fysisk forudformning, er den samlede "brugstid" af et CDBMS generelt svarende til eller noget hurtigere end alternative strukturer.

Referencer