Baza po ewolucji

Ostatnie lata przyniosły osłabienie pozycji specjalizowanych baz danych na rzecz dalszego wzmocnienia pozycji baz relacyjnych, i to głównie komercyjnych. Wzbogacenie ich o obsługę XML, obiektowości oraz struktur analitycznych, a także uelastycznienie licencjonowania, zrobiły swoje.

Ostatnie lata przyniosły osłabienie pozycji specjalizowanych baz danych na rzecz dalszego wzmocnienia pozycji baz relacyjnych, i to głównie komercyjnych. Wzbogacenie ich o obsługę XML, obiektowości oraz struktur analitycznych, a także uelastycznienie licencjonowania, zrobiły swoje.

Dziesięć lat temu podział baz danych był jasny i prosty. Pierwszą grupę stanowiły bazy ogólnego przeznaczenia, takie jak Oracle czy Sybase, wykorzystywane w systemach transakcyjnych. Drugą - bazy na potrzeby hurtowni danych i trzecią - systemy przeznaczone do analiz. Dziś ten podział praktycznie stracił znaczenie, bowiem twórcy serwerów transakcyjnych rozbudowali je o funkcje analityczne, zwiększyli ich skalowalność. Poza tym okazało się, że de facto wszystkie bazy - lepiej lub gorzej, ale jednak - są w stanie ze sobą współpracować. Inne spostrzeżenie jest takie, że poszczególne komercyjne serwery baz danych coraz mniej się od siebie różnią - trudno jest znaleźć obszar, w którym jeden jest zdecydowanie lepszy od pozostałych. To co najważniejsze, czyli standard SQL-92 i jego następcy są obsługiwane wszędzie. Poza tym nowe, niestandardowe koncepcje i rozwiązania wprowadzane do jednego produktu wkrótce pojawiają się u konkurencji pod innymi nazwami handlowymi.

Proste bazy danych, choć jest ich sporo, zwłaszcza wywodzących się ze środowiska open source, nie zyskują - przynajmniej na razie - wielkiego zainteresowania w środowiskach komercyjnych, poza obszarami niekrytycznymi, jak np. aplikacje WWW. W takich zastosowaniach wszystkie wady MySQL znikają, gdy spojrzy się na wydajność osiąganą na prostym sprzęcie klasy podstawowej. W zastosowaniach biznesowych królują ci, którzy zdobyli rynek przez stopniowe wzbogacanie funkcjonalności serwerów o nowe dziedziny, podnosząc niezawodność korzystających z nich aplikacji, a także ułatwiając życie administratorom i programistom.

Dane pilnie poszukiwane

Systemy RDBMS od zawsze służą do gromadzenia informacji, po to by potem móc łatwo ją odnaleźć. Gromadzone informacje nie zawsze mają postać rekordów powiązanych relacjami - czasami są to po prostu dokumenty. Ponieważ system informatyczny także i je będzie chciał przeszukiwać, pojawiły się mechanizmy wyszukiwania "pełnotekstowego". Pozwalają one wybrać rekordy obejmujące dokument, w którym obok siebie występują dwa słowa kluczowe. Innym problemem są dane "hierarchiczne". Historycznie rzecz biorąc, bazy hierarchiczne są jednym z pierwszych "typów" baz danych (IBM IMS z lat 60.). Obecnie to programista przetwarza dane w sposób hierarchiczny, pisząc program o określonej strukturze. Na fali popularności XML powstało bardzo dużo rozwiązań, które mogą przetwarzać dane z/na postać XML, używając bezpośrednio mechanizmów bazy danych. Oracle od wersji 9i ma np. specjalny mechanizm indeksów, który przyspiesza wyszukiwanie danych w "reprezentacji XML". SQLXML3 to dodatek do 2000 pozwalający na wygodne transformacje danych do postaci XML z poziomu kwerendy. W SQL 2005 jest dostępny typ pola "XML", w którym można umieścić dokument, a potem, w warunku wyrażenia SELECT połączyć warunki relacyjne z warunkami Xpath, wybierając pasujące wiersze.

Warto także dodać, że pojawiają się narzędzia, które przekształcają bazę danych w "system plików". Na przykład Oracle Internet File System (iFS) dostępny dla Oracle od 8.1.7 pozwala wykorzystać mechanizm RDBMS do zapisu plików. Oczywiście zapis jest wolniejszy, ale za to wyszukiwanie - bez porównania szybsze. Automatycznie można też skorzystać z dodatkowych cech, jakie w "naturalny" sposób oferuje baza danych - mechanizm blokad, zaawansowane wyszukiwanie, bardzo rozbudowane mechanizmy bezpieczeństwa itp.

Baza czy system plików?

Teraz można zaobserwować pojawianie się koncepcji przeciwnych - to systemy plików stają się coraz bardziej bazami danych. Mechanizmy typu Google Desktop Search czy analogiczne rozwiązanie MSN to próba przerobienia systemu plików na specyficzną bazę danych z ciekawym mechanizmem kwerend. Co ważniejsze - takie mechanizmy można rozbudowywać, dodając własne wtyczki, które będą "wyciągać" dodatkowe informacje z plików. Powstały np. specjalne rozwiązania indeksujące pliki źródłowe w języku C czy C++ i wyciągające z nich słowa kluczowe.

Podobnemu celowi służy usługa indeksowania na Windows. Pozwala ona "przyspieszać" wyszukiwanie plików, a nawet gromadzić dodatkowe metadane czy treść (np. PDF). Warto tu kilka słów napisać o WinFS - kolejnym systemie plików opracowywanym przez Microsoft. Początkowo miał być częścią systemu Longhorn, ale z ostatnich zapowiedzi (a także w świetle tego, co można znaleźć w wersjach beta nowych architektur API dla Windows XP) wygląda na to, że będzie to kolejna biblioteka usługowa dostępna dla programistów. WinFS bazuje na motorze SQL 2005 - pozwala np. tworzyć grupy dokumentów, wiązać je według określonych kryteriów, oferuje znacznie rozbudowane mechanizmy do zarządzania metadanymi. Oczywiście "poniżej" WinFS działa NTFS. Wykorzystanie WinFS jest opcjonalne.

Wszystkie te rozwiązania - czy to "desktop search", czy WinFS - mają swoje mechanizmy "zadawania zapytań". Tak więc trudno sobie wyobrazić aplikację, która byłaby w stanie ujednolicić te wszystkie źródła danych. Ale zanim standard SQL stał się tak popularny, także różne systemy RDBMS dysponowały własnymi mechanizmami wyszukiwania. Może za jakiś czas pojawi się wreszcie specyfikacja API obsługującego jednolicie wszystkie możliwe źródła danych - i można będzie poszukać dokumentów Kowalskiego bez względu na to, czy są one w bazie danych, w pliku, czy w jakimś liście elektronicznym.


TOP 200