abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 21:22 | Nová verze

    Byla vydána nová verze 6 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v cgitu. Zdůraznit lze podporu vícekurzorové editace (gif).

    Ladislav Hagara | Komentářů: 0
    dnes 20:55 | Nová verze

    Byla vydána verze 1.57.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    dnes 16:33 | Nová verze

    Byla vydána nová stabilní verze 5.0 (5.0.2497.24) webového prohlížeče Vivaldi (Wikipedie). Přehled novinek v příspěvku na blogu. Zdůraznit lze sdílené motivy vzhledu (YouTube) nebo překlady na postranní liště (YouTube). Nejnovější Vivaldi je postaven na Chromiu 96.0.4664.51.

    Ladislav Hagara | Komentářů: 0
    dnes 14:00 | Zajímavý článek

    Příspěvek na blogu Project Zero podrobně rozebírá bezpečnostní chybu CVE-2021-43527 (heap overflow) v sadě multiplatformních kryptografických knihoven Network Security Services (NSS). Chyba je opravena v upstream verzích NSS 3.68.1 a 3.73. Chyba se netýká Firefoxu.

    Ladislav Hagara | Komentářů: 2
    dnes 12:00 | IT novinky

    Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu aktuálně činí 1,16 %. Nejčastěji používanou linuxovou distribucí je Ubuntu 20.04.3 LTS 64 bit. Přehled her oficiálně podporujících SteamOS a Linux na stránkách Steamu. Přehled her pro Windows běžících na Linuxu díky Protonu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Zajímavý článek

    Knižní edice sdružení CZ.NIC rozšiřuje svou řadu o populárně naučnou novinku s názvem ON-LINE ZOO – básničky (pdf). Sbírka hravých básniček vznikla na základě stejnojmenné knihy, která vyšla v rámci Edice CZ.NIC před třemi lety a seznamuje děti předškolního a mladšího školního věku s nejčastějšími riziky spojenými s používáním Internetu.

    Ladislav Hagara | Komentářů: 27
    včera 10:00 | Nová verze

    Byla vydána nová stabilní verze 21.11 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Porcupine. Přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    včera 09:00 | Zajímavý projekt

    I letos vychází řada ajťáckých adventních kalendářů. Programátoři se mohou potrápit při řešení úloh z kalendáře Advent of Code 2021, zájemci o kybernetickou bezpečnost z kalendáře Advent of Cyber 2021, …

    Ladislav Hagara | Komentářů: 2
    včera 08:00 | Nová verze

    Po dvou letech vývoje byla vydána nová major verze 2.0.0 (YouTube) open source virtuálního modulárního syntezátoru VCV Rack. Přehled novinek v oznámení o vydání a na GitHubu. K dispozici jsou také open source pluginy.

    Ladislav Hagara | Komentářů: 0
    včera 07:00 | Nová verze

    OpenPrinting CUPS (Common Unix Printing System, Wikipedie) byl vydán ve verzi 2.4.0. Přehled novinek na GitHubu. Jedná se o fork Apple CUPS.

    Ladislav Hagara | Komentářů: 5
    Pracujete z domu?
     (38%)
     (32%)
     (14%)
     (0%)
     (16%)
     (0%)
    Celkem 50 hlasů
     Komentářů: 6, poslední dnes 16:40
    Rozcestník



    Modelování MySQL databáze pomocí MySQL Workbench

    20. 2. 2013 | Václav Švirga | Recenze | Návody | 13642×

    Článek je určený pro ty, co někdy potřebují modelovat logické schéma databáze (zjednodušeně „ty tabulky“) nejenom na platformě Linux a vybrali si databázi MySQL. Nemusí jít jenom o vyloženě databázové experty, protože úkol vytvořit databázi se objevuje už na středních školách v rámci projektů.

    Obsah

    Logický návrh databáze

    link

    Pro pořádek dodám lehký úvod do problematiky: Pokud je cílem našeho snažení databáze (někde uložená uspořádaná data), musíme mít na počátku zadaní, které specifikuje s jakými daty a jakým způsobem se bude pracovat. Dalším krokem je rozdělení dat na různé entity (objekty reálného světa) a určení vztahů mezi nimi. Toto se nazývá konceptuální model. Entitami si můžeme přestavit například knihu a autora a vztahem to, že autor napsal knihu. A nakonec můžeme převést daný konceptuální model na logický model, který konkrétně řeší, jak budou daná data reprezentována objekty (relační) databáze, což jsou tabulky, pohledy, indexy, atd...

    Dopředu upozorním, že není vyloženě nutné používat nějaký nástroj. Entity a vazby se dají namalovat na papír a SQL skript popisující logický model se napíše z hlavy do textového editoru. Další oblíbený postup je tabulky naklikat v nástrojích typu phpMyAdmin či Adminer. V článku se ale pokusím ukázat třetí cestu, kterou si při větším počtu entit (tabulek) nemohu vynachválit a možná ji někdo docení též.

    MySQL Workbench

    link

    A to použít MySQL Workbench, což je open source nástroj od autorů MySQL pod licencí GPL (existuje i komerční verze, článek je ale o OSS) nejen k vizuálnímu návrhu databáze. Program funguje na platformě Linux, Windows a Mac OS X. Článek je o aktuální verzi 5.2.47. Co se týče instalace na Linux, na domovské stránce jsou balíčky pro Fedoru, Ubuntu a Oracle / Red Hat Enterprise Linux 6 a to v 32 i 64bitové verzi. Pro Ubuntu jsou dokonce pro verzi 12.04 a 10.04, která se mi podařila nainstalovat na Debian Wheezy. Pro ostatní distribuce jsou zdrojové kódy, ovšem v první řadě byste se měli podívat, jestli už nemáte program v repozitářích.

    Proč vizuální návrh?

    link

    Pokud chceme něco dělat, musíme mít k tomu důvod. Proč navrhovat logický model vizuálně? Osobně proto, že to považuji za přehledné. Takový návrh má samodokumentační funkci, vazby mezi tabulkami jdou okamžitě vidět a i cizí člověk, co se dostane k projektu, se má šanci rychle zorientovat.

    Tuto funkci by ale pořád poměrně dobře zastoupila tužka a papír (i když výstup z MySQL Workbench vypadá podstatně lépe, než to jak umím malovat). Ta za Vás ale nevygeneruje SQL kód. Toto je možná trošku kontroverzní vlastnost, kterou spousta vývojářů odmítá, protože považuje takto generovaný kód za ošklivý. Je to věc názoru, já jsem s tím, co MySQL Workbench produkuje, spokojený.

    MySQL Workbench má ale ještě jednu a to někdy dost zabijáckou vlastnost. Dokáže grafickou reprezentaci reverzně vytvořit z SQL skriptu, tedy z existující databáze! A navíc umí vytvářet SQL „patche“ (importujete, graficky upravíte a exportujete ALTER skript). Ovšem všechno popořadě.

    Samotné modelování

    link

    Po spuštění programu se nám ukáže úvodní obrazovka, kde je správa existujících modelů. Je skvělé, že program disponuje funkcí obnovy a pokud by náhodou spadl, neuložené modely jsou zde označeny žlutým vykřičníkem a jdou obnovit. My vytvoříme nový model. Objeví se další okno, které obsahuje více věcí, ale ta hlavní je ikona přidat diagram.

    MySQL Workbench

    A teď konečně můžeme začít modelovat. První věc, co radím udělat je nastavit název databáze, kódování a způsob řazení. Bude se hodit při exportu. To uděláme v levém sloupci pravým kliknutím na výchozí databázi „mydb“ a zvolením upravit schéma.

    MySQL Workbench

    Nyní už můžeme z nástrojové lišty přidávat tabulky. Poklepáním na tabulku se nám v panelu dole zobrazí její nastavení. To je rozděleno na několik logických celků. Můžeme změnit jméno enginu, řazení, indexy, nevlastní klíče, definovat triggery a podobně, ale nejvíce nás zajímá sekce sloupce (columns).

    MySQL Workbench

    Zde jdou velmi pohodlně definovat všechny atributy tabulky. Je intuitivní, že pro přidání dalšího sloupce stačí zmáčknout šipka dolů a enter a rovněž oceňuji, že do sloupce pro datový typ lze přímo psát, takže není problém nic jako ENUM('zaměstnanec', 'šéf').

    Pokud máme více tabulek, je potřeba mezi nimi definovat vazby. Ty jsou pak v SQL řešeny pomocí primárních a nevlastních klíčů. Integritní omezení pro nevlastní (foreign) klíče umí až InnoDB, proto doporučuji tento engine pro tabulky používat. Vazby opět najdeme v nástrojové listě a máme jich na výběr více (1:1, 1:N, N:M).

    Takhle může vypadat vazba mezi tabulkami. Knížka nemůže mít víc autorů <img src=." width="250" height="118" />

    Pozastavím se nad vazbou 1:N, která je zde v identifikující a neidentifikující variantě, což se liší tím, jestli má být nevlastní klíč součástí primárního klíče tabulky nebo ne. Při vytváření vazby se prvně kliká na odkazující tabulku a poté na odkazovanou. Aplikace má spoustu šikovných vychytávek, například při najetí na vazbu / tabulku se zvýrazní barevně co je s čím propojeno nebo při smazání vazby se program zeptá, zda ponechat vytvořené sloupce, či je odstranit.

    Formát, jakým bude program pojmenovávat nevlastní klíče, integritní omezení a indexy (MySQL Workbench při vytvoření vazby automaticky pro nevlastní klíč vytvoří index) se dá specifikovat v nastavení a vždy to lze ručně změnit v nastavení tabulky.

    Trošku složitější model. Více autorů už není problém <img src=." width="250" height="115" />

    Export, import, diff

    link

    Pokud jsme už s modelem spokojeni, budeme ho chtít exportovat. Možnosti najdeme v menu File→Export. Kromě SQL skriptu program samozřejmě zvládá export i do SVG a PNG, pokud bychom například chtěli model vložit do dokumentace.

    Skvělou vlastností programu je možnost vytvořit „patch“ (ALTER skript) vůči existujícímu SQL skriptu. Tato volba se jmenuje Forward Engineer SQL ALTER Script.

    Toto se dá skvěle zkombinovat s importem, který dokáže reverzně otevřít existující SQL schéma, které můžete třeba lehce upravit a exportovat si ALTER skript, který spustíte nad databázi s daty (předtím ale rozhodně zálohujte :-)).

    To není vše

    link

    V článku jsem popsal jen věci, které používám. MySQL Workbench toho ale umí mnohem více. Dokáže spravovat existující databázi podobně jako phpMyAdmin (pokud to ale není Vaše lokální databáze, potřebujete povolený vzdálený přístup na databázovém serveru), automaticky na ni exportovat vaše úpravy v modelu, atd...

    Na druhou stranu se dá nástroj využít, i když nikdy žádnou existující databázi vytvářet nechcete a to jako kreslítko tabulek do dokumentace, protože grafický výstup je slušný. A pak nemusíte ani používat MySQL.

    Za tu dobu, co program používám, se občas stane, že spadne, ale díky automatické obnově to není problém. Celkově MySQL Workbench hodnotím jako výborný kousek software a je skvělé, že je dostupný i na Linuxu.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    kouzer avatar 20.2.2013 05:50 kouzer | skóre: 11 | Mladá Boleslav
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench

    Shodou náhod jsem Workbanch zkoušel před dvěma dny a kvůli častým pádům jsem se vrátil do textového editoru a napsal SQL ručně. Teď (po přečtení článku) si říkám jestli mu nevadilo, že jsem použil MariaDB místo MySQL.  To by ale mělo být jedno, ne?

    Linux user #448944.
    20.2.2013 08:36 blondak | skóre: 36 | blog: Blondak | Čáslav
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Já jsem zase hledal něco do eclipse a našel jsem Clay Mark.
    Každý problém ma své logické, snadno pochopitelné nesprávné řešení.
    20.2.2013 21:45 linear
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    V Eclipse je JPA Diagram Editor ktery umi generovat diagramy ze zdrojaku a obracene.
    23.2.2013 12:59 Ivan
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Myslis Dali? Neni to zatim jen experimentalni? Navic to podporuje pouze JPA 1.0
    25.2.2013 00:12 linear
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Já jsem spokojenej, staci mi to na moje pouziti (vygeneruji graf, abych pochopil vsechny vazby). Zatim je to JPA 1.0 a nektere veci z JPA 2.0, ale vyviji se to,
    20.2.2013 13:25 Bruce | blog: O čom ani Chuck Norris nepíše | Bratislava
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Ja som to "pouzival" tak 3-4 roky dozadu, ale padalo to ako hrusky. Vidim, ze sa za tu dobu nic nezmenilo :) Po tom co som zacal robit v Djangu, tak nejako nemam potrebu tieto nastroje pouzivat, pride mi to ako pouzivanie grafickych nadstavieb nad git/svn, hoci prikazova riadka poskytuje daleko pohodlnejsi a efektivnejsi pristup nez tie klikatka ;)
    21.2.2013 03:13 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Pokud jsi nepoužíval přímo deployd na databázový server a vytvářel jsi dumpy, tak by to určitě vliv mít nemohlo. Jak jsem v článku psal, semtam to spadne, ale kdyby to padalo nějak pořád, tak to nepoužívám. Spíše máš nějakou problematickou verzi knihoven nebo mám prostě štěstí :-/.
    Baník pyčo!
    20.2.2013 07:10 Petr Kobekla
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Já používám workbench už hodně dlouho, včetně jeho předchůdce MySQL DB cosi a zatím bez jakýchkoliv problému. Jsem s ním hodně spokojen i když za poslední rok dost výrazněm změnili celkové GUI a tím jsem si musel zvykat na velké změny.
    20.2.2013 08:30 Jiří Lisický | skóre: 31 | blog: JIL_blog | Olomouc
    Rozbalit Rozbalit vše online nástroj wwwsqldesigner
    Kdysi jsem objevil tohle http://code.google.com/p/wwwsqldesigner/ Běží to přímo ve webovém prohlížeči. Nebude to na nějaké složitosti, ale na rychlé udělání nějakého návrhu je to pěkné. Vlevo dole je odkaz na demo
    20.2.2013 09:10 Martin
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Za vyzkoušení by měl stát i http://www.fabforce.net/dbdesigner4/ .
    20.2.2013 12:52 Erbureth | skóre: 21
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    DB Designer už je obsolete, MySQL WB je právě jeho nástupce.
    20.2.2013 13:54 Martin
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Díky, to jsem z jejich průvodní dokumentace nevyčetl :)
    20.2.2013 09:34 Petr Ježek | skóre: 10
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Díky za článek, zatím jsem si vlastní databáze netvořil, ale nakoplo mne to k tvorbě jistých ekonomických aplikací :)
    Archlinux for your comps, faster running guaranted!
    svido avatar 20.2.2013 13:56 svido | skóre: 28
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Co mám zkušenost, tak MySQL Workbench docela dost padá. Je to docela dobrý nástroj, ikdyž pokud někdo umí UML, tak se Workbench nepotřebuje. Setkal jsem se s tím, že některé věci nefungovali v Linuxu a musel jsem spouštět VM s Win, kde jsem udělal potřebné věci ve Workbenchi. A to mi nepřijde dost efektivní.
    22.2.2013 12:31 cuba.g | skóre: 8
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Padání může být způsobeno tématem GTK v KDE. Často mi to taky padalo a stačilo změnit téma a vše v pořádku.
    20.2.2013 19:11 SpookY
    Rozbalit Rozbalit vše Re: padá padá padá padá
    MySQL Workbench vypadá zajímavě, ALE... ale je to zabugovaný nestabilní krám. Vyzkoušeno na několika mašinách.
    21.2.2013 03:05 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Njn, že to občas padne vím, v článku jsem na to upozornil. Ale zase nepadá to tak často, aby se to nedalo používat a automaticky restore to celkem řeší. Navíc u aktuální verze se to zlepšilo a vývojáři na tom imho pracují.
    Baník pyčo!
    21.2.2013 08:32 Nemo
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Na základě tohoto článku jsem ho dvakrát zkusil spustit a dvakrát mi spadnul. Škoda, něco takového by se mi hodilo...
    21.2.2013 16:38 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Tak mám asi štěstí ;). Jinak používám 64b verzi. Možná bys mohl zkusit přeložit to ze zdrojáků, třeba se ti při instalaci z balíčku nesnesou verze knihoven.
    Baník pyčo!
    21.2.2013 20:07 sparrowhawk | skóre: 6
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    mam prelozeno ze zdrojaku pro slackware64 14.0 - primo ze slackbuilds.org a nespadlo mi to ani jednou. takze souhlasim z vyse uvedenym, nez kdokoli zacne tento nastroj uplne odepisovat
    3.3.2013 12:30 Ivan Nový
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Používám na Ubuntu a padlo to tak 1 za 2 roky. Má to i slušný textový editor, grafické schéma vytvoří automaticky z databáze, nebo naopak. Skvělý nástroj zdarma.
    25.2.2013 01:00 FrantaS | skóre: 12 | Hlučín
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Já jsem s tímto programem velmi spokojen. Pády za několik let spočítám na prstech rukou. Nyní ho již delší dobu používám pro postgres. Vyexportuji, natlačím do mysql, vydampuji, překonvertuji programem z webu, projedu vlastním scriptem a v postgresql spustím dva importy. Vše je hotovo i s daty číselníků. Mám dokonce dobře i typ boolean i s daty. Vlastní script zapracuje i takové věci, jako že data a indexy do vlastních tablespaces nebo na některé sloupce CHECK či DEFERRABLE. Včera jsem aktualizoval pgAdmin3 a mám tam nově možnost modelovat, ale za tímto SW to ještě pokulhává.
    Ať se nám daří.
    25.2.2013 17:02 pepa
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Ja pouzivam k me plne spokojenosti Power*Architect 0.9.14, coz je java desktop aplikace.
    25.2.2013 20:27 FrantaS | skóre: 12 | Hlučín
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Ta verze k volnému stažení má nějaká omezení? 30 dnů, počet tabulek, nejde export, atd?
    Ať se nám daří.
    3.11.2013 09:52 Ika
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Ahojte, našiel by sa tu niekto, kto by mi skontroloval, či som dobre urobila ERD diagram?
    4.11.2013 20:17 Václav HFechs Švirga | skóre: 26 | blog: HF | Kopřivnice
    Rozbalit Rozbalit vše Re: Modelování MySQL databáze pomocí MySQL Workbench
    Na titulní stránce abíčka máš databázovou poradnu. Zkus položit dotaz tam.
    Baník pyčo!

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.