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

    Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.

    Ladislav Hagara | Komentářů: 3
    dnes 14:22 | Komunita

    Na YouTube je k dispozici videozáznam z včerejšího Czech Open Source Policy Forum 2024.

    Ladislav Hagara | Komentářů: 0
    dnes 13:22 | Nová verze

    Fossil (Wikipedie) byl vydán ve verzi 2.24. Jedná se o distribuovaný systém správy verzí propojený se správou chyb, wiki stránek a blogů s integrovaným webovým rozhraním. Vše běží z jednoho jediného spustitelného souboru a uloženo je v SQLite databázi.

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Nová verze

    Byla vydána nová stabilní verze 6.7 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 124. Přehled novinek i s náhledy v příspěvku na blogu. Vypíchnout lze Spořič paměti (Memory Saver) automaticky hibernující karty, které nebyly nějakou dobu používány nebo vylepšené Odběry (Feed Reader).

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

    OpenJS Foundation, oficiální projekt konsorcia Linux Foundation, oznámila vydání verze 22 otevřeného multiplatformního prostředí pro vývoj a běh síťových aplikací napsaných v JavaScriptu Node.js (Wikipedie). V říjnu se verze 22 stane novou aktivní LTS verzí. Podpora je plánována do dubna 2027.

    Ladislav Hagara | Komentářů: 0
    dnes 04:22 | Nová verze

    Byla vydána verze 8.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a v informačním videu. Zdůrazněn je průvodce migrací hostů z VMware ESXi do Proxmoxu.

    Ladislav Hagara | Komentářů: 0
    dnes 04:11 | Nová verze

    R (Wikipedie), programovací jazyk a prostředí určené pro statistickou analýzu dat a jejich grafické zobrazení, bylo vydáno ve verzi 4.4.0. Její kódové jméno je Puppy Cup.

    Ladislav Hagara | Komentářů: 0
    včera 22:44 | IT novinky

    IBM kupuje společnost HashiCorp (Terraform, Packer, Vault, Boundary, Consul, Nomad, Waypoint, Vagrant, …) za 6,4 miliardy dolarů, tj. 35 dolarů za akcii.

    Ladislav Hagara | Komentářů: 12
    včera 15:55 | Nová verze

    Byl vydán TrueNAS SCALE 24.04 “Dragonfish”. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | IT novinky

    Oznámeny byly nové Raspberry Pi Compute Module 4S. Vedle původní 1 GB varianty jsou nově k dispozici také varianty s 2 GB, 4 GB a 8 GB paměti. Compute Modules 4S mají na rozdíl od Compute Module 4 tvar a velikost Compute Module 3+ a předchozích. Lze tak provést snadný upgrade.

    Ladislav Hagara | Komentářů: 0
    KDE Plasma 6
     (73%)
     (9%)
     (2%)
     (17%)
    Celkem 762 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

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

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

    Č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.