DB2

IBM DB2relacyjny serwer danych z rodziny Information Management Software.

Historia

W czerwcu 1970 Edgar Frank Codd, pracując dla IBM, opublikował „A Relational Model of Data for Large Shared Data Banks” – pracę na temat relacyjnego modelu organizacji danych. Model relacyjny i pierwowzór języka SQL (wtedy Alfa) po raz pierwszy zostały zaimplementowane przez IBM w projekcie System R (System Rational), będącym protoplastą DB2, prowadzonym w latach 1974–1978 w San José Laboratory w Kalifornii. Od tego czasu IBM stworzył całą rodzinę oprogramowania relacyjnych systemów zarządzania bazą danych (RDBMS). Początkowo oprogramowanie było przeznaczone tylko na platformy typu mainframe, na przykład Virtual Machine (VM), Virtual Storage Extended (VSE).

Nazwa DB2 została użyta po raz pierwszy dla RDBMS w 1983, kiedy IBM udostępnił pierwszą wersję na platformę Multiple Virtual Storage (MVS). Nazwa DB2 (skrót od Database 2) symbolizuje bazę danych drugiej generacji na znak odejścia od modelu hierarchicznego. Aktualnie DB2 jest rozwijane zarówno na platformach typu mainframe, jak i platformach systemów otwartych. DB2 na OS/2 Extended Edition wprowadzony w 1987 był pierwszym systemem przeznaczonym na platformę otwartą.

27 czerwca 1997 IBM ogłosił wprowadzenie IBM DB2 v5. Od wersji 5 DB2 była zdolna przechowywać każdy rodzaj danych elektronicznych takich jak: audio, wideo czy dokumenty testowe. Była to też pierwsza wersja zoptymalizowana dla Internetu. Wersja 5 obsługiwała większość platform takich: OS/2, Windows, AIX, HP-UX lub Solaris. Od wersji 5 DB2 działała na różnych konfiguracjach sprzętowych od platform jednoprocesorowych, przez symetryczne platformy wieloprocesorowe (SMP) do systemów masywnego przetwarzania równoległego (MPP) na klastrach kończąc.

IBM dodał do nazwy bazy danych termin „uniwersalna” dla podkreślenia jej nowych cech i elastyczności. Od wersji 5 kolejne dystrybucje DB2 przyjmowały nazwę IBM DB2 UDB. Wersja 5 piąta została wycofana ze sprzedaży 31 grudnia 2001. Obecnie w odniesieniu do DB2 używana jest nazwa IBM DB2 LUW (Linux, Unix, Windows). W DB2 v9 IBM wykorzystał doświadczenie z okresu modelu hierarchicznego, wprowadzając silnik hybrydowy hierarchiczno-relacyjny wspomagający obsługę dokumentów XML. W grudniu 2007 została wprowadzona na rynek edycja IBM DB2 v.9.5.

Edycje

Baza IBM DB2 v9.5 oferowana jest w trzech komercyjnych edycjach: Express, Workgroup oraz Enterprise oraz bezpłatnej edycji DB2 Express-C. Wszystkie edycje DB2 oparte są o ten sam kod i różnią się ograniczeniami licencyjnym wynikającymi z zastosowanej platformy sprzętowej oraz ewentualnych opcjonalnych komponentów. Wszystkie edycje zawierają ten sam zestaw graficznych narzędzi administracyjnych, które dostępne są standardowo także w języku polskim. Bezpłatna edycja DB2 Express-C może być stosowana w komercyjnych rozwiązaniach i nie ogranicza wielkości bazy danych. Do każdego serwera bezpłatnej bazy można wykupić wsparcie techniczne na okres jednego roku (DB2 Express-C FTL). Wykupione wsparcie techniczne umożliwia dostęp do regularnie publikowanych przez IBM uaktualnień kodu oraz daje możliwość konfiguracji bazy w architekturze o wysokiej dostępności.

Edycje komercyjne

