Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Relační model databáze

Podobné prezentace


Prezentace na téma: "Relační model databáze"— Transkript prezentace:

1 Relační model databáze
Přednáška 2 Relační model databáze

2 Model dat Definice U datového modelu lze uvažovat tři složky:
Integrované koncepty (pravidla) pro popis dat, relací mezi daty a omezení dat. U datového modelu lze uvažovat tři složky: Strukturální část, která obsahuje množinu pravidel, jak je třeba konstruovat databázi. Manipulační část, definující typy operací (transakcí), které jsou na datech přípustné. Množina pravidel integrity, která zajišťují, že data jsou přesná a konzistentní.

3 Databázový model Databázový model je v podstatě architektura, podle které DBMS ukládá objekty do databáze a podle které je vzájemně provazuje. Databázové modely Hierarchický model Síťový model Relační model Objektově orientovaný model Objektově relační model

4 Relační model databáze
Relační model databáze navazuje na předchozí modely (hierarchický a síťový) a je založen na relačním modelu dat, který navrhl E. F. Codd v roce 1970. V relačním modelu jsou všechna data logicky strukturována do relací (tabulek). Nejrozšířenější databázový model. Založen na dvou matematických disciplínách Teorie množin Predikátové logiky

5 Terminologie Relační model využívá konceptu relace, která je fyzicky reprezentována tabulkou a vztahy mezi tabulkami. Relační datová struktura RM má pět hlavních složek: Relace – tabulka se sloupci a řádky. Atribut – pojmenovaný sloupec tabulky. Datová n-tice – řádek relace (údaje o entitě). Doména – množina přípustných hodnot pro jeden nebo více atributů. Relační databáze – množina normalizovaných tabulek. Entita – (osoba, událost, věc, …). Předměty z „reálného světa“, které zaznamenáváme do databáze.

6 Entita

7 Pojmy vztahující se ke struktuře
Tabulka Atributy id jmeno prijmeni pozice 1 Jana Letenská ředitel 2 Aleš Koloba designer 3 Petra Nováková analytička Datové n-tice Primární klíč

8 Vlastnosti relačních tabulek
Tabulka má jméno, které ji odlišuje od všech ostatních tabulek v příslušné databázi. Každý sloupec má jedinečné jméno. Pořadí sloupců v tabulce „nemá“ význam. Každá buňka tabulky obsahuje přesně jednu hodnotu! Všechny hodnoty v jednom sloupci jsou ze stejné domény. Každý záznam je jedinečný. Neexistují duplicitní záznamy. Tabulka má primární klíč!

9 Sloupce a datové typy Sloupec (atribut, pole) je v relační databázi nejmenší pojmenovanou jednotkou. Každému sloupci musíme přiřadit jedinečný název (v rámci jedné tabulky) a datový typ. Datový typ je přitom jakási kategorie formátu konkrétního sloupce. Definice datového typu má několik výhod: Omezuje množinu dat ve sloupci jen na takové znaky, které mají pro daný datový typ smysl (např. jen číslice nebo jen platné kalendářní datum). Cílovému uživateli databáze předkládá jistou množinu dat. Pokud např. odečteme číslo od jiného čísla, dostaneme ve výsledku opět číslo. Napomáhá relačnímu databázovému systému v efektivním ukládání dat sloupce. Čísla se např. dají ukládat v interním, prostorově úsporném číselném formátu, a nikoli jen v neefektivním formátu řetězce znaků. Vícesložkové pole, Vypočítané pole, Vícehodnotové pole

10 Klíče V terminologii relačního modelu se nejčastěji setkáváme s třemi pojmy klíčů: Primární klíč tabulky Cizí klíč tabulky Kandidátní klíč tabulky Ukazatel, který obsahuje jen minimální počet sloupců nutných k jedinečné identifikaci záznamů.

11 Klíče Uvažujme následující tabulku studenti, která je v relaci s tabulkou studijni_obory: id stag_id jmeno prijmeni obor 10 D0125 Jan Novák 5 11 D0987 Petr Maléř 12 D0366 Markéta Zpěvná 8 Cizí klíč Kandidátní klíče

12 Primární klíč Primární klíč je kandidátní klíč, který byl vybrán, aby jednoznačně identifikoval každý záznam v tabulce. Je-li primární klíč složen ze dvou, nebo více polí, tak se označuje jako složený primární klíč. Každá tabulka musí mít primární klíč. Primární klíč stag_id jmeno prijmeni obor D0125 Jan Novák 5 D0987 Petr Maléř D0366 Markéta Zpěvná 8

13 Vlastnosti primárního klíče
Nesmí se jednat o vícesložkové pole. Musí obsahovat jedinečné hodnoty. Nesmí obsahovat hodnotu NULL. Skládá se z nejmenšího možného počtu polí, která zajišťují jedinečnost. Hodnota primárního klíče musí jednoznačně identifikovat hodnoty všech polí daného záznamu. Jeho hodnota se mění jen ve velmi výjimečných případech.

14 Cizí klíč Sloupec nebo skupina sloupců v jedné tabulce, který odpovídá kandidátnímu klíči jiné (případně téže) tabulky. Zajišťuje referenční integritu (na úrovni vztahů). Může obsahovat hodnotu NULL.

15 Cizí klíč Máme tabulku studenti a tabulku studijni_obory. PK Cizí klíč
stag_id jmeno prijmeni obor D0125 Jan Novák 5 D0987 Petr Maléř D0366 Markéta Zpěvná 8 vztah obor_id nazev katedra 5 Informační výchova KTE 8 Hudební výchova KHV PK

