Jazyk SQL: Rozdiel medzi revíziami
Riadok 78: | Riadok 78: | ||
**názov kategórie | **názov kategórie | ||
− | + | Medzi danými entitami identifikujeme nasledujúcu mohutnosť: | |
+ | * slova_en - slova_sk | ||
+ | ** mohutnosť 1:N | ||
+ | ** modalita: povinná účasť | ||
+ | * kategorie - slova_en | ||
+ | **mohutnosť 1:N | ||
+ | ** modalita: povinná účasť | ||
+ | Pre navrhnuté entity a identifikované vzťahy medzi nimi navrhujeme nasledujúci entitno-relačný diagram. | ||
+ | |||
+ | [[Súbor:Prekladový slovník jednosmerný ERD.png|center|frame|ERD - Jednosmerný prekladový slovník]] | ||
+ | |||
+ | Navrhnuté dátové typu pre atribúty entít sú vidieť na predchádzajúco obrázku. | ||
===Slovník ver.2 - obojsmerný slovník=== | ===Slovník ver.2 - obojsmerný slovník=== | ||
'''Úloha:''' | '''Úloha:''' | ||
− | Vytvorte funkčný databázový model obojstranného prekladového slovníka | + | Vytvorte funkčný databázový model obojstranného prekladového slovníka. Daný preklad slova (anglického/slovenského) bude zaradený do kategórie. |
+ | |||
+ | |||
+ | '''Analýza úlohy:''' | ||
+ | Podľa zadanie je potrebné navrhnúť obojstranný prekladový slovník. V praxi to znamená, že jedno anglické slovo môže mať viac slovenských prekladov a jedno slovenské slovo môže mať taktiež viac slovenských prekladov. Medzi týmito entitami je teda vzťah M:N. | ||
+ | Vieme, že vzťah M:N sa nedá priamo namodelovať. Rozdelíme ho teda na dva vzťahy: | ||
+ | * slova_en - preklad (1:N) | ||
+ | * preklad - slova_sk (N:1) | ||
− | + | Pre entitu preklad definujeme nasledujúce atribúty: | |
+ | *en_id - odkaz na anglické slovo (cudzí kľúč) | ||
+ | *sk_id - odkaz na slovenské slovo (cudzí kľúč) | ||
+ | *kategorie_id - odkaz na kategóriu (cudzí kľúč) | ||
+ | |||
+ | Pre túto entitu určíme kompozintý primárny kľúč. Bude pozostávať z dvoch atribútov: (en_id, sk_id). Na nasledujúcom obrázku je obsah tabuľky preklad. V ľavej časti vidieť len hodnoty cudzích kľúčov tak, ako sú uložené v tabuľke. V pravej časti je namiesto týchto číselných hodnôt zobrazené samotné slovenské, resp anglické slovo a aj názov kategórie. | ||
− | |||
[[Súbor:Prekladový slovník obojsmerný preklad.png|center|frame|Obsah tabuľky preklad]] | [[Súbor:Prekladový slovník obojsmerný preklad.png|center|frame|Obsah tabuľky preklad]] | ||
+ | |||
+ | Na nasledujúcom obrázku je entitno relačný diagram pre obojsmerný prekladový slovník. | ||
+ | |||
+ | [[Súbor:Prekladový slovník obojsmerný ERD.png|center|frame|ERD obojsmerného prekladového slovníka]] | ||
+ | |||
+ | Navrhnuté dátové typu pre atribúty entít sú vidieť na predchádzajúco obrázku. | ||
+ | |||
+ | |||
+ | |||
==Zdroje a odkazy== | ==Zdroje a odkazy== | ||
<references/> | <references/> |
Verzia zo dňa a času 08:42, 20. október 2010
Jazyk SQL (Structured Query Language) je štandardizovaný jazyk pre prístup k dátam databázy.
Obsah
Čo sa dá robiť pomocou SQL
- SQL dokáže vykonávať dotazy nad databázou
- SQL môže načítať dáta z databázy
- SQL môže vkladať záznamy do databázy
- SQL môže aktualizovať záznamy v databáze
- SQL môže odstraňovať záznamy z databázy
- pomocou SQL je možné vytvárať nové databázy
- pomocou SQL je možné vytvárať nové tabuľky v databáze
- pomocou SQL je možné vytvárať uložené procedúry v databáze
- pomocou SQL je možné vytvoriť pohľady v databáze
- SQL dokáže nastaviť používateľské oprávnenie pre tabuľky, procedúry a pohľady
Jazyk SQL je case-sensitive, to znamená je neberie ohľad na veľkosť písmen. V praxi to znamená, že výraz select má rovnaký význam ako SELECT.
Rozdelenie jazyka SQL
Jazyk SQL môžeme deliť na podskupiny:
- DML - Data Manipulation Language
- DML je rodina programovacích jazykov, ktoré umožňujú používateľom vkladať, mazať a aktualizovať údaje v databáze. V SQL sa používan na načítanie a manipuláciu s dátami v relačnej databáze. Patria sem príkazy: SELECT, INSERT, UPDATE, DELETE.
- DDL - Data Definition Language
- Jazyk DDL je časť jazyka SQL pre definíciu dát. Patria sem príkazy, pomocou ktorých môžeme vytvárať a mazať databázy a tabuľky. Jedná sa o príkazy: CREATE, DROP, ALTER
- DCL - Data Control Language
- DCL je podmnožina jazyka SQL pre riadenie prístupu k databáze, tabuľkám databázy a ostatným objektom databázy. Patria sem príkazy GRANT, REVOKE
Vzorový príklad - databáza WORLD
Pre vysvetlenie SQL príkazov budeme pracovať s databázou "world"[1], ktorá je distribuovaná ako vzorová databáza pre databázový server MySQL [2]
Databáza world
Databáza world obsahuje informácie o krajinách, mestách a jazykoch používaných v jednotlivých krajinách sveta. Databáza obsahuje 3 tabuľky:
- city
- country
- countrylanguage
Na nasledujúcom obrázku je ER diagram datazázy world
Vzorová databáza sa dá stiahnuť zo stránok MySQL: http://dev.mysql.com/doc/index-other.html
Zoznam miest sveta
V tabuľke city sa nachádza zoznam niektorých, vybraných miest sveta. Mesto je opísané nasledujúcimi atribútmi:
ID | indentifikátor záznamu (primárny kľúč tabuľku). Slúži na jednoznačnú identifikáciu mesta. |
---|---|
Name | Názov mesta. |
CountryCode | 3-miestny kód krajiny, v ktorom sa nachádza dané mesto. |
District | Definuje okres, v ktorom sa nachádza dané mesto |
Population | Populácia v danom meste. |
Zoznam krajín sveta
Zoznam jazykov používaných v krajine
Vzorový príklad - databáza Prekladový slovník
Slovník ver.1 - Anglicko-Slovenský slovník
Úloha:
Vytvorte funkčný databázový model jednosmerného prekladového slovníka z angličtiny do slovenčiny. Anglické slová budú mať pridelené kategórie.
Analýza úlohy:
Úlohou je vytvoriť model slovníka, v ktorom bude možné jednému anglickému slovu priradiť viacero slovenských prekladov. V danej úlohe identifikujeme nasledovné entity:
- anglické slová (slova_en)
- slovenské slová (slova_sk)
- kategórie anglických slov (kategorie)
Pre dané entity identifikujeme nasledujúce atribúty:
- slova_en
- identifikačné číslo slova (primárny kľúč)
- anglické slovo
- kategória, do ktorej slovo patrí. Kategória bude reprezentovaná odkazom na názov kategórie v entite kategorie.
- slova_sk
- identifikačné číslo slova (primárny kľúč)
- slovenské slovo
- kategorie
- identifikačné číslo kategórie (primárny kľúč)
- názov kategórie
Medzi danými entitami identifikujeme nasledujúcu mohutnosť:
- slova_en - slova_sk
- mohutnosť 1:N
- modalita: povinná účasť
- kategorie - slova_en
- mohutnosť 1:N
- modalita: povinná účasť
Pre navrhnuté entity a identifikované vzťahy medzi nimi navrhujeme nasledujúci entitno-relačný diagram.
Navrhnuté dátové typu pre atribúty entít sú vidieť na predchádzajúco obrázku.
Slovník ver.2 - obojsmerný slovník
Úloha:
Vytvorte funkčný databázový model obojstranného prekladového slovníka. Daný preklad slova (anglického/slovenského) bude zaradený do kategórie.
Analýza úlohy:
Podľa zadanie je potrebné navrhnúť obojstranný prekladový slovník. V praxi to znamená, že jedno anglické slovo môže mať viac slovenských prekladov a jedno slovenské slovo môže mať taktiež viac slovenských prekladov. Medzi týmito entitami je teda vzťah M:N.
Vieme, že vzťah M:N sa nedá priamo namodelovať. Rozdelíme ho teda na dva vzťahy:
- slova_en - preklad (1:N)
- preklad - slova_sk (N:1)
Pre entitu preklad definujeme nasledujúce atribúty:
- en_id - odkaz na anglické slovo (cudzí kľúč)
- sk_id - odkaz na slovenské slovo (cudzí kľúč)
- kategorie_id - odkaz na kategóriu (cudzí kľúč)
Pre túto entitu určíme kompozintý primárny kľúč. Bude pozostávať z dvoch atribútov: (en_id, sk_id). Na nasledujúcom obrázku je obsah tabuľky preklad. V ľavej časti vidieť len hodnoty cudzích kľúčov tak, ako sú uložené v tabuľke. V pravej časti je namiesto týchto číselných hodnôt zobrazené samotné slovenské, resp anglické slovo a aj názov kategórie.
Na nasledujúcom obrázku je entitno relačný diagram pre obojsmerný prekladový slovník.
Navrhnuté dátové typu pre atribúty entít sú vidieť na predchádzajúco obrázku.
Zdroje a odkazy
- ↑ Databáza WORLD - http://dev.mysql.com/doc/world-setup/en/world-setup.html
- ↑ MySQL server - http://www.mysql.com/downloads/mysql/