Bazy z drugiej ligi

Obok komercyjnych baz danych IBM DB2, Oracle czy Sybase istnieje wiele mniej znanych. Niektóre z nich powstały w modelu open source i przy spełnieniu pewnych warunków są dostępne bezpłatnie.

Obok komercyjnych baz danych IBM DB2, Oracle czy Sybase istnieje wiele mniej znanych. Niektóre z nich powstały w modelu open source i przy spełnieniu pewnych warunków są dostępne bezpłatnie.

Darmowe bazy danych

  • MySQL,http://www.mysql.org

  • PostgreSQL,http://www.postgresql.org

  • SAP,http://www.sapdb.org

  • BerkeleyDB,http://www.sleepycat.com

  • SQLLite,http://www.hwaci.com/sw/sqlite/sqlite.html

  • InterBase, http://sourceforge.net/projects/interbase

  • Sposób przechowywania informacji decyduje o wydajności aplikacji. Niezależnie od tego, czy jest to mały system finansowo-księgowy, aplikacja typu PIM czy program obsługujący jednocześnie wielu użytkowników, wybór w dużym stopniu decyduje o tym, jak cały system będzie funkcjonował w realnych warunkach. Od bazy danych zależy również czas tworzenia aplikacji.

    MySQL - nie do końca relacyjna

    Baza danych MySQL korzysta tylko z tych części dialektu SQL, które nie spowalniają odczytu. Do dziś ta jedna z najpopularniejszych baz open source nie obsługuje m.in. zapytań zagnieżdżonych.

    Obecnie przygotowywana wersja 4.01 znacznie bardziej przypomina relacyjną bazę danych niż poprzednie wersje MySQL. Motor ten obsługuje już wyszukiwanie pełnotekstowe. Programista może zdefiniować słownik i minimalną długość indeksowanych słów. Serwer zlicza w zapytaniu różniące się rekordy, zaś komunikacja między serwerem a klientem może być szyfrowana. Rozszerzono mechanizmy przewidywania liczby rekordów w przypadku, gdy zapytanie nie nakłada ograniczenia na liczbę wyników.

    MySQL ma ciekawą architekturę. Motor bazy jest w pewnym sensie niezależny od mechanizmów przechowywania informacji. W wersji 4.0 można tworzyć kilka typów tabel.

    Ogólna architektura SQLLite

    Ogólna architektura SQLLite

    MyISAM to domyślny typ tabel MySQL (znany jeszcze z wersji 3.23), w którym informacje i indeksy są przechowywane w dwóch plikach. Dane z tych tabel są odczytywane najszybciej. Ponadto programista może skompresować tabelę - wprawdzie będzie ona dostępna tylko do odczytu, ale kwerendy będą wykonywane znacznie szybciej.

    Typ MERGE pozwala definiować połączenie kilku niezależnych tabel w jedną. W ten sposób można np. w systemie finansowym przechowywać w oddzielnym pliku dane za każdy kwartał, a następnie kierować zapytanie do jednej tabeli, która powstała z połączenia 4 lub większej liczby podtabel.

    MySQL nie obsługuje podkwerend. Pozwala natomiast jawnie definiować tabele przechowywane w pamięci. W ten sposób można np. do tymczasowej tabeli przenieść wynik jednego zapytania, a następnie wybrać z niej rekordy spełniające inne kryterium.

    InnoDB i BDB to typy tabel, oparte na zewnętrznych motorach bazodanowych, które pozwalają uzyskać obsługę transakcji z poziomu MySQL.

    Głównym zadaniem MySQL jest przetłumaczenie zapytania na ciąg wywołań API właś-ciwego dla danego typu tabeli. MySQL zajmuje się także obsługą replikacji i innymi operacjami wysokiego poziomu. W przypadku prostych baz opartych na ISAM operacje przeprowadza baza MySQL. W przypadku baz opartych na typach InnoDB czy BDB polecenie jest przekazywane do odrębnego podsystemu z własną pamięcią podręczną, buforami itp. Teoretycznie motor bazy nie musi nawet działać na tym samym komputerze, co główny parser MySQL.

    W jednym zapytaniu SQL można łączyć tabele różnego typu. Pozwala to na bardzo dokładne dostrojenie aplikacji (dobór typu tabeli do zastosowania), ale czasami przysparza kłopotów, np. gdy tabela nie obsługuje transakcji, w razie awarii część danych nie zostanie odtworzona.

    Programista MySQL ma do dyspozycji bardzo szybki motor bazodanowy, ale musi dostosować się do ograniczonego podzbioru składni SQL. Jeśli jednak opanuje niuanse, związane z obsługą tej bazy, może tworzyć aplikacje o dużej wydajności.


    TOP 200