Relační databázový model
Databázové (datové) modely základní dělení klasické databázové modely relační databázový model
relační databázový model Základní konstrukt - relace relace, schéma relace atribut, doména relace versus tabulka Databáze, přípustná relační databáze Integritní omezení: primární klíč omezení cizího klíče
Databázový model Intuitivně = model dat, ale není model dat v běžném slova smyslu Databázový model je prostředek pro modelování, nikoli cíl (výsledek). Slouží k vytvoření třídy přípustných schémat a operací. Databázový model obsahuje: prostředky pro popis struktury dat integritní omezení základní operace, které lze nad daty definovanými pomocí daného databázového modelu provádět
Databázový model Databázový verzus datový model Užít je lze ve stejném významu, datový má širší smysl, databázový je speciální případ datového v používané terminologii se příliš nerozlišuje. vhodnější je používat databázový model
Databázový model Mezi klasické databázové modely patří : síťový hierarchický relační Síťový model byl ustaven ve zprávě CODASYL z r.1972 hierarchický model se vyvíjel v 2.polovině 60.let k oběma teorie dopracována dodatečně
Relační model dat Relační model dat byl poprvé publikován v roce 1970 pracovníkem firmy IBM Dr. E.F. Coddem (článek A relational model of data for large shared data banks ) v roce 1985 12 pravidel pro relační model dat, v r.1990 333 pravidel vychází z představy, že sebekomplikovanější vztahy mezi objekty lze vyjádřit pomocí několika 2-rozměrných tabulek
Relační model dat - základní konstrukt vychází z matematické relace odlišnost od matematické relace ve 2 aspektech: má pomocnou strukturu schema relace. Schema se skládá ze jména relace (R) jmen atributů ( A i ) a specifikace domén ( D i = Dom(Ai ) ) Domény obsahují přípustné hodnoty pro atributy, z domén se berou jednotlivé komponenty prvků relace.
Relační model dat - základní konstrukt I. Vlastnosti vyplývající z pojmu relace jména atributů - Ai pro i 1,n n -řád relace či arita relace, degree (- počet atributů, které obsahuje) a i je hodnota atributu Ai, kde platí a i Di doména hodnot - D i = dom(ai ) atribut relace Ai :Di množina atributů Ω= { A 1 :D 1,., A n :D n } resp. Ω= { A 1 :dom(a 1 ),., A n :dom(a n )} je R = (A 1 :D 1,., A n :D n ), R(Ω) je schéma relace Prvky relace, tuple ( n-tice a 1, a 2, a 3,...a n ) jsou řádky relace
Relační model dat Relace R* nad množinou atributů Ω= { A 1 :D 1,, A n :D n } je podmnožinou kartézského součinu dom(ω)= dom( A 1 ) x..x dom( A n ), kde pro každé Ai je dom ( Ai ) neprázdným oborem (doménou) hodnot dále nedělitelných.
Relační model dat nedělitelnost a nenulovosti: hodnoty atributů jsou atomické (tedy nedělitelné ) a nenulové. Postupně - obecnější relační modely, kde jednotlivé hodnoty atributů nemusí být dále nedělitelné ( vícehodnotové, složené ) Nulové hodnoty : doména obsahuje speciální hodnotu, která je označena jako nedefinovaná, neznámá... NULL,?
Relační model dat relace x tabulka Relace = dvourozměrná tabulka s označenými sloupci, kde řádky obsahují prvky relace. Prvky relace (= n-tice hodnot atributů ) značíme malými písmeny: (a 1, a 2, a n ), kde a i dom( Ai ), jsou zobecněním pojmu jednoduchý záznam 1 tabulka je 1 relace (R*) A 1 :D 1.... An :Dn záhlaví tabulky = schéma relace (R )
Relační model dat relace x tabulka relace neobsahují duplicitní n-tice vyplývá to z definice relace jako množiny ( u tabulky neplatí). 2 n-tice (řádky) se musí lišit alespoň v hodnotě jednoho atributu neplatí pro domény Di nemusí být různé sloupce relace obsahují hodnoty atributu (tedy prvky domény)
Relační model dat relace x tabulka v relaci nezáleží na pořadí sloupců ani řádků X u tabulky je vždy dané uspořádání do sloupců tabulky se ukládají různé hodnoty (je dán jménem) X atribut je dán svým jménem a doménou ( každá hodnota musí být z domény atributu) atribut není sloupec tabulky, zahrnuje celou doménu X sloupec jen hodnoty dané v tabulce
Relační model dat - relace Každá hodnota uložená v databázi je identifikovatelná průsečíkem řádku a sloupce tabulky. k získání konkrétní hodnoty z databáze je třeba mít: název relace a pojmenování atributu, jehož hodnotu požadujeme (sloupce tabulky) název a hodnotu atributů určující příslušný řádek tabulky - tj.klíč relace aktuální doména - adom(a i ) aktuální doména atributu A i - obsahuje hodnoty, které se pro daný atribut právě vyskytují v databázi. Jedná se tedy o sjednocení hodnot daného atributu z více relací (jeden atribut se může vyskytovat v několika schématech)
Relační model dat Př. relace KNIHA, jejíž schéma relace je KNIHA (ISBN, Autor, Titul) má konkrétní prvky: ISBN Autor Titul 300 Novák, Nový Databáze 500 Novák Foxpro 800 Peterka SQL
Relační model dat základní vlastnosti Relační databáze R* je dána jako množina relací R* = { R* 1, R* 2,.., R* k } Relační schéma databáze R je v nejjednodušším případě dáno množinou schémat relací R = { R 1, R 2,.., R k } Každé z těchto schémat lze vyjádřit : R = (A 1 :D 1,., A n :D n ) pro n 1
Relační model dat základní vlastnosti Přípustná relační databáze R* Přípustnou relační databázi R* nazveme takovou množinu relací { R*, R* 1 2,.., R* k }, jejíž prvky vyhovují I. Někdy je I rozděleno mezi jednotlivá R i, takže můžeme napsat: R = { ( R 1, I 1 ),,( R n, I n }. Relační schéma databáze s I pak nazveme dvojici (R, I). Přičemž R je množina schemat relací, I je množina integritních omezení.
Relační model dat základní vlastnosti Z důvodu přiblížení se realitě modifikujeme relační databázi resp. relační schéma databáze integritními omezeními mi. V souvislosti s přípustnou relační databází hovoříme o konzistenci. Konzistence v širším slova smyslu znamená, že databáze odpovídá realitě, v užším smyslu slova pak, že odpovídá zadaným integritním m omezením. m. Změny přípustné relační databáze ( aplikací, SQL..) musí být korektní (tj. přechod z jedné přípustné databáze do druhé).
Základní vlastnosti RMD - integritní omezení Atributy - Ai : Di základní typ - text (řetězec), numerický, datum, další omezení : velikostí svých domén př.plat - od 2,000.- do 20,000.. hodnota jednoho atributu je stanovena v závislosti na hodnotě jiného atributu je-li hodnota atributu Profese zedník, pak hodnota atributu Plat musí být menší než 15,000.- 1 čtenář může mít půjčeno max. 5 knih (databáze knihovna)
Základní vlastnosti RMD - integritní omezení Integritní omezení jsou přídavnp davná tvrzení o objektech, která se po dobu existence konkrétn tní databázov zové aplikace nemění.. Integritní omezení byla zavedena z důvodu nedokonalosti databázov zového modelu omezují široké možnosti vstupu n-tic do relací omezení mohou být použita do programů (kontrola vstupů, aktualizace dat). Pozn.: kontroly mohou odstranit chyby uživatelů, s rozsahem kontroly dat roste doba trvání
Základní vlastnosti RMD - integritní omezení Integritní omezení : inherentní - jsou základní vlastnosti konstruktů obsažených v databázovém modelu. U RDM základní konstrukt relace, zaručuje: - žádný prvek relace nebude mít v dané relaci duplicity (2 řádky tabulky nebudou duplicitní) - hodnoty atributů musí být z odpovídajících domén. - explicitní - jsou navíc definovaná, jsou konzistentí s inherentními omezeními implicitní - jsou odvozená z jiných omezení
integritní omezení primární klíč (primary key) referenční integrita ( omezení cizího klíče, foreign key) explicitní integritní omezení
Primární klíč Primární klíč je minimální množina atributů K Ω, jejíž hodnoty určují jednoznačně n-tice relace R*. Minimálnost K: nelze odebrat žádný atribut bez narušení této jednoznačnosti identifikace řádku Jednoznačnost řádku (prvku ) relace vyplývá z definice RMD
Základní vlastnosti RMD - integritní omezení-pk každá relace musí mít PK Atributy v relaci klíčové - tvoří klíč relace (značí se podtržením) neklíčové atributy - není součástí žádného klíče relace pokud nelze stanovit jinak, pak primární klíč relace je tvořen množinou všech atributů, či se přidá atribut, který jednoznačně určířádek Jednoduchý klíč (tvořen jediným atributem), složený klíč (composite key)
Základní vlastnosti RMD - integritní omezení-pk SUPERKEY= jednoznačně (unikátně) identifikuje řádek relace, může obsahovat atributy, které nejsou nezbytné pro jednoznačnou identifikaci řádku CANDIDATE KEY = takový superkey, který obsahuje atributy nezbytné pro jednoznačnou identifikaci řádku relace ; kandidáti klíče musí mít základní 2 vlastnosti: a) unikátnost (Uniqueness) b) minimálnost (Irreducibility) PRIMÁRN RNÍ KLÍČ kandidátní klíč vybraný k identifikaci řádků relace ALTERNATIVNÍ KLÍČE kandidáti klíče, které nejsou vybrány
Referenční integrita vztah mezi 2 relacemi: Nadřazená ( master, parent hlavní, nezávislá) podřízená ( detail, dependent, závislá ). Relace lze spojit, pokud: atribut či skupina atributů K ( primární klíč, či alternativní klíč) nadřazené tabulky bude obsažena v podřízené tabulce atributy v podřízené tabulce odpovídající PK resp. alternativnímu klíči tvoří cizí klíč
Referenční integrita = FK (Foreign Key), omezení cizího klíče propojení mezi tabulkami - většinou 1:N, výjimečně 1:1 detail tabulka obecně nemusí mít prvek relace (řádek tabulky) k určité hodnotě klíče K master tabulky (tedy křádku tabulky) v detail tabulce nemůže být řádek, kde hodnota cizího klíče neodpovídá klíči master tabulky ( může být NULL), U původního RDB se neuvažovalo že je neznáma.
Referenční integrita Omezení cizího klíče Je-li K klíčem schématu R(Ω) a zároveň pro nějaké schéma relace S je K Ω S, pak pro každé 2 relace R*,S*, které patří do globální relace platí, že každá k-hodnota z S* se vyskytuje jako k- hodnota v R*. Jedná se o logickou vazbu, nikoli fyzickou FK nemůže nabývat hodnot, které jsou v rozporu s hodnotami PK nadřazené tabulky- to je třeba zajistit v INSERT, UPDATE, DELETE
Ochrana integrity databáze Integritní omezení (integrity constraints, integrity rules) Specifikace IO musí být podle teorie relačního modelu součástí definice databáze, tedy uloženy v DD (Data Dictionary = slovníku dat =katalogu dat), nikoli v aplikačním software Integritu rozlišujeme : - doménovou (domain integrity) - Entitní (entity integrity) - Referenční ( referential integrity )
Ochrana integrity databáze doménová integrita (domain integrity) - každá hodnota musí být z hodnot pro atribut přípustných - DBS by měl poskytovat prostředky pro definici omezení v Data Dictionary - v okamžiku definice relace - třeba zabudovat doménovou integritu Entitní integrita (entity integrity) - požadavek na zajištění identifikace každého řádku(prvku relace) (řádek = konkrétní výskyt entity či vztahu) = PK
Ochrana integrity databáze Referenční ( referential integrity ) - řeší logické vztahy mezi více relacemi - logická konzistence obsahu databáze - pomocí FK - řešení logické integrity databáze - 1. Restriktivnířešení - 2. kaskádovitéřešení - 3. Nullifyřešení
1. Restriktivnířešení - není dovoleno zrušit řádek, pokud existují v jiných relacích řádky logicky související - hodnotu PK nadřízené tabulky -není možné aktualizovat - do podřízené relace nelze uložit řádek, u něhož hodnota FK neodpovídářádku v nadřízené tabulce
2. kaskádovitéřešení - v případě rušenířádku v nadřazené tabulce -ruší se řádky v podřízené relaci se stejnou hodnotou FK - hodnotu PK možné aktualizovat - ale aktualizují se i FK v souvisejících řádcích - v případě ukládánířádku, u něhož hodnota FK neodpovídá řádku v nadřízené tabulce se doplnířádek v nadřízené tabulce
3. Nullify řešení - při rušenířádků dochází ke změně hodnot všech souvisejících klíčů na neurčené - tedy NULL hodnoty - v případě ukládánířádku, u něhož hodnota FK neodpovídá řádku v nadřízene tabulce - se naplní FK hodnotou neurčenou
RMD U RMD důl. omezení : hodnoty atributů jsou atomické - tedy dále nedělitelné, tomuto omezení se říká I.NF relace Některé relační SŘBD umožňují relace s vícenásobnou hodnotou atributu. Pak při dotazu se zobrazí tak, že se vypíše tolik řádků, kolikanásobná hodnota atributu je. Pozn: Zvažte jednoatributový klíč, víceatributový klíč ve vztahu k doménám atributů