Transformácia ERM do RM a vytvorenie SQL skriptu

Ciele
  1. Transformácia entitno-relačného modelu na relačný dátový model.
  2. Transformácia reačného modelu na SQL skript vytvárajúci databázu.
Úvod
    Cieľom tohto cvičenia je precvičiť si transformáciu entitno-relačného modelu na relačný model používaný v relačných databázových systémoch.
Postup
  1. Na nasledujúcom obrázku môžeš vidieť ER model opisujúci študentov a ich zápis na predmety.
    Obr.: : ER model študentov zapisujúcich sa na predmety
    Úloha: Použi vybraný nástroj na relačné modelovanie na vytvorenie logického relačného modelu pre uvedený ER model zapisovania študentov na predmety.

    V rámci transformácie potrebuješ určiť primárne kľúče pre vytvorené tabuľky. Čím budeš vedieť identifikovať napr. študenta? Postačí ti kombinácia (meno, priezvisko)? Alebo sa hodí viac vytvoriť si umelý primárny kľúč?

    V rámci relačného modelu potrebuješ určiť údajové typy stĺpcov tabuliek, a ďalšie obmedzenia doménovej integrity. Vieš napr. povedať, ktoré atribúty budú povinné?

    Všimni si, že vzťah medzi študentom a predmetom má kardinalitu M:N. Čo to znamená pre relačný model? Ako takýto vzťah vyjadríš?

    Všimni si tiež, že vzťah studies medzi entitnou množinou študent a predmet je vlastne asociatívnou entitou - tento vzťah má aj atribúty. Nesie totiž nie len informáciu, že študent Janko študuje Fyziku, ale zároveň hovorí aj to, v ktorý rok bol na tú Fyziku zapísaný a akú známku vtedy dostal. Pri jeho prevode na to pamätaj, a zároveň zabezpeč, aby ten istý študent mohol v prípade potreby predmet zopakovať.

  2. V tomto kroku si precvičíš používanie DDL časti jazyk SQL na vytváranie databázy.
    Úloha: Použi DDL časť jazyka SQL na vytvorenie databázy zapisovania študentov na predmety tak, aby vytvorený skript (sekvencia príkazov) bol spustiteľný na Oracle databázovom systéme.
    Poznámka: Oproti logickému relačnému modelu tu musíš brať ohľad na konkrétny databázový systém a jeho obmedzenia a vlastnosti. Potrebuješ určiť konkrétne údajové typy stĺpcov, ktoré sú Oracle-om podporované, a taktiež aplikovať pravidlá referenčnej integrity v možnostiach, ktoré ti ponúka Oracle.

    Samozrejme, že na tejto úlohe môžeš pracovať iteratívne. Začni jednou tabuľkou, a skús ju vytvoriť správne. Ak urobíš nejaku chybu (napr. uvedieš nesprávny údajový typ), môžeš použiť príkaz ALTER TABLE, ktorým vieš modifikovať štruktúru databázy (alternatívou je zmazanie tabuľky a jej vytvorenie nanovo - ak by však v databáze boli nejaké údaje, tak týmto spôsobom by si o ne prišiel).

    Vytvorenú databázu vieš prezerať v SQL Developerovi vo svojom pripojení pod priečinkom Tables. Alternatívne vieš použiť SQL príkaz DESC pre opis databázy, napr.:

    DESC studies;

  3. Ak si doteraz pracoval na školskom serveri, tak si si v predchádzajúcom kroku mohol všimnúť, že v databáze už nejaké tabuľky máš. Každý z nás má na školskom serveri vo svojom používateľskom účte nainštalovanú databázu Chinook, ktorá predstavuje databázu obchodu so skladbami.

    Na nasledujúcom obrázku môžeš vidieť logickú relačnú schému databázy Chinook.

    Obr.: : Relačný model databázy Chinook
    Úloha: Preštuduj si relačný model databázy Chinook.
    Poznámka: Ak by si si náhodou databázu zmazal, alebo nejako poškodil, použitím nasledujúceho SQL skriptu ju vieš reinštalovať do pôvodného stavu: SQL skript na vytvorenie a naplnenie databázy
    Poznámka: Ak chceš databázu nainštalovať na svojej inštalácii Oracle DB, odporúčam použiť pôvodný skript z Chinook stránky, ktorý ti zároveň vytvorí používateľa 'chinook' s heslom 'p4ssw0rd'. Tým budeš môcť na databáze pracovať aj bez toho, aby si musel používať administrátorsky 'system' účet. Na stránke Chinook nájdeš taktiež skripty pre iné implementácie SQL, ako napr. MySQL, PostgreSQL, alebo SQL Server.
Zdroje
  1. Chinook
  2. Entity to Relation Conversion
  3. When to apply normalization in database design
  4. SQL skript na vytvorenie a naplnenie databázy
  5. Prednáška 05: Modifikácia údajov
  6. Prednáška 06: SELECT
  7. MiniFB SQL fill database script (INSERT)
  8. Príklady na dodržiavanie referenčnej integrity
Doplňujúce úlohy
    Úloha:

    Podnik

    Vytvor v jazyku SQL tabuľku s názvom Podnik, ktorá bude mat nasledujúce stĺpce:
    
    Ev_cislo  NUMBER (5)
    Priezvisko  CHAR (15)
    Meno  CHAR (10)
    Narodeny  DATE
    Ulica  CHAR (20)
    Mesto  CHAR (15)
    Poc_deti  NUMBER (2)
    Stav  CHAR (8)
    Mzda  NUMBER (8, 2)
    Poznámka: Niektoré z nasledujúcich doplňujúcich úloh bude pokračovať na tejto databáze, preto si ju nezmaž. Tieto úlohy budú začínať názvom Podnik.
    Úloha:

    Podnik

    Vytvor tabuľku Dovolenka, ktorá bude mať nasledujúce stĺpce (ev_cislo je cudzí kľúč na tabuľku Podnik):
    
    Ev_cislo NUMBER (5)
    Rok NUMBER (4)
    Dov_celkom NUMBER (2)
    Dov_cerpane NUMBER (2)
    Úloha:

    Podnik

    Vytvor tabuľku 'ucet', ktorá bude obsahovať informácie pre mzdové oddelenie o osobných účtoch zamestnancov. Tabuľka 'ucet' má nasledujúce stĺpce:
    
    cislo_transakcie NUMBER(5)
    ev_cislo NUMBER(5)
    ucet_cislo VARCHAR2(10)
    banka_cislo VARCHAR2(4)
    mzda NUMBER(10,2)
    Poznámka: Výsledná schéma databázy podnik by mala vyzerať nasledovne:
    Obr.: : Relačný model databázy Podnik
comments powered by Disqus