Edycje komercyjne IBM DB2 v9.5:

  • Express:
    • Maksymalna liczba procesorów na serwerze: 200 PVU
    • Maksymalny rozmiar wykorzystywanej pamięci: 4 GB
    • Obsługiwane platformy: Linux, Windows, Sun Solaris (x86)
  • Workgroup:
    • Maksymalna liczba procesorów na serwerze: 400 PVU
    • Maksymalny rozmiar wykorzystywanej pamięci: 16 GB
    • Obsługiwane platformy: Linux, Windows, UNIX
  • Enterprise:
    • Maksymalna liczba procesorów na serwerze: bez ograniczeń
    • Maksymalny rozmiar wykorzystywanej pamięci: bez ograniczeń
    • Obsługiwane platformy: Linux, z/Linux, Windows, UNIX
  • Express-C FTL (Fixed Time License)
    • Maksymalna liczba wykorzystywanych rdzeni: 4 rdzenie na maksymalnie dwóch procesorach.
    • Maksymalny rozmiar wykorzystywanej pamięci: 4 GB
    • Obsługiwane platformy: Linux, Windows, Sun Solaris (x86)

Edycje bezpłatne

Edycje bezpłatne IBM DB2 v9.5:

  • Express-C
    • Maksymalna liczba wykorzystywanych rdzeni: 2 rdzenie
    • Maksymalny rozmiar wykorzystywanej pamięci: 2 GB
    • Obsługiwane platformy: Linux, Windows, Sun Solaris (x86)

Wybrane cechy IBM DB2 v.9.5

Kompresja

Skompresowany format zapisu rekordów w DB2 pozwala na znaczne zaoszczędzenie miejsca na macierzach dyskowych przy niewielkim narzucie związanym z dodatkowym wykorzystaniem procesora. Kompresja w DB2 wykorzystuje algorytmy sprawdzone od lat w systemach mainframe (technologia „Venom”). Testy na danych produkcyjnych wykazują przeciętnie 60-80% współczynnik kompresji, co oznacza, że zajętość tabel bazy danych jest zmniejszana około trzykrotnie w porównaniu do formatu nieskompresowanego. Kompresja danych w DB2 oparta jest na słowniku wzorców, który jest budowany globalnie dla całej tabeli bądź partycji tabeli. Powtarzający się w rekordzie wzorzec zamieniany jest na symbol ze słownika kompresji. Rekordy na dysku, jak i w pamięci przechowywane są w postaci skompresowanej i są dekompresowane dopiero w momencie wysyłania strumienia danych do aplikacji, bądź ewaluacji rekordu. Dzięki skompresowanemu formatowi rekordu można uzyskać dużo większą efektywność operacji wejścia/wyjścia, ponieważ przy tym samym obciążeniu dysku baza czyta do pamięci znacznie więcej rekordów.

Silnik XML

Zaimplementowany w DB2 v9 model bazy danych łączy w sobie cechy systemów czysto relacyjnych jak i dedykowanych systemów XML. Jest to możliwe dzięki zintegrowaniu dwóch dotychczas działających niezależnie silników baz danych: relacyjnej i hierarchicznej. Takie podejście zapewnia dużo lepszą wydajność przetwarzania dokumentów XML w porównaniu do technik opartych o obiekty binarne BLOB oraz techniki dekompozycji do tabel relacyjnych. W momencie wstawienia dokumentu XML do bazy danych, węzły dokumentu XML są umieszczane w hierarchicznych strukturach. Fizyczny sposób przechowywania dokumentów XML opowiada modelowi XML. Silnik hierarchiczny pozwala na szybką nawigację odpowiednich elementów dokumentu XML bez konieczności parsowania całego dokumentu w momencie wykonywania zapytania.

  • W DB2 9 zaimplementowano następujące funkcjonalności, przydatne z punktu przetwarzania dokumentów XML w bazie danych:
    • Hierarchiczny sposób składowania dokumentów XML – pureXML
    • Języki XQuery, XPath oraz SQL/XML pozwalające na natywne przeszukiwanie dokumentów XML.
    • Zintegrowany optymalizator, który w oparciu o te same mechanizmy modeluje koszt operacji na danych XML, relacyjnych jak i odwołujących się jednocześnie do danych XML i relacyjnych.
    • Możliwość indeksowania dowolnego elementu bądź zbioru elementów XML wyrażeniem XPath
    • Indeksowanie pełnotekstowe całych dokumentów bądź określonych węzłów dokumentu XML.
    • Opcjonalna walidacja na poziomie pojedynczego dokumentu mechanizmem XML Schema.
    • Możliwość dekompozycji wybranych elementów dokumentu XML do tabel relacyjnych mechanizmem annotated XML Schema.

