CODB

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

CODB to skrót od Column Oriented DBMS czyli kolumnowy system zarządzania bazą danych. W przeciwieństwie do tradycyjnych systemów bazodanowych (RDBMS) gdzie dane składowane są poziomo czyli wierszami, w CODB dane przechowywane są pionowo - kolumnami.

Weźmy na przykład tabelę customer z dużej firmy ubezpieczeniowej. Przyjmijmy, że tabela ma 2 miliony wierszy, każdy z nich zajmuje 800 bajtów. Chcemy wiedzieć ile jest nieubezpieczonych mężczyzn w województwie mazowieckim.

 SELECT COUNT(*) FROM subscriber WHERE plec = 'M' AND woj = 'MAZ' AND ubezp = 'N'.

W tradycyjnej relacyjnej bazie danych wygląda to tak.

... Plec ... Woj ... Ubezp
K MAZ T
M SLA T
K LUB N
M MAZ T
K LUB T

Wymaga to przeglądania wszystkich danych dla każdego wiersza (o ile nie ma indeksów). Liczba operacji wejścia/wyjścia wynosi

\frac{2M~wierszy \times 800b }{ 16Kb~strona } \approx 100~000~we/wy.


Podczas gdy w systemie CODB odczytujemy tylko trzy interesujące nas kolumny. Przy tym zapytanie SQL wygląda identycznie.

Płeć Woj Ubezp
K ↓ MAZ ↓ T ↓
M ↓ SLA ↓ T ↓
K ↓ LUB ↓ N ↓
M ↓ MAZ ↓ T ↓
K ↓ LUB ↓ T ↓

Interesujące nas kolumny mają długości odpowiednio: 1, 3 i 1. Liczba operacji wejścia/wyjścia wynosi w tym przypadku

\frac{2M~wierszy \times (1 + 3 + 1)b }{ 16Kb~strona } \approx 500~we/wy.

Im więcej wierszy w tabeli tym większy zysk. Systemy typu CODB są zaprojektowane do celów raportowych i analitycznych (Systemy DSS) w przetwarzaniu ogromnych ilości danych. Stosowane są najczęściej do implementacji hurtowni danych. Nie nadają się do przetwarzania transakcji (Systemy OLTP).

Liderem w tej kategorii jest Sybase ze swoją bazą IQ. Inni producenci to Vertica, ParAccel and GreenPlum.