MySQL Workbench – datu modelēšanas rīks

novembris 15, 2010

Iepriekšējo reizi rakstīju par savu pieredzi darbā ar Oracle DesignerGrade modeler un Visio. Tā kā pārāk daudz apskatīt reizē nesanāks, šoreiz būs tikai par vienu MySQL Workbench. Bet vispirms par aptauju, kurai jau pieaugusi neliela bārda. Tātad iepriekšējā reizē jautāju lasītājiem, kādus datu modelēšanas rīkus nācies izmantot. Rezultāti ir šādi:

Datu modelēšanas rīku popularitāte

Datu modelēšanas rīku popularitāte

Kopā bija 77 balsis, no kurām gandrīz trešdaļa (30%) izvēlējās Visio, otrajā vietā ar 19% bija MySQL Workbench, bet trešajā Grade Modeler ar 12%, ceturtajā Designer ar 11%. Pārējiem visiem piekritēju bija mazāk nekā 10%.

Nu tad ķeramies pie godājamā otrās vietas ieguvēja MySQL Workbench. Instalāciju tam var atrast šeit. Rīks ir bezmaksas jeb precīzāk tā Community redakcija ir pieejama ar GPL licenci.

Sākumā dažas svarīgākās lietas:

  • Rīks ir domāts tikai un vienīgi MySQL datubāzei.
  • Rīkam ir divas redakcijas (editions). Community ir pieejama bezmaksas, bet Standarta ir par maksu ar papildus iespējām, piemēram, datubāzes dokumentācijas ģenerēšanu.
  • Vismaz jaunākajā 5.2 versijā ar to var darīt jau trīs lietas:
    • veidot datubāzes modeļus;
    • izpildīt SQL pieprasījumus;
    • veikt MySQL datubāzes administrēšanu.

Izvērstu tā iespēju uzskaitījumu un salīdzinājumu pa redakcijām var redzēt šeit.

Tālāk pievērsīsimies šī rīka datu modelēšanas iespējām. Nākošajā attēlā var uzskatāmi redzēt šī rīka maza datu modelīša piemēru.

MySQL workbench datu modeļa piemērs

MySQL workbench datu modeļa piemērs

Uzskatāmi ir iezīmētas primārās atslēgas (dzeltena atslēdziņa), obligātie lauki (aizpildīts rombiņš), ārējās atslēgas (rozā rombiņš), datu tipi un indeksi, protams arī redzami, bet tos var arī aizvākt. Kopējais rīka izskats ir šāds:

MySQL Workbench Screen

MySQL Workbench Ekrānforma

Rīku iepētīju diezgan minimāli, bet daži iespaidi radās:

  • Tam ir tikai datu modelis, nav entītiju modelis. Tiesa gan, tas rīka izstrādātājiem veidojamos modeļus nav liedzis nosaukt par EER modeļiem, tā kā es šādu saīsinājumu redzēju pirmo reizi, tad pajautāju Googlei, kas tā tāda EER diagramma. Atradu ka tā saucās uzlabotā ER diagramma (enhanced ER-diagram) un šeit arī kāda Sanhosē universitātes ķīniešu profesora prezentāciju par šo. Nu ja pieņem, ka šī profesora viedoklis ir pareizs, tad gan šim rīkam ar viņa iespējām līdz ENHANCED ER diagrammai, piedodiet par izteicienu, kā cūkai līdz mēnesim 🙂
  • Saitēm nav iespējams mainīt gala punktus pie kastītēm, tie tiek noteikti automātiski. Man ir aizdomas, ka sarežģītāku diagrammu gadījumā tas būtu diezgan nepatīkami.
  • Tabulām ir iespējams mainīt izmērus (tās staipīt), tas neapšaubāmi ir pozitīvi, jo lai izveidotu pārskatāmu diagrammu šī lieta ir ļoti nepieciešama.
  • Rīks ļauj datu modelī attēlot un uzturēt arī skatījumus un saglabātās koda vienības.
  • Rīks ļauj ģenerēt kodu no modeļa (forward engineer), kā arī ievilkt jau esošas datubāzes tabulas modelī (reverse engineer). Kas vēl trakāk, tas ļauj arī salīdzināt izmaiņas un tās ievilkt vai nu modelī vai izveidot datubāzē. Tiesa gan izmaiņas tiek parādītas tikai objektu līmenī, piemēram, kaut kas tabulas definīcijā ir mainījies, bet nu jebkurā gadījumā tas ir ļoti labi. Salīdzināšanas ekrāns ar jau izvēlētām mērķa iespējām (ignorēt, DB->modelis, modelis->DB) izskatās šādi:
Datubāzes un modeļa sinhronizācija

Datubāzes un modeļa sinhronizācija

Nobeigumā varu izteikt tikai vienu secinājumu – katrā ziņā rīks izskatās simpātisks, tam ir diezgan daudz visādu iespēju un tas noteikti ir gana noderīgs, ja nepieciešams izmantot MySQL DBVS.