Baza danych korelacji - Correlation database

Bazie korelacja jest system zarządzania bazami danych (DBMS), który jest modelem danych niezależne i zaprojektowane, aby efektywnie obsługiwać nieplanowane, ad hoc zapytań w środowisku systemu analitycznego.

W przeciwieństwie do zorientowanych wierszowo systemów zarządzania relacyjnymi bazami danych , które wykorzystują podejście do przechowywania opartego na rekordach, lub baz danych zorientowanych na kolumny, które używają metody magazynowania opartego na kolumnach, baza danych korelacji wykorzystuje architekturę magazynu opartą na wartościach (VBS), w której każde unikalne dane value jest przechowywana tylko raz, a automatycznie generowany system indeksowania zachowuje kontekst dla wszystkich wartości.

Struktura

Ponieważ system DBMS korelacji przechowuje każdą unikalną wartość danych tylko raz, rozmiar fizycznej bazy danych jest znacznie mniejszy niż w relacyjnych lub kolumnowych bazach danych, bez użycia technik kompresji danych . Powyżej około 30 GB korelacyjny DBMS może stać się mniejszy niż zestaw danych surowych.

Model VBS używany przez CDBMS składa się z trzech podstawowych fizycznych zestawów obiektów, które są przechowywane i zarządzane:

  • słownik danych ( metadanych );
  • indeksowanie i łączenie zbioru danych (dodatkowe metadane); i
  • rzeczywiste wartości danych, które składają się na przechowywane informacje.

W modelu VBS każda unikalna wartość w surowych danych jest przechowywana tylko raz; dlatego dane są zawsze normalizowane na poziomie niepowtarzalnych wartości. Eliminuje to potrzebę normalizowania zbiorów danych w schemacie logicznym.

Wartości danych są przechowywane razem w uporządkowanych zestawach na podstawie typów danych: wszystkie liczby całkowite w jednym zestawie, znaki w innym itd. Optymalizuje to procesy przetwarzania danych, które uzyskują dostęp do wartości.

Oprócz typowych wartości danych, magazyn wartości danych zawiera specjalny typ danych do przechowywania relacji między tabelami. Działa podobnie do kluczy obcych w strukturach RDBMS, ale w przypadku CDBMS związek jest znany słownikowi i przechowywany jako wartość danych, dzięki czemu nawigacja między tabelami jest całkowicie automatyczna.

Słownik danych zawiera typowe metadane oraz dodatkowe dane statystyczne dotyczące tabel, kolumn i wystąpień wartości w schemacie logicznym . Przechowuje również informacje o relacjach między tabelami logicznymi. Magazyn indeksów i linków obejmuje wszystkie dane używane do lokalizowania zawartości rekordu na podstawie uporządkowanych wartości w magazynie danych.

Chociaż nie jest to system pamięci oparty na pamięci RAM , CDBMS jest zaprojektowany tak, aby wykorzystywać tyle pamięci RAM, ile może zapewnić system operacyjny . W przypadku dużych baz danych dodatkowa pamięć RAM poprawia wydajność. Ogólnie 4 GB pamięci RAM zapewni zoptymalizowany czas dostępu do około 100 milionów rekordów. 8 GB pamięci RAM jest wystarczające dla baz danych do 10 razy większych. Ponieważ ilość zużywanej przyrostowej pamięci RAM zmniejsza się wraz ze wzrostem bazy danych, 16 GB pamięci RAM na ogół obsługuje bazy danych zawierające do około 20 miliardów rekordów.

Porównanie struktur pamięci masowej DBMS

Przykładowe rekordy pokazane poniżej ilustrują fizyczne różnice w strukturach pamięci używanych w relacyjnych, kolumnowych i korelacyjnych bazach danych.

Identyfikator klienta Nazwa Miasto Stan
12222 ABC Corp Minneapolis MN
19434 A1 Mfg Duluth MN
20523 J&J Inc Święty Paul MN

Przechowywanie w RDBMS

