Relačný dátový model ako bol pôvodne definovaný vychádzal z nasledovných požiadaviek:
• Zabezpečiť vysoký stupeň dátovej nezávislosti. • Zabezpečiť minimálnu redundanciu dát spolu s konzistenciou dát s podporou sémantiky jazyka. • Sprístupniť databázu pomocou množinovo orientovaného neprocedurálneho jazyka. • Umožniť jednoduchým spôsobom reštrukturalizáciu a rast dátového modelu.
Pohľad na dáta je reprezentovaný:
- množinou dvojrozmerných objektov tzv. tabuliek,
- ktoré bývajú podrobené normalizačnému procesu,
- aby bola minimalizovaná redundancia dát
- ktoré umožňujú pomocou príkazov relačnej algebry vytvárať užívateľské pohľady na dáta.
Relačný dátový model je teda v podstate:
• založený na teórii relácií, množinovom pojme relácií a relačnej algebre, • všetky vzťahy reprezentuje vo forme tabuliek, pretože dvojrozmerné tabuľky stačia na modelovanie reálnych vzťahov, • kľúčovým pojmom používaným pri relačnom modelovaní je relácia. Pri pohľade na obr1 môžeme uviesť základné pojmy potrebné k práci s relačným modelom dát, ktoré v ďalšom texte postupne zadefinujeme a podrobne popíšeme.
Sú to:
• entita - zodpovedá tabuľke • kortéž - zodpovedá riadku tabuľky • doména - zodpovedá stĺpcu tabuľky • primárny kľúč - jednoznačný identifikátor v tabuľke, ktorý reprezentovaný stĺpcom alebo skupinu stĺpcov
Relačný pojem Reprezentácia Súborová analógia entita tabuľka súbor koréž riadok záznam doména stĺpec položka Obr. 4.2 Analógia pojmov
6 RELAČNÁ DATABÁZA
ÚVOD
Relačné databázové systémy spolu s relačným systémom riadenia bázy dát sa stali najpoužívanejšími databázovými systémami.
#RC Meno Priezvisko Ulica Obec PSC Nar Okres 801106/3456 Peter Novák Kamenná 27 Banská Bystrica 97401 SR Bans 800312/7845 Stanislav Steinmüller Zelená 9 Nové Mesto nad Váhom 91501 SR Tren 790907/1259 János Tóth Slnečné námestie Komárno 94501 MR Komá 810130/3695 Marek Rátroch Stred 49/7 Považská Bystrica 01701 SR Pova 781201/1248 Bohuslav Biely Juh 2100/456 Trenčín 91101 SR Tren 810514/5341 Branislav Baláž Ťahanovce 38/12 Košice 04000 SR Koši 781015/4431 Peter Kapustný Javorová 2 Žilina 01001 SR Žili 800407/3522 Marek Ďurica Prečín 124 Prečín 01701 SR Pova 791229/5431 Martin Kľúčiar A. Bernoláka 14/20 Žilina 01001 SR Žili 771124/3578 Lukáš Satrapa Dolná 12 Čadca 02201 ČR Čadc 771203/5472 Ján Krnáč Prievoznícka Ružomberok 03401 SR Ružo 790310/2145 Juraj Papún Košická cesta Michalovce 07101 SR Mich
6.1.1 Domény
Doména reprezentuje stĺpec relácie určený v rámci relácie svojim unikátnym názvom množinou prípustných hodnôt.
Je potrebné pochopiť čo je najmenšia jednotka používaná v relačnom modeli. Je ňou konkrétna dátová hodnota, ktorá napríklad reprezentuje meno nejakej osoby, číslo výrobku, hmotnosť výrobky, počet kusov, a pod. Od dátovej hodnoty je požadované, aby bola atomická tzn. ďalej nedeliteľná. C.J. Date [Date95] ju nazval skalárom, čo je termín pomerne zriedkavo sa vyskytujúci v databázovej literatúre, ale veľmi vhodný pre budúce pochopenia relačných databáz.
Skalár je hodnota, ktorá reprezentuje najmenšiu sémantickú jednotku dát. Samotný skalár nemá vnútornú štruktúru, je nedekomponovateľný. Napríklad hodnota priradená názvu predmetu nie je ďalej dekomoponovateľná bez straty významu. Je síce zložená z množiny znakov (písmen), ale samotné nemajú žiadnu informačnú hodnotu. Občas pri definovaní hodnôt patriacich do nejakej množiny priradenej doméne je možné uvažovať o istom význame jednotlivých znakov, ktoré samotné majú alebo môžu mať informačný význam. V tomto prípade je však vhodnejšie dekomponovať príslušný atribút na niekoľko významovo samostatných atribútov. Pri intervale - v prípade definovania domén pomocou intervalu je možné uvažovať s priradením významu čiastkovým intervalom. (napr. žilinskí študenti majú definované osobné čísla v intervale 1000 - 4999, prievidzskí v intervale 5000 - 9000 a ružomberskí nad 9000).
Množina takýchto hodnôt (rovnakého dátového typu) sa nazýva doména (domain).
Reprezentácia domén:
• Interval • Množina Doména môže byť definovaná napr. ako interval (číselných) hodnôt alebo ako množina vymenovaných hodnôt, atď. Príklad Pre osobné číslo sú to hodnoty typu integer od 1 povedzme do 10 000, alebo pre atribút farba je to množina prípustných farieb {biela, žltá, zelená, čierna, červená, modrá}.
Typy domén:
• Jednoduchá • Kompozitná Jednoduchá doména sa týka jednoduchého atribútu a reprezentuje len hodnoty tvoriace prípustnú množinu hodnôt tohoto atribútu. Doména je množina hodnôt toho istého typu pre daný atribút. Reprezentuje vlastne definičný obor príslušného atribútu. Kompozitná doména (napr. doména DÁTUM) je definovaná ako kartézsky súčin hodnôt jednoduchých domén atribútov tvoriacich kompozitnú doménu. Príklad Typickým príkladom zloženej domény je pre zložený atribút typu dátum, kde doména typu DEN je množina (1...31), typu MESIAC je množina (1...12) a typu ROK je množina (OO...99). Počet prvkov takto definovanej domény je daný súčinom počtu prvkov každej jednoduchej domény, teda 31x12x99, čo dáva množinu o mohutnosti 36828 prvkov reprezentujúcu vyčerpávajúco všetky možnosti kombinácií hodnôt trojice atribútov (DEN, MESIAC, ROK). Avšak čitateľovi je zrejmé, že takto definovaná doména obsahuje aj hodnoty, ktoré sú z istého hľadiska neprípustné. Ako vyriešime tento problém bude popísané v časti venujúcej sa relačnej integrite.
Význam domén Dôležité je si uvedomiť, že domény majú veľký význam pri relačných operáciách. Napríklad pri operáciach spojenia, porovnania, atď. nemá zmysel pracovať s atribútmi ak nie sú z rovnakej domény. Preto je nutné definovať rovnaké domény pre atribúty v rôznych reláciach, ktoré vyžadujú rovnaké množiny prípustných hodnôt a obzvlášť v prípadoch ak sa nad hodnotami atribútov z rôznych relácií budú vykonávať operácie predpokladajúce príslušnosť do rovnakých domén.
Príklad:
SELECT Student.*,ZPredmet.* FROM Student,ZPredmet WHERE Student.OC=ZPredmet.OC
má zmysel, lebo student.OC a predmet.OC patria do rovnakej domény. Ale SELECT Student.*,ZPredmet.* FROM Student, ZPredmet WHERE Student.OC=ZPredmet.Cis_predmet
asi nemá zmysel hoci Student.OC a ZPredmet.Cis_predmet sú čísla typu integer, ale vyjadrujú rôzne významy hodnôt príslušných atribútov. Definícia domén V niektorých DDL (Data definition language - jazyk popisu dát) pre relačné databázové systémy je možné definovať domény ako súčasť popisu schémy dátového modelu, čo umožní definovať istý druh integritných obmedzení vyplývajúcich z definície typu dát. (Analógia s jazykom Pascal pri definícii typov).
Doménu môžeme popísať nasledovným príkazom:
CREATE DOMAIN menodomény AS dátovýtyp; Kde meno_domény popisuje meno domény dátový_typ určuje prípustný dátový typ (Napr. CHAR(n), NUMERIC, DATE, SMALLINT,apod. Príklad - Defícia relácie bez použitia domén create table os_udaje ( rod_cislo char(11) not null, meno char(15), priezvisko char(15), ulica char(20), obec char(20), psc char(5), st_prisl char(2), okres char(4) ); Príklad - Defícia doménypre atribút OKRES create domain DOMENA_OKRES AS char(4); Príklad - Defícia relácie s použitím domény create table os_udaje ( rod_cislo char(11) not null, meno char(15), priezvisko char(15), ulica char(20), obec char(20), psc char(5), st_prisl char(2), okres DOMENA_OKRES(4) ); Príklad - Defícia domény pre atribút OS_CISLOdefinovanej ako interval create domain DOMENA_OC
AS SMALLINT
CHECK VALUES >1 AND R(n-1)->..->R2->R1 • Relácie R1 s KPK a relácia R2 s FK môžu byť totožné. • V relácii sa môže vyskytnúť referenčný cyklus. Napr.: Rn->R(n-1)->..->R2->R1->R n • FK vyjadrením vzťahu medzi dvojicou n-tíc a reprezentuje spojivo medzi reláciami.
6.2.2 Doménová integrita Doménová integrita reprezentuje množinu integritných obmedzení, ktoré zdieľajú všetky hodnoty atribútov priradených k tejto doméne.
Druhy doménovej integrity:
• Typ dát • Množinu prípustných hodnôt • Usporiadatelnosť – t.j. či je možné pre porovnanie hodnôt domény použiť relačný operátor >, >=, =< alebo 1 AND DOM_OC= 1.1.1999 AND VALUE