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

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

Databázové systémy Relační model. E.F.Codd: „A relational data model for large shared data banks“ - 1970 Vlastnosti:  Oddělení logické struktury dat.

Podobné prezentace


Prezentace na téma: "Databázové systémy Relační model. E.F.Codd: „A relational data model for large shared data banks“ - 1970 Vlastnosti:  Oddělení logické struktury dat."— Transkript prezentace:

1 Databázové systémy Relační model

2 E.F.Codd: „A relational data model for large shared data banks“ Vlastnosti:  Oddělení logické struktury dat od implementace,  Transparentnost přístupových metod při manipulacích s daty,  Poskytnutí matematické podpory pro manipulaci s daty,  Poskytnutí matematické podpory k omezení redundance při návrhu logické struktury databáze. Relační model

3  jde o model uchovávání entit / vztahů v tabulkách 1 tabulka na entitní/vztahový typ  sloupec tabulky reprezentuje atribut (A) entity  řádek tabulky reprezentuje datovou entitu/vztah (E)  schéma tabulky – popis struktury tabulky (všeho kromě dat) N(A i :T i ) – kde N je název tabulky, A i jsou atributy a T i jejich typy  buňka tabulky na pozici (x,y) uchovává hodnotu atributu A(x) v kontextu entity/vztahu E(y)  schéma relační databáze – množina schémat tabulek (+integritní omezení...) Relační model

4 Tabulkové vyjádření relace a její vlastnosti Atribut2Atribut3Atribut nAtribut1 záznam položka Struktura tabulky Název „relační model“ a „relační databáze“ je odvozen od faktu, že relace je základním abstraktním pojmem modelu a jedinou strukturou databáze na logické úrovni.

5 Integritní pravidla v relačním modelu Integritní pravidla jsou omezení plynoucí z reality reprezentované daty v dané databázi Typy integritních omezení: obecná – musí platit v každé databázi daného typu specifická – pro konkrétní aplikaci Obecná integritní omezení neexistují 2 stejné řádky (unikátní identifikace entit),  každý řádek je identifikovatelný (odlišitelný od ostatních) jedním nebo více pevně určenými atributy v rámci tabulky - klíč tabulky,  skupina atributů, která existuje i v jiné (tzv. referenční) tabulce a tam tvoří klíč - cizí klíč, rozsah hodnot atributu je dán typem (typované atributy), tabulka neobsahuje prázdné buňky - všechny hodnoty jsou definované.

6 Indexy Jsou takové prvky dat, podle nichž lze jednoznačně určit i ostatní atributy téhož záznamu. Indexy podstatně urychlují vyhledávání v databázi.  Unikátní - jednoznačný index - hodnoty v indexu se nesmí opakovat  Primární - stejný jako unikátní index, může být pouze jeden v tabulce - tento klíč jednoznačně identifikuje záznam  Neunikátní - hodnoty se smějí libovolně opakovat.

7 Primární klíč - atribut, který jednoznačně identifikuje n-tici v relaci Atribut K relace R se nazývá kandidátním klíčem, když má tyto dvě časově nezávislé vlastnosti: 1.jednoznačnost 2.minimalita (neredukovatelnost). Primárním klíčem PK je jeden (vybraný) z kandidátních klíčů, zbývající kandidátní klíče se nazývají alternativní. -způsob výběru primárního klíče není v relačním modelu specifikován Každá n-tice bázové relace musí být v každém okamžiku jednoznačně identifikovatelná hodnotou primárního klíče.

8 Cizí klíč Atribut FK bázové relace R2 se nazývá cizí klíč, právě když splňuje tyto časově nezávislé vlastnosti: 1. Každá hodnota FK je buď plně zadaná nebo plně nezadaná. 2. Existuje bázová relace R1 s primárním klíčem PK takovým, že každá zadaná hodnota FK je identická s hodnotou PK nějaké n-tice relace R1. Pravidlo referenční integrity DB nesmí obsahovat žádnou nesouhlasnou hodnotu cizího klíče!

9 Příklad 1 NázevAutorCenaSkladem BídníciHugo, Victor150,-10 TemnoJirásek, Alois120,-16 BásněWolker, Jiří125,-15 KómaCook, Robert190,-32 InfekceCook, Robert170,-20 R.U.RČapek, Karel90,-36 JménoAdresaŽije Čapek, KarelPrahaNE Jirásek, AloisPlzeňNE Wolker, JiříPrahaNE Cook, RobertUSAANO May, KarelNěmeckoNE Hugo, VictorFrancieNE prim. klíč cizí klíč (klíč v tabulce Autor) Kniha (Název text, Autor text, Cena číslo, Skladem číslo) Název je primární klíč, Autor je cizí klíč do tabulky Autor(Jméno) Autor (Jméno text, Adresa text, Žije ano/ne) Jméno je primární klíč

10 Příklad 2 JménoPříjmeníMKSPZ JanNovýCZ5B62345 PetrNovákCZ1Z22543 VáclavNováčekCZ3A85461 IvanNovotnýSKBA456Z AdamNovickýRUBU0124 Mezinárodní kódSPZZnačka CZ1Z22543Škoda CZ3A85461Peugeot CZ5B62345Volvo DA156ZVW RUBU0124Dacia SKBA456ZKia složený klíč složený cizí klíč (klíč v tabulce Auto) Řidič (Jméno text, Příjmení text, MK text, SPZ text), Jméno a Příjmení je klíč, MK a SPZ je cizí klíč do tabulky Auto(Mezinárodní kód, SPZ) Auto (Mezinárodní kód: text, SPZ:text, Značka: text) Mezinárodní kód a SPZ je klíč

