sql >> Databáze >  >> RDS >> Mysql

Tvorba vizuální databáze pomocí MySQL Workbench

V dnešním tutoriálu se naučíte, jak pomocí nástroje pro vizuální modelování databáze nakreslit diagram databáze a automaticky vygenerovat SQL. Konkrétně se podíváme na to, jak používat MySQL Workbench, multiplatformní nástroj pro návrh vizuální databáze.

Co je MySQL Workbench?

MySQL Workbench je výkonný nástroj vyvinutý společností MySQL se třemi hlavními oblastmi funkčnosti:

  • Vývoj SQL :Nahrazuje prohlížeč dotazů MySQL. Umožňuje uživateli připojit se k existující databázi a upravovat a spouštět dotazy SQL.
  • Datové modelování :Kompletní návrh a modelování vizuální databáze.
  • Správa databáze :Nahrazuje správce MySQL. Grafické rozhraní pro spouštění/zastavování serverů, vytváření uživatelských účtů, úpravy konfiguračních souborů atd.

V tomto tutoriálu se zaměříme na Datové modelování vytvořit databázi od nuly a pak se jen rychle podívat do SQL editoru ke spuštění našeho vygenerovaného SQL skriptu a vytvoření databáze v MySQL.

MySQL Workbench je k dispozici pro Windows, Linux a Mac OSX. Existují dvě různé edice:Community OSS Edition a komerční Standardní edice . Komunitní edice je licencována jako Open Source a GPL, jak byste očekávali. Je plně funkční a je to ten, který budeme používat v tomto článku. Komerční vydání přidává některé další funkce, jako je ověření schématu a modelu nebo generování dokumentace.

Poznámka:Tento tutoriál je založen na verzi Community OSS Edition 5.2 (5.2.16), která je v době psaní tohoto článku (duben 2010) aktuálně ve verzi beta.

Plánování naší databáze

Abychom se naučili používat MySQL Workbench, použijeme jako příklad velmi jednoduchou databázi pro online kurzy. Předpokládejme, že skupina učitelů chce nabízet online kurzy pro několik předmětů pomocí Skype nebo jiného softwaru pro videokonference. Pro náš malý projekt jsme se rozhodli, že musíme uložit následující informace:

Při kreslení našeho diagramu budeme potřebovat znát i vztahy mezi těmito skupinami dat; takže o tom teď raději uvažujme!

  • Jeden učitel může učit mnoho předmětů
  • Jeden předmět může vyučovat mnoho učitelů
  • Každý kurz má pouze jednoho učitele
  • Jeden učitel může učit mnoho tříd
  • Jeden student může navštěvovat mnoho tříd
  • Jeden kurz má mnoho studentů
  • Jeden kurz může mít několik hodin (za týden)
  • V jeden konkrétní den a hodinu může být několik lekcí
  • Kurz je o jednom předmětu
  • Jeden předmět může být vyučován v mnoha třídách

V tuto chvíli máme všechny informace, které potřebujeme k setkání s hvězdou této show...

Odeslat v MySQL Workbench

Je čas spustit Workbench. V části pro modelování dat na domovské obrazovce klikneme na Vytvořit nový model EER a zobrazí se následující obrazovka:

Když vytvoříme nový databázový model, obsahuje výchozí schéma mydb. Můžeme jej přejmenovat a použít jako naše DB schéma. Databázový model může mít několik různých schémat.

Katalog napravo zobrazí každý prvek v našem schématu a v případě potřeby nám umožní přetáhnout prvky do diagramů.

Mít oddělené sekce pro fyzická schémata a diagramy EER a možnost zahrnout několik schémat do jednoho databázového modelu může být matoucí. Následující část vysvětluje tyto pojmy a jak spolu souvisí.

Objasnění pojmů

Fyzické schéma obsahuje všechny potřebné části k definování databáze:tabulky, sloupce, typy, indexy, omezení atd. To je to, co skutečně definujeme. Každý objekt přidaný do grafického modelu se také zobrazí ve fyzickém schématu. Je to ve skutečnosti vizuální způsob, jak definovat naše schéma.

Můžeme mít několik schémat pro stejný databázový model stejným způsobem, jako můžeme mít několik databází na serveru MySQL. Každé schéma bude databáze MySQL. Například na další obrazovce máme dvě karty schématu:

Pokud vygenerujeme SQL skript, budeme mít dva samostatné příkazy CREATE DATABASE - ve skutečnosti budeme mít CREATE SCHEMA, což je jen synonymum.

CREATE SCHEMA IF NOT EXISTS `schema1`;
CREATE SCHEMA IF NOT EXISTS `schema2`;

