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

Slides:



Advertisements
Podobné prezentace
Úvod do databázových systémů
Advertisements

Přednáška č. 1 Úvod, Historie zpracování dat, Základní pojmy
A5M33IZS – Informační a znalostní systémy Dotazovací jazyk SQL - I.
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
Ing. Monika Šimková. Máme-li data reprezentovat v databázi, jak vybereme jejich strukturu na konceptuální úrovni? Konceptuální modelování analyzuje požadavky.
Databáze.
Microsoft Office Access
DATABÁZOVÉ SYSTÉMY Ing. Roman Danel, Ph.D.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Pojmy z ERD.
Výpočetní technika Akademický rok 2006/2007 Letní semestr Mgr. Petr Novák Katedra informatiky a geoinformatiky FŽP UJEP
Informatika pro ekonomy II přednáška 11
Databázové systémy 1 Cvičení č. 4 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
YDASYS Ing. Monika Šimková.
Databázové systémy 1 Cvičení č. 3 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
1 BUMI Úvod do medicínské informatiky Počítačové cvičení č. 3 Ing. Vratislav Čmiel.
Databáze. Návrh Není to legrace a pro kvalitní databázi je nutné věnovat řadě věcem čas a je nutné použít i papír a tužku!!! Co je to databáze?
A5M33IZS – Informační a znalostní systémy Relační databázová technologie.
Relační datový model Základní ideje
1IT Relační datový model
Úvod do databázových systémů
Databáze Jiří Kalousek.
Cvičení 13 Ing. Pavel Bednář
1IT S ÍŤOVÝ DATOVÝ MODEL Ing. Jiří Šilhán. S ÍŤOVÝ DATOVÝ MODEL Je historicky nejstarším datovým modelem. Jeho základem jsou vzájemně propojené množiny.
Databázové systémy Štěpán Šípal.
Úvod do databázových systémů
Databázové systémy II Přednáška č. 8 – Pohledy (Views)
KONCEPTUÁLNÍ MODELOVÁNÍ
D ATOVÉ MODELY Ing. Jiří Šilhán. D ATABÁZOVÉ SYSTÉMY Patří vedle textových editorů a tabulkových kalkulátorů k nejrozšířenějším představitelům programového.
DATOVÉ MODELY (c) Tralvex Yeap. All Rights Reserved.
Databázové systémy přednáška+cvičení
Fakulta elektrotechniky a informatiky
Relační databáze.
Normalizace.
Konceptuální návrh databáze
Základní pojmy Systém je abstrakce, kterou si lidé vytvářejí v procesu poznávání jako nástroj zkoumání reálných objektů.
Informatika pro ekonomy II přednáška 10
Databázové systémy Přednáška č. 4 Proces návrhu databáze.
Teorie zpracování dat KONCEPTUÁLNÍ SCHÉMA.
Aplikační a programové vybavení
Konceptuální návrh databáze
Databázové modelování
Databázové systémy Relační model.
Databázové modelování
Databáze teorie.
ACCESS – Primární klíče, relace 15. září 2013VY_32_INOVACE_080305_ACCESS_Primarni_klice_relace_DUM Autorem materiálu a všech jeho částí, není-li uvedeno.
Databázové systémy Informatika pro ekonomy, př. 18.
Seminář pro studenty BIVŠ
Aplikační a programové vybavení
Databázové Aplikace Slidy ke cvičení DBI026, část 3 KSI MFF UK Verze
Databázové systémy Datové modely.
Univerzita třetího věku kurz Znalci Databáze 1.
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
Návrh struktury - normalizace
Úvod do databází zkrácená verze.
● Databaze je soubor dat,slouží pro popis reálného světa(např.evidence čkolní knihovny..) ● Relační databaze je databáze založená na relačním modelu.
Úvod do databázových systémů
Relační databázová technologie
Výpočetní technika Akademický rok 2008/2009 Letní semestr
Z3104 Geodatabáze úvod.
Databázové systémy 1 – KIT/IDAS1 Ing. Monika Borkovcová, Ph.D.
Z3104 Geodatabáze úvod.
Informatika pro ekonomy přednáška 8
Počítačová cvičení z předmětu Datové sklady #1 Relační model dat
Relační model databáze
Databázové systémy UIN010
Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava
Praktický modul - zadání
Transkript prezentace:

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

Relační model E.F.Codd: „A relational data model for large shared data banks“ - 1970 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 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(Ai:Ti) – kde N je název tabulky, Ai jsou atributy a Ti 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í...)

Tabulkové vyjádření relace a její vlastnosti Atribut2 Atribut3 Atribut n Atribut1 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.

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é.

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.

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: jednoznačnost 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.

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!

Příklad 1 prim. klíč cizí klíč (klíč v tabulce Autor) prim. klíč 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) Název Autor Cena Skladem Bídníci Hugo, Victor 150,- 10 Temno Jirásek, Alois 120,- 16 Básně Wolker, Jiří 125,- 15 Kóma Cook, Robert 190,- 32 Infekce 170,- 20 R.U.R Čapek, Karel 90,- 36 prim. klíč cizí klíč (klíč v tabulce Autor) Autor (Jméno text, Adresa text, Žije ano/ne) Jméno je primární klíč Jméno Adresa Žije Čapek, Karel Praha NE Jirásek, Alois Plzeň Wolker, Jiří Cook, Robert USA ANO May, Karel Německo Hugo, Victor Francie prim. klíč

Příklad 2 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) Jméno Příjmení MK SPZ Jan Nový CZ 5B62345 Petr Novák 1Z22543 Václav Nováček 3A85461 Ivan Novotný SK BA456Z Adam Novický RU BU0124 složený klíč složený cizí klíč (klíč v tabulce Auto) Auto (Mezinárodní kód: text, SPZ:text, Značka: text) Mezinárodní kód a SPZ je klíč Mezinárodní kód SPZ Značka CZ 1Z22543 Škoda 3A85461 Peugeot 5B62345 Volvo D A156Z VW RU BU0124 Dacia SK BA456Z Kia složený klíč

Převod ER diagramu Převod obecně 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í

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, ...)

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, ...)

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)

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Č)

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)

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)

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í

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

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

Příklad – Rezervace

Příklad – Rezervace -- 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 ( 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, patri_Id Integer NOT NULL, CONSTRAINT pk_Sedadla PRIMARY KEY (Id, patri_Id), CONSTRAINT fk_Sedadla_Predstaveni FOREIGN KEY (patri_Id) REFERENCES Predstaveni(Id));

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 --