zoradene prednasky

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

  1. Prednášky, cvičenia
  2. Ukončenie predmetu – skúška ( 5 kreditov)
  1. Výsledok skúšky = body zo skúšky + body za zápočet
  2. Skúška – max 80 bodov, min 41 bodov
  3. Písomná časť - max  40 bodov, min 20 bodov
  4. Ústna časť – teória – max 40 bodov, min 20 bodov
  1. Podmienky udelenia zápočtu
  1. Pravidelná účasť na cvičeniach – max 3 ospravedlnené neúčasti
  2. Referát – max 5 bodov
  3. Odovzdanie zadaní v určenom termíne v požadovanej kvalite
  4. 2 zadania – max 7 + 8 bodov
  5. Zápočet – max 20 bodov, min 11 bodov

ZÁKLADNÉ POJMY

Databáza

  1. nejaký aspekt reálneho sveta, niekedy nazývaný minisvet,
  2. množina dát, ktoré logicky súvisia a majú prirodzený význam,
  3. navrhnutá, vytvorená a udržiavaná pre špecifikovaný účel.

Systém riadenia bázy dát (SRBD, DBMS - DataBase Management System)

  1. Definovanie databázy - špecifikácia dátových typov, štruktúr a podmienok pre dáta.
  2. Konštrukcia databázy - proces ukladania dát na nejaké pamäťové médium riadený SRBD.
  3. Manipulácia - dotazovanie bázy dát.
  4. Databázový systém = databáza + programové vybavenie spolu

 

CHARAKTERISTIKY DB PRÍSTUPU

  1. meta-data - popis štruktúry primárnej databázy, štruktúra dát; systémový katalóg=dátový slovník=data dictionary
  2. nezávislosť programov a dát - prístupové programy SRBD nezávislé od štruktúry  dát.
  1. 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.
  2. 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é

 

  1. dátová abstrakcia - vlastnosť umožňujúca nezávislosť programov od dát
  2. dátový model - typ dátovej abstrakcie; konceptuálny pohľad na dáta.
  3. operačná abstrakcia - používateľské programy: použitie operácie bez znalosti detailov a ich implementácie

 

  1. 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.
  2. 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

  1. Riadenie resp. kontrola redundancie. Redundancia - viacnásobný výskyt tých istých dát. Riadenie  redundancie vo fáze návrhu databázy.
  2. Obmedzenie neautorizovaného prístupu - podsystém pre zabezpečenie bezpečnosti a autorizácie.
  3. Trvalý priestor pre programové objekty a dátové štruktúry - objektovo orientované databázy.
  4. Použitie deduktívnych pravidiel - základ pre deduktívne databázy.
  5. Poskytovanie rôznych používateľských interfejsov.
  6. 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.
  7. Podmienky integrity - prostriedky pre definíciu týchto podmienok, definícia vzťahov medzi dvoma súbormi resp. tabuľkami.
  8. Podpora obnovy a zotavenia databázy po chybách (backup, recovery).

POUŽÍVATELIA DBS

  1. Databázový administrátor.
  2. Návrhári databázy
  3. Systémoví analytici - analýza požiadaviek koncových používateľov, návrh služieb, ktoré tieto požiadavky realizujú
  4. Aplikační programátori - implementácia produktu systémových analytikov
  5. 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

  1. 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.
  2. IMS (Information Management System) vyvinutý firmou IBM zformoval základ pre hierarchický dátový model.
  3. IMS DB/DC  (database/ data communication) podporil sieťové pohľady.
  4. 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

  1. 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í,
  2. objavenie sa komerčných objektovo-orientovaných SRBD.
  3. požiadavka na vývoj aplikácií používajúcich dáta z rôznych zdrojov - heterogénne a multidatabázové systémy,
  4. požiadavka na využívanie masívnych paralelných procesorov.

SÚČASNOSŤ

  1. XML, Main memory db, Very large db, ....
  2. 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

  1. Konceptuálny dátový model - popis dát, ktorý bude zrozumiteľný pre väčšinu používateľov (ERM)
  2. Fyzický model - detailný popis dát, ktoré sú uložené v databáze.
  3. 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

  1. stav databázy resp. množina inštancií - dáta v databáze v určitom momente
  2. jednoznačnosť medzi schémou a stavom databázy
  3. prázdny stav (bez dát) - definovanie databázy pomocou databázovej schémy
  4. počiatočný stav - ak prvýkrát naplníme databázu dátami
  5. 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.

  1. Nezávislosť  logických  dát - schopnosť zmeniť konceptuálnu schému bez zmien externej schémy alebo aplikačných programov.
  2. Fyzická  nezávislosť  dát - schopnosť zmeniť internú schému bez zmien  konceptuálnej resp. externej schémy.