„EER znamená Extended (nebo Enhanced) Entity-Relationship . EER diagramy jsou jen způsob, jak modelovat data a vztahy mezi daty pomocí standardních symbolů“

Při použití ZOBRAZIT DATABÁZE budou uvedeny jako databáze na hostiteli serveru MySQL.

Nyní, co je EER diagram?. EER je zkratka pro Extended (nebo Enhanced) Entity-Relationship>. EER diagramy jsou jen způsob, jak modelovat data a vztahy mezi daty pomocí standardních symbolů. Modely EER mohou být složité, ale MySQL Workbench používá pouze podmnožinu všech možných grafických prvků, protože účelem tohoto diagramu (v tomto nástroji) je mít každý prvek namapován na fyzické schéma.

Pomocí EER diagramu můžeme definovat celou databázi nebo jen její malé části. Můžeme mít například definované schéma s pěti tabulkami a poté vytvořit nový diagram pro definování dvou dalších tabulek pomocí vizuálního editoru. Diagram bude obsahovat pouze dvě tabulky, ale tyto dvě tabulky budou také zahrnuty do schématu spolu s předchozími pěti.

Vytváření našich tabulek

Zpět k našemu prvnímu příkladu; musíme přejmenovat výchozí schéma dvojitým kliknutím na název. V tuto chvíli máme dvě možnosti:můžeme začít přidávat tabulky do našeho fyzického schématu pomocí ikony přidat tabulku, nebo můžeme spustit EER Diagram a přidat tam všechny tabulky.

Raději přidávám nový diagram od začátku a vytvářím své schéma vizuálně; Abychom však ukázali, jak to udělat s oběma metodami, vytvoříme první dvě tabulky na kartě schématu a poté pokračujeme diagramem EER.

Když kliknete na Přidat tabulku se otevře editor tabulky jako karta níže:

Pomocí tabulkového editoru změníme název tabulky a přepneme se na záložku sloupců (v záložkách pod editorem) pro zadání našich sloupců. Můžeme si vybrat datový typ (existuje rozevírací seznam se všemi datovými typy MySQL), v případě potřeby přiřadit výchozí hodnotu a máme sedm zaškrtávacích políček pro označení libovolné z následujících vlastností:

  • PK – Primární klíč
  • NN – Není null
  • UQ – Unikátní
  • BIN – Binární
  • OSN – nepodepsáno
  • ZF – Nulová výplň
  • AI – Autoincrement

Přejděte do vizuální podoby

Toto je jeden způsob, jak přidat naše tabulky, i když je můžeme vytvořit také pomocí diagramů. Pokud klikneme na Přidat diagram ikonu nyní, zahájíme nový, prázdný diagram, a to není to, co chceme. Chceme, aby v diagramu byly dvě tabulky, které jsme právě vytvořili.

Pokud přejdeme do nabídky, vybereme Model/Vytvořit diagram z objektů katalogu , nyní máme náš diagram a jsme připraveni pokračovat.

Vyberte ikonu tabulky vlevo; ukazatel se změní na ruku s malým stolkem. Poté klikněte kamkoli na plátno a vytvořte novou tabulku.

Nyní stačí dvakrát kliknout na tabulku a zobrazí se karta editoru, kde můžete upravit název, sloupce, typy atd. – stejným způsobem jako dříve.

Po zadání podrobností o sloupcích pro nové tabulky budeme připraveni začít kreslit vztahy.

Kreslení vztahů

Ve svislém panelu nástrojů vlevo máme k dispozici šest nástrojů pro vytváření vztahů.

Nedělejte si starosti s tím posledním, vysvětlíme to později. Pro vztahy 1:1 a 1:n máme dva různé typy symbolů:identifikační a neidentifikující. Co to znamená?

Vztah je považován za identifikující, když existence jedné tabulky zcela závisí na druhé.

Vztah je považován za identifikující, když existence jedné tabulky zcela závisí na druhé. Řádek v této tabulce závisí na řádku v jiné tabulce. Běžným příkladem je mít samostatnou tabulku pro ukládání telefonů pro uživatele. Může být nutné mít to v jiné tabulce, protože pro jednoho uživatele může být několik telefonů, ale každý řádek v této tabulce je zcela závislý na uživateli - patří k uživateli.

