2004 11 Porównanie serwerów relacyjnych baz danych Open Source [Bazy Danych]


Linux w firmie
Porównanie serwerów
relacyjnych baz
danych Open Source
Mateusz Oksiński
programowanie Open z testowanych serwerów baz danych
Source aktualnie przeży- są umieszczone w ramce Instalacja
wa swoje złote lata. Dzięki poszczególnych serwerów baz danych
Owspółpracy tysięcy ludzi, ze zródeł).
tworzących określony projekt, możemy Skrótowo podsumowując instalację,
(często za darmo) użytkować coraz na najgorszą ocenę zasługuje Ingres.
nowsze aplikacje, posiadające ogromną, W pozostałych kompilacja przebiegała
ciągle rozbudowywaną i ulepszaną funk- intuicyjnie  zwykły ./configure z opcja-
cjonalność. mi, make oraz make install. Pomijając
Ostatnio firma Computer Associates fakt nietypowej kompilacji Ingresa,
International, Inc. (CA) postanowiła udo- trzeba wziąć jeszcze pod uwagę fakt, że
stępnić publicznie kod zródłowy Ingresa mogą wystąpić problemy z kompilacją
R3 na licencji CATOSL (CA Trusted Open przy użyciu GCC 3.3 oraz to, że może-
Source Licence). Miało to na celu nieco my zapomnieć o użytkowaniu tej wersji
zmotywować programistów do rozwoju na systemach z jądrem z rodziny 2.6.
projektu Ingres, aby aktualni użytkow-
nicy produktów Oracle, Microsoft SQL Wymagania sprzętowe
Server, Sybase Adaptive Enterprise Server Niezależnie od tego, jak wspaniałe będzie
czy MySQL, uzyskali łatwą migrację do rozwiązanie, które wybierzemy do dal-
tej bazy danych. CA przeznaczyło łącznie szej pracy, musimy wziąć pod uwagę to,
1 milion dolarów (jest to sześć nagród, czy kilka dodatkowych opcji jest warte
z których maksymalna to 400 tysięcy ewentualnej zmiany sprzętu, na którym
dolarów, a minimalna 50 tysięcy dola- ostatecznie będzie pracował nasz serwer
rów), aby to urzeczywistnić. baz danych.
Na płycie CD/DVD
W artykule porównamy Ingresa Kluczowymi elementami wpływający-
Na płycie CD znajduje się
z konkurentami na rynku serwerów baz mi na wydajność systemu są ilość dostęp-
Ingres R3. Na płycie DVD
danych Open Source. nej pamięci RAM oraz prędkość dysku
znajdują się dodatkowo inne
twardego. Wielkość drugiego parametru
omawiane serwery baz danych.
Instalacja nie jest nigdzie podawana, chociażby ze
O autorze
Aby rozpocząć pracę z lokalną bazą względu na to, że oczywisty jest fakt, że
Autor jest studentem kierunku
danych na swoim komputerze, musimy im szybszy dysk, tym szybszy dostęp do
Matematyka i Informatyka w Ban-
ją najpierw zainstalować. W celu unik- danych na nim zapisanych.
kowości w Wyższej Szkole Mate-
nięcia nieścisłości mogących powstać Ingres wymaga całkiem dobrego
matyki i Informatyki Użytkowej
w trakcie porównywania wydajności sprzętu i pozwala sobie na dość duże
w Białymstoku. Bazami danych
serwerów instalowanych z pakietów wykorzystanie jego zasobów. Minimalna
zajmuje od wielu lat. Obecnie
i kompilowanych na maszynie, na ilość pamięci RAM, w jaką będziemy
pracuje jako programista w firmie
której będą docelowo pracowały, zre- musieli zaopatrzyć maszynę, na której
Info-Trade sp. z o.o.
zygnujemy z dobrodziejstw pakietów będzie pracował, to 256 MB, ale optymal-
Kontakt z autorem:
moksinski@info-trade.pl binarnych i przygotujemy wszystko wła- nym minimum pozwalającym na pracę
snoręcznie (szczegóły instalacji każdego z zadowalającą prędkością jest 512 MB.
22
listopad 2004
Linux w firmie
bazy danych
Testowane serwery baz danych Instalacja poszczegól-
nych serwerów baz
Ingres Do porównania została użyta wersja Post-
danych ze zródeł
Serwer, będący jeszcze niedawno komer- greSQL 8.0 Beta 3.
cyjnym produktem, jest teraz dostępny
PostgreSQL
dla ogółu na licencji CATOSL. Posiada MySQL
on ogromne możliwości, w tym wsparcie Aktualnie najpopularniejszy serwer baz
# adduser postgres
dla OCFS (Oracle Cluster File System). danych wśród twórców serwisów WWW
# su - postgres
Jak mówią przedstawiciele CA, Ingres (i nie tylko, gdyż przykładem może być
# tar jxvf postgresql-.0.0beta3.tar.bz2
znacznie podwyższy poziom standardu chociażby Bugzilla). Jest szybki, prosty
# cd postgresql-8.0.0beta3
baz danych Open Source. Przekonajmy i... promowany przez firmy zajmujące się
S
# ./configure --prefix /usr/local/
się, czy te słowa nie są tylko niespełnioną hostingiem. Do porównania została użyta
S
pgsql8 --enable-thread-safety
obietnicą... Do porównania została użyta wersja MySQL 4.1.5 Gamma.
--with-perl --enable-integer-datetimes
wersja Ingres R3.
# make
Firebird
# su -c 'make install'
PostgreSQL Serwer baz danych powstały na bazie
Jest to potężny serwer baz danych, załą- Interbase'a (przy wsparciu Borlanda).
Firebird
czany do praktycznie każdej dystrybucji Ze względu na ogromną zgodność
Linuksa. Wywodzi się od Ingresa (stąd z Interbasem, umożliwia praktycznie każ- # adduser firebird
# su - firebird
też nazwa: Post Ingres SQL), zanim demu oprogramowaniu korzystającemu
# tar jxvf firebird-1.5.1.4481.tar.bz2
ten stał się produktem komercyjnym. oryginalnie z Interbase'a na migrację do
# cd firebird-1.5.1.4481
Opisywana wersja udostępnia ogromną Firebirda. Do porównania została użyta
# ./autogen.sh
funkcjonalność, porównywalną z bardzo wersja Firebird 1.5.1.
S
# ./configure --prefix=/usr/local/
wysokiej klasy produktami komercyjnymi.
firebird151 --enable-superserver
# make
# su -c 'make install'
Trzeba wziąć również pod uwagę, że CA obsługuje ich kilka standardów. Czy to
zaleca kompilowanie Ingresa na maszy- dobrze? Ostatecznie ocenią to użytkow-
MySQL
nie z 1 GB RAM-u. nicy, ale według mnie jest to utrudnienie
Pozostałe serwery zadowolą się dwu- pracy w dużych zespołach, w których
# adduser mysql
krotnie mniejszą ilością pamięci opera- każdy stara się korzystać ze swego ulu-
# su - mysql
cyjnej (nie ma podanego minimum, jeśli bionego stylu.
# tar zxvf mysql-4.1.5-gamma.tar.gz
chodzi o kompilację), lecz nie pogardzą
# cd mysql-4.1.5-gamma
żadną ilością, którą się im dodatkowo Wyzwalacze
S
# ./configure --prefix=/usr/local/
udostępni. Podczas rozplanowywania obciążenia
mysql415gamma --enable-thread-S
Po raz kolejny zawiódł Ingres, ale zo- serwera baz danych i serwera aplika-
S
safe-client --with-charset=utf8
baczmy, jak przedstawiają się jego moż- cji bardzo przydatne mogą okazać się
--with-isam
liwości. wyzwalacze, które pozwolą na auto-
# make
matyzację niektórych procesów, które
# su -c 'make install'
Możliwości poszczególnych w normalnym trybie miałaby wyko-
serwerów baz danych nywać aplikacja. Tylko jeden z porów-
Ingres
nywanych serwerów baz danych nie
# adduser ingres
Standardy obsługuje ich. Jest nim MySQL. Dzięki
# su - ingres
Każda z omawianych baz danych jest temu brakowi jego użytkownicy mogą
# cd ingresr3/src/tools/ports/conf
w pełni zgodna ze standardem SQL92, ale zapomnieć o stworzeniu niektórych
# ln -sf VERS.int_lnx VERS
nie są one ograniczone tylko do niego. struktur danych, które miałyby być
# cd ../../../..
W większości przypadków zawierają one wykonywane w rozsądnym tempie,
# export ING_ROOT=`pwd`
mniejsze lub większe naleciałości stan- a które czasami są wręcz wymarzonym
# export XERCES_LOC=/usr/lib
dardu SQL99. W przypadku PostgreSQL-a rozwiązaniem.
# source src/tools/jam/bldenv
w grę dodatkowo wchodzi SQL2003.
# cd src/tools/ports/jam
Blokady
Zapytania Niemożliwe jest porządne stworze- # jam
# mkjams
Do niedawna zagnieżdżone zapytania były nie projektu aplikacji intensywnie
# cd $ING_ROOT/src
zarezerwowane dla wszystkich poza użyt- korzystającej z bazy danych, która
# jam >& jam.log & tail -f ./jam.log
kownikami MySQL-a. Od wersji 4.1 posiada miałaby być bezpieczna i która nie
on już to udogodnienie, które konkurencja używałaby transakcji. Chcąc stworzyć
Uwaga! Kompilacja jest zakończona po-
posiadała od dość długiego czasu. taką aplikację, już w fazie wstępnego
myślnie dopiero w momencie braku wpisów
Skoro jesteśmy przy zapytaniach to projektowania powinniśmy odrzucić
SKIPPED i FAILED w pliku jam.log.
warto wspomnieć o tym, że Firebird możliwość skorzystania z kuszącej
23
www.lpmagazine.org
Linux w firmie
Tabela 1. Podsumowanie (oceny w skali 1-5, + oznacza dostępność, - oznacza
jąca od razu dostanie o tym informację
niedostępność funkcji)
i będzie mogła przejąć dalsze stero-
parametr Ingres R3 Firebird 1.5.1 MySQL 4.1.5g PostgreSQL wanie. Ostatnio wprowadzoną opcją,
oceny 8.0b3 zarówno w Firebirdzie, jak również
w PostgreSQL8, są tzw. save-point y.
Prostota 1 4 5 5
Save-pointy to punkty odniesienia usta-
instalacji
wiane w trakcie jednej transakcji w celu
Wymagania 2 5 5 3
umożliwienia powrotu do dowolnie
sprzętowe
wybranego przez siebie punktu i ewen-
Rozmiar pliku 76455kB 4422kB 18980kB 10457kB
tualne zatwierdzenia operacji wykona-
ze zródłami
nych w bazie aż do save-pointu.
Języki proce- + + - +
duralne
Języki proceduralne
Widoki + + - +
Po raz trzeci muszę wspomnieć, że
Transakcje 5 3 1 4
możemy zapomnieć o użyciu tego
Savepoint'y + + - + udogodnienia w MySQL. Pozostałe
posiadają to rozszerzenie i mają to
Procedury + + - +
doskonale rozwiązane, ale tylko Post-
wyzwalane
greSQL daje tak wielką różnorodność
(triggers)
języków, z których możemy skorzystać
Własne typy + + - +
(między innymi pl/PGSQL, plPerl,
danych
plTCL, plJava, plPHP), choć tak duża
Replikacja 5 1 2 1
różnorodność chwilami może być
danych
traktowana jako wada. Najważniejszą
Zapytania + + + +
zaletą PostgreSQL-a jest to, że jest
zagnieżdżone
z nim standardowo dostarczany język
Złączenia inner, left, right, full, left, right full, cross inner, outer, left,
pl/PGSQL. Używanie go może bardzo
full, natural, cross right, full, natural,
ułatwić życie w przypadku próby
cross
migracji aplikacji na Oracle'a, z którego
Automatyczna sekwencje (3) generatory (2) autoincrement sekwencje (3)
ten język został zapożyczony.
numeracja pól (1)
Praca w klastrze
Indeksowanie 5 3 1 5
Praca w klastrze przestała być domeną
danych
drogich komercyjnych baz danych.
Max. liczba 1024 16384 (dla 3398 250-1600
Z porównywanych w artykule serwe-
kolumn w kolumn integer) (w zależności
rów baz danych wszystkie ją zapew-
wierszu (w zależności od typu danych)
niają, za pomocą wbudowanych mecha-
od typu danych)
nizmów bądz przy użyciu dodatkowych
Max. rozmiar 256 kB 64 kB 64 kB 1.6 TB
narzędzi. Ingres daje nam możliwość
wiersza
korzystania z technologii Oracle a poprzez
Wsparcie dla + - - +
pracę w klastrze OCFS (Oracle Cluster
danych w
File System). Co więcej, CA nie postawiło
XML
użytkowników Ingresa przed sytuacją,
Max. wielkość 2 GB 0,5 GB 4 GB 4 GB
w której są zmuszeni do korzystania
BLOB-a
z jednego rozwiązania  daje dodatkowe
Dokumentacja 3 2 4 5
narzędzie OpenLDM (Distributed Lock
Standardowo 5 1 1 1 Manager). Wziąwszy pod uwagę fakt, że
dostarczone CA, dbając o klientów, zapewniło im moż-
narzędzia liwość wyboru oraz to, że dostępne narzę-
dzia są już sprawdzonymi rozwiązaniami
Miejsce 1 3 4 2
z wzorcami zaczerpniętymi od najlep-
prędkości MySQL. Ten RDBMS oferuje i zostawiają MySQL-a daleko za sobą. szych, bez wahania mogę powiedzieć, że
tylko jeden tryb blokowania. Wygląda Ingres wyprzedza pozostałą parę, choć Ingres znacznie wyprzedza swoją konku-
on tak, jakby został doczepiony na siłę już nie tak znacznie, jak MySQL-a. Oferu- rencję.
 tak, aby można było powiedzieć, że je m.in. blokady typu no wait. Ich cieka-
MySQL obsługuje transakcje. Bo jak wą cechą jest to, że gdy aplikacja zgłosi BLOB-y
można nazwać porządnym blokowanie żądanie założenia tego typu blokady, Każda z przedstawianych baz danych
całej tabeli z danymi? Pozostałe bazy a nie będzie możliwe natychmiastowe oferuje obsługę BLOB-ów (Binary Large
danych nie mają już takiego problemu tego zrealizowanie, aplikacja wywołu- OBject). Poszczególne z nich oferują
24
listopad 2004
Linux w firmie
bazy danych
różne podejście do tematu ich obsługi, ale funkcjonalność
i maksymalne wielkości przechowywanych obiektów
powinny wystarczyć do większości zastosowań. Wziąw-
szy przy ocenie pod uwagę tylko maksymalną wielkość
przechowywanych obiektów, na pierwszym miejscu zna-
lazły się PostgreSQL i MySQL, drugie przypadło Ingre-
sowi, a rola przegranego  Firebirdowi (maksymalne
wielkości przechowywanych obiektów zostały umieszczone
w Tabeli 1).
Narzędzia
Ingres jako wyjątek udostępnia nam od razu po instalacji
bardzo dobre narzędzia do zarządzania zarówno strukturą
bazy danych, jak również jej konfiguracją. Dostęp jest możli-
wy m.in. poprzez interfejs WWW (ICE).
Z pozostałymi serwerami baz danych są dostarczane,
co najwyżej, narzędzia konsolowe, a dodatki są dostępne
w Internecie.
Jeśli chodzi o wygodę obsługi, to w czołówce plasuje
się phpMyAdmin. Jest on bardzo dobrym narzędziem do
administracji MySQL-em, ale skoro to oprogramowanie
ma tak niewielkie możliwości (piszę w kontekście bardziej
zaawansowanych funkcjonalności), to nie ma się czemu
dziwić, że takie narzędzie może być dopracowane. Dla
PostgreSQL-a i Firebirda również istnieją tego typu narzę-
dzia  są to phpPgAdmin i ibWebAdmin, ale po przejściu
z wcześniejszej wspomnianych do testowania tej pary, mam
wrażenie, że są nieco toporne. W szczególności dotyczy to
ibWebAdmina, który przypomina czasy wczesnych stadiów
rozwoju pozostałych.
Tutaj muszę stwierdzić, że gdyby CA wcześniej bardziej
dopracowało ICE-a, byłby nie do pokonania jeśli chodzi
o funkcjonalność. Na szczęście jest to teraz oprogramowanie
Open Source, więc na pewno w najbliższym czasie
wszystkie niedoróbki znikną. Skoro już jesteśmy przy
tym narzędziu, to warto nieco bardziej rozwinąć ten
temat. ICE oferuje moduł do Apache-a, umożliwiający
tworzenie własnych serwisów internetowych bez żad-
nych dodatkowych modułów typu PHP. Przykłady ich
tworzenia oraz konfiguracji są bardzo dobrze opisane
w załączonej dokumentacji. Kolejnym narzędziem jest Ing-
Menu, z poziomu którego mamy możliwość wizualnego
tworzenia zapytań, tabel, różnego rodzaju złączeń, formularzy
czy raportów. Jest to potężne narzędzie mimo skromnego
wyglądu.
Replikacja danych
W aplikacjach klient serwer wymagających ogromnej
prędkości działania oraz zachowania integralności danych
niezbędne bywa przechowywanie wspólnych danych na
kilku(nastu/set) serwerach. Mogą być one umieszczo-
ne w różnych punktach Ziemi. W takich przypadkach
życie bez replikacji nie miałoby racji bytu. Wbudowane
implementacje tego mechanizmu można znalezć jedynie
w dwóch serwerach baz danych. Są nimi Ingres i MySQL,
przy czym należy wziąć pod uwagę fakt, iż replikacja
MySQL-a praktycznie wyklucza go z poważnych zasto-
sowań. Ingres był projektowany i tworzony dla klientów
o zupełnie innych wymaganiach niż użytkownicy MySQL-a.
25
www.lpmagazine.org
Linux w firmie
Tabela 2. Licencje serwerów
nazwa serwera baz nazwa licencji darmowa do komercyj-
danych nych zastosowań
Firebird InterBase Public Licence +
Ingres CATOSL +
MySQL GPL z wyjątkiem FOSS -
PostgreSQL GPL +
Rysunek 2. Strona domowa projektu
Produkt CA, będąc wcześniej apli- Nawet przegrywający w praktycznie
Ingres
kacją komercyjną wykorzystywaną każdej rywalizacji MySQL daje znacznie
w bardzo wielu dużych projektach, wyższy domyślny poziom bezpieczeń-
został wyposażony w doskonały system stwa.
replikacji danych. Do PostgreSQL-a Po odpowiednim skonfigurowaniu Podsumowanie
i Firebirda również są dostępne aplika- serwerów baz danych, ich bezpieczeń- W tym porównaniu, pomimo bardzo
cje rozszerzające funkcjonalność tych stwo widzę następująco: Ingres, Post- rozbieżnych wyników, trudno jest
baz o tę niezmiernie ważną cechę, greSQL, Firebird oraz MySQL. Oprócz wyłonić zwycięzcę, chociażby ze
ale nie są one dołączane do ich pod- tak podstawowych kwestii, jak logo- względu na to, że pewne serwery
stawowych wersji. Nie znam niekomer- wanie się z określonych komputerów baz danych są projektowane z myślą
cyjnego narzędzia do Firebirda, które (MySQL), pozostałe serwery oferują o innych zastosowaniach niż pozosta-
mogłoby być godne polecenia. Do znacznie bardziej zaawansowane opcje łe. Wziąwszy jednak pod uwagę pro-
replikacji danych w PostgreSQL jest  m.in. autoryzację przez Kerberos fesjonalne aplikacje, w dużym stopniu
dostępne narzędzie Slony, ale ciągle w wersjach 4 i 5, dzięki czemu możemy korzystające z baz danych, mam
mu daleko do wzorca, którym może mieć pewność zachowania bezpieczeń- dwóch faworytów i ogromny dyle-
być Ingres. stwa. mat, któremu z nich przyznać złoto.
Ingres mógłby stać się bezsprzecznym
Java i inne Dokumentacja faworytem, gdyby nie problemy z jego
Nawet najlepszy serwer baz danych nie Według mnie doskonałą dokumentację instalacją i niemożność zainstalowania
sprawdzi się, jeśli nie będą dostępne mają tylko PostgreSQL i MySQL. Są one na systemach linuksowych korzystają-
narzędzia umożliwiające połączenie bardzo dobrze napisane i dostępne cych z jądra 2.6. Z drugiej strony mamy
się z nim aplikacjom. Na szczęście w bardzo wielu miejscach w Interne- łatwo instalowalnego PostgreSQL-a,
na tym polu nie ma ani wygranych cie. Dzięki ogromnej ilości materiałów, który sam z siebie niewiele nam da
ani przegranych. Wszyscy zachowali przykładowych i gotowych rozwiązań w sytuacjach, w których niezbędna
się wzorowo udostępniając progra- problemów w archiwum, możemy mieć będzie replikacja danych. Wydaje mi
mistom odpowiednie interfejsy JDBC pewność, że żaden nasz problem nie się, że szalę na stronę Ingresa przewa-
i ODBC. jest niespotykany i że ktoś udostęp- ża ilość i jakość narzędzi od razu z nim
nił nam sposób na jego rozwiązanie. dostarczonych.
Bezpieczeństwo W przypadku Firebirda też nie możemy
Tutaj wyjątkowo należałoby skarcić narzekać na ilość informacji o nim, ale
PostgreSQL za wyjątkowo niski domyśl- nie jest to już taka liczba materiałów jak
W Internecie:
ny poziom bezpieczeństwa, z którego, w przypadku wspomnianych wcześniej
niestety, nie przechodzi na wyższy baz danych. Materiałów dotyczących
" Strona domowa projektu PostgreSQL:
ogromna liczba administratorów. Jeśli Ingresa jest bardzo mało. Jedyne doku- http://www.postgresql.org/
" Strona domowa projektu MySQL:
dodatkowo nie zostanie odcięta możli- menty, które mogą pomóc rozwiązać
http://www.mysql.org/
wość połączenia się spoza sieci korpo- nasze problemy, w większości znajdują
" Strona domowa projektu Firebird:
racyjnej, to strach myśleć, co może dziać sią na stronie producenta. CA zadbało
http://firebird.sourceforge.net
się z naszymi danymi... o odpowiedni poziom swoich dokumen-
" Strona domowa projektu Ingres:
tacji, więc dostajemy pięknie przygoto-
http://opensource.ca.com/projects/
wane materiały, które niestety zostały
ingres/
bardzo rozdrobnione i poumieszczane
" Strona domowa projektu
w oddzielnych plikach, co znacznie
phpMyAdmin:
utrudnia znalezienie potrzebnych
http://www.phpmyadmin.net/
informacji. Jeśli poszukiwanych
" Strona domowa projektu
przez nas informacji nie znajdziemy ibWebAdmin:
http://ibwebadmin.sourceforge.net/
w dokumentacji, możemy zapomnieć
" Strona domowa projektu
o znalezieniu ich w Internecie. Miejmy
Rysunek 1. Program IngMenu 
phpPgAdmin:
nadzieję, że wkrótce pojawi się znacz-
podstawowe narzędzie do pracy
http://phppgadmin.sourceforge.net/
nie więcej publikacji na temat tej bazy
z Ingresem
danych.
26
listopad 2004


Wyszukiwarka

Podobne podstrony:
Zestaw 1 Wprowadzenie do relacyjnych baz danych
Podstawy baz danych sql 19 11
Podstawy baz danych  12 11 SQL
Wprowadzenie do baz danych
Podstawy baz danych zajecia 2 z SQL Tabela Biblioteka
IWZ 2 Podstawy baz danych
Analiza baz danych na temat materiałów betonopodobnych
wprowadzenie do baz danych
system baz danych
Administrator baz danych!3101
Inżynier Budownictwa 2004 11
22 Część VII Udostępnianie baz danych w sieci WWW Podsta

więcej podobnych podstron