16 Pojmy týkající se vztahů
Vztah mezi tabulkami existuje, pokud nějakým způsobem můžeme propojit záznamy mezi tabulkami. Vztah můžeme zřídit prostřednictvím množiny primárních a cizích klíčů, nebo přes vazební tabulku. Způsob, jakým vztah zřizujeme, záleží na typu vztahu, který mezi tabulkami existuje. Vztah je důležitou součástí relační databáze: Umožňuje vytvářet vícetabulkové pohledy. Je klíčový pro integritu dat, protože pomáhá redukovat nadbytečná data a eliminuje duplicitní data.

17 Vztah 1:1 Ukázka viz studijní text
Význam relace 1:1 je takový, že právě jednomu záznamu v jedné tabulce odpovídá právě jeden záznam v tabulce druhé. Jednotlivé záznamy v obou tabulkách jsou spojeny přímo. Tento typ relace se málo kdy používá, protože takto spojené údaje lze vlastně umístit přímo do jedné tabulky. Relace samotná pak slouží zejména pro lepší přehlednost. Relace 1:1 má význam zejména u velmi rozsáhlých tabulek s mnoha sloupci. V takovém případě slouží druhá propojená tabulka jako „odlehčení“ té první, zejména v případě že se s hodnotami v druhé tabulce příliš často nepracuje. Ukázka viz studijní text

18 Vztah 1:N Relace 1: N je nejpoužívanějším typem. Vyjadřuje, že právě jednomu záznamu v první tabulce odpovídá více záznamů v tabulce druhé. obor_id nazev katedra 5 Informační výchova KTE 8 Hudební výchova KHV Vztah 1:N stag_id jmeno prijmeni obor D0125 Jan Novák 5 D0987 Petr Maléř D0366 Markéta Zpěvná 8

19 Více oborů (nevhodné řešení)
Uvažujme ještě předchozí příklad. Co když studenti mají více než jeden obor studia? Jak to vyřešit? obor_id nazev katedra 5 Informační výchova KTE 8 Hudební výchova KHV Může být primárním klíčem? Vztah M:N stag_id jmeno prijmeni obor D0125 Jan Novák 5 8 D0987 Petr Maléř D0366 Markéta Zpěvná

20 Vztah M:N Je uskutečněný v případě, že jeden záznam v první tabulce může být ve vztahu k mnoha záznamům ve druhé tabulce a záznam ve druhé tabulce může být ve vztahu k mnoha záznamům v první tabulce. Tento vztah se zřizuje pomocí vazební tabulky. Vazební tabulka se vytvoří pomocí spojení kopií primárních klíčů původních tabulek do nové tabulky. Kombinace polí vazební tabulky spolu tvoří složený primární klíč vazební tabulky.

21 Vztah M:N Uvažujme příklad s tabulkami studenti a studijni_obory.
Vazební tabulka stag_id jmeno prijmeni D0125 Jan Novák D0987 Petr Maléř D0366 Markéta Zpěvná Složený PK stag_id obor_id D0125 5 8 D0987 D0366 obor_id nazev katedra 5 Informační výchova KTE 8 Hudební výchova KHV

22 Pojmy vztahující se k integritě
Hodnota NULL Představuje hodnotu ve sloupci, která je neznámá nebo neexistující! Pozor Hodnota NULL neznamená totéž jako číselná nula nebo řetězec prázdných znaků. Hodnota NULL symbolizuje nepřítomnost hodnoty.

23 Integrita Integritní pravidla nebo-li omezení. Doménová integrita
Protože každý sloupec je spojen s doménou, existují omezení (doménová omezení) množiny hodnot přípustných pro daný sloupec. Integrita na úrovni pole. Hodnoty v každém poli jsou platné, konzistentní a přesné. Entitní integrita Tabulka nesmí obsahovat prázdnou hodnotu NULL ve sloupci primárního klíče!

24 Referenční integrita Pokud existuje v tabulce cizí klíč, musí buď hodnota cizího klíče odpovídat hodnotě některého záznamu v domovské tabulce, nebo musí mít cizí klíč prázdnou hodnotu NULL. Příklad chyby: obor_id nazev katedra 5 Informační výchova KTE 8 Hudební výchova KHV stag_id jmeno prijmeni obor D0125 Jan Novák 5 D0987 Petr Maléř 6 D0366 Markéta Zpěvná 8

25 Další omezení Omezení primárního klíče NOT NULL Unikátní index

26 Relační jazyky Strůjce relačního modelu dat Dr. Codd navrhl dva jazyky: Relační algebru a Relační kalkul. Relační algebra je procedurální jazyk: musíme specifikovat, jaká data jsou zapotřebí a jak přesně tato data vyvolat. Relační kalkul je neprocedurální: musíme specifikovat pouze to, jaká data jsou zapotřebí a je záležitostí DBMS určit nejefektivnější metodu pro vyvolání těchto dat. Dva hlavní jazyky (vyšší úrovně, neprocedurální) používané pro RDBMS jsou: SQL (Structured Query Language) QBE (Query-By-Example).

27 Zapamatujte si Databázový model Relační model databáze
Relace, Atribut, Datová n-tice, Doména, Entita Klíče (primární, cizí, kandidátní) Vztahy Integrita a Omezení Relační jazyky


Stáhnout ppt "Relační model databáze"

Podobné prezentace


Reklamy Google