MySQL Workbench

Systemy baz danych są ściśle też powiązane z systemami zarządzania. Każdy dostawca udostępnia też własne narzędzia wspomagające zarządzanie relacyjnymi bazami danych.  Zarówno  Microsoft SQL Server, MS Access, Oracle czy DB2 to przykłady relacyjnych baz danych. Podobnie zresztą jak MySQL stąd też pytanie dlaczego MySQL, a nie inna ??  No cóż odpowiedź będzie trudna ….

Różni dostawcy i różne bazy  mają swoje mocne i słabe strony. Osobiście lubiłem używać w aplikacjach SQL Compact , lekki zwiewny i lokalny nie wymagał hostowania bazy , ale niestety dość czasami upierdliwa i mocno ograniczona ….

MS SQL Server zaś sporo waży i jest płatny , owszem jest wersja express ale również nie do końca spełnia wymagania. Stąd postanowiłem się przyglądnąć  MySQL.  Jest Darmowy i dość dobrze rozbudowany i udokumentowany, ale czy tak wygodny jak nawet Express  ….


Zerknijmy więc  … co może w porównaniu z ponad relacyjnymi bazami  w odniesieniu  do choćby SQL Server


  1.  Tu pewna ciekawostka gdyż MySQL obsługuje wiele mechanizmów magazynowania, ale każdy z własną specyfikacją. To bardzo elastyczne i ciekawe rozwiązanie gdyż wspomniany SQL Server obsługuje tylko jeden silnik.  A tu mamy dostępne  np :  InnoDB jako domyślny silnik obsługuje klucze  obce, a także transakcje zgodne ze standardem ACIS;   MyISAM zaś nie obsługuje transakcji ale w porównaniu z InnoDB  charakteryzuje się prostotą i wysoką wydajnością.
  2. Wydajność jest wyższa w porównaniu do SQL Servera wynikająca z prostoty projektowania i wspomnianej wyżej obsługi silników wieloskładnikowych, co nie jest bez znaczenia.
  3. Opłacalność….   koszty są gdyż wersja komercyjna podobnie jak SQL Server wymaga wniesienia opłaty licencyjnej , ale jest tańsza od wydania Microsoftu, a Edycja Community jest darmowa. Oczywiście ma pewne licencyjne ograniczenia , ale są mniej bolesne jak w wersji Express od M$.
  4. Działa na MacOS , Windows i Linux więc łatwiej nam będzie wdrożyć system na różnych platformach

Jak widać już w tym momencie wypada lepiej od  konkurencji, Ale róży bez kolców nie ma i idealnego rozwiązania.  Podobnie jak SQL Server  ma swój panel zwany skąd inąd Managment Studio tak MySQL dysponuje  Workbenchem … brzmi to  znajomo i swojsko dla starego Amigowca :)   I właśnie tym sposobem interakcji z MySQL jakim jest dostęp przez narzędzie dostępowe do serwera się zajmiemy. Tu warto wspomnieć że MySQL pozwala na wiele połączeń użytkowników. Niemniej jednak przejdźmy do samego Workbencha.

MySQL Workbench  to wizualne narzędzie do modelowania i projektowania baz danych. Ułatwia tworzenie modeli fizycznych jak i modyfikację tych istniejących  dzięki wbudowanym mechanizmom i funkcjom zarządzania opartym na reverse/forward engineering.

No więc zobaczmy co tu w środku piszczy.

  • Modele stanowią podstawę większości aktualnych i wydajnych baz danych. więc co za tym idzie MySQL Workbench wyposażono w narzędzia , które pozwalają programistom i administratorom tworzyć wizualnie fizyczne modele baz danych, znacznie to ułatwia i przyspiesza proces a dodatkowo łatwo takie modele przetłumaczyć na bazy danych MySQL bez konieczności tracenia czasu na skrypty SQL.
  • W obrębie środowiska roboczego MySQL możemy  tworzyć wiele modeli w tym samym środowisku.
  • Obsługuje wszystkie obiekty ; a więc tabele, widoki , procedury składowe , wyzwalacze …   dosłownie wszystko to co tworzy bazę danych.
  • Workbench ma wbudowane mechanizmy do sprawdzenia poprawności modelu, potrafiące zgłaszać wszelkie problemy.
  • I choć jestem raczej przeciwnikiem języka LUA  to można Workbench rozszerzać właśnie skryptami tego języka skryptowego.

Okno modelowania w MySQL Workbench wygląda następująco:

To naprawdę świetne i potężne narzędzie. Dlatego warto je poznać  nieco głębiej , ale myślę , na ten temat nie wiem napiszę małe warsztaty , albo zrobię live … zależy czy będzie potrzeba i jakieś zainteresowanie.

Obecnie pracuję sobie na localhoście , ale hostuję też sobie roboczo bazę zdalną na SBC Khadas VIM2  pod linuxem … to bardzo wygodne rozwiązanie, na które nie pozwalał mi SQL Compact, zaś SQL Server wymusza na mnie używanie Azura ….

Na chwilę obecną  możecie się sami pobawić : https://dev.mysql.com/downloads/mysql/