W tej cześci zapoznamy się z trzema najpopularniejszymi systemami skupiając się na ich podstawowych cechach. Omówimy MySQL, SQL Server oraz Oracle.
MySQL
Zaczniemy od darmowego rozwiązania jakim jest MySQL. Jest to rozwiązanie obsługujące wiele różnych platform do których zaliczamy Microsoft Windows, główne dystrybucje Linuxa oraz Mac OS 10. Jeżeli interesuje Was ten temat możecie zerknąć na listę wszystkich wspieranych platform: MySQL: Supported Platforms
Spójrzmy na listę cech charakterystycznych produktu:
dostępność;
wysoka wydajność;
skalowalność;
wsparcie mechanizmu transakcyjnego;
niezwykla popularność w rozwiązaniach webowych;
wsparcie hurtowni danych;
bezpieczeństwo danych;
ciągły rozwój aplikacji;
łatwość zarządzania systemem.
MySQL niewątpliwie wykorzystał walkę pomiędzy gigantami na rynku, tj. Oracle oraz SQL Server. Skupił się na wsparciu rozwoju aplikacji webowych oferując darmowe rozwiązanie działajace na wielu platformach. Dodatkowym aspektem przemawiającym za wyborem tej platformy jest, w przeciwieństwie do konkurencji, mniejsza ilość miejsca zajmowana w przestrzeni hostingowej.
SQL Server
Jest to zwykle mój domyślny wybór jeżeli chodzi o bazę danych. Zacząłem na studiach, później w pierwszej pracy a następnie we wszystkich projektach, które przygotowuję. Z drugiej strony, na co dzień pracuję w firmie Oracle gdzie wybór jest oczywiście inny – nie jestem jednak w stanie przekonać się do tego rozwiązania.
Głównym językiem dla MS SQL jest T-SQL o którym wspominałem w poprzednich wpisach.
Spójrzmy na listę cech charakterystycznych produktu:
dostępność darmowych wersji produktu, które mogą być zainstalowane w środowisku nieprodukcyjnym;
wysoka wydajność;
database mirroring - kopia lustrzana bazy danych, która przejmuje role serwera głównego w razie awarii;
mechanizm tworzenia migawki bazy danych, tj. kopia źródłowej bazy danych w określonym momencie w czasie;
CLR Integration - integracja środowiska uruchomieniowego CLR znanego z .NET pozwala na pisanie procedur składowanych, wyzwalaczy czy funkcji w tzw. kodzie zarządzanym (manged code). Przed pierwszym uruchomieniem kod kompilowany jest do kodu maszynowego co pozwala osiągnać znaczy wzrost wydajności w niektórych scenariuszach, np. w przypadku implementacji kursorów;
instrukcja TRY...CATCH;
wyzwalacze (triggers) – specjalny rodzaj procedur składowanych, które wywoływane są automatycznie w momencie wystąpienia określonego zdarzenia, np. dodania, aktualizacji bądź wykasowania rekordów;
natywne przechowywanie danych XML w specjalnie do tego przygotowanych kolumnach;
wysyłanie wiadomość mailowych z poziomu serwera, np. wysyłanie informacji o błędach.
Oracle
Relacyjna baza danych Oracle wspiera standardowy język zapytań jakim jest SQL, który rozszerza przez wewnętrzny język tworzenia procedur składowanych, tj. PL/SQL.
Głównym Klientem dla tych baz danych są aplikacje klasy enterprise, tj. oprogramowanie tworzone na dużą skalę. Oracle ciągle pracuje nad efektywnym zarządzaniem swoimi zasobami ponieważ baza danych/bazy danych muszą być zdolne do przetwarzania żądań nadchodących od ogromnej liczby Klientów. Celowo użyłem w poprzednim zdaniu wyrażania ‘baza danych/bazy danych’ ponieważ Oracle opracował rozwiązanie znane pod nazwą Pluggable Databases (PDBs), którego celem jest rozwiązanie problemów napotykanych przez twórców oprogramowania biznesowego.
Potraktujcie to jako ciekawostkę – zamysłem cyklu nie jest wchodzenie w zaawansowe zagadnienia i zbyt szybkie zniechęcanie do nauki. Jeżeli jednak interesuje Was ten temat zapraszam do oficjalnej dokumentacji: Introduction to the Multitenant Architecture
Spójrzmy jeszcze na listę cech charakterystycznych produktu:
zarządzanie zasobami;
wsparcie hurtowni danych;
zaplanowane zadania, np. aktualizacja określonych informacji w interwale 24-ro godzinnym;
zmaterializowane widoki – w odróżnieniu od zwykłych widoków przechowują dane zapytania oraz wykorzystują fizyczną przestrzeń dyskową przydzieloną przez bazę danych;
kompresja tabel celem zaoszczędzenia przestrzeni na dysku;
współbieżność wykonywania operacji na bazie danych – proces ten łączy się jednak z poszczególnymi tybami izolacji. Dla osób zainteresowanych: READ COMMITTED, SERIALIZABLE, READ ONLY;
data mining - zbiór algorytmów pozwalających na analizowanie danych do klasyfikacji, prognozowania, wykrywania anomalii oraz przeprowadzania analiz specjalistycznych;