Zapytanie w sprawie bazy

Wybór bazy danych dla aplikacji nie jest dziś ani trochę łatwiejszy niż 5 czy 10 lat temu. Choć liczba baz o znaczącym udziale w rynku istotnie zmalała, powstają kolejne, rozwiązujące stare problemy w nowy sposób.

Wybór bazy danych dla aplikacji nie jest dziś ani trochę łatwiejszy niż 5 czy 10 lat temu. Choć liczba baz o znaczącym udziale w rynku istotnie zmalała, powstają kolejne, rozwiązujące stare problemy w nowy sposób.

Na pytanie o najlepszą bazę danych dla aplikacji nie ma i chyba nigdy nie będzie jednoznacznej odpowiedzi. Motory baz okrzepłe już na rynku oferują coraz więcej funkcji, ale równolegle pojawiają się wciąż nowe, niszowe rozwiązania. Wybierając motor bazy danych dla aplikacji, wypada obecnie kierować się przede wszystkim jej sprawdzonymi, typowymi profilami zastosowań.

Metoda dostępu do bazy

Poza wyborem samej bazy danych, istotny jest także sposób dostępu i obsługi bazy z poziomu aplikacji klienckiej czy warstwy środkowej (w architekturze n-warstwowej).

Historycznie ODBC był chyba pierwszą próbą ujednoliconego interfejsu dostępu do baz danych. Sterownik ODBC w zależności od 'poziomu zgodności' pozwala wykonać różnego typu operacje, np. otworzyć zestaw rekordów, który powstał w wyniku wykonania danego zapytania. Sterowniki na poziomie trzecim implementują specjalny dialekt ODBC, w którym wiele elementów zostało ujednoliconych. Na przykład został ustalony sposób przekazywania dat czy tworzenia złączeń (joins). Dzięki temu program może odpytywać bazę, nie wiedząc nic o stosowanym w niej dialekcie ODBC - za translację odpowiada sterownik. Niestety, z konieczności ten dialekt ODBC jest bardzo ubogi i z tego powodu rzadko stosowany.

JDBC to standard sterowników bazodanowych dla środowiska Java. Dostępne mechanizmy bardzo przypominają API ODBC. Istnieje także uniwersalny sterownik JDBC-ODBC umożliwiający obsługę każdej bazy, do której opracowano sterownik ODBC. Przy okazji Javy warto też wspomnieć o niedawno opracowanym mechanizmie JDO (Java Data Object). To API pozwalające łatwo zapisać i odczytać stan obiektów. Jednak nie jest ono jeszcze szeroko implementowane. Równocześnie trwają prace nad językiem zapytań JDOQL.

Nie sposób w tym miejscu nie wspomnieć o OLE DB, rozwiązaniu opracowanym przez Microsoft m.in. po to, by ujednolicić sposób obsługi relacyjnych i nierelacyjnych źródeł danych. Dostępne są sterowniki OLE DB do baz danych, usług katalogowych, kostek OLAP, a także do systemu plików. W konsekwencji jednak standard ten stał się zbyt rozbudowany. Aby zachować pełną zgodność z OLE DB, sterowniki muszą mieć po kilkadziesiąt interfejsów. Okazało się też, że mimo tak rozbudowanej specyfikacji, nadal jest wiele typów elementów, które nie mogą być "elegancko" obsługiwane przez OLE DB.

W .Net Microsoft zdecydował się wprowadzić zupełnie inny sposób dostępu do baz danych. Poprzednie interfejsy starały się ujednolicać cechy wielu baz danych, teraz interfejs bazy tylko 'wypełnia' zestaw danych DataSet. Następnie program pracuje na 'rozłączonym' zestawie danych oryginalnych, a na koniec, w razie potrzeby, .Net Provider wykonuje ciąg poleceń, aktualizując dane w bazie. Ujednolicenie elementów ma miejsce dopiero w obiekcie po stronie klienta.

Bardzo wygodne interfejsy dostępowe są związane z językami programowania. Dobrym przykładem są tu PHP i moduły obsługujące MySQL. Co prawda w bazie MySQL w porównaniu z innymi motorami brakuje wielu mechanizmów, interfejs PHP pozwala jednak łatwo obejść znakomitą ich większość. My SQL ma też specjalne zestawy API dla języków Perl i Python.

Wymienione metody dostępu do baz danych są w pewnym sensie sztuczne - może z wyjątkiem sytuacji, gdy w programie obiektowym jest stosowana baza obiektowa.

Najważniejsza wygoda?

Przy okazji rozważań o bazach danych i ich ewolucji warto na chwilę przyjrzeć się wysłużonemu produktowi, jakim jest Microsoft FoxPro. Visual Fox-Pro w wersji 6.0 był częścią Visual Studio. W wersji .Net Visual FoxPro nie jest już częścią tego rozbudowanego pakietu, nazywanego obecnie Visual Studio .Net. Jednak wbrew powszechnym opiniom, to środowisko nadal jest rozwijane przez Microsoft. Co więcej, nadal jest używane w wielu nowych projektach. Język FoxPro w wersji 8.0 został rozbudowany o mechanizm obsługi błędów oparty na wyjątkach, ujednoliconej klasie CursorAdapter, która obsługuje kursory zarówno rodzimych tabel FoxPro, dokumentów XML, MS SQL Server, jak i dowolnego źródła danych ODBC/OLE DB.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200