RELAN DATABZA Peter Stanislav Jnos Marek Bohuslav Branislav
RELAČNÁ DATABÁZA
Peter Stanislav János Marek Bohuslav Branislav SR ČR MR Kamenná 27 800312/7845. . . 97401 Novák . . . Banská Bystrica #RC 801106/3456 800312/7845 Meno Peter Stanislav Priezvisko Novák Steinmüller Ulica Kamenná 27 Zelená 9 Obec PSC Banská Bystrica 97401 Nové Mesto n. Váhom 790907/1259 János Tóth Slnečné námestie 810130/3695 Marek Rátroch Stred 49/7 781201/1248 810514/5341 Bohuslav Branislav Biely Baláž Juh 2100/456 Trenčín Ťahanovce 38/12 781015/4431 800407/3522 791229/5431 Peter Marek Martin Kapustný Ďurica Kľúčiar 771124/3578 771203/5472 790310/2145 Lukáš Ján Juraj Satrapa Krnáč Papún BB KE ZA KO CA PO PR PI Nar SR 91501 Okres BB SR TN 94501 MR KO 01701 SR PX 91101 Košice SR 04000 TN SR KE Javorová 2 Žilina Prečín 124 Prečín A. Bernoláka 14/20 01001 01701 Žilina SR SR 01001 ZA PX SR ZA Dolná 12 Prievoznícka Košická cesta 02201 03401 07101 ČR SR SR CA RU MI Komárno Považská Bystrica Čadca Ružomberok Michalovce D O M ÉN Y K AR D IN AL IT A A T R IB Ú T Y NTI CE S T U P EŇ R E L Á CIE
úlohy relačného dátového modelu • 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
základné pojmy • • • 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
Relácie-pojmy • Relačná schéma: • Relačná schéma relácie R je ={ A 1 : D 1, A 2: D 2, . . . , An: Dn}, a to konečná množina dvojíc atribút : doména • Relácia: • Nech existuje množina domén D={ D 1, D 2, . . . , Dn} nad množinou , potom reláciou je podmnožina karteziánskeho súčinu domén D 1 x D 2 x. . . x Dn.
Relácie - pojmy • Kardinalita relácie - kardinalita relácia vyjadruje počet kortéž relácie. • Stupeň relácie - ak existuje relačná schéma relácie R={ A 1 , A 2, . . . , An: }, tak počet atribútov n udáva stupeň relácie.
Vlastnosti relácie • • neobsahuje duplicitné kortéži -. 2. kortéži sú neusporiadané 3. m-tice atribútov sú neusporiadané 4. hodnoty atribútov sú atomické Hodnota atribútu je vždy skalár a nie množina. "Relácia neobsahuje opakujúce sa skupiny". - hovoríme, že je normalizovaná
rozdelenie relácií Relácia podľa spôsobu uloženia podľa pôvodu základné odvodené perzistentné podľa mena dočasné pomenované nepomenované pohľad základné medzivýsledký základné dotaz snímka snímky pohľadz pohľady dočasné (medzivýsledok) snímky
Doména • Doména reprezentuje stĺpec relácie určený v rámci relácie svojim unikátnym názvom a množinou prípustných hodnôt. • Skalár je hodnota, ktorá reprezentuje najmenšiu sémantickú jednotku dát. Samotný skalár nemá vnútornú štruktúru, je nedekomponovateľ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 meno_domény AS dátový_typ;
Domény Reprezentácia • intervalom hodnôt • množinou hodnôt Typy • jednoduchá (výška) • kompozitná (dátum)
definícia domén a ich použitie • • • • doména pre atribút OS_CIS definovanej ako interval create domain DOMENA_OC AS SMALLINT CHECK VALUES >1 AND <10000 doména pre atribút VYSLED s definíciou množiny create domain DOMENA_VYSLEDOK AS SMALLINT CHECK VALUES IN (1, 2, 3, NULL) doména pre atribút ROD_CISLO s definíciou tvaru create domain DOMENA_RC AS CHARACTER(11) CHECK VALUE (______/____) doména pre atribút DATUM_SK s definíciou prednastavenej hodnoty create domain DOMENA_DATUM_SK AS DATE DEFAULT CURRENT_DATE • • • • Definícia relácie ZAP_PREDMETY s použitím domény pre atribút OS_CIS definovanej ako interval a pre atribút VYSLED definovanej ako množina create table zap_predmety ( os_cislo DOMENA_OC not null, cis_predmet char(4) not null, vysledok DOMENA_VYSLEDOK, datum_sk date, termin smallint, zapocet date, skrok smallint, body smallint, prednasajuci char(5) );
definícia relácie bez použitia definície domény • CREATE table t 2( • b int(2), • f VARCHAR(5), • g dec(4, 2) • check (g between 0. 01 and 0. 50), • vysledok int(1) • CHECK vysledok IN(1, 2, 3, NULL), • PRIMARY KEY(b));
iný príklad • • • create table sklad (id_mat number (4) not null, nazov_mat char(30), mnozstvo_mat number (6, 1) default '0', merna_jed char (8) check (merna_jed IN ('ks', 'l', 'm 2', 'kg', 't', 'm')), • jed_cena_mat number(6, 2), • primary key (id_mat));
Atribút • Atribút relácie reprezentuje stĺpec relácie určený v rámci relácie svojim unikátnym názvom a množinou prípustných hodnôt
Operácie s reláciami
Union • Operácia UNION (Zjednotenie) vytvorí z relácie R 1(A 1, A 2, …, An) a z relácie R 2(A 1, A 2, …, An), tretiu reláciu R 3(A 1, A 2, …, An) takú, že pre každú n-ticu t platí: • t Î R 3 ak t Î R 1 alebo t Î R 2.
Difference • Operácia DIFFERENCE (Rozdiel) vytvorí z relácie R 1(A 1, A 2, …, An) a z relácie R 2(A 1, A 2, …, An), tretiu reláciu R 3(A 1, A 2, …, An) takú, že pre každú n-ticu t platí: • t Î R 3 ak t Î R 1 a t _ R 2.
INTERSECTION • Operácia INTERSECTION (Prienik) vytvorí z relácie R 1(A 1, A 2, …, An) a z relácie R 2(A 1, A 2, …, An), tretiu reláciu R 3(A 1, A 2, …, An) takú, že pre každú n-ticu t platí: • t Î R 3 ak t Î R 1 a súčasne t Î R 2.
PRODUCT • Operácia PRODUCT (Karteziánsky súčin) vytvorí z relácie R 1(A 1, A 2, …, An) a z relácie R 2(B 1, B 2, …, Bm), tretiu reláciu R 3( A 1, A 2, …, Aa , B 1, B 2, …, Bm) takú, že obsahuje všetky kombinácie n-tíc, kde pre každú n-ticu t platí: • t Î R 3 a t je usporiadanou dvojicou t= t 1 , t 2 ak t 1 Î R 1 a t 2 Î R 2.
. PROJECTION • Operácia PROJECTION (Projekcia) vytvorí z relácie R 1(A 1, A 2, …, An) reláciu R 2(B 1, B 2, …, Bm), takú, že množina atribútov (B 1, B 2, …, Bm) _ (A 1, A 2, …, An) a pre stupeň relácie R 2 platí m < n a card(R 2) = card(R 1 ).
SELECTION • Operácia SELECTION (Výber) vytvorí z relácie R 1(A 1, A 2, …, An) reláciu R 2(A 1, A 2, …, An), takú, že pre každú n-ticu t Î R 2 platí t Î R 1 , a je splnená podmienka C • Elementárnou podmienkou EC nazývame výraz v tvare: • <Atribút> <Operátor> <Hodnota> • Kde operátor je z množiny relačných operátorov {=, <, >, <-, >=, _}. • Podmienkou C nazývame výraz v tvare: • [NOT] EC 1 [{OR | AND |NOT} [[NOT] EC 2 ]…]
Integrita • Integrita - správnosť a zabezpečenie konzistencie dát • nekonzistencia dát môže vzniknúť – vstupom dát, – chybami obsluhy, – chybami programov – úmyselným poškodením databáze
Klasifikácia integritných obmezení • • • Doménová integrita D-Integrita stĺpcov C-integrita atribútov Integrita entít E-integrita Referenčná integrita R-integrita Používateľská integrita U-integrita
Chýbajúce informácie • Klasifikácia chýbajúcich informácií: • neexistuje udalosť • udalosť neznáma SRBD • neuskutočniteľná udalosť • Reprezentácia chýbajúcich hodnôt: – prázdny znakový reťazec – znakový reťazec z určených znakov – nula – definované číslo – bitový reťazec – príznak pre každý atribút
- Slides: 24