Articles

Wojny baz danych: MSSQL Server, Oracle PL/SQL i MySQL

Posted on

Wobec tak wielu baz danych na rynku, rozpoczęły się wojny umysłów i nadszedł właściwy czas, aby zrozumieć różnicę i znaczenie 3 najlepszych relacyjnych baz danych na rynku – Microsoft SQL Server, Oracle PL/SQL i MySQL. Relacyjne systemy zarządzania bazą danych stały się obecnie podstawą przemysłu i przy tak wielu dostępnych opcjach trudno jest się zorientować, który z nich wybrać.

Relacyjne systemy zarządzania bazą danych zostały wprowadzone w latach 80-tych. Ten artykuł koncentruje się na poznaniu historii i cech trzech popularnych RDBMS w branży: Microsoft SQL Server, Oracle i MySQL. Microsoft SQL Server i Oracle są oprogramowaniem komercyjnym, MySQL jest open-source’owym RDBMS.

Oracle był pierwszą firmą, która wprowadziła RDBMS do użytku komercyjnego w latach 80. W połowie lat 90. na rynek wszedł Microsoft z SQL Serverem, który był poważnym konkurentem dla Oracle. Z drugiej strony, MySQL został pierwotnie opracowany i rozpowszechniany jako oprogramowanie open-source. MySQL został po raz pierwszy wydany w 1995 roku, a wersja windowsowa została wydana w 1998 roku. W 2008 roku został przejęty przez SUN, a następnie przez Oracle.

Język – serce komunikacji

Kręgosłupem każdego RDBMS jest język używany do wykonywania zapytań i to właśnie on wpływa na ich wydajność i implementację. Chociaż wszystkie trzy systemy zarządzania bazami danych używają wersji języka SQL (Structured Query Language). Microsoft SQL Server używa Transact-SQL, lub T-SQL, który jest rozszerzeniem SQL pierwotnie opracowanym przez Sybase i używanym przez Microsoft. Oracle natomiast używa PL/SQL, czyli Procedural Language/SQL.

Oba języki są różnymi „smakami” lub dialektami SQL i oba mają nieco inną składnię i możliwości. Główną różnicą między tymi dwoma językami jest sposób obsługi zmiennych, procedur składowanych i funkcji wbudowanych. PL/SQL w Oracle może również grupować procedury w pakiety, czego nie można zrobić w MS SQL Server. PL/SQL może być nieco bardziej złożony i potencjalnie bardziej wydajny, podczas gdy T-SQL jest znacznie prostszy i łatwiejszy do wdrożenia.

MySQL, z drugiej strony, używa lekkiej wersji T-SQL i również łączy w sobie język proceduralny, który jest blisko spokrewniony z SQL/PSM. Kod przechowywany w obiektach MySQL jest zbliżony do standardów ANSI, ale nie jest tak szeroki i głęboki, jak T-SQL, który jest zastrzeżonym rozszerzeniem języka SQL firm Microsoft i Sybase.

Kontrola transakcji

Transakcja to grupa operacji, które są wykonywane jako pojedyncza jednostka. Na przykład, jeśli użytkownik próbuje wykonać kilka zapytań SQL, to albo wszystkie zostaną wykonane, albo żadna. Jest to jedna z głównych różnic pomiędzy Oracle a MS SQL Server w odniesieniu do kontroli transakcji.

Domyślnie MS SQL Server wykonuje i zatwierdza każde polecenie/zadanie indywidualnie, a cofnięcie zmian w przypadku wystąpienia błędów po drodze będzie trudne lub niemożliwe. Polecenie „BEGIN TRANSACTION” służy do odpowiedniego pogrupowania poleceń i zadeklarowania początku transakcji, a na końcu może zostać użyta instrukcja COMMIT. Polecenie COMMIT spowoduje zapisanie zmienionych danych na dysk i zakończenie transakcji. W ramach transakcji, ROLLBACK odrzuci wszelkie zmiany dokonane w bloku transakcji. Po wydaniu COMMIT, nie jest możliwe cofnięcie się dalej niż do polecenia COMMIT.

W Oracle, każde nowe połączenie z bazą danych jest traktowane jako nowa transakcja. W miarę wykonywania zapytań i wydawania poleceń, zmiany dokonywane są tylko w pamięci bazy danych i pozostają w pamięci podręcznej. Nic nie jest przekazywane, dopóki nie zostanie wydana wyraźna instrukcja COMMIT. Po COMMIT, następne wydane polecenie zasadniczo inicjuje nową transakcję i proces zaczyna się od nowa. Zapewnia to większą elastyczność i pomaga również w kontroli błędów, ponieważ żadne zmiany nie są zapisywane na dysku do momentu wykonania polecenia COMMIT.

W przypadku MySQL, obsługa transakcji jest łatwo kompatybilna z InnoDB. InnoDB jest silnikiem pamięci masowej dla MySQL i domyślnie jest dostępny wraz z MySQL. Zapewnia on standardowe funkcje transakcji zgodne z ACID, wraz z obsługą kluczy obcych.

Organizacja obiektów bazy danych

Organizacja obiektów bazy danych również jest dużym wyróżnikiem w tych 3 bazach danych. MS SQL Server organizuje wszystkie obiekty, takie jak tabele, widoki i procedury, według nazw baz danych. Użytkownicy MS SQL mają przypisane loginy, które dają im dostęp do konkretnych baz danych i ich obiektów. W Microsoft SQL Server każda baza danych posiada swój prywatny, nieudostępniany plik dyskowy na serwerze.

W Oracle wszystkie obiekty bazodanowe pogrupowane są według schematów. Schematy to nic innego jak struktury bazy danych, które są podzbiorem obiektów bazy danych. Wszystkie obiekty bazy danych są współdzielone pomiędzy wszystkimi schematami i użytkownikami. Nawet jeśli są one współdzielone, role i uprawnienia dla każdego użytkownika są zdefiniowane i mogą być ograniczone do określonych schematów i tabel.

W skrócie, wszystkie trzy, MySQL, Oracle i SQL Server są potężnymi opcjami RDBMS. Chociaż istnieje wiele innych różnic w tym, jak działają „pod maską” i wdrożone, mogą być używane w przybliżeniu prawie równoważny sposób. Każdy z nich może być używany z innym celem w innym środowisku. Cel może być taki sam, ale implementacja się różni.

raja

Publikowano dnia 16-Jan-2020 12:26:19

Przypisy
Przypisy.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *