MySQL Workbench – zarządzanie i modelowanie baz danych

Bazami danych MySQL zacząłem interesować się, gdy tylko rozpocząłem swoje pierwsze edukacyjne projekty programistyczne w C#. Potrzebowałem miejsca do przechowywania danych oraz jednocześnie chciałem poznać tą technologię. Bazy danych są niemal wszędzie, a znajomość języka SQL bardzo często jest wymagane na rozmowach kwalifikacyjnych o pracę jako programista. MySQL jest z kolei stosowany w projektach Open Source jak i komercyjnych. Stanowi darmową lub nisko budżetową alternatywę dla na przykład popularnego Microsoft SQL. Opiera się na nim wiele popularnych systemów CMS takich jak WordPress czy Joomla.

W artykule chciałbym przedstawić sposób oraz narzędzie do modelowania i projektowania struktury naszej bazy. MySQL Workbench, bo o nim będzie mowa, jest dedykowanym oprogramowaniem stworzonym i rozwijany przez twórców całego tytułowego systemu bazodanowego. Jego funkcjonalność nie wychodzi poza obszar innych rozwiązań. W tym wypadku jest to jednak dużym plusem. Otóż dzięki temu autorzy skupiają się na konkretnym systemie i dostarczają w pełni funkcjonalne narzędzia. Rozpoczynając od początkowego modelu, na administracji i wdrożeniu kończąc. Wszystko dostępne jest w ramach licencji GPL. Co pozwala zaoszczędzić na zakupie licencji. Jeśli, więc pracujesz na co dzień z bazami MySQL, Workbench będzie idealnym i wystarczającym środowiskiem, który zagwarantuje Ci niezbędne narzędzia.

Pobieranie MySQL Workbench

Pierwszym krokiem jest oczywiście pobranie instalatora. Możemy to zrobić na dwa sposoby. Pobrać paczkę samej aplikacji Workbench lub cały pakiet MySQL Installer, który zawiera również serwer bazodanowy, dokumentację oraz rozszerzenia dla np. Visual Studio. Skupmy się jednak na samej tytułowej aplikacji, ale przedstawię te dwa sposoby. W pierwszym przechodzimy na poniższą stronę.

www.mysql.com/products/workbench/

Klikamy na Download Now, a następnie pobieramy instalator.

Pobieranie MySQL Workbench
Strona pobierania MySQL Workbench

Odpalamy pobrany plik i instalujemy. To jest najprostsza metoda pozyskania oprogramowania. Niestety nie mamy tutaj silnika bazy danych, a tylko i wyłącznie Workbench. Do wdrożenia pełnego środowiska pobieramy MySQL Installer. Znajdziemy go pod adresem:

dev.mysql.com/downloads/installer/

Akceptujemy regulamin, a następnie zjeżdżamy na sam dół. Mamy tam dwa różne instalatory. Pierwszy przeznaczony jest do instalacji w trybie online, czyli pliki pobierane są na bieżąco podczas pracy kreatora. Drugi zaś wszystkie niezbędne składniki zawiera w sobie. Dzięki temu nie musimy mieć połączenia siecią. Zawsze wybieram tą drugą opcję. Jest szybsza i pozwala w każdej chwili coś doinstalować bez konieczności ponownego pobierania pakietu. Mało tego, MySQL Installer zadba o aktualizację naszych narzędzi.

Pobieranie MySQL Installer
Pobieranie MySQL Installer

Podczas pobierania instalatora nie zapomnij kliknąć na No thanks, just start my download. Unikniesz w ten sposób zbędnej rejestracji na stronie producenta.

Pomijanie rejestracji na stronie MySQL
Pomijanie rejestracji na stronie MySQL

Uruchamiamy pobrany instalator. Zapoznajemy się i akceptujemy umowę licencyjną zaznaczając pole I accept the license terms.

Akceptacja regulaminu
Akceptacja regulaminu

Wybieramy typ instalacji. Mamy do wyboru cztery gotowe profile, który każdy z nich instaluje odpowiednie pakiety. Tryb dewelopera (Developer Default) jak sama nazwa wskazuje jest przystosowany do pracy w środowisku programistycznym. Instaluje silnik bazodanowy, Workbench oraz biblioteki programistyczne. Konfiguracja serwera ustawiana jest pod kątem niskiego użycia zasobów. Zatem idealnie nadaje się do testowania naszych baz z aplikacjami. Tryb serwera (Server Only) instaluje tylko silnik bazodanowy oraz ewentualny jego monitoring. Opcja dedykowana bardziej dla środowiska produkcyjnego. Tryb klienta (Client Only) z kolei składa się z samego Workbench oraz bibliotek programistycznych. Ewentualnie narzędzi do monitorowania. Ostatni tryb pełny (Full) instaluje wszystko co zawiera pakiet MySQL Installer. Najbezpieczniejszym jednak sposobem jest wybór opcji Custom, która pozwala ręcznie dokonać wyboru pakietów.

Wybór trybu instalacji
Wybór trybu instalacji

Okno dostosowywania wyświetla składniki jakie są dostępne w instalatorze. Bardzo często zachodzą sytuację kiedy standardowa instalacja kopiuje coś co nie jest nam w ogóle potrzebne. Tutaj możemy to pominąć. W prezentowanym przykładzie wybieram tylko silnik bazodanowy i MySQL Workbench. Do projektowania oraz testowania utworzonych baz w zupełności wystarczy. Robimy to wybierając z lewego okna pozycję, a następnie zieloną strzałką przerzucamy na prawo. Gdy wszystko jest gotowe Klikamy Next.

Wybór składników do instalacji
Wybór składników do instalacji

Gdy zajdzie taka potrzeba, kreator zaproponuje nam instalacje dodatkowych składników, niezbędne do działania wybranego oprogramowania. Przeważnie są zawarte w instalatorze, ale może zajść konieczność ich pobrania. Klikamy na Execute. W tym wypadku do prawidłowego funkcjonowania MySQL Workbench musimy do instalować biblioteki Visual C++ 2015 Redistributable.

Instalacja wymaganych składników
Instalacja wymaganych składników

Gdy już wszystkie wymagania zostaną rozwiązane rozpocznie się właściwa instalacja wybranych przez nas składników. Ich instalację możemy śledzić na ekranie.

Proces instalacji
Proces instalacji

Po zakończeniu instalacji, gdy wybraliśmy silnik bazodanowy, kreator będzie chciał go wstępnie skonfigurować. Klikamy na Next.

Wstępna konfiguracja silnika bazodanowego
Wstępna konfiguracja silnika bazodanowego

Pierwsza część. Wybór grupy replikacji. Tutaj nic innego jak Standalone MySQL Server / Classic MySQL Replication nie wybieramy. Na serwerze testowym nie będziemy korzystać z tych funkcji i będzie dostępny tylko jedna lokalna instancja.

Konfiguracja grupy replikacji
Konfiguracja grupy replikacji

Tryb konfiguracji serwera. Tutaj warto wybrać opcję Development Computer. Spowoduje to, że nasz serwer MySQL nie będzie pobierał wszystkich zasobów sprzętowych. Co jest bardzo ważne w sytuacji kiedy na tym samym sprzęcie projektujemy naszą bazę. Pozostałe opcję pozostawiamy domyślnie. Warto jeszcze zaznaczyć opcję Show Advanced and Logging Options. Pozwoli nam to skonfigurować dodatkowe opcje przydatne podczas testowania bazy danych.

Typ pracy serwera i sieć
Typ pracy serwera i sieć

Metoda autentykacji. Jako, że jest to serwer testowy lepiej wybrać drugą opcję. W ten sposób unikniemy zabawy w konstruowanie długich i skomplikowanych haseł.

Metoda autentykacji do serwera MySQL
Metoda autentykacji do serwera MySQL

Tutaj wpisujemy hasło do naszego głównego konta root. Poniżej możemy dodać dodatkowych użytkowników lub pozostawić pole puste i zrobić to później z poziomu MySQL Workbench.

Konfiguracja hasła do serwera MySQL
Konfiguracja hasła do serwera MySQL

Tutaj pozostawiamy ustawienia domyślne. Chyba, że zamierzamy stawiać kilka instancji serwera MySQL co raczej w to momencie wątpię.

Konfiguracja serwera MySQL jako usługi systemu Windows
Konfiguracja serwera MySQL jako usługi systemu Windows

W Logging Options ustawiamy ścieżki do poszczególnych plików dziennika. Nie bez powodu pisałem o tym, aby wcześniej zaznaczyć opcję, która daje nam dostęp do tego ekranu. Standardowo pliki zapisywane są w Program Data, partycji systemowej. Dostęp do nich nie jest zbyt wygodny. Po drugie przy intensywnym testowaniu pliki te mogą osiągnąć dość spore rozmiary. Warto zatem zmienić ich ścieżkę. Co one w sobie zawierają? Informacje o błędach, wolno przetwarzających się zapytaniach, informacje diagnostyczne oraz informacje o replikacji. To ostatnie nie będzie nam potrzebne, ale pozostałe bardzo często pomagają w zdiagnozowaniu jakiegoś problemu.

Pliki dziennika serwera MySQL
Pliki dziennika serwera MySQL

Server ID przeznaczony jest tylko dla potrzeb replikacji. W chwili obecnej nie jest nam to potrzebne. Możemy pozostawić wszystkie ustawienia domyślnie.

Opcje zaawansowane
Opcje zaawansowane

Klikamy na Execute. Kreator zainstaluje wszystkie niezbędne składniki wymagane do prawidłowego funkcjonowania MySQL Workbench oraz silnika bazodanowego. Oprócz tego wprowadzana jest drobna konfiguracja systemu. O prawidłowości wykonania operacji informuje nas zielony ptaszek obok poszczególnego etapu. Po zakończeniu całego procesu klikamy na przycisk Finish.

Stosowanie konfiguracji
Stosowanie konfiguracji

Po zakończeniu powinien uruchomić nam się Workbench. Na starcie automatycznie dodane jest pierwsze połączenie z lokalna bazą danych.

Okno startowe programu MySQL Workbench
Okno startowe programu MySQL Workbench

Gdy już wszystko mamy gotowe to teraz możemy przejść do naszej obsługi.

Omówienie programu Workbench

Najpierw zacznijmy od połączenia się z naszą lokalną bazą danych. Klikamy na przycisk z napisem Local instance MySQL80. Zostaniemy poproszeni o hasło, które podaliśmy podczas wstępnej konfiguracji serwera z poziomu kreatora.

Logowanie do lokalnego serwera bazodanowego MySQL
Logowanie do lokalnego serwera bazodanowego MySQL

Interfejs użytkownika nie jest skomplikowany. Po lewej stronie mamy wszystkie utworzone bazy. Na dole historię wykonanych operacji, a na środku i po prawej to nasz obszar roboczy.

Połączenie z lokalnym serwerem MySQL
Połączenie z lokalnym serwerem MySQL

Dla przykładu spróbujmy utworzyć nową bazę danych. Klikamy prawym przyciskiem i wybieramy Create Schema.

Tworzenie nowej bazy danych
Tworzenie nowej bazy danych

W pole Name wpisujemy nazwę bazy danych. Nie mają tutaj znaczenia wielkie litery. I tak zostaną zamienione na małe. Gdy już to zrobimy klikamy na przycisk Apply.

Nadawanie nazwy dla nowej bazy danych
Nadawanie nazwy dla nowej bazy danych

Po lewej stronie zobaczymy nowo utworzoną bazę o nazwie jaką podaliśmy. Na razie nie ma w niej żadnych danych. Trzeba je najpierw utworzyć. Ale zanim to zrobimy warto utworzyć sobie pierwszy model strukturalny, który potem będziemy mogli zaimportować. Klikamy File, a potem New model.

Przykładowy model bazy danych
Przykładowy model bazy danych

Ja dla przykładu otworzyłem gotowy model, aby pokazać Ci jak to wszystko wygląda. Otóż obszar roboczy mamy podzielony na cztery zakładki. Physical Schemas, Schema Privileges, SQL Script oraz Model Notes. Na tym etapie interesuje nas na razie tylko ta pierwsza. Czyli fizyczne odzwierciedlenie struktury bazy. Tworzymy tutaj tabele, widoki, grupy i rutyny. Wystarczy kliknąć kolejno na pierwszy przycisk w każdej sekcji np. Add Table.

Przykładowy model bazy danych
Przykładowy model bazy danych

Poniżej pojawią nam się opcję do uzupełnienia takie jak nazwa tabeli czy kolumny jakie mają reprezentować daną tabelę. Poniżej mamy zakładki, gdzie możemy zakładać indeksy, klucze obce, wyzwalacze, dzielić na partycje czy uzupełniać przykładowymi danymi.

Edycja pojedynczej tabeli i definiowanie jej właściwości
Edycja pojedynczej tabeli i definiowanie jej właściwości

Po zapisaniu tabeli będzie ona widoczna na liście.

Utworzona tabela
Utworzona tabela

Widoki z kolei tworzymy w formie zapytań.

Tworzenie widoków
Tworzenie widoków

Zakładka Schema Privileges służy do nadawania uprawnień do danego modelu, czyli w rzeczywistości bazy danych. Po zaimportowaniu naszego modelu użytkownicy powinni automatycznie zostać utworzeni.

Zarządzanie użytkownikami i nadawanie uprawnień do bazy danych
Zarządzanie użytkownikami i nadawanie uprawnień do bazy danych

W zakładce SQL Script możemy umieszczać gotowe skrypty. Na przykład do utworzenia tabel nadrzędnych itd.

Dodawanie i zarządzanie skryptami
Dodawanie i zarządzanie skryptami

Z kolei Model Notes służy do umieszczania naszych osobistych notatek odnośnie tabeli. Nie będą one brane pod uwagę podczas eksportu do serwera bazodanowego.

Tworzenie notatek
Tworzenie notatek

Korzystając z kombinacji CTRL + S lub naciskając przycisk Save możemy zapisać nasz model do formatu mwb. Jest on domyślnie obsługiwany przez oprogramowanie MySQL Workbench.

Zapisywanie modelu bazy danych do pliku
Zapisywanie modelu bazy danych do pliku

Klikając u góry na Add Diagram możemy, na podstawie utworzonych tabel i ich relacji, wygenerować diagram. Jest to graficzna reprezentacja struktury naszej bazy. Workbench oferuje bardzo dużo narzędzi w tym zakresie. Oprócz tabel i ich relacji możemy tworzyć rejony, które opisują zbiór określonych tabel. Diagramy można również tworzyć ręcznie. Ustalając ich wygląd według własnych preferencji. Gotowy projekt można wyeksportować do pliku graficznego lub PDF.

Przykładowy diagram modelu bazy danych MySQL
Przykładowy diagram modelu bazy danych MySQL

Gotowe modele można zaimportować do serwera przy pomocy wygenerowanego skryptu. W naszym wypadku jest to usługa lokalna. Mając otwarty projekt wybieramy File > Export > Forward Engineer SQL CREATE Script.

Eksport modelu do skryptu SQL
Eksport modelu do skryptu SQL

Wskazujemy ścieżkę do naszego skryptu, gdzie ma być zapisany i wybieramy dodatkowe opcje. Jako, że jest to nasza nowa baza możemy zostawić niezaznaczone nic. Klikamy Next.

Opcje eksportu do pliku SQL
Opcje eksportu do pliku SQL

Tutaj wybieramy jakie obiekty chcemy wyeksportować. Są to oczywiście tabele, widoki, rutyny i użytkownicy. Przeważnie zaznaczam tutaj wszystko.

Filtry eksportu
Filtry eksportu

Podgląd naszego skryptu. Klikając na Finish zapiszemy go do pliku.

Końcowy podgląd generowanego skryptu SQL
Końcowy podgląd generowanego skryptu SQL

W lokalizacji, którą wskazaliśmy, powinniśmy zobaczyć nasz zapisany plik. Teraz pora go zaimportować do naszej bazy na serwerze. Przechodzimy do programu Workbench i będąc w zakładce naszego serwera przechodzimy kolejno do menu nawigacyjnego, a potem Server > Data Import.

Importowanie bazy danych z skryptu SQL
Importowanie bazy danych z skryptu SQL

Wybieramy nasz wygenerowany skrypt SQL, a niżej utworzoną bazę danych na serwerze. Gdy już to mamy klikamy na Start Import. O prawidłowości wykonania operacji poinformuje nas w dziennik zdarzeń Workbench.

Podsumowanie

Mam nadzieję, że chodź trochę was nie zanudziłem. Nie chciałem tutaj tworzyć poradnika. Treść posiada bardziej charakter prezentacyjny narzędzia. Moim celem było zapoznanie was z narzędziem i zachęcenia do jego dalszej eksploatacji. Tym bardziej, że jest to darmowy produkt. Sam osobiście korzystam z niego na co dzień. Stanowi dla mnie główne narzędzie, gdy tylko mam do czynienia w swoich projektach z MySQL. Kiedy pisałem swoją pracę dyplomową projektowałem w nim bazę danych do aplikacji oraz przygotowywałem diagramy do dokumentacji. Przedtem testowałem inne rozwiązania. Bardzo często uniwersalne. Spotykając się z Workbench zrozumiałem, że często dedykowane oprogramowanie jest znacznie lepsze niż rozbudowane kombajny. A wy co o tym myślicie?

Dodaj komentarz

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