DATABÁZOVÉ  JAZYKY

  1. SQL (Structured Query Language) – štruktúrovaný dotazovací jazyk - kombinácia DDL, DML a DCL
  1. Jazyk  pre definíciu dát (Data Definition Language - DDL) – create database, create table, create index
  2. Jazyk  pre manipuláciu s dátami (Data Manipulation Language - DML) - insert, delete, select, update
  3. Jazyl pre riadenie prístupu k dátam (Data Control Language) - grant, revoke
  4. Jazyk pre správu transakcií – commit, rollback
  1. 3GL
  2. 4GL
  3. ESQL –embedded SQL (C-jazyk, COBOL, FORTRAN, ...)

KLASIFIKÁCIA  SRBD

Rôzne kritériá

  1. Podľa dátového modelu - relačné, sieťové, hierarchické, objektovo-orientované, a iné
  2. Podľa počtu používateľov- jednopoužívateľské a viacpoužívateľské
  3. Podľa počtu miest, do koľkých je databáza distribuovaná:
  1. centralizované - dáta umiestnené na jednom počítačovom mieste
  2. distribuované - aktuálna databáza a SRBD sú umiestnené na viacerých miestach počítačovej siete
  3. homogénne - SRBD je ten istý pre všetky miesta v sieti
  4. heterogénne - podpora existencie autonomných databáz v počítačovej sieti.

DÁTOVÉ MODELOVANIE

  1. analýza a návrh informácií v systéme – oblasť modelovania a projektovania IS
  2. dôraz na logické entity a logické závislosti medzi týmito entitami
  3. určitá úroveň dátovej abstrakcie – zakrytie detailov štruktúry, umiestnenia
  4. Dátový model – množina pojmov a pravidiel popisujúca štruktúru bázy dát
  5. štruktúra db = dátové typy + vzťahy + podmienky zachovávajúce sa medzi dátami
  6. model – konceptuálny, fyzický, implementačný

FÁZY NÁVRHU DATABÁZY

FÁZY NÁVRHU DATABÁZY

  1. sústredenie požiadaviek a ich analýza
  2. vytvorenie konceptuálnej schémy pre databázu
  3. návrh logickej schémy databázy alebo mapovanie dátového modelu, špecifikácia DBMS
  4. návrh fyzickej schémy databázy

ENTITNO-RELAČNÝ  MODEL

  1. Logický pohľad na databázu
  2. Entita
  3. Vzťah
  4. Atribút
  5. Doména
  6. Entitno-relačný diagram

 

ZÁKLADNÉ POJMY

ENTITA

  1. základný objekt ER modelu
  2. časť reálneho sveta s nezávislou existenciou
  3. názov entity

ATRIBÚT

  1. vlastnosť entity
  2. 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

  1. jednoduché a zložené

adresa ( štát, mesto, ulica, číslo domu )

  1. jednohodnotové a viachodnotové

titul ( prof., doc., ing., PhD., CSc. )

  1. stále (pevné) zapamätané a odvodené

rodné číslo; vek

  1. hodnota NULL

KĽÚČOVÝ ATRIBÚT

  1. hodnoty sú jedinečné pre každú individuálnu entitu
  2. jednoznačne určuje každú entitu
  3. 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.

  1. R je množina inštancií vzťahov ri
  2. každé ri spája n entít (e1, e2, . . . , en)
  3. každá entita ej v ri  je členom  entitného typu Ej ,

        pričom 1<= j <= n

 

  1. Typ vzťahu je matematická relácia na E1, E2, . . . ,En
  2. môže byť definovaný ako  podmnožina karteziánskeho súčinu  E1   ´    E2   ´   . . .  ´ En
  3. 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

  1. stupeň vzťahu - počet zúčastňujúcich sa  entitných typov
  2. 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.
  3. 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
  1. totálna - ku každému výskytu jednej entity musí existovať výskyt v druhej entite
  2. čiastočná - ku každému výskytu jednej entity môže alebo nemusí existovať inštancia druhej entity

VLASTNOSTI VZŤAHOV

  1. štrukturálne podmienky relácie = kardinalita + povinnosť vzťahu
  1. slabý vzťah
  2. rekurzívny vzťah
  3. supertyp, subtyp

LOGICKÁ SCHÉMA

RELAČNÝ DÁTOVÝ MODEL

  1. 1971 - princíp relačného dátového modelu bol prvýkrát navrhnutý  E.F.Coddom

