Jazyk SQL: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
Riadok 78: Riadok 78:
 
**názov kategórie
 
**názov kategórie
  
[[Súbor:Prekladový slovník jednosmerný ERD.png|center|frame|Prekladový slovník jednosmerný]]
+
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)
  
[[Súbor:Prekladový slovník obojsmerný ERD.png|center|frame|Prekladový slovník obojsmerný]]
+
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 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

Imbox draft.png
Toto je projekt, na ktorom sa ešte stále pracuje!!

Aj keď sú v tomto dokumente použiteľné informácie, ešte nie je dokončený. Svoje návrhy môžete vyjadriť v diskusii o tejto stránke.

Jazyk SQL (Structured Query Language) je štandardizovaný jazyk pre prístup k dátam databázy.

Č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

Er diagram world.png

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.

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

Ú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.


Obsah tabuľky preklad

Na nasledujúcom obrázku je entitno relačný diagram pre obojsmerný prekladový slovník.

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