Bazy z drugiej ligi

Pełna wygoda programisty

Inną, bardzo popularną bazą open source jest PostgreSQL. Autorzy tego motoru próbują wprowadzić niemal wszystkie funkcje, jakich można wymagać od baz relacyjnych.

System zawiera wiele rozszerzeń standardu SQL, np. ułatwiających konstrukcję zagnieżdżonych struktur, dziedziczenie tabel. Motor bazy pozwala na stosowanie triggerów (wyzwalaczy), kluczy, definiowanie własnych funkcji i procedur wbudowanych. PostgreSQL obsługuje także złożone typy pól i wyrafinowa- ne mechanizmy blokad, w tym MultiVersion Concurrency Control (MVCC), gdzie użytkownik odczytujący informacje ma własny "obraz" danych, nawet gdy są one równocześnie zmieniane przez innego użytkownika bazy. Administrator ma pełną kontrolę nad statystykami i aktualizacją indeksów (może dowolnie profilować motor bazodanowy).

Na początku lutego br. zakończono, trwające przeszło rok, prace nad najnowszą wersją serwera 7.2. Nowa wersja działa znacznie szybciej niż poprzednie. Nie ma już dużej różnicy prędkości działania w porównaniu z MySQL. Wersja 7.2 zawiera mechanizmy automatycznego strojenia serwera. Duża część opcji administracyjnych nie wymaga blokady całej tabeli czy zatrzymywania i uruchamiania serwera.

Zarówno MySQL, jak i PostgreSQL wspierają uniwersal- ne interfejsy - JDBC i ODBC. W praktyce niewiele aplikacji opartych na tych bazach rzeczywiście wykorzystuje te mechanizmy do komunikowania się z bazą. Częściej są stosowane niestandardowe dowiązania do konkretnego języka programowania: C++, PHP czy Perl/Python.

Na zasadach open source są także dostępne bazy danych SAP DB i InterBase. Na razie są one rzadziej stosowane niż PostgreSQL czy MySQL.

SQL nie zawsze potrzebny

Podczas pisania aplikacji warto się zastanowić, czy naprawdę konieczne jest, by współpracujący z nią system bazodanowy był w pełni zgodny z SQL, obsługiwał triggery, kontrolował zależność pomiędzy tabelami i obsługiwał inne mechanizmy właściwe relacyjnym bazom danych. Czy nie wystarczy szybki, mały motor, który zapisze "stan" aplikacji - bez względu na to, czy będą to struktury w C czy obiekty Javy? Jeśli odpowiedź na drugie pytanie brzmi "tak", mogą się okazać pomocne rozwiązania POET (obecnie FastObjects).

Jedna z wersji FastObjectsTMt7 jest dostarczana jako wyspecjalizowana biblioteka do tworzenia repozytorium obiektów na potrzeby danej aplikacji. Programista tak samo tworzy obiekt w bazie, jak instancje danej klasy w pamięci. Równocześnie otrzymuje interfejs do szybkiego wyszukiwania informacji w systemie. W tym przypadku nie ma jednak mowy o uniwersalnych mechanizmach dostępu.

Inne rozwiązanie problemu zastosowano w ObJectRelationalBridge (OJB). Jest to narzędzie, które pozwala odwzorować obiekty w Javie na strukturę relacyjną wybranej bazy danych. Na serwerze RDBMS należy stworzyć bazę danych o określonej strukturze, w której będzie przechowywany stan obiektów. Dostępne są skrypty dla wielu baz, m.in. Oracle, DB2, a także MySQL (z pewnymi ograniczeniami). Do komunikacji są wyko-rzystywane sterowniki JDBC. Pakiet jest zgodny ze standardem ODMG 3.0, definiującym API do utrwalania obiektów.

Kolejnym rozwiązaniem jest Berkeley DB - baza przeznaczona do osadzania w aplikacji, gdzie każda informacja jest przechowywana jako para: klucz, wartość. Dzięki sprawnemu mechanizmowi indeksowania wyszukanie informacji jest szybkie, a równocześnie API takiego systemu jest bardzo proste.


TOP 200