Porównanie systemów zarządzania relacyjnymi bazami danych

Transkrypt

Porównanie systemów zarządzania relacyjnymi bazami danych
Jarosław Gołębiowski 12615
08-07-2013
Porównanie systemów zarządzania relacyjnymi
bazami danych
Podstawowa terminologia związana z tematem systemów zarządzania bazami
danych
Baza danych jest to zbiór danych opisujący pewien wybrany fragment rzeczywistości według
określonych zasad.
System zarządzania bazami danych (SZBD) jest to oprogramowanie lub system informatyczny
służący do zarządzania bazami danych.
Funkcjonalności SZBD
• wsparcie dla języka bazy danych
• wsparcie dla struktur danych – efektywne składowanie i przetwarzanie danych (optymalizacja
dostępu do danych)
• ochrona przed nieautoryzowanym dostępem do danych
• współbieżny dostęp do danych - na tych samych danych pracują różne aplikacje nie kolidując ze
sobą
• zagwarantowanie bezpieczeństwa danych w przypadku awarii
• wielość interfejsów dostępu do bazy danych – możliwość przedstawienia tych samych danych
w różnych formatach np. formularz, raporty
Interakcja z bazą danych
Programy użytkowe kontaktują się z bazą danych za pomocą języka SQL.
SQL jest to strukturalny język stosowany do formułowania zapytań w odniesieniu do baz danych.
Za jego pomocą możliwe jest tworzenie, modyfikacja baz danych oraz operowanie na danych w
niej zawartych. SQL to język deklaratywny, wymaga jedynie określenia, co chcemy otrzymać w
wyniku wykonania zapytania. Za to, w jaki sposób zadanie zostanie zrealizowane odpowiada
SZBD. Opracowany w latach 70 przez IBM, SQL jest uniwersalnym interfejsem do większości
SZBD. Innym wartym wymienienia, aczkolwiek rzadziej stosowanym sposobem komunikacji z
bazami danych jest rodzina języków bazodanowych xBase.
Podział SZBD ze względu na wykorzystywany model danych


relacyjne – dane reprezentowane są w postaci dwuwymiarowych tabel o określonej
liczbie kolumn i dowolnej liczbie wierszy. Tabele (zwane relacjami) powinny zawierać
jednorodne informacje obiektów określonego typu obiektów
obiektowe - dane przechowywane są w strukturach obiektowych w postaci klas wraz z
przywiązanymi do nich metodami (procedurami). Możliwe jest dokonywanie operacji na
obiektach tak jak na zmiennych programu.
1




obiektowo-relacyjne –dane przechowywyane są tak jak w modelu relacyjnym w postaci
tabel, jednak możliwe jest dokonywanie operacji na nich tak jak na obiektach
semistrukturalne - struktura danych jest określana za pomocą grafu węzłów i krawędzi.
Służą jako model dokumentów w notacji takiej jak XML.
hierarchiczne - dane są przechowywane na zasadzie rekordów nadrzędnychpodrzędnych, przypominających strukturę drzewa. Przykładem może być struktura
katalogów na dysku czy drzewo genealogiczne. W odróżnieniu od semistrukturalnych
rekord może mieć tylko jednego rodzica.
sieciowe - rozwinięcie bazy hierarchicznej przez dodanie możliwości zapisu relacji wieledo-wielu. Występują dodatkowe połączenia, umożliwiające uzyskanie dostępu do danego
rekordu bez potrzeby każdorazowego przechodzenia przez strukturę drzewa.
Relacyjne bazy danych są najpowszechniej stosowane. Dlatego bazy wykorzystujące ten
model danych zostaną porównane.
Popularne Systemy zarządzania relacyjnymi bazami danych (RDBMS)
RDBMS możemy podzielić na dwie zasadnicze grupy - systemy komercyjne oraz systemy
niekomercyjne. Systemy komercyjne, które wymagają nabycia płatnych licencji oferują nam
różne dodatkowe funkcjonalności oraz wsparcie techniczne. W razie problemów otrzymamy
pomoc od suportu.
Niekomercyjne RDBMS są wolnym oprogramowaniem, zwolnionym z opłat przynajmniej dla
celów niekomercyjnych. Często są rozwijane przez wolontariuszy i nie możemy liczyć na
wsparcie.
Komercyjne:
 Oracle Database

DB2

Informix
 Microsoft SQL Server
Niekomercyjne:
 MySQL
 Firebird
 PostgreSQL
Wsparcie dla systemów operacyjnych
SZBD
Oracle
DB2
Informix
MS SQL Server
MySQL
Firebird
PostgreSQL
Wspierane systemy operacyjne
Windows, OS X, Linux, UNIX
Windows, OS X, Linux, UNIX
Windows, OS X, Linux, UNIX, BSD
Windows
Windows, OS X, Linux, UNIX, BSD, Symbian
Windows, OS X, Linux, UNIX, BSD, Android
Windows, OS X, Linux, UNIX, BSD
2
Kontrola dostępu i zabezpieczenia
RDBMS
Audyt
Tak
Ochrona przed
atakami Brute-force
Tak
Szyfrowanie sieci
wewnętrznych
Tak
Zasady
złożoności hasła
Tak
Certyfikat
bezpieczeństwa
Tak
Oracle
DB2
Tak
Nie
Tak
Tak
Tak
Informix
Tak
Nie
Tak
Nie
Nie
MS SQL Server
Tak
Nie
Tak
Tak
Tak
MySQL
Nie
Nie
Tak
Nie
Nie
Firebird
Nie
Tak
Nie
Nie
Nie
PostgreSQL
Tak
Tak
Tak
Tak
Tak
*Audyt – monitorowanie działań użytkowników i działań na obiektach
Oracle i PostgreSQL udostępniają największą gammę rozwiązań podnoszących bezpieczeństwo bazy
danych.
Indeksowanie
Jest to struktura powiązana z tabelą umożliwiająca szybsze wykonywanie zapytań SQL.
Rodzaje indeksów:









