Wydanie wersji piątej to duży postęp dla całego programu MySQL. I chociaż od tego momentu upłynęło już trochę czasu, to społeczność użytkowników w Polsce wciąż nie zdążyła się jeszcze przestawić na możliwość korzystania z nowej funkcjonalności. Warto jednak zapoznać się z tym, co zdolny webmaster będzie mógł zrobić ze swoją bazą danych po przeniesieniu MySQL 5.
Kamień milowy
MySQL 5 jest prawdziwym przełomem. Po raz pierwszy zaczyna przypominać bazę danych z prawdziwego zdarzenia, choć dotąd w wielu środowiskach uchodziło co najwyżej za ciekawą zabawkę. Dopiero wraz z nadejściem serii 4.1 doczekaliśmy się funkcjonujących podzapytań i transakcji (te ostatnie tylko dla tabel InnoDB), bez których wykonywanie skomplikowanych operacji nie było wcześniej możliwe.
Wszystko to sprawiło, że MySQL sromotnie przegrywał nie tylko w konfrontacji z komercyjnymi produktami Oracle, Sybase czy Microsoft SQL Server (dostępny także w darmowej wersji Express), ale nawet z darmowymi projektami Open Source – PostgreSQL i Firebird. Wypuszczenie \”piątki\” jest pierwszym krokiem, by to zmienić i nadrobić stracony dystans.
W pewnym sensie można powiedzieć, że MySQL 5 jest zupełnie nową bazą danych. Więcej jest tu bowiem nowości niż tego co znamy z wersji poprzednich. Spośród najważniejszych zmian widocznych dla użytkownika należy wymienić udostępnienie perspektyw (ang. \”views\”) oraz funkcji i wyzwalaczy (ang. \”triggers\”).
Perspektywy
Jest to nieskomplikowany koncepcyjnie, ale za to niezwykle ułatwiający życie mechanizm. Przy dążeniu do normalizacji bazy danych i oszczędności miejsca oraz problemów z jej aktualizacją, struktura danych jest zwykle rozbijana na jak najmniejsze sensowne części – tabelki elementarne. W praktyce jednak często użyteczny staje się dopiero zestaw danych pobranych z kilku takich niewielkich objętościowo, znormalizowanych tabel.
Aby uniknąć zaciemniania zapytań skomplikowanymi poleceniami, które będą się często powtarzać, można stworzyć perspektywę. Jest to swoista wirtualna tabela, która za pomocą zdefiniowanego przez użytkownika zapytania SQL grupuje zestaw danych w jednym wirtualnym miejscu. Dzięki temu do danych znajdujących się w perspektywie będziemy mogli się odwoływać tak łatwo jak do zwykłej tabeli (każda perspektywa ma swoją nazwę), zachowując jednocześnie zalety znormalizowanej bazy danych.
Dla lepszego zrozumienia, perspektywę można umownie określić jako \”alias\” dla określonego zapytania SQL.
Funkcje i procedury
Profesjonalne systemy bazodanowe pozwalają przenosić sporą część ciężaru operacji na danych z właściwej aplikacji do samej bazy. Jest ona w założeniach bardzo szybka, działa na mocnej maszynie i ma dostęp do wszelkich zebranych danych w możliwie jak najkrótszym czasie.
Dlatego ogromny potencjał posiada możliwość wprowadzania do bazy danych procedur oraz funkcji, które będą wykonywać określone operacje na danych i zamiast prostych odpowiedzi na zapytania – zwracać już przetworzone i gotowe do dalszego użycia informacje.
Procedury i funkcje mogą zawierać zapytania SQL, mogą przypisywać dane do zmiennych oraz je analizować (np. stosować instrukcje warunkowe). Oczywiście czynności te możemy również wykonywać bezpośrednio w skryptach PHP (lub w dowolnym innym języku), każdorazowo wysyłając proste zapytanie do bazy i analizując odpowiedź w samym skrypcie PHP. Nie jest to jednak rozwiązanie optymalne. Zrobienie tego samego wewnątrz bazy jest wielokrotnie szybsze.
Procedury definiujemy, używając rozszerzonych poleceń języka SQL. W podobny sposób działają procedury w oparciu o język PL/SQL w produktach Oracle. Możliwości MySQL-a są jednak mniejsze, szczególnie w porównaniu z darmowym Postgresem, który umożliwia pisanie procedur nie tylko w SQL, ale także w wielu innych znanych językach programowania, przy użyciu składni Perla, PHP i innych.
Wyzwalacze
Na koniec jeszcze słowo na temat wyzwalaczy. Są to procedury szczególnego rodzaju. Możemy przypisać ich automatyczne wykonywanie do określonych zdarzeń – takich jak dodanie czy modyfikacja rekordu w wybranej tabeli. Dzięki temu można radykalnie poprawić integralność bazy danych i uchronić się przed błędami. Wyzwalacze dzielą się na wykonywane przed operacją i po niej. Pozwolą między innymi sprawdzać, czy wprowadzane dane mają określone wartości oraz tworzyć automatycznie powiązane modyfikacje w innych tabelach (np. dodanie nowego produktu do koszyka może powodować zwiększenie licznika zapisującego wartość zakupów lub przypisanie klienta do określonej grupy rabatowej).
Pozostałe zmiany
Oprócz wymienionych funkcji, MySQL 5 wprowadza jeszcze wiele innych nowości. Między innymi nowy typ danych do przechowywania wartości bitowych, a także kilka udogodnień administracyjnych, takich jak wygodny Instance Manager, którego można używać do uruchamiania i zatrzymywania bazy – nawet z sieci.
Jeszcze więcej usprawnień administracyjnych przynosi wersja 5.1. Obsługuje partycjonowanie (przechowywanie tabel w kilku plikach we wskazanych lokalizacjach), posiada wbudowany harmonogram zadań, system automatycznej aktualizacji tabel do nowszych wersji bazy i narzędzie emulujące obciążenie systemu bazodanowego. Pozostaje mieć nadzieję, że wraz ze wzrostem funkcjonalności MySQL nie straci swojej podstawowej zalety – dużej szybkości.
Informacje
Strona WWW: http://www.mysql.org/