Měli byste si být vědomi toho, že vztahy mají určité důsledky. Pokud chceme vytvářet fyzické tabulky v MySQL, musí být vztahy nějakým způsobem mapovány. Existuje několik pravidel pro mapování vztahů do tabulek:

  • Vztahy 1:1 . Primární klíč pro jednu z tabulek je zahrnut jako cizí klíč v druhé tabulce.
  • 1:n vztahy . Primární klíč tabulky na straně „1“ je přidán jako cizí klíč do tabulky na straně „n“.
  • n:m vztahy . Vytvoří se nová tabulka (připojená tabulka). Primární klíč se skládá z primárních klíčů ze dvou původních tabulek.

Identifikační vztahy se obvykle používají pro spojovací tabulky vytvořené ze vztahu many-to-many. Tyto nové tabulky jsou zcela závislé na dvou původních tabulkách.

Také v případě 1:1 a 1:n identifikujících vztahy bude zavedený cizí klíč součástí primárního klíče pro danou tabulku a bude tvořit složený primární klíč.

Dobrou zprávou je, že MySQL Workbench zná tato pravidla lépe než většina z nás. Prostě nakreslíme naše čáry a automaticky se vytvoří cizí klíče nebo spojovací tabulky. Můžeme se také rozhodnout, že to uděláme ručně, jak brzy uvidíme.

Chcete-li nakreslit vztah, klikněte na ikonu a poté klikněte na dvě tabulky, které se mají vztahovat. U vztahů typu one-to-many klikněte nejprve na postranní tabulku „mnoho“ a poté na postranní tabulku „jedna“. Podívejme se, jak to udělat pro vztah n:m učitel-předmět a pro 1:n učitel-třídy.

Výchozí název přiřazený cizím klíčům a spojovacím tabulkám lze globálně změnit na kartě Upravit/Předvolby/Model , nebo pouze pro aktuální projekt v Model/Model Options .

Pokud nechceme, aby se tabulky a cizí klíče generovaly tímto způsobem, můžeme použít tajemný „šestý symbol.“

"Šestý symbol" vytváří vztah pomocí existujících sloupců, což znamená, že jste již do svých tabulek zahrnuli potřebné cizí klíče a vytvořili potřebné spojovací tabulky (n:m mapovacích tabulek). Protože jsme tyto tabulky spojení již vytvořili, nepotřebujeme vztahy n:m; k dispozici je pouze 1:n.

Když máme všechny naše vztahy definované, náš diagram by měl vypadat takto:

Uvědomte si, že jsme pro diagramy používali výchozí zápis MySQL Workbench, ale můžete to změnit v Zápis modelu/objektu a Model/Relationship Notation. Toto je příklad našeho modelu v klasické notaci:

V tomto okamžiku je náš model připraven a můžeme vygenerovat SQL pro vytvoření databáze MySQL.

Generování SQL

Vyberte Soubor/Export/Forward Engineer SQL CREATE Script . Od vygenerování našeho souboru nás dělí jen tři obrazovky průvodce!


Máme dokonce možnost zkontrolovat a upravit vygenerovaný SQL před jeho uložením:

A to je vše. Kliknutím na tlačítko Dokončit se vygeneruje a uloží SQL skript. Nyní ji můžeme použít, jak chceme. Můžeme jej načíst pomocí klienta mysql příkazového řádku:

mysql> SOURCE scriptName.sql

Nebo můžeme použít MySQL Workbench k dokončení práce, připojení k našemu serveru MySQL a spuštění skriptu.

Připojení k serveru MySQL

Vyberte Databáze/Správa připojení z nabídky a klikněte na NOVÉ .

Pokud zde heslo nastavovat nechcete, budete o něj v případě potřeby požádáni. Klikněte na "Test Connection" pro kontrolu, zda jsou vaše parametry správné, a poté klikněte na Close.

Nyní k načtení skriptu použijeme editor SQL. V hlavní nabídce vyberte Databáze/Databáze dotazů; okno vás vyzve k výběru připojení a poté se otevře karta SQL editor.

Nyní klikněte na ikonu blesku pro spuštění SQL skriptu a vaše databáze bude vygenerována!

Mohli jsme také vygenerovat databázi MySQL přímo z modelu, bez odkazování na skutečný soubor, pomocí Database/Forward Engineer z nabídky; nicméně považuji za užitečné vygenerovat skript a poté jej použít, jak chci.


  1. Jak zobrazit řádky, které nejsou přítomny v jiné tabulce v MySQL

  2. psycopg2.OperationalError:FATAL:nepodporovaný frontend protokol 1234.5679:server podporuje 2.0 až 3.0

  3. Zpracování souběžného požadavku při setrvání v databázi Oracle?

  4. Proč jsou hodnoty NULL na prvním místě při objednávání DESC v dotazu PostgreSQL?