MySQL workbench - tvorba modelu: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
d
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 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 Modeling)
+
*modelovanie dát (Data Modelling),
*Správa MySQL servera
+
*správa MySQL servera.
 
[[Súbor:Mysql workbench.png|frame|center|MySQL WorkBench - úvodná obrazovka]]
 
[[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.  
+
;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.  
;Data Modeling: Umožňuje graficky vytvoriť model databázy (entitno-relačný diagram), poskytuje reverse ingeneering pre vtvorenie 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 aj metadát, tvorbu indexov, spúšťačov (Triggers), pohľadov, privilégií, procedúr.
+
;Modelovanie dát.: Umožňuje graficky vytvoriť model databázy (entitno-relačný diagram), poskytuje ''reverse ingeneering'' pre vtvorenie 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.
+
;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á stiahnuť z adresy http://wb.mysql.com
 
Nástroj MySQL WorkBench  sa dá stiahnuť z adresy http://wb.mysql.com
  
 
==Vytvorenie Entitno-Relačného modelu==
 
==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.  
+
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 popis 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:
+
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í.
* zoznam anglických slov (slova_en)
+
 
* zoznam slovenských slov (slova_sk)
+
 
* zoznam kategórií (kategorie)
+
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:
 
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. Nemôže byť NULL, jeho hodnota sa nesmie opakovať.
 +
** ''slovo_en'' - Anglické slovo. Ako dátový typ použijeme reťazec, resp VARCHAR s dĺžkou max. 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. Nemôže byť NULL, 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, resp VARCHAR s dĺžkou max. 32 znakov. Kategória sa mesmie v tabuľke opakovať.
  
 
===Postup v prostredí MySQL WorkBench===
 
===Postup v prostredí MySQL WorkBench===
Riadok 33: Riadok 49:
 
[[Súbor:Mysql workbench 2.png|frame|center|MySQL WorkBench - pracovné prostredie]]
 
[[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 'Add diagram' pre vizuálny návrh 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''.
+
: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:Mysql workbench 3.png|frame|center|MySQL WorkBench - tvorba ER diagramu]]
 
[[Súbor:Mysql workbench 3.png|frame|center|MySQL WorkBench - tvorba ER diagramu]]
Riadok 45: Riadok 61:
 
:*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 'Columns' - stĺpce.
+
: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:Mysql workbench 4.png|frame|center|MySQL WorkBench - editor tabuľky]]
 
[[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''' - 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.
+
:*'''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.
Riadok 65: Riadok 81:
  
 
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 '1:n Identifying Relationship'  [[Súbor:Ikona 1n.png]] ako prvú označíme tabuľku, ktorá sa vo vzťahu vyskytuje viacero krát (v našom prípade je to slova_sk). Následne označíme tabuľku, ktorá je vo vzťahu len 1× (slova_en). Podobne to urobíme i pre dvojicu kategorie - slova_en.
+
: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]] ako prvú označíme tabuľku, ktorá sa vo vzťahu vyskytuje viacero krát (v našom prípade je to ''slova_sk''). Následne označíme tabuľku, ktorá je vo vzťahu len 1× (''slova_en''). Podobne to urobíme i pre dvojicu ''kategorie'' - ''slova_en''.
  
 
[[Súbor:Mysql workbench 6.png|frame|center|MySQL WorkBench - ER diagram prekladového slovníka]]
 
[[Súbor:Mysql workbench 6.png|frame|center|MySQL WorkBench - ER diagram prekladového slovníka]]

Verzia zo dňa a času 18:45, 10. január 2011

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:

  • SQL nástroje,
  • modelovanie dát (Data Modelling),
  • správa MySQL servera.
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 vtvorenie 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á 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. Nemôže byť NULL, jeho hodnota sa nesmie opakovať.
    • slovo_en - Anglické slovo. Ako dátový typ použijeme reťazec, resp VARCHAR s dĺžkou max. 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. Nemôže byť NULL, 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, resp VARCHAR s dĺžkou max. 32 znakov. Kategória sa mesmie v tabuľke opakovať.

Postup 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.
MySQL WorkBench - pracovné prostredie
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.
MySQL WorkBench - tvorba ER diagramu
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.
MySQL WorkBench - editor tabuľky
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 údaju 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.

MySQL WorkBench - tabuľky ER diagramu slovník

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' Ikona 1n.png ako prvú označíme tabuľku, ktorá sa vo vzťahu vyskytuje viacero krát (v našom prípade je to slova_sk). Následne označíme tabuľku, ktorá je vo vzťahu len 1× (slova_en). Podobne to urobíme i pre dvojicu kategorie - slova_en.
Súbor:Mysql workbench 6.png
MySQL WorkBench - ER diagram prekladového slovníka