MySQL workbench - tvorba modelu: Rozdiel medzi revíziami
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 Modelling), |
− | * | + | *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. |
− | ; | + | ;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]]. |
− | |||
− | 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 | + | :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''' - | + | :*'''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.
- 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.
- 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 ú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.
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'
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.