Relační databázový model
Vladimíra Zádová, KIN, EF, TUL- DBS
Databázové (datové) modely – základní dělení – klasické databázové modely – relační databázový model
Vladimíra Zádová, KIN, EF, TUL- DBS
•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 Vladimíra Zádová, KIN, EF, TUL- DBS
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 Vladimíra Zádová, KIN, EF, TUL- DBS
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
Vladimíra Zádová, KIN, EF, TUL- DBS
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ě
Vladimíra Zádová, KIN, EF, TUL- DBS
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
Vladimíra Zádová, KIN, EF, TUL- DBS
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 ( Di = Dom(Ai ) ) – Domény obsahují přípustné hodnoty pro atributy, z domén se berou jednotlivé komponenty prvků relace.
Vladimíra Zádová, KIN, EF, TUL- DBS
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) – ai je hodnota atributu Ai , kde platí ai ∈ Di – doména hodnot - Di = dom(Ai ) – atribut relace Ai :Di − množina atributů Ω= { A1 :D1 ,……., An :Dn} resp. Ω= { A1:dom(A1),……., An :dom(An)} je – R = (A1 :D1 ,……., An :Dn ), R(Ω) je schéma relace – Prvky relace, tuple ( n-tice a1, a2, a3, ....an ) jsou řádky relace Vladimíra Zádová, KIN, EF, TUL- DBS
Relační model dat
Relace R* nad množinou atributů Ω= { A1 :D1 ,…, An :Dn} je podmnožinou kartézského součinu dom(Ω)= dom( A1) x…..x dom( An), kde pro každé Ai je dom ( Ai ) neprázdným oborem (doménou) hodnot dále nedělitelných.
Vladimíra Zádová, KIN, EF, TUL- DBS
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 , ?
Vladimíra Zádová, KIN, EF, TUL- DBS
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: (a1, a 2,…an), kde ai ∈ dom( Ai ), jsou zobecněním pojmu jednoduchý záznam 1 tabulka je 1 relace (R*) A1 :D1 …………….. …….. An :Dn • záhlaví tabulky = schéma relace (R )
Vladimíra Zádová, KIN, EF, TUL- DBS
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)
Vladimíra Zádová, KIN, EF, TUL- DBS
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 Vladimíra Zádová, KIN, EF, TUL- DBS
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(Ai) aktuální doména atributu Ai - 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) Vladimíra Zádová, KIN, EF, TUL- DBS
Relační model dat • Př. relace KNIHA, jejíž schéma relace je KNIHA (ISBN, Autor, Titul) má konkrétní prvky: ISBN 300 500 800
Autor
Titul Novák, Nový Novák Peterka
Vladimíra Zádová, KIN, EF, TUL- DBS
Databáze Foxpro 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 = { R1 , R2, …….., Rk} • Každé z těchto schémat lze vyjádřit : R = (A1 :D1 ,……., An :Dn ) pro n ≥1 Vladimíra Zádová, KIN, EF, TUL- DBS
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*1 , R*2, …….., R*k}, jejíž prvky vyhovují I. Někdy je I rozděleno mezi jednotlivá Ri, takže můžeme napsat: R = { ( R1 , I1), …,( Rn , In }. 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í.
Vladimíra Zádová, KIN, EF, TUL- DBS
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 omezení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é). Vladimíra Zádová, KIN, EF, TUL- DBS
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) Vladimíra Zádová, KIN, EF, TUL- DBS
Základní vlastnosti RMD - integritní omezení
• Integritní omezení jsou přídavná tvrzení o objektech, která se po dobu existence konkrétní databázové aplikace nemění. Integritní omezení byla zavedena z důvodu nedokonalosti databá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 Vladimíra Zádová, KIN,trvání EF, TUL- DBS
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í Vladimíra Zádová, KIN, EF, TUL- DBS
integritní omezení – primární klíč (primary key) – referenční integrita ( omezení cizího klíče, foreign key)
– explicitní integritní omezení
Vladimíra Zádová, KIN, EF, TUL- DBS
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 Vladimíra Zádová, KIN, EF, TUL- DBS
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)
Vladimíra Zádová, KIN, EF, TUL- DBS
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Í KLÍČ • kandidátní klíč vybraný k identifikaci řádků relace – ALTERNATIVNÍ KLÍČE •
kandidáti klíče, které nejsou vybrány Vladimíra Zádová, KIN, EF, TUL- DBS
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íč Vladimíra Zádová, KIN, EF, TUL- DBS
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.
Vladimíra Zádová, KIN, EF, TUL- DBS
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 Vladimíra Zádová, KIN, EF, TUL- DBS
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 ) Vladimíra Zádová, KIN, EF, TUL- DBS
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 Vladimíra Zádová, KIN, EF, TUL- DBS
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í
Vladimíra Zádová, KIN, EF, TUL- DBS
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
Vladimíra Zádová, KIN, EF, TUL- DBS
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
Vladimíra Zádová, KIN, EF, TUL- DBS
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
Vladimíra Zádová, KIN, EF, TUL- DBS
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ů
Vladimíra Zádová, KIN, EF, TUL- DBS