Przetwarzanie klastrowe

IBM DB2 v9 jest serwerem bazy danych obsługującym równolegle trzy najpopularniejsze techniki partycjonowania danych: partycjonowanie zakresowe, partycjonowanie mieszane i partycjonowanie wielowymiarowe.

  • Partycjonowanie zakresowe – bazuje na dzieleniu tabeli na fragmenty na podstawie klucza partycjonowania. Wstawiane wiersze są dzielone między partycjami na podstawie ustalonego zakresu klucza partycjonowania.
  • Partycjonowanie mieszane – dzieli dane na podstawie wartości zwracanych przez funkcję haszującą, wygenerowanych na podstawie klucza partycjonowania i liczby partycji. Metoda ta wykorzystywana jest przez Database Partitioning Feature (DPF) w celu automatycznej dystrybucji danych na wiele komputerów.
  • Partycjonowanie wielowymiarowe – opiera się na fizycznej organizacji tabel w specjalne bloki w których pogrupowane są rekordy o tych samych wartościach kluczy MultiDimensional Clustering (MDC). Dla tabel zorganizowanych mechanizmem MDC automatycznie tworzone są indeksy bitmapowe w celu szybszej lokalizacji bloków.

W celu zwiększenia potencjału obliczeniowego ogromnych wolumenów danych zapytania SQL są automatycznie dzielone na podzadania i wykonywane na wszystkich klasterach równolegle. Dlatego klasteryzacja ma olbrzymie znaczenie w systemach wielowymiarowych takich jak OLAP lub hurtownie danych.

Do najważniejszych zalet partycjonowania danych zaliczane są:

  • Zwiększenie możliwości ilości przechowywanych danych w jednej tabeli.
  • Łatwiejsze zarządzanie tablicami z olbrzymią ilością danych
  • Optymalizacja uzyskiwania wyników zapytań SQL
  • Zyskanie możliwości szybkiego odłączania (roll-out) i dołączania (roll-in) zbiorów danych.

Menadżer obciążenia

IBM rozszerzył silnik bazodanowy DB2 v9 o mechanizm Workload Manager (WLM), który ma zwiększyć komfort pracy wspierając i automatyzując zarządzanie priorytetami zadań. Menadżer obciążeń pozwala optymalnie wykorzystać zasoby sprzętowe i dostosować bazę do specyficznych zastosowań biznesowych przez zdefiniowanie klas przetwarzania dla poszczególnych aplikacji i zapytań. DB2 v9 umożliwia traktowanie każdego żądania jako odrębnego procesu i przypisanie go do uprzednio zdefiniowanej klasy lub podklasy przetwarzania. Otrzymując takie żądanie serwer „wie” z jakim priorytetem zrealizować zapytanie.

Poniższy listing pokazuje jak stworzyć przykładową klasę przetwarzania:

create service class example
agent priority default
prefetch priority high

Możliwości deweloperskie

  • IBM DB2 v9 jest zgodna z otwartymi standardami i obsługuje wiele narzędzi programistycznych, na przykład:
    • Microsoft Visual Studio dla Microsoft .NET Framework
    • IBM Rational Application Developer
    • Borland Delphi
    • Eclipse
    • IBM uczestniczy w tworzeniu adapterów dla popularnych frameworków takich jak (Ruby on Rails czy Zend Framework)

IBM DB2 posiada również własne dedykowane środowisko deweloperskie IBM Data Studio, oparte na otwartej platformie Eclipse. IBM DS doskonale integruje się z innymi narzędziami i technologiami korporacji IBM. Data Studio doskonale współpracuje też z bazami danych Oracle, Microsoft czy Sybase. Serwer danych DB2 v9 jako pierwszy został certyfikowany na zgodność przez SAP.

DB2 obsługuje zarówno język SQL jak i XQuery i XPath. Obsługuje też popularne języki programowania takie jak CLI-ODBC, Perl, PHP (dedykowany serwer Zend Core 2 for IBM), C/C++, Java. IBM DB2 v9 posiada również rozbudowane wsparcie dla platformy MS .NET.

Linki zewnętrzne