Návrat na detail prednášky / Stiahnuť prednášku / Technická Univerzita Košice / Strojnícka fakulta / Databázové systémy
Teória databázové systémy 1-6 (databazove_systemy1-6.doc)
DATABÁZOVÉ SYSTÉMY
CHARAKTERISTIKA PREDMETU:
Základy databázových systémov
CIELE PREDMETU:
Získanie základov z teórie databázových systémov a základných zručností pri tvorbe databázových aplikácií klient-server v prostredí alfanumerickom a grafickom.
ORGANIZÁCIA PREDMETU
- Prednášky, cvičenia
- Ukončenie predmetu – skúška ( 5 kreditov)
- Výsledok skúšky = body zo skúšky + body za zápočet
- Skúška – max 80 bodov, min 41 bodov
- Písomná časť - max 40 bodov, min 20 bodov
- Ústna časť – teória – max 40 bodov, min 20 bodov
- Podmienky udelenia zápočtu
- Pravidelná účasť na cvičeniach – max 3 ospravedlnené neúčasti
- Referát – max 5 bodov
- Odovzdanie zadaní v určenom termíne v požadovanej kvalite
- 2 zadania – max 7 + 8 bodov
- Zápočet – max 20 bodov, min 11 bodov
ZÁKLADNÉ POJMY
Databáza
- nejaký aspekt reálneho sveta, niekedy nazývaný minisvet,
- množina dát, ktoré logicky súvisia a majú prirodzený význam,
- navrhnutá, vytvorená a udržiavaná pre špecifikovaný účel.
Systém riadenia bázy dát (SRBD, DBMS - DataBase Management System)
- Definovanie databázy - špecifikácia dátových typov, štruktúr a podmienok pre dáta.
- Konštrukcia databázy - proces ukladania dát na nejaké pamäťové médium riadený SRBD.
- Manipulácia - dotazovanie bázy dát.
- Databázový systém = databáza + programové vybavenie spolu
CHARAKTERISTIKY DB PRÍSTUPU
- meta-data - popis štruktúry primárnej databázy, štruktúra dát; systémový katalóg=dátový slovník=data dictionary
- nezávislosť programov a dát - prístupové programy SRBD nezávislé od štruktúry dát.
- operácia (tiež funkcia) má dve časti. Popis operácie = názov operácie a dátové typy argumentov operácie. Implementácia (metóda) - špecifikovaná oddelene; môže byť zmenená bez vplyvu na popis.
- nezávislosť programov a operácií - používateľské programy: práca s dátami, použitie metód prostredníctvom ich mien a argumentov bez ohľadu na to, ako sú operácie implementované
- dátová abstrakcia - vlastnosť umožňujúca nezávislosť programov od dát
- dátový model - typ dátovej abstrakcie; konceptuálny pohľad na dáta.
- operačná abstrakcia - používateľské programy: použitie operácie bez znalosti detailov a ich implementácie
- pohľady - podmnožina databázy alebo virtuálne dáta odvodené z databázy, ale nie sú v nej explicitne umiestnené. SRBD - prostriedky pre definovanie pohľadov.
- zdieľanie dát a spracovanie transakcií. SRBD - prístup do databázy viacerým používateľom v tom istom čase.
ĎALŠIE CHARAKTERISTIKY
- Riadenie resp. kontrola redundancie. Redundancia - viacnásobný výskyt tých istých dát. Riadenie redundancie vo fáze návrhu databázy.
- Obmedzenie neautorizovaného prístupu - podsystém pre zabezpečenie bezpečnosti a autorizácie.
- Trvalý priestor pre programové objekty a dátové štruktúry - objektovo orientované databázy.
- Použitie deduktívnych pravidiel - základ pre deduktívne databázy.
- Poskytovanie rôznych používateľských interfejsov.
- Schopnosť SRBD reprezentovať rôzne zložité vzťahy medzi dátami tak, aby prehľadávanie a zmeny dát prebehli ľahko a efektívne.
- Podmienky integrity - prostriedky pre definíciu týchto podmienok, definícia vzťahov medzi dvoma súbormi resp. tabuľkami.
- Podpora obnovy a zotavenia databázy po chybách (backup, recovery).
POUŽÍVATELIA DBS
- Databázový administrátor.
- Návrhári databázy
- Systémoví analytici - analýza požiadaviek koncových používateľov, návrh služieb, ktoré tieto požiadavky realizujú
- Aplikační programátori - implementácia produktu systémových analytikov
- Koncoví používatelia
PREHĽAD VÝVOJA DBS
Pred rokom 1960
1945 vyvinuté magnetické pásky, ktoré nahradili štítky a papierové pásky. Prvé médium, ktoré umožňuje vyhľadávanie.
1957 inštalovaný prvý komerčný počítač
1959 McGee navrhol zápis všeobecného prístupu k elektronicky uloženým dátam
1959 IBM zaviedla Ramac systém - dáta sú čítané nesekvenčným spôsobom
60 - te roky
1961 prvý všeobecný SRBD GE’s Integrated Data Store(IDS) navrhnutý Bachmanom, ktorý spopularizoval diagramy dátových štruktúr (DSD - data structure diagram). Bol vytvorený sieťový model dát a skupina databázových jazykov ako CODASYL, DBTG.
1965 - 1970
- boli vyvinuté všeobecné systémy riadenia súborov, ktoré poskytli dvojúrovňový konceptuálny a používateľský pohľad na organizáciu dát.
- IMS (Information Management System) vyvinutý firmou IBM zformoval základ pre hierarchický dátový model.
- IMS DB/DC (database/ data communication) podporil sieťové pohľady.
- SABRE vyvinuutý IBM a American Airlines umožnil viacpoužívateľský prístup k dátam vyžadujúci sieťovú komunikáciu.
70 - te roky
Databázové technológie sa prudko rozšírili, mnohé SRBD boli vyvíjané ako akademická disciplína a oblasť výskumu.
1970 Tedom Coddom bol vyvinutý relačný model a stal sa základom pre teóriu databáz.
1975 prvé medzinárodné konferencie podporujúce šírenie a vývoj databáz.
1976 Chen predstavil entitno-relačný (ER) model. Vznikli také databázové systémy ako System R, INGRES, ADABAS a iné. Boli vyvinuté dotazovacie jazyky (query languages) - SQUARE, SEQUEL (SQL), QBE, QUEL.
80 - te roky
Boli vyvinuté SRBD pre osobné počítače ako DBASE, PARADOX, atď.
Umožnili používateľom definovať a manipulovať s dátami, postrádali však podporu viacpoužívateľského prístupu a oddelenie dát a programov.
1983 štatistikou sa zistilo, že bolo implementovaných viac ako 100 relačných systémov začiatkom 80-tych rokov. Objavili sa komerčné databázové systémy ako DB2, ORACLE, SYBASE, INFORMIX,atď.
1985 bol publikovaný predbežný štandard Sql, objavili jazyky 4. generácie a sieťové definičné jazyky. Generovali sa kompletné aplikačné programy.
Trend 80-tych rokov smeruje k expertným databázovým systémom, objektovo-orientovaným SRBD, k architektúre klient-server pre distribuované databázy.
90 - te roky
- požiadavka na rozšírenie schopností SRBD pre nové typy aplikácií, zohľadnenie priestorových, časových a multimediálnych dát, zahrnutie aktívnych a deduktívnych schopností,
- objavenie sa komerčných objektovo-orientovaných SRBD.
- požiadavka na vývoj aplikácií používajúcich dáta z rôznych zdrojov - heterogénne a multidatabázové systémy,
- požiadavka na využívanie masívnych paralelných procesorov.
SÚČASNOSŤ
- XML, Main memory db, Very large db, ....
- Predmet Pokročilé db technológie
DÁTOVÉ MODELY, SCHÉMY, INŠTANCIE
Dátový model - množina pojmov popisujúca štruktúru databázy - dátové typy, vzťahy a podmienky resp. obmedzenia, ktoré by sa mali zachovávať medzi dátami.
Kategórie dátových modelov
- Konceptuálny dátový model - popis dát, ktorý bude zrozumiteľný pre väčšinu používateľov (ERM)
- Fyzický model - detailný popis dát, ktoré sú uložené v databáze.
- Reprezentačný (implementačný) model je kategóriou medzi týmito dvoma modelmi- relačný, hierarchický, sieťový, objektový model, atď.
SCHÉMY A INŠTANCIE
Databázová schéma (resp. meta-data) - popis databázy, špecifikuje sa v procese návrhu databázy, diagram schémy.
Inštancie - aktuálne dáta v databáze
- stav databázy resp. množina inštancií - dáta v databáze v určitom momente
- jednoznačnosť medzi schémou a stavom databázy
- prázdny stav (bez dát) - definovanie databázy pomocou databázovej schémy
- počiatočný stav - ak prvýkrát naplníme databázu dátami
- každý stav databázy v ľubovoľnom okamihu by mal byť platný stav.
TROJÚROVŇOVÁ ARCHITEKTÚRA SRBD
Interná schéma - fyzická štruktúra databázy, fyzický model, kompletné detaily umiestnenia dát, prístupová cesta k databáze.
Konceptuálna schéma - štruktúra databázy pre určitú skupinu ľudí, zakrýva detaily fyzickej štruktúry; popis entít, dátových typov, vzťahov medzi entitami, používateľských operácií a obmedzení.
Externá schéma - používateľské pohľady, popis časti databázy pre vybranú skupinu používateľov, zvyšok databázy pre túto skupinu je neprístupný.
Mapovanie - proces transformovania požiadaviek medzi jednotlivými úrovňami.
Nezávislosť dát - schopnosť zmeniť schému na jednej úrovni databázového systému bez zmien schémy na vyššej úrovni.
- Nezávislosť logických dát - schopnosť zmeniť konceptuálnu schému bez zmien externej schémy alebo aplikačných programov.
- Fyzická nezávislosť dát - schopnosť zmeniť internú schému bez zmien konceptuálnej resp. externej schémy.
DATABÁZOVÉ JAZYKY
- SQL (Structured Query Language) – štruktúrovaný dotazovací jazyk - kombinácia DDL, DML a DCL
- Jazyk pre definíciu dát (Data Definition Language - DDL) – create database, create table, create index
- Jazyk pre manipuláciu s dátami (Data Manipulation Language - DML) - insert, delete, select, update
- Jazyl pre riadenie prístupu k dátam (Data Control Language) - grant, revoke
- Jazyk pre správu transakcií – commit, rollback
- 3GL
- 4GL
- ESQL –embedded SQL (C-jazyk, COBOL, FORTRAN, ...)
KLASIFIKÁCIA SRBD
Rôzne kritériá
- Podľa dátového modelu - relačné, sieťové, hierarchické, objektovo-orientované, a iné
- Podľa počtu používateľov- jednopoužívateľské a viacpoužívateľské
- Podľa počtu miest, do koľkých je databáza distribuovaná:
- centralizované - dáta umiestnené na jednom počítačovom mieste
- distribuované - aktuálna databáza a SRBD sú umiestnené na viacerých miestach počítačovej siete
- homogénne - SRBD je ten istý pre všetky miesta v sieti
- heterogénne - podpora existencie autonomných databáz v počítačovej sieti.
DÁTOVÉ MODELOVANIE
- analýza a návrh informácií v systéme – oblasť modelovania a projektovania IS
- dôraz na logické entity a logické závislosti medzi týmito entitami
- určitá úroveň dátovej abstrakcie – zakrytie detailov štruktúry, umiestnenia
- Dátový model – množina pojmov a pravidiel popisujúca štruktúru bázy dát
- štruktúra db = dátové typy + vzťahy + podmienky zachovávajúce sa medzi dátami
- model – konceptuálny, fyzický, implementačný
FÁZY NÁVRHU DATABÁZY
FÁZY NÁVRHU DATABÁZY
- sústredenie požiadaviek a ich analýza
- vytvorenie konceptuálnej schémy pre databázu
- návrh logickej schémy databázy alebo mapovanie dátového modelu, špecifikácia DBMS
- návrh fyzickej schémy databázy
ENTITNO-RELAČNÝ MODEL
- Logický pohľad na databázu
- Entita
- Vzťah
- Atribút
- Doména
- Entitno-relačný diagram
ZÁKLADNÉ POJMY
ENTITA
- základný objekt ER modelu
- časť reálneho sveta s nezávislou existenciou
- názov entity
ATRIBÚT
- vlastnosť entity
- hodnoty z domény
DOMÉNA
ATRIBÚT
Matematický zápis:
A : E ® P( V )
A – atribút
E – entitný typ
V – množina hodnôt
A(e) – hodnota atribútu A entity e
pre zložený atribút A
V = P(V1) ´ P(V2) ´ . . . ´ P(Vn)
Vi – množiny hodnôt jednoduchých atribútov, i = 1, ..., n
TYPY ATRIBÚTOV
- jednoduché a zložené
adresa ( štát, mesto, ulica, číslo domu )
- jednohodnotové a viachodnotové
titul ( prof., doc., ing., PhD., CSc. )
- stále (pevné) zapamätané a odvodené
rodné číslo; vek
- hodnota NULL
KĽÚČOVÝ ATRIBÚT
- hodnoty sú jedinečné pre každú individuálnu entitu
- jednoznačne určuje každú entitu
- zložený kľúč
VZŤAHY
Vzťah (relácia) R medzi entitnými typmi E1, E2, ... , En -
množina spojení medzi entitami týchto typov.
- R je množina inštancií vzťahov ri
- každé ri spája n entít (e1, e2, . . . , en)
- každá entita ej v ri je členom entitného typu Ej ,
pričom 1<= j <= n
- Typ vzťahu je matematická relácia na E1, E2, . . . ,En
- môže byť definovaný ako podmnožina karteziánskeho súčinu E1 ´ E2 ´ . . . ´ En
- Každý z entitných typov E1 , E2 , . . . , En sa zúčastňuje na vzťahu R a podobne každá z individuálnych entít e1 , e2 , . . . , en sa zúčastňuje v inštancii vzťahu ri = (e1 , e2 , . . . , en ).
VLASTNOSTI VZŤAHOV
- stupeň vzťahu - počet zúčastňujúcich sa entitných typov
- kardinalita (násobnosť) vzťahu - vzťah medzi dvomi entitami; počet výskytov jednej entity voči druhej; 1:1, 1:N a M:N.
- povinnosť, resp. voliteľnosť - špecifikuje, či existencia entity závisí od existencie inej entity prostredníctvom vzťahu, ktorý je medzi týmito dvomi entitami
- totálna - ku každému výskytu jednej entity musí existovať výskyt v druhej entite
- čiastočná - ku každému výskytu jednej entity môže alebo nemusí existovať inštancia druhej entity
VLASTNOSTI VZŤAHOV
- štrukturálne podmienky relácie = kardinalita + povinnosť vzťahu
- slabý vzťah
- rekurzívny vzťah
- supertyp, subtyp
LOGICKÁ SCHÉMA
RELAČNÝ DÁTOVÝ MODEL
- 1971 - princíp relačného dátového modelu bol prvýkrát navrhnutý E.F.Coddom
Základné pojmy:
- RM - databáza ako množina relácií
- každá relácia je podobná tabuľke príp. súboru
- riadok v tabuľke - množina súvisiacich dátových hodnôt
- riadok - záznam (tuple) resp. inštancia (výskyt entity)
- hlavička (názov) stĺpca – atribút
- tabuľka sa nazýva relácia
- doména - dátový typ popisujúci typ hodnôt v každom stĺpci
RELAČNÁ SCHÉMA
- relačná schéma popisuje štruktúru relácie
Definícia podľa Elmasri, Navathe
R(A1, A2, . . ., An) – relačná schéma
- R - meno relácie
- A1, A2, . . ., An - zoznam atribútov
- D = dom(Ai) - doména atribútu Ai
- r(R) - inštancia relácie r relačnej schémy R(A1, A2, . . ., An), množina entíc r={t1, t2, . . ., tm}
- entica - zoznam n hodnôt t = <v1, v2, . . .,vn>, kde každá hodnota vi, 1<=i<=n, je prvkom domény dom(Ai) alebo špeciálna hodnota null
FYZICKÁ SCHÉMA
RELAČNÁ SCHÉMA
dodavatel (id_dodavatela, meno_dodavatela, adresa)
tovar (id_tovar, nazov_tovaru, pocet_sklad, cena_tovaru)
objednavka (cislo_obj, id_dodavatela, datum_obj, celkova_suma )
polozka_obj (cislo_obj, id_tovar, cislo_polozky, pocet)
INÉ DEFINÍCIE
r(R) Í (dom(A1) X dom(A2) X . . . dom(An) )
Definícia podľa Codda:
Majme systém množín D1,D2, . . . Dn, potom relácia R je relácia na týchto množinách taká, že relácia je usporiadaná n-tica < d1, d2,. . dn >, kde di Î Di pre každé i z intervalu 1 až n. Di sú domény relácie R.
CHARAKTERISTIKY RELÁCIÍ
- zoradenie entíc v relácii
- poradie hodnôt v entici -korešpondencia medzi atribútmi a hodnotami
- hodnoty v entici - atomické hodnoty
- homogenita stĺpcov - doména
- jedinečnosť riadkov
Báza dát v relačnom modeli je konečná množina v čase premenných konečných relácií, ktoré sú definované nad doménami D1, D2, . . . , Dn.
PODMIENKY RELAČNÉHO MODELU
tzv. integritné podmienky
- entitná (relačná) integrita
- referenčná integrita
- doménová integrita
- podmienky pre kľúče
ENTITNÁ INTEGRITA
- primárny kľúč PK (Primary Key)
- jednoznačná identifikácia entice v relácii
- primárny kľúč nemôže mať hodnotu null
REFERENČNÁ INTEGRITA
- definovaná medzi dvoma reláciami
- zabezpečuje konzistenciu medzi enticami týchto dvoch relácií
- definícia cudzieho kľúča FK (Foreign Key)
Množina atribútov FK v relácii R1 je cudzím kľúčom R1, ak spĺňa nasledujúce dve pravidlá:
- Atribúty FK majú tú istú doménu ako atribúty primárneho kľúča PK v relačnej schéme R2; atribúty FK sú referenciou alebo referujú do relácie R2.
- Hodnota FK v entici t1 relačnej schémy R1 sa vyskytuje ako hodnota PK pre nejakú enticu t2 v R2 alebo má hodnotu null.
t1[FK] = t2[PK]
Entica t1 referuje do entice t2.
DOMÉNOVÁ INTEGRITA
- doména
- hodnota každého atribútu A musí byť atomickou hodnotou a musí byť z domény
- príklady dátových typov pre takéto domény : integer, real, char, string, date, time, money, enumerate
PODMIENKY PRE KĽÚČE
- žiadne dve entice nemôžu mať tú istú kombináciu hodnôt atribútov
t1[SK] ¹ t2[SK]
- SK - podmnožina atribútov, superkľúč relačnej schémy R
- t1, t2 - dve jedinečné inštancie relácie
- minimálny kľúč
- kandidát (candidate) kľúč
DATABÁZOVÁ SCHÉMA
Relačná databázová schéma S je množina relačných schém S = {R1, R2 . . ., Rm} a množina podmienok integrity IC (Integrity Constraints).
Relačná databázová inštancia DB z S je množina inštancií DB = {r1, r2, . . ., rm} taká, že relácie ri spĺňajú podmienky integrity špecifikované v IC.
PORUŠENIE IC - INSERT
- porušenie doménovej integrity
- porušenie kľúčovej integrity
- hodnota primárneho kľúča je null - porušenie entitnej integrity
- hodnota cudzieho kľúča neexistuje v relácii, na ktorú referuje - porušenie referenčnej integrity
PORUŠENIE IC - DELETE
- zrušenie entíc v relačnej databázovej schéme
- jedine porušenie referenčnej integrity
- entica, ktorá má byť zrušená,obsahuje primárny kľúč, na ktorý sa odvoláva iná entica v DBS
PORUŠENIE IC - UPDATE
- zmena hodnôt jedného alebo viacerých atribútov v entici príp. enticiach v nejakej relácii R
- modifikácia atribútov, ktoré nie sú primárnym alebo sekundárnym kľúčom, nie je problematická
- SRBD - kontrola zachovania doménovej integrity
- modifikácia primárneho kľúča je vlastne delete jednej entice a insert inej na toto miesto
- ak sa modifikuje cudzí kľúč, SRBD musí zaistiť, že nová hodnota bude referovať na existujúcu enticu v príslušnej relácii.
RIEŠENIE PORUŠENÍ IC
- SRBD
- Trigger, storovaná procedúra
SIEŤOVÝ MODEL
Dod1
Dod2
Dod3
Obj1
Obj2
Obj3
200
300
400
300
400
200
Tovar1
Tovar2
Tovar3
Tovar4
HIERARCHICKÝ MODEL
Dod1
Dod2
Dod3
Obj1
Obj2
Obj3
Tovar1
Tovar2
Tovar3
Tovar4
Tovar1
Tovar5
Tovar2
Tovar4
RELAČNÁ ALGEBRA
- množina operácií, ktorá je použitá na manipuláciu s reláciami
- realizáciu dotazov na databázu, napr. výber záznamov z relácií, kombinácia vzťahujúcich sa záznamov z niekoľkých relácií
- výsledok každej takejto operácie je znova relácia, s ktorou sa ďalej môže manipulovať
- operácie relačnej algebry sa delia do dvoch skupín:
- množinové operácie – zjednotenie, prienik, rozdiel a kartézsky súčin
- relačné operácie – selekcia, projekcia a spojenie
- úplný súbor operácií RA = {s, p, È, -, ´}
PRÍKLAD
RELAČNÉ OPERÁCIE - SELEKCIA
SELEKCIA (select)
- výber podmnožiny záznamov v relácii, ktoré spĺňajú výberovú podmienku
- výber riadkov z tabuľky – horizontálny výber
- unárna operácia
- stupeň výslednej relácie = stupeň pôvodnej relácie
- počet záznamov výsledku selekcie <= počet záznamov pôvodnej relácie
Všeobecný zápis
σ<výberová_podmienka>(<meno_relácie>)
- σ (sigma) – symbol pre operátor (operáciu select)
- výberová_podmienka – booleovský výraz špecifikovaný nad atribútmi relácie v tvare
- <meno_atribútu> <relačný_operátor> <konštanta>
- <meno_atribútu> <relačný_operátor> <meno_atribútu>
- relačný_operátor: < ,> ,= , ≠, ≤, ≥
- jednotlivé klauzuly vo výberovej podmienke môžu byť spojené operátormi AND, OR, NOT
RELAČNÉ OPERÁCIE - SELEKCIA
- selekcia je komutatívna operácia:
σ<výberová_podmienka1>( σ<výberová_podmienka2>)(R)) =
σ<výberová_podmienka2>( σ<výberová_podmienka1>)(R))
- ľubovoľné poradie vykonávania selekcií
- transformácia kaskádneho select-u do jednoduchej select operácie s konjunkciou (AND):
σ<výberová_podmienka1>( σ<výberová_podmienka2>(...( σ<výberová_podmienkan> (R))...)) =
σ<výberová_podmienka1>AND <výberová_podmienka2>AND... <výberová_podmienkan> (R)
RELAČNÉ OPERÁCIE - PROJEKCIA
PROJEKCIA (project)
- výber určitých atribútov z relácie, resp. určitých stĺpcov z tabuľky
- vertikálny výber
- unárna operácia
Všeobecný zápis
π<zoznam_atribútov>(<meno_relácie>)
- π (pi) symbol operácie projekcia
- <zoznam_atribútov> - zoznam atribútov relácie s meno_relácie
- atribúty výslednej relácie = atribúty špecifikované v zozname atribútov
- poradie atribútov výslednej relácie = poradie atribútov v zozname atribútov
- stupeň relácie = počet atribútov v zozname atribútov
- ak zoznam atribútov obsahuje iba nekľúčové atribúty, výsledok projekcie môže obsahovať duplicitné záznamy
- operácia projekcia implicitne odstraňuje duplicitné záznamy
- počet záznamov výsledku projekcie <= počet záznamov v pôvodnej relácii
- ak zoznam projekcie obsahuje kľúč relácie, výsledná relácia má ten istý počet záznamov ako pôvodná relácia
- π<zoznam_atribútov1> (π<zoznam_atribútov2> (R)) = π<zoznam_atribútov1>(R) – neplatí komutatívny zákon
Postupnosť operácií a premenovanie atribútov
- jednoduché výrazy relačnej algebry vhniezdené do operácií
- vytváranie medzivýsledkov a ich pomenovanie
RELAČNÉ OPERÁCIE - SPOJENIE
SPOJENIE (join)
- kombinovanie súvisiacich záznamov z dvoch relácií do jednoduchých záznamov
- spracovanie vzťahov medzi reláciami
Všeobecný zápis
Q ← R ⋈<podmienka_spojenia> S
R(A1, A2, ..., An), S(B1, B2, ..., Bm) – relácie
Q(A1, A2, ..., An, B1, B2, ..., Bm) – výsledok spojenia
Tvar podmienky spojenia:
<podmienka> AND <podmienka> AND… AND<podmienka>
- každá podmienka je v tvare Ai θ Bj
- Ai je atribút relácie R
- Bj je atribút relácie S
- Ai a Bj majú tú istú doménu
- θ je jeden z relačných operátorov {< ,> ,= , ≠, ≤, ≥ }
THETA JOIN - operácia JOIN so všeobecnou podmienkou spojenia
Záznamy obsahujúce null atribúty sa vo výsledku neobjavia.
EQUIJOIN - podmienky spojenia iba s operátorom rovnosti (=)
NATURAL JOIN (*) - vyžaduje, aby dva join atribúty (alebo každá dvojica atribútov) mali ten istý názov, špeciálny prípad EQUIJON
Q ← R * (<zoznam1>,<zoznam2>) S
- <zoznam1> - zoznam atribútov z relácie R
- <zoznam2> - zoznam atribútov z relácie S
MNOŽINOVÉ OPERÁCIE
- štandardné množinové relácie
- aplikované v relačnom modeli
- relácia je definovaná ako množina záznamov
- zjednotenie, prienik, rozdiel – binárne operácie
- aplikovanie týchto troch operácií v relačných databázach nad dvoma reláciami vyžaduje splnenie podmienky kompatibility zjednotenie
Podmienka kompatibility zjednotenia - obidve relácie musia byť toho istého typu, t.j. musia mať rovnakú relačnú schému
Dve relácie R(A1, A2, ..., An) a S(B1, B2, ..., Bm) sú vzhľadom k zjednoteniu kompatibilné, ak majú ten istý stupeň n a ak dom(Ai) = dom(Bi), pre 1 ≤ i ≤ n.
To znamená, dve relácie majú rovnaký počet atribútov a každá dvojica zodpovedajúcich atribútov má tú istú doménu.
- zjednotenie (union): výsledok operácie R È S je relácia, ktorá obsahuje všetky záznamy, ktoré patria buď do R alebo do S alebo do R aj S. Duplicitné záznamy sú eliminované.
- prienik (intersection) : výsledok operácie R Ç S je relácia, ktorá obsahuje všetky záznamy, ktoré patria do R aj do S.
- rozdiel (difference): výsledok operácie R – S je relácia , ktorá obsahuje všetky záznamy, ktoré patria do R, ale nepatria do S.
- R È S = S È R
- R Ç S = S Ç R
- Operácie zjednotenie a prienik sú komutatívne operácie.
- Ak máme tri relácie R, S, T platí asociatívny zákon:
- R È (S È T) = (RÈ S) È T
- R Ç (S Ç T) = (R Ç S) Ç T
- Operácia rozdiel nie je komutatívna.
- R – S ≠ S – R
- karteziansky súčin, označovaný ´
- binárna operácia - relácie, nad ktorými je aplikovaný karteziansky súčin nemusia byť kompatibilné vzhľadom k zjednoteniu
- CROSS SÚČIN alebo CROSS JOIN.
Všeobecný zápis
Q(A1, A2, ..., An, B1, B2, ..., Bm) ← R(A1, A2, ..., An) ´ S(B1, B2, ..., Bm)
je relácia Q s n+m atribútmi Výsledná relácia Q má jeden záznam pre každú kombináciu záznamov – jeden z R a jeden z S.
- Predpokladajme:
- nR – počet záznamov relácie R
- nS – počet záznamov relácie S
- výsledok operácie R ´ S bude mať nR * nS záznamov.
PRÍKLAD
ÚPLNÝ SÚBOR OPERÁCIÍ
Množina operácií relačnej algebry
{σ , π, È, –, ´ }
je kompletná (úplná) množina.
Spojenie
R ⋈<podmienka_spojenia> S º σ<podmienka_spojenia> (R ´ S)
Prienik
R Ç S º (R È S) – ((R – S) È (S – R))
FUNKČNÉ ZÁVISLOSTI A NORMALIZÁCIA PRE RELAČNÉ DATABÁZY
Dve úrovne vhodnosti relačných schém
- logická úroveň
- manipulačná resp. ukladacia úroveň
Kritériá návrhu relačnej schémy
- sémantika atribútov
- redukcia redundantných hodnôt v záznamoch
- redukcia null hodnôt v záznamoch
- odmietnutie falošných (podvrhnutých, nepravých) záznamov
NENORMALIZOVANÁ FORMA
ČÍSLO_OBJ | KÓD_TOVARU | DÁTUM | POČET | CENA | DODÁVATEĽ |
|
|
|
|
|
|
| KÓD | MENO | ADRESA |
1234 | A34 | 050218 | 150 | 100 | S46 | NOVAK | NR |
1234 | A47 | 050218 | 4 | 50 | S46 | NOVAK | NR |
1459 | A34 | 050415 | 200 | 100 | S46 | NOVAK | NR |
1368 | A49 | 050219 | 40 | 200 | S50 | PETERKA | ZA |
1368 | A50 | 050219 | 15 | 150 | S50 | PETERKA | ZA |
1368 | A34 | 050219 | 4 | 100 | S50 | PETERKA | ZA |
NORMALIZÁCIA
- normalizácia - postupné určovanie štruktúry relácie
- 1972 - E.F. Codd - definoval tri úrovne normalizácie
- 1NF až 3NF - založené na funkčných závislostiach medzi atribútmi relácie
- Boyce-Coddova normálna forma (BCNF) - silnejšia definícia 3NF
- 4NF a 5NF - sú založené na viachodnotových závislostiach a join závislostiach
- Formálny rámec
- Séria testov
POSTUP NORMALIZÁCIE
PRVÁ NORMÁLNA FORMA
Relácia je v prvej normálnej forme, ak všetky atribúty sú ďalej nedeliteľné (atomické)
- nie sú povolené viachodnotové atribúty
- nie sú povolené zložené atribúty
- nie je povolená kombinácia prípadu 1 a 2
DRUHÁ NORMÁLNA FORMA
funkčná závislosť
X, Y - dve množiny atribútov, podmnožiny relačnej schémy R(A1, A2, ..., An), kde Ai sú atribúty. Funkčná závislosť X ® Y medzi dvomi množinami atribútov X a Y špecifikuje podmienku:
Pre ľubovoľné dve inštancie (záznamy) t1 a t2 v r Î R také, že t1[X] = t2[X], musí platiť t1[Y] = t2[Y].
Hovoríme, že Y funkčne závisí na X.
silná funkčná závislosť
Nech A a B sú atribúty relácie R. Atribút B je silne funkčne závislý na atribúte A, ak B funkčne závisí od celého atribútu A a nezávisí od žiadnej podmnožiny A.
Čiastočná závislosť ( partial dependency ):
X ® Y
Ak atribút A Î X môže byť zrušený z X a závislosť stále trvá ( X – {A})® Y
Relácia je v druhej normálnej forme (2NF), ak je v 1NF a keď každý atribút , ktorý nie je kľúč relácie R, silne funkčne závisí iba na primárnom kľúči relácie R.
Získanie druhej normálnej formy:
TOVAR = PROJEKCIA OBJEDNÁVKY (KÓD_TOVAR, CENA_TOVAR)
POLOŽKA_OBJ = PROJEKCIA OBJEDNÁVKY (ČÍSLO_OBJ, KÓD_TOVAR, POČET )
HLAV_OBJ = PROJEKCIA OBJEDNÁVKY (ČÍSLO_OBJ, DÁTUM_OBJ, KÓD_DOD, MENO_DOD, ADR_DOD)
TRETIA NORMÁLNA FORMA
Nech A,B,C sú atribúty relácie R. Nech C závisí od B (B ® C) a B závisí od A (A®B), potom C závisí od A (A®C).
Relácia je v tretej normálnej forme (3NF), ak je v druhej normálnej forme a žiaden atribút, ktorý nie je kľúč, tranzitívne nezávisí na primárnom kľúči.
TRETIA NORMÁLNA FORMA
HLAV_OBJ = PROJEKCIA OBJEDNÁVKY (ČÍSLO_OBJ, DÁTUM_OBJ, KÓD_DOD, MENO_DOD, ADR_DOD) vykazuje tranzitívne závislosti
Odstránenie tranzitívnej závislosti:
DODÁVATEĽ = PROJEKCIA HLAV_OBJ (KÓD_DOD, MENO_DOD, ADR_DOD)
OBJ = PROJEKCIA HLAV_OBJ (ČÍSLO_OBJ, DÁTUM_OBJ, KÓD_DOD)
NF | Kritérium / Ako na to |
1NF | Viachodnotové alebo zložené (viachodnotové) atribúty nie sú dovolené. Také atribúty musia byť oddelené vytvorením ďalšej relácie. Primárne atribúty pôvodnej relácie sú pridané do tejto novej relácie. |
2NF | Žiadny nekľúčový atribút nemôže byť závislý na časti primárneho kľúča. Taký atribút musí byť oddelený, tj. vytvorí sa nová relácia s primárnym kľúčom rovným danej časti primárneho kľúča starej relácie |
3NF | Žiadny nekľúčový atribút nesmie byť závislý na iných nekľúčových atribútoch. Taký atribút musí byť oddelený, tj. vytvorí sa nová relácia, kde tieto nekľúčové atribúty tvoria primárny kľúč. |
BCNF | Každý determinant musí byť kandidátom na kľúč. Determinant, ktorý nie je kandidátom na kľúč a ktorý tiež nie je časťou primárneho kľúča, musí byť oddelený, tj. vytvorí sa nová relácia, ktorej kľúč bude tento determinant. |
Categories of SQL Statements
- Data definition statements
- Data manipulation statements
- Cursor manipulation statements
- Cursor optimization statements
- Dynamic management statements
- Data access statements
- Data integrity statements
- Optimization statements
- Routine Definition statements
- Auxiliary statements
- Client/server connection statements
- Optical subsystem statements
Data Definition Statements
ALTER FRAGMENT ALTER FUNCTION
ALTER INDEX ALTER PROCEDURE
ALTER ROUTINE ALTER TABLE
CLOSE DATABASE CREATE AGGREGATE
CREATE CAST CREATE DATABASE
CREATE DISTINCT TYPE CREATE EXTERNAL TABLE
CREATE INDEX CREATE OPAQUE TYPE
CREATE PROCEDURE CREATE PROCEDURE FROM
CREATE ROLE CREATE ROW TYPE
CREATE SCHEMA CREATE SYNONYM
CREATE TABLE CREATE TEMPORARY TABLE
CREATE TRIGGER CREATE VIEW
DATABASE DROP AGGREGATE
DROP CAST DROP DATABASE
DROP INDEX DROP PROCEDURE
DROP ROLE DROP ROW TYPE
DROP SYNONYM DROP TABLE
DROP TRIGGER DROP VIEW
RENAME COLUMN RENAME DATABASE
RENAME TABLE TRUNCATE
Data Manipulation Statements
DELETE INSERT
LOAD SELECT
UNLOAD UPDATE
Cursor Manipulation Statements
CLOSE DECLARE
FETCH FLUSH
FREE OPEN
PUT SET AUTOFREE
Optimization Statements
SET AUTOFREE
SET DEFERRED_PREPARE
Dynamic Management Statements
ALLOCATE COLLECTION ALLOCATE DESCRIPTOR
ALLOCATE ROW DEALLOCATE COLLECTION
DEALLOCATE DESCRIPTOR DEALLOCATE ROW
DESCRIBE EXECUTE
EXECUTE IMMEDIATE FREE
GET DESCRIPTOR PREPARE
SET DEFERRED_PREPARE SET DESCRIPTOR
Data Access Statements
GRANT GRANT FRAGMENT
LOCK TABLE REVOKE
REVOKE FRAGMENT SET ISOLATION
SET LOCK MODE SET ROLE
SET SESSION AUTHORIZATION SET TRANSACTION
SET TRANSACTION MODE UNLOCK TABLE
Data Integrity Statements
BEGIN WORK COMMIT WORK
ROLLBACK WORK SET DATABASE OBJECT MODE
SET LOG SET PLOAD FILE
SET TRANSACTION MODE START VIOLATIONS TABLE
STOP VIOLATIONS TABLE
Optimization Statements
SET EXPLAIN SET OPTIMIZATION
SET PDQPRIORITY SET RESIDENCY
SET SCHEDULE LEVEL SET STATEMENT CACHE
UPDATE STATISTICS
Routine Definition Statements
ALTER FUNCTION ALTER PROCEDURE
ALTER ROUTINE CREATE FUNCTION
CREATE FUNCTION FROM CREATE PROCEDURE
CREATE PROCEDURE FROM CREATE ROUTINE FROM
DROP FUNCTION DROP PROCEDURE
DROP ROUTINE EXECUTE FUNCTION
EXECUTE PROCEDURE SET DEBUG FILE TO
Auxiliary Statements
INFO OUTPUT
GET DIAGNOSTICS SET DATASKIP
WHENEVER
Client/Server Connection Statements
CONNECT DISCONNECT
SET CONNECTION
Optical Subsystem Statements
ALTER OPTICAL CLUSTER CREATE OPTICAL CLUSTER
DROP OPTICAL CLUSTER RELEASE
RESERVE SET MOUNTING TIMEOUT
Subquery 1
IN Subquery
SELECT DISTINCT customer_num FROM orders
WHERE order_num NOT IN
(SELECT order_num FROM items
WHERE stock_num = 1)
EXISTS Subquery
SELECT stock_num, manu_code FROM stock
WHERE NOT EXISTS
(SELECT stock_num, manu_code FROM items
WHERE stock.stock_num = items.stock_num AND
stock.manu_code = items.manu_code)
Subquery 2
ALL, ANY, SOME Subquery
SELECT DISTINCT order_num FROM items
WHERE total_price > ALL (SELECT total_price FROM items
WHERE order_num = 1023)
SELECT DISTINCT order_num FROM items
WHERE total_price > SELECT MAX(total_price) FROM items
WHERE order_num = 1023)
SELECT DISTINCT order_num FROM items
WHERE total_price > ANY (SELECT total_price FROM items
WHERE order_num = 1023)