11 Převod ER diagramu Výstupem z ER diagramů je seznam tabulek, do kterých budou uložená data, obsahující:  názvy sloupců,  zachování integritních omezení (pokud možno 1:1). Převod obecně  silný entitní typ – tabulka klíčem je identifikátor entity  slabý entitní typ – tabulka klíčem je smíšený (externí) identifikátor  vztahový typ – tabulka počet tabulek a jejich sdílení vztahu a entit se řídí kardinalitami vztahu, do něhož tyto entity vstupují  integritní omezení ve formě klíčů tabulek  n-ární vztahy se převádějí v principu stejně jako binární

12 Kardinality (1,1) : (1,1)  jediná tabulka – klíčem může být identifikátor libovolné z entit (nebo oba) Relační schéma: OsobaMobil(RČ, jméno, příjmení,..., sériové číslo, model, výrobce,...)

13 Kardinality (1,1) : (0,1)  dvě tabulky T1 a T2 T1 existuje nezávisle na T2 T2 obsahuje identifikátor/klíč z T1, který je zde cizím klíčem do T1 reprezentace vztahu je „ukrytá“ v tabulce T2 Relační schéma: Osoba(RČ, jméno, příjmení,..., sériové číslo) Mobil(sériové číslo, model, výrobce,...)

14 Kardinality (0,1) : (0,1)  tři tabulky – dvě entitní a jedna vztahová vztahová tabulka má dva klíče odpovídající identifikátorům obou entitních typů klíče jsou zároveň cizí klíče do entitních tabulek Relační schéma: Osoba(RČ, jméno, příjmení,...) Mobil(sériové číslo, model, výrobce,...) Vlastní(RČ, sériové číslo)

15 Kardinality (0 nebo 1,n) : (1,1)  podobně jako u (1,1) : (0,1) – dvě tabulky T1 a T2 T1 existuje nezávisle na T2 T2 obsahuje identifikátor T1, který je zde cizím klíčem do T1 reprezentace vztahu je „ukrytá“ v tabulce T2 Relační schéma: Osoba(RČ, jméno,příjmení,...) Mobil(sériové číslo, model, výrobce,..., RČ)

16 Kardinality (0 nebo 1,n) : (0,1)  podobně jako (0,1) : (0,1) – tři tabulky – dvě entitní a jedna vztahová vztahová tabulka má jeden klíč odpovídající identifikátoru jednoho z entitních typů, identifikátor druhého entitního typu je pouze cizím klíčem klíč je zároveň cizí klíč do jedné z entitních tabulek Relační schéma: Osoba(RČ, jméno, příjmení,...) Mobil(sériové číslo, model, výrobce,...) Vlastní(RČ, sériové číslo)

17 Kardinality (0 nebo 1,n) : (0 nebo 1,n)  nejobecnější situace – tři tabulky dvě entitní a jedna vztahová klíč ve vztahové tabulce je složený z identifikátorů obou entitních typů všechny části klíče vztahové tabulky jsou cizími klíči do tabulek vázaných Relační schéma: Osoba(RČ, jméno, příjmení,...) Mobil(sériové číslo, model, výrobce,...) Vlastní(RČ, sériové číslo)

18 Transformace ER diagramu na tabulky relační databáze Hlavní problémy špatného návrhu: - opakující se informace (redundance) - cyklické struktury – nesplňují předpoklad jednoznačnosti - nemožnost reprezentovat určitou informaci - složitá kontrola integritních omezení

19 Pravidla transformace Odstranění složených a vícehodnotových atributů

20 Pravidla transformace Vícehodnotový atribut → náhrada opakováním nebo slabá entitní množina

21 Příklad – Rezervace

22 -- Skript pro vytvoreni schematu databaze Vytvoreni tabulek – CREATE TABLE Zakaznik ( Id Integer NOT NULL, Adresa Varchar(100) NOT NULL, Telefon Varchar(12) NOT NULL, CONSTRAINT pk_Zakaznik PRIMARY KEY (Id)); CREATE TABLE Predstaveni ( Id Integer NOT NULL, Datum Date NOT NULL, Nazev Varchar(50) NOT NULL, CONSTRAINT pk_Predstaveni PRIMARY KEY (Id)); CREATE TABLE Sedadla ( Stav Integer NOT NULL, Sedadlo Integer NOT NULL, Rada Integer NOT NULL, Sekce Integer NOT NULL, Id Integer NOT NULL, patri_Id Integer NOT NULL, CONSTRAINT pk_Sedadla PRIMARY KEY (Id, patri_Id), CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id));

23 Příklad – Rezervace CREATE TABLE Rezervuje ( Sedadla_Id Integer NOT NULL, Sedadla_patri_Id Integer NOT NULL, Zakaznik_Id Integer NOT NULL, CONSTRAINT pk_rezervuje PRIMARY KEY (Sedadla_Id, Sedadla_patri_Id), CONSTRAINT fk_rezervuje_Sedadla FOREIGN KEY (Sedadla_Id, Sedadla_patri_Id) REFERENCES Sedadla(Id,patri_Id), CONSTRAINT fk_rezervuje_Zakaznik FOREIGN KEY (Zakaznik_Id) REFERENCES Zakaznik(Id)); -- Konec skriptu --


Stáhnout ppt "Databázové systémy Relační model. E.F.Codd: „A relational data model for large shared data banks“ - 1970 Vlastnosti:  Oddělení logické struktury dat."

Podobné prezentace


Reklamy Google