Struktura oparta na rekordach używana w RDBMS przechowuje elementy w tym samym wierszu sąsiadujące ze sobą. Odmiany, takie jak indeksowanie klastrowe, mogą zmienić kolejność wierszy, ale wszystkie wiersze, kolumny i wartości będą przechowywane tak, jak w tabeli. Powyższa tabela może być przechowywana jako:

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

Przechowywanie w kolumnowych bazach danych

W strukturze słupowej elementy tej samej kolumny są przechowywane obok siebie. Kolejne duplikaty w jednej kolumnie mogą być automatycznie usuwane lub wydajnie kompresowane.

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

Przechowywanie w CDBMS

W strukturze VBS używanej w CDBMS każda unikalna wartość jest przechowywana raz i otrzymuje abstrakcyjny (numeryczny) identyfikator, niezależnie od liczby wystąpień lub lokalizacji w pierwotnym zbiorze danych. Oryginalny zbiór danych jest następnie konstruowany przez odniesienie do tych logicznych identyfikatorów. Indeks korelacji może przypominać pamięć poniżej. Należy zauważyć, że wartość „MN”, która występuje wielokrotnie w powyższych danych, jest uwzględniana tylko raz. Wraz ze wzrostem ilości powtarzanych danych korzyść ta się zwielokrotnia.

      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

Rekordy w naszej przykładowej tabeli powyżej można następnie wyrazić jako:

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

Ten proces korelacji jest formą normalizacji bazy danych . Tak jak można osiągnąć pewne korzyści z przechowywania zorientowanego na kolumny w RDBMS, tak samo można osiągnąć pewne korzyści z korelacyjnej bazy danych poprzez normalizację bazy danych. Jednak w tradycyjnych RDBMS ten proces normalizacji wymaga pracy w postaci konfiguracji tabeli, procedur składowanych i instrukcji SQL. Mówimy, że baza danych jest bazą danych korelacji, gdy w naturalny sposób wyraża w pełni znormalizowany schemat bez tej dodatkowej konfiguracji. W rezultacie baza danych korelacji może mieć bardziej ukierunkowane optymalizacje dla tej w pełni znormalizowanej struktury.

Ten proces korelacji jest podobny do tego, co ma miejsce w indeksie odwróconym zorientowanym na wyszukiwanie tekstu .

Zalety i wady

W przypadku aplikacji do analitycznych hurtowni danych CDBMS ma kilka zalet w porównaniu z alternatywnymi strukturami baz danych. Po pierwsze, ponieważ sam silnik bazy danych indeksuje wszystkie dane i automatycznie generuje własny schemat w locie podczas ładowania, można go szybko zaimplementować i łatwo zaktualizować. Nie ma potrzeby fizycznego wstępnego projektowania ani zmiany struktury bazy danych. Po drugie, CDBMS umożliwia tworzenie i wykonywanie złożonych zapytań, takich jak zapytania asocjacyjne („pokaż wszystko, co jest związane z x ”), których modelowanie w języku SQL jest trudne, jeśli nie niemożliwe . Podstawową zaletą CDBMS jest to, że jest zoptymalizowany pod kątem wykonywania zapytań ad hoc - zapytań nieprzewidzianych na etapie projektowania hurtowni danych.

CDBMS ma dwie wady w porównaniu z alternatywnymi bazami danych. W przeciwieństwie do relacyjnych baz danych, które mogą być używane w wielu różnych aplikacjach, baza danych korelacji została zaprojektowana specjalnie dla aplikacji analitycznych i nie zapewnia funkcji zarządzania transakcjami; nie może być używany do przetwarzania transakcyjnego . Po drugie, ponieważ indeksuje wszystkie dane podczas procesu ładowania, fizyczna prędkość ładowania CDBMS jest wolniejsza niż w przypadku struktur relacyjnych lub kolumnowych. Jednakże, ponieważ eliminuje potrzebę logicznego lub fizycznego wstępnego projektowania, ogólny „czas użytkowania” CDBMS jest ogólnie podobny lub nieco krótszy niż alternatywne struktury.

Bibliografia