bitmapowe - informacje przechowywane są w postaci mapy bitów (macierz bitów
danych) dla każdej wartości występującej w danej kolumnie
unikalne – ograniczenie zapewniające, że w relacji nie będzie dwóch rekordów z tą samą
wartością atrybutu indeksowego
pełnotekstowe – przeszukiwanie kolumn tekstowych bazujące na analizie poszczególnych
słów
hash – jest to funkcja(zwana mieszającą), która przyporządkowuje dowolnie dużej liczbie
krótką pozornie losową wartość
drzewa R-/R+ – dane indeksowane są w postaci obiektów geometrycznych (wielokąty,
linie i punkty). Grupowane są przy użyciu algorytmu minimalnej obwiedni prostokątnej
(MBR). Obiekty są dodawane do indeksu wskazującego na najmniejszy przyrost wielkości
dodawanych obiektów
odwrócone – wartość w indeksie jest przechowywana w odwrotny sposób niż wartość
przechowywana w atrybutach, np. ‘BAZA’ będzie przechowywana jako ‘AZAB’
GiST – umożliwia złożone wyszukiwanie za pomocą operatorów takich jak np. <<, &<, &>,
>>, <<|, &<|, |&>, |>>, @>, <@, ~=, &&
GIN – indeksy potrafiące obsłużyć wartości, które posiadają więcej niż jeden klucz, jak np.
tablice
filtrowane – selekcja wyników wyszukiwania według zadanych kryteriów
3
Stosowane mechanizmy w poszczególnych DBMS:
 Oracle Database: indeksy bitmapowe, unikalne, pełnotekstowe, Hash, drzewa R-/R+,
odwrócone, filtrowane

DB2: indeksy bitmapowe, unikalne, pełnotekstowe, odwrócone

Informix: indeksy bitmapowe, unikalne, GIN, GiST, pełnotekstowe, Hash, drzewa R/R+, odwrócone, filtrowane




Microsoft SQL Server indeksy unikalne, pełnotekstowe, filtrowane, przestrzenne
MySQL: indeksy pełnotekstowe, Hash, drzewa R-/R+
Firebird: indeksy unikalne, odwrócone
PostgreSQL: indeksy bitmapowe, unikalne, pełnotekstowe, Hash, drzewa R-/R+,
odwrócone, GIN, GiST, filtrowane
Oracle, Informix oraz PostgreSQL oferują największą ilość indeksów. Zaletą jest przyśpieszenie
wyszukiwania danych oraz wzrost stopnia współbieżności wykonywanych operacji. Wadą
natomiast możliwe spowolnienie modyfikacji danych.
Ograniczenia rozmiaru danych
*BLOB/CLOB -typ danych umożliwiający przechowywanie dużych ilości danych jako pojedynczy obiekt.
BLOB – dane binarne (np. pliki graficzne, muzyczne)
CLOB – dane znakowe (np. długie łańcuchy znaków, pliki tekstowe)
Jaki system zarządzania bazą danych wybrać?
Wybierając najlepszy dla siebie SZBD należy odpowiedzieć sobie na kilka podstawowych pytań:
1. Jak ważna jest cena?
Jest to często jeden z najważniejszych czynników, jakie programiści biorą pod uwagę wybierając
SZBD. Z wiadomych powodów wolne oprogramowanie nie dorównuje systemom komercyjnym.
Systemy najbardziej popularne, a mianowicie Oracle oraz MS SQL Server oferują najwyższą
niezawodność i jakość działania. Jednak wysoka cena (180$ licencja na jednego użytkownika
Oracle, MS Server podobne stawki w zależności od dystrybucji oraz liczby licencji) często
zmuszają do wyboru mniej popularnych rozwiązań, aczkolwiek nie koniecznie odbiegających
jakością od wyżej wymienionych.
2. Jak ważna jest kompatybilność z różnymi systemami operacyjnymi?
4
W zasadzie wszystkie porównywane SZBD oferują wsparcie dla większości systemów
operacyjnych. Wyjątkiem jest MS SQL Server, który pomimo kompatybilności jedynie z platformą
Windows ma bardzo duży udział w rynku.
3. Jakie dodatkowe funkcjonalności są nam potrzebne?
Podsumowanie
Do prostych, mało wymagających projektów wystarczające są darmowe systemy takie jak
MySQL, Firebird.
Oracle, DB2, Informix, MS SQL Server są odpowiednie do dużych projektów, z dużym budżetem.
Stoją za nimi duże korporacje oferujące wsparcie techniczne. Są gwarancją niezawodności i
płynności działania.
PostgreSQL dzięki dużym możliwościom proceduralnego języka PL/pgSQL jest dobrą alternatywą
dla systemów komercyjnych.
5

Podobne dokumenty