MySQL workbench - tvorba modelu: Rozdiel medzi revíziami
d  | 
				|||
| (7 medziľahlých úprav od rovnakého používateľa nie je zobrazených.) | |||
| Riadok 1: | Riadok 1: | ||
{{Skripta_dbs}}  | {{Skripta_dbs}}  | ||
| − | Softvér MySQL Workbench poskytuje grafický nástroj pre prácu s MySQL databázami. MySQL Workbench plne spolupracuje so servermi MySQL Server verzie 5.1 a vyššie. Nepodporuje MySQL Server 4.x. MySQL Workbench ponúka tri hlavné moduly:  | + | Softvér MySQL Workbench<ref>MySQL Workbench - http://wb.mysql.com/</ref> poskytuje grafický nástroj pre prácu s MySQL databázami. MySQL Workbench plne spolupracuje so servermi MySQL Server verzie 5.1 a vyššie. Nepodporuje MySQL Server 4.x. MySQL Workbench ponúka tri hlavné moduly:  | 
| − | *SQL nástroje  | + | *SQL nástroje,  | 
| − | *  | + | *modelovanie dát (Data Modelling),  | 
| − | *Správa MySQL   | + | *správa MySQL servera.  | 
| + | [[Súbor:Mysql workbench.png|frame|center|MySQL WorkBench - úvodná obrazovka]]  | ||
| + | ;SQL nástroje.: Umožňujú vytvárať a spravovať pripojenia k databázovým serverom. MySQL Workbench dovoľuje spustiť SQL dotazy na databázu pomocou zabudovaného SQL editora.   | ||
| + | ;Modelovanie dát.: Umožňuje graficky vytvoriť model databázy (entitno-relačný diagram), poskytuje ''reverse ingeneering'' pre vytvorenie ER diagramu z existujúcej databázy, ale aj vytvorenie databázy z navrhnutého modelu. Vstavaný editor údajov poskytuje možnosť editovania tabuliek - obsahu, metadát, tvorbu indexov, spúšťačov (Triggers), pohľadov, privilégií, procedúr.  | ||
| + | ;Správa servera.: Umožňuje vytvárať a spravovať jednotlivé inštancie serverov. Táto funkcia nahrádza, skôr poskytnutú aplikáciu MySQL Administrator.  | ||
| − | + | Nástroj MySQL WorkBench sa dá bezplatne stiahnuť z adresy http://wb.mysql.com  | |
| − | |||
| − | |||
| − | + | ==Vytvorenie Entitno-Relačného modelu==  | |
| + | V nasledujúcom texte si ukážeme postup pri tvorbe jednoduchého ER modelu jednosmerného prekladového anglicko-slovenského slovníka. Pre tvorbu modelu si zoberieme príklad 'prekladový slovník' opisovaný v kapitole [[Jazyk SQL]].  | ||
| − | + | Krátky opis problému: Navrhnite ER diagram pre aplikáciu anglicko-slovenského prekladového slovníka. Požaduje sa, aby boli anglické slová rozdelené do kategórií.  | |
| − | |||
| − | |||
| − | |||
| − | Riešenie: V zadaní identifikujeme 3 entity:  | + | Riešenie:  | 
| − | * zoznam anglických slov (slova_en)  | + | V zadaní identifikujeme 3 entity:  | 
| − | * zoznam slovenských slov (slova_sk)  | + | * zoznam anglických slov (''slova_en''),  | 
| − | * zoznam kategórií (kategorie)  | + | * zoznam slovenských slov (''slova_sk''),  | 
| + | * zoznam kategórií (''kategorie'').  | ||
Medzi týmito entitami sú nasledujúce vzťahy:  | Medzi týmito entitami sú nasledujúce vzťahy:  | ||
| − | * slova_en - slova_sk  1:N  | + | * ''slova_en'' - ''slova_sk''  1:N,  | 
| − | * kategorie - slova_en 1:N  | + | * ''kategorie'' - ''slova_en'' 1:N.  | 
| + | |||
| + | |||
| + | Navrhnutým entitám boli identifikované nasledujúce atribúty:  | ||
| + | * ''slova_en''   | ||
| + | ** ''id'' - celočíselný jednoznačný identifikátor. Hodnota nemôže byť prázdna, jeho hodnota sa nesmie opakovať.  | ||
| + | ** ''slovo_en'' - Anglické slovo. Ako dátový typ použijeme reťazec s dĺžkou maximálne 32 znakov. Slovo sa nesmie v tabuľke opakovať.  | ||
| + | ** ''aktegoria_id'' - celočíselný hodnota odkazujúca na id kategórie, do ktorej patrí anglické slovo. Hodnota tohto atribútu musí byť definovaná. Hodnota musí byť len z množiny identifikátorov kategórií.  | ||
| + | * ''slova_sk''   | ||
| + | ** ''id'' - celočíselný jednoznačný identifikátor. Hodnota nemôže byť prázdna, jeho hodnota sa nesmie opakovať.  | ||
| + | ** ''slovo_sk'' - Slovenské slovo. Ako dátový typ použijeme reťazec, resp VARCHAR s dĺžkou max. 32 znakov. Slovo sa môže v tabuľke opakovať.  | ||
| + | * ''kategorie''  | ||
| + | ** ''id'' - celočíselný jednoznačný identifikátor. Nemôže byť NULL, jeho hodnota sa nesmie opakovať.  | ||
| + | ** ''kategoria'' - Názov kategórie. Ako dátový typ použijeme reťazec s dĺžkou maximálne 32 znakov. Kategória sa mesmie v tabuľke opakovať.  | ||
| − | ===Postup v prostredí MySQL WorkBench===  | + | ===Postup vytvorenie ER diagramu v prostredí MySQL WorkBench===  | 
'''1. Vytvorenie novej databázovej schémy'''  | '''1. Vytvorenie novej databázovej schémy'''  | ||
| − | :V úvodnej obrazovke (predchádzajúci obrázok) vyberieme   | + | :V úvodnej obrazovke (predchádzajúci obrázok) vyberieme 'Create New EER Model' (v strednej časti).  | 
| − | :Otvorí sa pracovné prostredie s preddefinovanou schémou (resp. databázou) ''mydb''. Túto schému premenujeme na   | + | :Otvorí sa pracovné prostredie s preddefinovanou schémou (resp. databázou) ''mydb''. Túto schému premenujeme na 'slovnik'. Je to vlastne názov budúcej databázy.  | 
| − | [[Súbor:  | + | [[Súbor:Mysql workbench 2.png|frame|center|MySQL WorkBench - pracovné prostredie]]  | 
| − | :Najjednoduchší spôsob ako vytvoriť nové tabuľky v otvorenej schéme je vizuálny editor.  | + | :Nasleduje vytvorenie tabuliek. Najjednoduchší spôsob ako vytvoriť nové tabuľky v otvorenej schéme je vizuálny editor.  | 
'''2. Vytvorenie nového ER modelu'''  | '''2. Vytvorenie nového ER modelu'''  | ||
| − | :V hornej časti pracovnej plochy zvolíme   | + | :V hornej časti pracovnej plochy zvolíme 'Add diagram' pre pridanie vizuálneho návrhu ER diagramu. Na pracovnú plochu vložíme novú tabuľku (ikony v ľavej časti pracovnej plochy, alebo klávesová skratka T). Nová tabuľka bude mať názov ''table1''. Dvojitým klikom na tabuľku sa otvorí editor tabuľky, kde môžeme zmeniť názov tabuľky. Pomenujme ju ''slova_en''.  | 
| − | [[Súbor:  | + | [[Súbor:Mysql workbench 3.png|frame|center|MySQL WorkBench - tvorba ER diagramu]]  | 
| − | :Tabuľke slova_en pridáme nasledujúce atribúty:  | + | :Tabuľke ''slova_en'' pridáme nasledujúce atribúty:  | 
| − | :*id - identifikačné číslo. Bude slúžiť ako primárny kľúč.  | + | :*''id'' - identifikačné číslo. Bude slúžiť ako primárny kľúč.  | 
| − | :*slovo_en - anglické slovo  | + | :*''slovo_en'' - anglické slovo.  | 
| − | :Tieto atribúty pridáme pomocou editora tabuľky, ktorého možnosti sú zobrazené na predchádzajúcom obrázku, v spodnej časti. Vyberieme záložku   | + | :Tieto atribúty pridáme pomocou editora tabuľky, ktorého možnosti sú zobrazené na predchádzajúcom obrázku, v spodnej časti. Vyberieme záložku 'Columns' - stĺpce, kde pridáme navrhnuté atribúty.  | 
| − | [[Súbor:  | + | [[Súbor:Mysql workbench 4.png|frame|center|MySQL WorkBench - editor tabuľky]]  | 
| − | :Jednotlivé skratky majú nasledujúci význam:  | + | :Jednotlivé skratky majú pri definovaní nového atribútu nasledujúci význam:  | 
:*'''PK''' - Primary Key. Primárny kľúč.  | :*'''PK''' - Primary Key. Primárny kľúč.  | ||
| − | :*'''NN''' -   | + | :*'''NN''' - NOT NULL. Hodnota daného atribútu musí byť vždy definovaná (nemôže byť prázdna). V našom prípade to znamená, že v tabuľke anglických slov nemôže byť taký záznam, ktorý by obsahoval prázdny údaj pre stĺpec ''slovo_en''.  | 
| − | :*'''UQ''' - Unique. Hodnota atribútu musí byť jedinečná. Znamená to, že v stĺpci slovo_en nemôžu byť dve rovnaké anglické slová.  | + | :*'''UQ''' - Unique. Hodnota atribútu musí byť jedinečná. Znamená to, že v stĺpci ''slovo_en'' nemôžu byť dve rovnaké anglické slová.  | 
:*'''BIN''' - Binary. Indikuje, že obsahom atribútu sú binárne dáta.  | :*'''BIN''' - Binary. Indikuje, že obsahom atribútu sú binárne dáta.  | ||
:*'''UN''' - Unsigned. Platí len pre celočíselné hodnoty a hovorí že hodnota môže byť len kladná.  | :*'''UN''' - Unsigned. Platí len pre celočíselné hodnoty a hovorí že hodnota môže byť len kladná.  | ||
:*'''ZF''' - Zerofill. Automaticke dopĺňa pred číslo nuly.  | :*'''ZF''' - Zerofill. Automaticke dopĺňa pred číslo nuly.  | ||
| − | :*'''AI''' - Auto Increment. Používa sa len s kombinácii s PK. Pri vkladaní nového   | + | :*'''AI''' - Auto Increment. Používa sa len s kombinácii s PK. Pri vkladaní nového záznamu do tabuľky nemusíme špecifikovať hodnotu primárneho kľúča. Tá sa sama vypočíta ako ďalšie nepoužité číslo v poradí.  | 
Podobne vytvoríme tabuľky ''slova_sk'' a ''kategorie''.  | Podobne vytvoríme tabuľky ''slova_sk'' a ''kategorie''.  | ||
| − | [[Súbor:  | + | [[Súbor:Mysql workbench 5.png|frame|center|MySQL WorkBench - tabuľky ER diagramu slovník]]  | 
'''3. Zadefinovanie vzťahov medzi tabuľkami'''  | '''3. Zadefinovanie vzťahov medzi tabuľkami'''  | ||
Ako už bolo spomenuté vzťahy medzi jednotlivými tabuľkami sú:  | Ako už bolo spomenuté vzťahy medzi jednotlivými tabuľkami sú:  | ||
| − | :* slova_en - slova_sk  1:N  | + | :* ''slova_en'' - ''slova_sk''  1:N  | 
| − | :* kategorie - slova_en 1:N  | + | :* ''kategorie'' - ''slova_en'' 1:N  | 
| − | :Vytvoríme vzťah 1:N medzi tabuľkami slova_en a slova_sk. Nástrojom   | + | :Vytvoríme vzťah 1:N medzi tabuľkami ''slova_en'' a ''slova_sk''. Nástrojom '1:n Identifying Relationship'  [[Súbor:Ikona 1n.png]]. Po kliknutí na túto ikonu nás softvér vyzve aby sme označili tabuľku, ktorá bude obsahovať cudzí kúč (''Select table to receive foreign key''). V našom prípade je to ''slova_sk''. Následne označíme tabuľku ktorej primárny kľúč bude tvoriť reláciu s vytvoreným cudzím kľúčom (''Select the reference table''). V našom príklade je to ''slova_en''. Podobnú reláciu urobíme i pre dvojicu ''kategorie'' - ''slova_en''.  | 
| − | [[Súbor:  | + | [[Súbor:Prekladový slovník jednosmerný ERD.png|frame|center|MySQL WorkBench - ER diagram prekladového slovníka]]  | 
| + | ==Zdroje a odkazy==  | ||
| + | <references/>  | ||
Aktuálna revízia z 18:01, 17. január 2011
Softvér MySQL Workbench[1] poskytuje grafický nástroj pre prácu s MySQL databázami. MySQL Workbench plne spolupracuje so servermi MySQL Server verzie 5.1 a vyššie. Nepodporuje MySQL Server 4.x. MySQL Workbench ponúka tri hlavné moduly:
- SQL nástroje,
 - modelovanie dát (Data Modelling),
 - správa MySQL servera.
 
- SQL nástroje.
 - Umožňujú vytvárať a spravovať pripojenia k databázovým serverom. MySQL Workbench dovoľuje spustiť SQL dotazy na databázu pomocou zabudovaného SQL editora.
 - Modelovanie dát.
 - Umožňuje graficky vytvoriť model databázy (entitno-relačný diagram), poskytuje reverse ingeneering pre vytvorenie ER diagramu z existujúcej databázy, ale aj vytvorenie databázy z navrhnutého modelu. Vstavaný editor údajov poskytuje možnosť editovania tabuliek - obsahu, metadát, tvorbu indexov, spúšťačov (Triggers), pohľadov, privilégií, procedúr.
 - Správa servera.
 - Umožňuje vytvárať a spravovať jednotlivé inštancie serverov. Táto funkcia nahrádza, skôr poskytnutú aplikáciu MySQL Administrator.
 
Nástroj MySQL WorkBench sa dá bezplatne stiahnuť z adresy http://wb.mysql.com
Vytvorenie Entitno-Relačného modelu
V nasledujúcom texte si ukážeme postup pri tvorbe jednoduchého ER modelu jednosmerného prekladového anglicko-slovenského slovníka. Pre tvorbu modelu si zoberieme príklad 'prekladový slovník' opisovaný v kapitole Jazyk SQL.
Krátky opis problému: Navrhnite ER diagram pre aplikáciu anglicko-slovenského prekladového slovníka. Požaduje sa, aby boli anglické slová rozdelené do kategórií.
Riešenie:
V zadaní identifikujeme 3 entity:
- zoznam anglických slov (slova_en),
 - zoznam slovenských slov (slova_sk),
 - zoznam kategórií (kategorie).
 
Medzi týmito entitami sú nasledujúce vzťahy:
- slova_en - slova_sk 1:N,
 - kategorie - slova_en 1:N.
 
Navrhnutým entitám boli identifikované nasledujúce atribúty:
- slova_en
- id - celočíselný jednoznačný identifikátor. Hodnota nemôže byť prázdna, jeho hodnota sa nesmie opakovať.
 - slovo_en - Anglické slovo. Ako dátový typ použijeme reťazec s dĺžkou maximálne 32 znakov. Slovo sa nesmie v tabuľke opakovať.
 - aktegoria_id - celočíselný hodnota odkazujúca na id kategórie, do ktorej patrí anglické slovo. Hodnota tohto atribútu musí byť definovaná. Hodnota musí byť len z množiny identifikátorov kategórií.
 
 - slova_sk
- id - celočíselný jednoznačný identifikátor. Hodnota nemôže byť prázdna, jeho hodnota sa nesmie opakovať.
 - slovo_sk - Slovenské slovo. Ako dátový typ použijeme reťazec, resp VARCHAR s dĺžkou max. 32 znakov. Slovo sa môže v tabuľke opakovať.
 
 - kategorie
- id - celočíselný jednoznačný identifikátor. Nemôže byť NULL, jeho hodnota sa nesmie opakovať.
 - kategoria - Názov kategórie. Ako dátový typ použijeme reťazec s dĺžkou maximálne 32 znakov. Kategória sa mesmie v tabuľke opakovať.
 
 
Postup vytvorenie ER diagramu v prostredí MySQL WorkBench
1. Vytvorenie novej databázovej schémy
- V úvodnej obrazovke (predchádzajúci obrázok) vyberieme 'Create New EER Model' (v strednej časti).
 
- Otvorí sa pracovné prostredie s preddefinovanou schémou (resp. databázou) mydb. Túto schému premenujeme na 'slovnik'. Je to vlastne názov budúcej databázy.
 
- Nasleduje vytvorenie tabuliek. Najjednoduchší spôsob ako vytvoriť nové tabuľky v otvorenej schéme je vizuálny editor.
 
2. Vytvorenie nového ER modelu
- V hornej časti pracovnej plochy zvolíme 'Add diagram' pre pridanie vizuálneho návrhu ER diagramu. Na pracovnú plochu vložíme novú tabuľku (ikony v ľavej časti pracovnej plochy, alebo klávesová skratka T). Nová tabuľka bude mať názov table1. Dvojitým klikom na tabuľku sa otvorí editor tabuľky, kde môžeme zmeniť názov tabuľky. Pomenujme ju slova_en.
 
- Tabuľke slova_en pridáme nasledujúce atribúty:
- id - identifikačné číslo. Bude slúžiť ako primárny kľúč.
 - slovo_en - anglické slovo.
 
 
- Tieto atribúty pridáme pomocou editora tabuľky, ktorého možnosti sú zobrazené na predchádzajúcom obrázku, v spodnej časti. Vyberieme záložku 'Columns' - stĺpce, kde pridáme navrhnuté atribúty.
 
- Jednotlivé skratky majú pri definovaní nového atribútu nasledujúci význam:
- PK - Primary Key. Primárny kľúč.
 - NN - NOT NULL. Hodnota daného atribútu musí byť vždy definovaná (nemôže byť prázdna). V našom prípade to znamená, že v tabuľke anglických slov nemôže byť taký záznam, ktorý by obsahoval prázdny údaj pre stĺpec slovo_en.
 - UQ - Unique. Hodnota atribútu musí byť jedinečná. Znamená to, že v stĺpci slovo_en nemôžu byť dve rovnaké anglické slová.
 - BIN - Binary. Indikuje, že obsahom atribútu sú binárne dáta.
 - UN - Unsigned. Platí len pre celočíselné hodnoty a hovorí že hodnota môže byť len kladná.
 - ZF - Zerofill. Automaticke dopĺňa pred číslo nuly.
 - AI - Auto Increment. Používa sa len s kombinácii s PK. Pri vkladaní nového záznamu do tabuľky nemusíme špecifikovať hodnotu primárneho kľúča. Tá sa sama vypočíta ako ďalšie nepoužité číslo v poradí.
 
 
Podobne vytvoríme tabuľky slova_sk a kategorie.
3. Zadefinovanie vzťahov medzi tabuľkami
Ako už bolo spomenuté vzťahy medzi jednotlivými tabuľkami sú:
- slova_en - slova_sk 1:N
 - kategorie - slova_en 1:N
 
- Vytvoríme vzťah 1:N medzi tabuľkami slova_en a slova_sk. Nástrojom '1:n Identifying Relationship'  
. Po kliknutí na túto ikonu nás softvér vyzve aby sme označili tabuľku, ktorá bude obsahovať cudzí kúč (Select table to receive foreign key). V našom prípade je to slova_sk. Následne označíme tabuľku ktorej primárny kľúč bude tvoriť reláciu s vytvoreným cudzím kľúčom (Select the reference table). V našom príklade je to slova_en. Podobnú reláciu urobíme i pre dvojicu kategorie - slova_en. 
Zdroje a odkazy
- ↑ MySQL Workbench - http://wb.mysql.com/
 