Základné pojmy:

  1. RM - databáza ako množina relácií
  2. každá relácia je podobná tabuľke príp. súboru
  3. riadok v tabuľke - množina súvisiacich dátových hodnôt
  4. riadok - záznam (tuple) resp. inštancia (výskyt  entity)
  5. hlavička (názov) stĺpca – atribút
  6. tabuľka sa nazýva relácia
  7. doména - dátový typ popisujúci typ hodnôt v každom stĺpci

RELAČNÁ SCHÉMA

  1. relačná schéma popisuje štruktúru relácie

 

Definícia podľa  Elmasri, Navathe

 

R(A1, A2, . . ., An) – relačná schéma

 

  1. R - meno relácie
  2. A1, A2, . . ., An - zoznam atribútov
  3. D = dom(Ai) - doména atribútu Ai
  4. r(R) - inštancia relácie r relačnej schémy R(A1, A2, . . ., An), množina entíc r={t1, t2, . . ., tm}
  5. 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Í

  1. zoradenie entíc v relácii
  2. poradie hodnôt v entici -korešpondencia medzi atribútmi a hodnotami
  3. hodnoty v entici - atomické hodnoty
  4. homogenita stĺpcov - doména
  5. 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

  1. entitná (relačná) integrita
  2. referenčná integrita
  3. doménová integrita
  4. podmienky pre kľúče

 

ENTITNÁ INTEGRITA

  1. primárny kľúč PK (Primary Key)
  2. jednoznačná identifikácia entice v relácii
  3. primárny kľúč nemôže mať hodnotu null

REFERENČNÁ INTEGRITA

  1. definovaná medzi dvoma reláciami
  2. zabezpečuje konzistenciu medzi enticami týchto dvoch relácií
  3. 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á:

 

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

 

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

  1. doména
  2. hodnota každého atribútu A musí byť atomickou hodnotou a musí byť z domény
  3. príklady dátových typov pre takéto domény : integer, real, char, string, date, time, money, enumerate

PODMIENKY PRE KĽÚČE

  1. žiadne dve entice nemôžu mať tú istú kombináciu hodnôt atribútov

t1[SK] ¹ t2[SK]

 

  1. SK - podmnožina atribútov, superkľúč relačnej schémy R
  2. t1, t2 - dve jedinečné inštancie relácie

 

  1. minimálny kľúč
  2. 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

  1. porušenie doménovej integrity
  2. porušenie kľúčovej integrity
  3. hodnota primárneho kľúča je null - porušenie entitnej integrity
  4. hodnota cudzieho kľúča neexistuje v relácii, na ktorú referuje - porušenie referenčnej integrity

PORUŠENIE IC - DELETE

  1. zrušenie entíc v relačnej databázovej schéme
  2. jedine porušenie referenčnej integrity
  3. entica, ktorá má byť zrušená,obsahuje primárny kľúč, na ktorý sa odvoláva iná entica v DBS

PORUŠENIE IC - UPDATE

  1. zmena hodnôt jedného alebo viacerých atribútov v entici príp. enticiach v nejakej relácii R
  2. modifikácia atribútov, ktoré nie sú primárnym alebo sekundárnym kľúčom, nie je problematická
  3. SRBD - kontrola zachovania doménovej integrity
  4. modifikácia primárneho kľúča je vlastne delete jednej entice a insert inej na toto miesto
  5. 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

  1. SRBD
  2. 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

  1. množina operácií, ktorá je použitá na manipuláciu s reláciami
  2. 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í
  3. výsledok každej takejto operácie je znova relácia, s ktorou sa ďalej môže manipulovať
  4. operácie relačnej algebry sa delia do dvoch skupín:
  1. množinové operácie – zjednotenie, prienik, rozdiel a kartézsky súčin
  2. relačné operácie – selekcia, projekcia a spojenie
  1. úplný súbor operácií RA = {s, p, È, -, ´}

PRÍKLAD

 

RELAČNÉ OPERÁCIE - SELEKCIA

SELEKCIA (select)

 

  1. výber podmnožiny záznamov v relácii, ktoré spĺňajú výberovú podmienku
  2. výber riadkov z tabuľky – horizontálny výber
  3. unárna operácia
  4. stupeň výslednej relácie = stupeň pôvodnej relácie
  5. 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>)

 

  1. σ (sigma) – symbol pre operátor (operáciu select)
  2. výberová_podmienka – booleovský výraz špecifikovaný nad atribútmi relácie v tvare
  1. <meno_atribútu> <relačný_operátor> <konštanta>
  2. <meno_atribútu> <relačný_operátor> <meno_atribútu>
  3. relačný_operátor: < ,> ,= , ≠, ≤, ≥
  4. jednotlivé klauzuly vo výberovej podmienke môžu byť spojené operátormi AND, OR, NOT

RELAČNÉ OPERÁCIE - SELEKCIA

  1. selekcia  je komutatívna operácia:

 

σ<výberová_podmienka1>( σ<výberová_podmienka2>)(R)) =

σ<výberová_podmienka2>( σ<výberová_podmienka1>)(R))

 

  1. ľubovoľné poradie vykonávania selekcií

 

  1. 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)

 

  1. výber určitých atribútov z relácie, resp. určitých stĺpcov z tabuľky
  2. vertikálny výber
  3. unárna operácia

 

Všeobecný zápis

 

        π<zoznam_atribútov>(<meno_relácie>)

 

  1. π (pi) symbol operácie projekcia
  2. <zoznam_atribútov> - zoznam atribútov relácie s meno_relácie

 

  1. atribúty výslednej relácie = atribúty špecifikované v zozname atribútov
  2. poradie atribútov výslednej relácie = poradie atribútov v zozname atribútov
  3. stupeň relácie = počet atribútov v zozname atribútov
  4. ak zoznam atribútov obsahuje iba nekľúčové atribúty, výsledok projekcie môže obsahovať duplicitné záznamy
  5. operácia projekcia implicitne odstraňuje duplicitné záznamy
  6. počet záznamov výsledku projekcie <= počet záznamov v pôvodnej relácii
  7. ak zoznam projekcie obsahuje kľúč relácie, výsledná relácia má ten istý počet záznamov ako pôvodná relácia
  8. π<zoznam_atribútov1> (π<zoznam_atribútov2> (R)) = π<zoznam_atribútov1>(R) – neplatí komutatívny zákon

Postupnosť operácií a premenovanie atribútov

  1. jednoduché výrazy relačnej algebry vhniezdené do operácií
  2. vytváranie medzivýsledkov a ich pomenovanie

RELAČNÉ OPERÁCIE - SPOJENIE

SPOJENIE (join)

 

  1. kombinovanie súvisiacich záznamov z dvoch relácií do jednoduchých záznamov
  2. 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>

  1. každá podmienka je v tvare        Ai θ Bj
  2. Ai je atribút relácie R
  3. Bj je atribút relácie S
  4. Ai a Bj majú tú istú doménu
  5. θ 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

 

  1. <zoznam1> - zoznam atribútov z relácie R
  2. <zoznam2> - zoznam atribútov z relácie S

MNOŽINOVÉ OPERÁCIE

  1. štandardné množinové relácie
  2. aplikované v relačnom modeli
  3. relácia je definovaná ako množina záznamov
  4. zjednotenie, prienik, rozdiel – binárne operácie
  5. 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.

  1. 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é.
  2. prienik (intersection) : výsledok operácie R Ç S je relácia, ktorá obsahuje všetky záznamy, ktoré patria do R aj do S.
  3. 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.
  4. R È S = S È R
  5. R Ç S = S Ç R
  6. Operácie zjednotenie a prienik sú komutatívne operácie.
  7. Ak máme tri relácie R, S, T platí asociatívny zákon:
  8. R È (S È T) = (RÈ S) È T
  9. R Ç (S Ç T) = (R Ç S) Ç T
  10. Operácia rozdiel nie je komutatívna.
  11. R – S  ≠ S – R
  1. karteziansky súčin, označovaný ´
  2. binárna operácia - relácie, nad ktorými je aplikovaný karteziansky súčin nemusia byť kompatibilné vzhľadom k zjednoteniu
  3. 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.

  1. Predpokladajme:
  2. nR – počet záznamov relácie R
  3. nS – počet záznamov relácie S
  4. 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

  1. logická úroveň
  2. manipulačná resp. ukladacia úroveň

Kritériá návrhu relačnej schémy

  1. sémantika atribútov
  2. redukcia redundantných hodnôt v záznamoch
  3. redukcia null hodnôt v záznamoch
  4. 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

  1. normalizácia - postupné určovanie štruktúry relácie
  2. 1972 - E.F. Codd - definoval tri úrovne normalizácie
  3. 1NF až  3NF -  založené na funkčných závislostiach medzi atribútmi relácie
  4. Boyce-Coddova normálna forma (BCNF) - silnejšia definícia 3NF
  5. 4NF a 5NF - sú založené na viachodnotových závislostiach a join závislostiach
  1. Formálny rámec
  2. 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é)

 

  1. nie sú povolené viachodnotové atribúty
  2. nie sú povolené zložené atribúty
  3. 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

  1. Data definition statements
  2. Data manipulation statements
  3. Cursor manipulation statements
  4. Cursor optimization statements
  5. Dynamic management statements
  6. Data access statements
  7. Data integrity statements
  8. Optimization statements
  9. Routine Definition statements
  10. Auxiliary statements
  11. Client/server connection statements
  12. 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)