Databáze I. Přednáška 1

Podobné dokumenty
Databázové systémy. Cvičení 1

Analýza dat a modelování. Přednáška 1

Analýza dat a modelování. Přednáška 3

Databáze I. Přednáška 2

Databázové systémy. Cvičení 2

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Analýza dat a modelování. Přednáška 2

Databázové systémy úvod

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Databázové systémy BIK-DBS

Databázové systémy úvod

Databázové systémy trocha teorie

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Databázové systémy úvod

DBS Konceptuální modelování

Analýza a modelování dat. Helena Palovská

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Úvod do databázových systémů 6. cvičení

Databáze II. 1. přednáška. Helena Palovská

8.2 Používání a tvorba databází

Informační systémy 2008/2009. Radim Farana. Obsah. Obsah předmětu. Požadavky kreditového systému. Relační datový model, Architektury databází

Úvod do databázových systémů. Lekce 1

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

A5M33IZS Informační a znalostní systémy. O čem předmět bude? Úvod do problematiky databázových systémů

Databázové systémy Cvičení 5.3

Data v informačních systémech

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Relační databázový model. Vladimíra Zádová, KIN, EF, TUL- DBS

Databáze. Logický model DB. David Hoksza

Databázové systémy. Cvičení 3

Databázové systémy BIK-DBS

Databáze I. 1. přednáška. Helena Palovská

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Konceptuální modelování. Pavel Tyl

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

Databáze I. Přednáška 6

Relační databáze. V dnešní době existuje řada komerčních DBMS, nejznámější jsou:

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

Úvod, terminologie. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 1

předměty: ukončení: Zápočet + Zkouška / 5kb např. jméno, název, destinace, město např. student Jan Novák, narozen

Databázové systémy Cvičení 5

Database engine (databázový stroj, databázový motor, databázové jádro) Systém řízení báze dat SŘBD. Typy SŘBD podle způsobu práce s daty

1 Úvod. J. Zendulka: Databázové systémy - 1 Úvod 1

Databázové systémy. Ing. Radek Holý

J. Zendulka: Databázové systémy - 1 Úvod Intuitivní vymezení pojmu databáze

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Hierarchický databázový model

Terminologie v relačním modelu

Databázové modelování. Analýza Návrh konceptuálního schématu

5. Formalizace návrhu databáze

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Úvod do databázových systémů. Ing. Jan Šudřich

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

4IT218 Databáze. 4IT218 Databáze

Analýza a modelování dat 3. přednáška. Helena Palovská

5. Formalizace návrhu databáze

Databázové systémy. Přednáška 1

Geografické informační systémy p. 1

Kapitola 2: Entitně-vztahový model (Entity-Relationship model) Množiny entit (entitní množiny) Atributy

Úvod do informatiky. Miroslav Kolařík. Zpracováno dle učebního textu R. Bělohlávka: Úvod do informatiky, KMI UPOL, Olomouc 2008.

Informační systémy ve zdravotnictví. 6. cvičení

Relační model dat (Codd 1970)

Databázové a informační systémy

4IT218 Databáze. 4IT218 Databáze

Data v informačních systémech

Teorie zpracování dat DATABÁZOVÁ TECHNOLOGIE

Jiří Mašek BIVŠ V Pra r ha

Databázové systémy úvod

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

Objektově orientované databáze. Miroslav Beneš

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Funkční schéma Datové schéma Integrita modelu s realitou

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

Databáze v MS ACCESS

Databázové systémy Cvičení 5.2

Databáze I. Přednáška 4

5. POČÍTAČOVÉ CVIČENÍ

Databázové systémy I. 1. přednáška

Otázka č. 1 (bodů za otázku: 4)

DBS Databázové modely

Datové modelování II

Diagram výskytů a vztahů

Okruhy z odborných předmětů

DBS Transformace konceptuálního schématu na

Databáze I. Přednáška 3

Marketingová komunikace. 1. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK3PH (vm3aph)

Střední průmyslová škola Zlín

Databáze I. 4. přednáška. Helena Palovská

2. Konceptuální model dat, E-R konceptuální model

Databáze I. 5. přednáška. Helena Palovská

37. Indexování a optimalizace dotazů v relačních databázích, datové struktury, jejich výhody a nevýhody

Databáze 2011/2012 Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Relační databáze a povaha dat

TEORIE ZPRACOVÁNÍ DAT

Základy informatiky. 06 Databázové systémy. Kačmařík/Szturcová/Děrgel/Rapant

Transkript:

Databáze I Přednáška 1

Databázová technologie databázová technologie zabývá se řízením velkého množství perzistentních, spolehlivých a sdílených dat databáze soubor informací (znaky, čísla, diagramy,...), jejichž systematická struktura umožňuje vyhledávat tyto informace pomocí počítače

velké množství nevejdou se do operační paměti perzistentní přetrvávající (na diskových pamětech) spolehlivé odolné proti výpadkům systému integrita zajištění konzistence zajištěno např. pomocí transakcí odolné proti neoprávněnému přístupu (bezpečnost - security) autentizace a autorizace

Další vlastnosti dat v databázích neredundance prvky v databázi se zbytečně neopakují ne vždy lze dosáhnout nezávislost programy přistupující k datům jsou nezávislé na tom, jak jsou data uložena

Databázový systém DBS - databázový systém DBS = SŘBD + DB SŘBD - Systém řízení báze dat software DB - databáze vlastní data

SŘBD (DBMS) Databázový systém česky: systém řízení báze dat anglicky: Database Management System databázový software (DB stroj, DB engine) IBM DB2, Oracle, Informix, MS SQL Server, MySQL, SyBase, PostgreSQL

Základní témata db technologie organizace dat, souborů, metody přístupu paralelní přístup (sdílení) transakční zpracování konzistence dat optimalizace dotazů databázové jazyky OS distribuované systémy speciální pro DB technologie projektování dat (modelování)

Poznámky: optimalizace dotazů snaha o co nejefektivnější zpracování dotazů (prohození operací,... ) konzistence dat - logická správnost data odpovídají realitě, např. v DB není zaznamenáno datum 32.13.2005

DBS počátky DB systémů aplikace programovány na míru zlom v polovině 60. let a v 70. letech - odtržení dat a programu základní paradigma databázové technologie existence dat je nezávislá na programech, které s ní pracují

Postavení DBS v IS viz nezávislost snímek 4 zdroj: RNDr. Palovská

Postavení DBS ve vícevrstvé architektuře IS zdroj: RNDr. Palovská

Postavení DBS ve vícevrstvé architektuře IS zdroj: RNDr. Palovská

Postavení DBS ve vícevrstvé architektuře IS zdroj: RNDr. Palovská

Postavení DBS ve vícevrstvé architektuře IS zdroj: RNDr. Palovská

Databázový vs. souborový server přístup k jednotlivým datovým položkám záznamů, nikoli k celému souboru názvy pro různé objekty databázové struktury na strukturu je možno se dotázat... specifická přístupová práva k jednotlivým typům záznamů pro různé uživatele v rámci OS má k datovému souboru přístup pouze SŘBD zdroj: RNDr. Palovská

Databázový vs. souborový server zajišťování integrity a konzistence dat validace vstupu obnova po poruchách až k poslednímu konzistentnímu stavu efektivní správa velkého objemu dat zdroj: RNDr. Palovská

Uživatelé databáze správce dat programátor uživatel pokročilý uživatel, který umí třeba i SQL naivní uživatel zejména dnes, kdy jsou k dispozici názorná webová grafická rozhraní

model Modelování souhrn pojmů (vztahů) popisujících reálný svět příklad: matematický model např. soustavy lineárních rovnic, diferenciálních rovnic, atd. První vlak vyjíždí ze stanice A průměrnou rychlostí 60 km/h, druhý vlak proti němu ze stanice B vzdálené 100 km průměrnou rychlostí 80 km/h o 30 minut později. Vypočtěte vzdálenost od stanice A, kde se vlaky setkají.

s = 100 km, v 1 = 60 km/h, v 2 = 80 km/h ujetá dráha 1. vlaku s 1, ujetá dráha 2. vlaku s 2 čas jízdy 1. vlaku t 1,čas jízdy 2. vlaku t 2 matematický model - soustava lineárních rovnic s = s 1 + s 2, s 1 = v 1 t 1, s 2 = v 2 t 2 t 2 = t 1-0,5 s = v 1 t 1 + v 2 (t 1-0,5)

Modelování v databázových systémech Připomeňme si: základní paradigma databázové technologie existence dat je nezávislá na programech, které s ní pracují

Co k realizaci paradigma potřebujeme? univerzální (obecný) SŘBD konceptuální model platformově nezávislý model databázový model výstupem databázového modelování je schéma konkrétní databáze jazyk pro definici dat (JDD) DDL Data Definition Language aneb musíme nějak SŘBD sdělit, jak bude databáze vypadat, tj. popsat formálním jazykem schéma db

jazyk pro manipulaci dat (JML) DML Data Manipulation Langage s daty se musí manipulovat (vkládat mazat, vyhledávat., součástí jazyka bývá i řízení transakcí dnes tuto úlohu zastává dotazovací jazyk SQL (Structured Query Language)

Druhy modelů používané v DBS 1. konceptuální model model vytvořený na základě úplného odproštění od implementace účel modelu: srozumitelnost i pro laiky v oboru výpočetní techniky na přípravě schématu DB se mohou podílet i uživatel (zákazník), pro nějž se DB tvoří (ostatní řídicí pracovníci) u konceptuálního modelu by měl platit princip 100% postihnout v modelu všechny požadavky uživatele

2. databázový model DB model, který bere v úvahu implementaci modely: síťový data v modelu provázána tak, aby je bylo možné efektivně zpracovat v souborech se sekvenčním přístupem (páska) hierarchický relační DB modelována (a realizována) pomocí provázaných relací (tabulek) objektově-relační, objektově orientovaný databáze XML, NoSQL, grafové,

Historie databází Síťový model 1965 konference CODASYL (Conference on Data System Languages) výbor DataBase Task Group tvorba síťového modelu a koncepce DB systému vznikaly SŘBD pro sálové počítače IDMS, IDS (Integrated Data Store od General Electric) postupná aktualizace síťového modelu 1971, 1973, 1981, 1984, 1987

Historie databází Hierarchický model nemá oficiální standard první SŘBD byl IMS (Information Management System) od IBM a North American Aviation (Rockwell) v 60. letech dodnes prý existuje verze 13 podporovaná IBM pro sálové počítače

Historie databází Relační a objektový model první teoretický článek r. 1970 E.F.Codda zdůraznil logický pohled na data 10 trval vývoj k reálně použitelné relační technologii objektové databáze 1989 objektově relační databáze konec 90. let SQL 99

Konceptuální modely E-R model vytvořen Peterem Chenem v r.1976 E-R znamená: Entity Relationship: The Entity Relationship Model: Toward a Unified View of Data česky: model entit a vztahů definuje grafické zobrazení pomocí ustálených elementů

E-R model

E-R model E-R model používá k modelování reálného světa tyto základní pojmy (konstrukty) entita slabý entitní typ vztah atribut identifikátor kardinalita povinnost ISA vztah

entita zpravidla modeluje objekt reálného světa (např. čtenář), měla by být samostatně vyčlenitelná, identifikovatelná, odlišitelná od jiných entit, schopná nezávislé existence je popsána pomocí hodnot svých vlastností ve větách zpravidla vystupuje jako podmět identifikována jménem (čtenář) př.: čtenář s vlastnostmi: jméno: Vít příjmení: Fábera datum narození: 5.5.1975

entitní typ abstrakce popisující typ entit čtenář s vlastnostmi jméno, příjmení, datum nar. Vít Fábera, 5.5.1975 je výskyt, nebo též instance entity často se pojmy entita, entitní typ zaměňují, pod pojmem entita se myslí ve skutečnosti entitní typ

vztah vyjadřuje vztah mezi dvěma nebo více entitami (je to prvek kartézského součinu mezi entitami) vyjádřen slovesem, přísudkem např. vztah mezi entitami čtenář, exemplář: čtenář si vypůjčil exemplář atribut učeně: funkce f definovaná na množině entit nebo vztahů s funkčními hodnotami z množiny hodnot (z univerza)

srozumitelněji: vlastnosti entit a vztahů příklad: možné atributy u entity čtenář: jméno, příjmení, rodné číslo, u vztahu si vypůjčil: datum výpůjčky atribut jméno: univerzum množina všech řetězců představujících reálná jména

2 entity: atribut příjmení František Kuldanů 320612/1234 Josef Novák 521006/5678 zde přiřazuje funkce atributu příjmení entitě č. 2 hodnotu Novák

pro záznam E-R modelu existuje ustálená grafická notace v Chenově modelu entity obdélník vztahy čtverec postavený na vrchol atributy kolečko, ovál grafickou notaci si budeme ukazovat na příkladu databáze knihovny pro vás by byl jistě přijatelnější příklad z oboru bankovnictví knihovna je každému srozumitelná bankovnictví může být předmětem semestrální práce

existují varianty grafického zobrazení směrem k UML entity obdélník vztahy čára atributy zapisují se do obdélníku k entitě stejně jako atributy třídy v objektově orientovaném přístupu

entita RČ atribut ČTENÁŘ JMÉNO PSČ SI_VYPŮJČIL SI_REZERVOVAL DATUM_VÝP DATUM_REZ EXEMPLÁŘ KNIHA PŘÍR_Č CENA D_NÁK JE_OD TITUL AUTOR ISBN (přírůstkový katalog) vztah (autorský katalog)

entita ČTENÁŘ RČ JMÉNO PSČ atribut SI_VYPŮJČIL DATUM_VÝP EXEMPLÁŘ JE_OD SI_REZERVOVAL DATUM_REZ KNIHA PŘÍR_Č CENA D_NÁK (přírůstkový katalog) vztah TITUL AUTOR ISBN (autorský katalog)

Poznámka č. 1: metodologické zásady pojmenování entity podstatné jméno v jednotném čísle (např. KLIENT, ČTENÁŘ, UČITEL) pojmenování vztahu sloveso (např. MÁ, JE_OD) Poznámka č. 2: v realizované databázi bude zaznamenáno: u každého exempláře pouze přírůstkové číslo, cena a datum nákupu a nějakým způsobem (podle typu databázového modelu) vztah (odkaz) na příslušnou knihu

Poznámka č. 3: teoreticky v databázi dle tohoto schématu může mít kniha pouze jednoho autora prakticky bychom zapsali do políčka Autor více jmen např. oddělených čárkou, což může ale způsobovat obtíže při hledání, výpisu všech exemplářů od daného autora apod. řešení 1. zavedení vícehodnotového atributu (oborem hodnot je množina) 2. zavedení nové entity AUTOR a vztahu NAPSAL mezi entitami KNIHA a AUTOR nejlepší řešení

NAPSAL AUTOR KNIHA JMÉNO PŘÍJMENÍ TITUL ISBN

Nástroje pro tvorbu modelů E-R lze je kreslit v ruce i v jakémkoliv grafickém editoru existují lepší nástroje (case nástroje) Microsoft Visio Enterprise Architect Oracle SQL Developer Data Modeler Case Studio (Quest Software) a další datové modeláře

Integritní omezení (IO) tvrzení o objektech (neboli pravidla) čtenář nesmí mít půjčeno více než 10 knih čtenář si nesmí rezervovat exemplář, jestliže je exemplář v knihovně zásoba součástky nesmí klesnout pod 5 ks minimální zůstatková částka na účtu je 500 Kč RČ je klíčem entity ČTENÁŘ Klíč atribut jednoznačně identifikující entity, v E-R modelu označen podtržením

Kardinalita vztahu typ integritního omezení, omezuje počet výskytů entit v jednotlivých vztazích kardinalita: (1:N) jedna entita může být zapojena pouze 1x, ostatní libovolným počtem (M:N) libovolný počet výskytů u entit (1:1) každá entita může být zapojena ve vztahu pouze jedenkrát

ČTENÁŘ 1 RČ JMÉNO PSČ M SI_VYPŮJČIL SI_REZERVOVAL DATUM_VÝP N N EXEMPLÁŘ 1 N KNIHA DATUM_REZ PŘÍR_Č CENA D_NÁK JE_OD TITUL AUTOR ISBN

SI_VYPUJCIL (1:N) čtenář si může vypůjčit více exemplářů, exemplář může být vypůjčen pouze jedním čtenářem Josef Novák RČ: 521006/5678 1 N Babička přír. číslo 100 U nás přír. číslo 58 František Kuldanů RČ: 320612/1234 Hřbitovní kvítí přír. číslo 1005 Babička přír. číslo 101

SI_REZERVOVAL (M:N) čtenář si může rezervovat více knih (titulů), jedna kniha může být rezervována v daném okamžiku více čtenáři Josef Novák RČ: 521006/5678 M N Babička ISBN: 80-85190-38-9 Učebnice jazyka C ISBN: 80-85828-02-2 František Kuldanů RČ: 320612/1234 Bylo nás pět ISBN: 80-00-00076-8 Divá Bára ISBN: 9788000005027

příklad vztahu 1:1 občan karta zdravotní pojišťovny každý občan má jen jednu kartu zdravotní pojišťovny, karta je určena pouze pro jednoho občana Kardinalita vztahu typu min-max jemnější popis kardinality pro binární vztahy specifikuje minimální a maximální výskyt entity ve vztahu

zápis: R(E 1 (min,max),e 2 (min,max)) příklad: vztah entita entita SI_VYPUJCIL(ČTENÁŘ(0,n),EXEMPLÁŘ(0,1)) čtenář nemusí mít vypůjčen žádný exemplář, může mít vypůjčeno více exemplářů; exemplář nemusí být vypůjčen, může být vypůjčen pouze jedním čtenářem

příklad: JE_OD(EXEMPLÁŘ(1,1),KNIHA(0,n)) exemplář musí být od nějaké knihy (musí být zapojen povinně do vztahu) a musí být maximálně od jedné knihy; kniha nemusí mít v knihovně žádný exemplář (všechny jsou zničené nebo ukradené, ale kniha zůstává v autorském katalogu, protože se plánuje nákup dalších výtisků) a může mít více exemplářů Otázka: Jakou kardinalitu by měl vztah NAPSAL mezi entitami KNIHA a AUTOR?

ČTENÁŘ (0,n) RČ JMÉNO PSČ (0,m) SI_VYPŮJČIL SI_REZERVOVAL DATUM_VÝP (0,1) (1,1) EXEMPLÁŘ (0,n) (0,n) KNIHA DATUM_REZ PŘÍR_Č CENA D_NÁK JE_OD TITUL AUTOR ISBN

Poznámky: entita EXEMPLÁŘ má povinný výskyt ve vztahu (exemplář nemůže existovat bez knihy) exemplář je existenčně závislý na knize EXEMPLÁŘ (1,1) JE_OD (0,n) KNIHA n-ární vztahy vztah může být definován i mezi větším počtem entit, event. entita může být zastoupena ve vztahu vícekrát

DODÁVÁ OBCHODNÍK ZBOŽÍ postihuje situaci, kdy obchodník dodává zboží jinému obchodníkovi arita vztahu = 3 v příkladu s knihovnou jsme měli pouze binární vztahy atribut může být i složený, neatomický adresa (ulice, č.p., místo, PSČ)

Slabý entitní typ některé entity nemohou být jednoznačně identifikovány svým klíčem, potřebují k identifikaci klíč jiné entity jsou to tzv. slabé entitní typy a jsou identifikačně závislé na jiném entitním typu značí se obdélníkem s dvojitou čarou KOPIE (1,1) JE_OD (0,n) FILM ČÍSLO_KOPIE JMÉNO

Příklad: Slabý entitní typ v kině máme tři kopie filmu Amadeus s čísly kopie 1,2,3 a dvě kopie filmu Piano s čísly 1,2 k jednoznačné identifikaci kopie tedy nestačí její číslo, je nutné připojit identifikaci filmu, od kterého je příslušná kopie

Databázové modely síťový, hierarchický, relační Hierarchický model vytvořen v době, kdy byla všechna data uložena v souborech (na páscích, sekvenční přístup) entity jsou realizovány jako běžné záznamy

vztahy jsou realizovány záznamy typu vlastník-člen (otec a syn) příklad: SI_VYPŮJČIL Josef Novák, RČ: 521006/567 (záznam otec ) 100, Babička (záznam syn ) 158, U nás je možné obrátit role vlastník - člen

Síťový model záznamy o entitách jsou v databázi s přímým přístupem podle vztahů jsou záznamy propojeny fyzicky pomocí ukazatelů v databázi není zaznamenáno propojení logicky na úrovni dat na rozdíl od relačního modelu podrobněji: Beneš V.: Technická infrastruktura a síťové technologie, studijní příručka BIVŠ

tvůrce: Codd 1970 Relační model dat DB modelována pomocí relací (= tabulek), logicky provázaných formální abstrakce nejjednodušších souborů efektivně použitelný pro soubory s přímým přístupem (diskové paměti) většina současných DBS jsou relační, resp. objektově relační definujeme-li novou databázi, zadáváme relační schéma (transformace E-R model relační schéma)

Relační model dat E.F. Codd si všiml souvislosti mezi tabulkami a matematickým pojmem relace matematický aparát relační algebra a kalkul vypracovaný nad relacemi dal teoretický základ pro dotazy a JMD naplňoval ideje pro databáze: oddělení dat chápaných jako relace od implementace při manipulaci se nezajímáme o přístupové mechanismy k datům pro omezení redundance jsou definovány tzv. normální formy relací

Relace mat.: podmnožina kartézského součinu A = {X, Y}, B = {1,2,3} kartézský součin: A B A B = {(X,1),(X,2),(X,3),(Y,1),(Y,2),(Y,3)} relace R: R A B R = {(X,1),(Y,1)}

kartézský součin: A = {1, 2, 3}, B = {1,2,3} A B={(1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,1),(3,2),(3, 3)} binární relace menší <: < = {(1,2),(1,3),(2,3)} píšeme: (1,2) <, resp. 1 < 2

Relace R nad množinou atributů A = {A 1 :D 1,,A n :D n } je podmnožina kartézského součinu D 1 D 2 D n A i jsou jména atributů D i jsou domény n je arita relace R(A 1 :D 1,,A n :D n ) je schéma relace prvky relace jsou n-tice (a 1,a 2,,a n ) a i je hodnota atributu A i z domény D i

Příklad: množina atributů {RČ, JMÉNO, PŘÍJMENÍ} domény množina všech platných rodných čísel množina všech řetězců (platných jmen) množin všech řetězců (platných příjmení) schéma relace ČTENÁŘ: ČTENÁŘ(RČ:STRING(11), JMÉNO:STRING(80), PŘÍJMENÍ:STRING(80)) zde jsou specifikovány datové typy, tzv. logické domény

Příklad: zkrácený zápis, bez domén ČTENÁŘ(RČ, JMÉNO, PŘÍJMENÍ) Prvky relace ČTENÁŘ jsou trojice

Tabulková terminologie relace = tabulka schéma relace = záhlaví tabulky arita relace = počet sloupců jméno atributu = jméno sloupce n tice = řádek tabulky

Příklad konkrétní relace ČTENÁŘ zde dvouprvkové (obsahuje dvě trojice, dva řádky): 320612/1234 František Kuldanů 521006/5678 Josef Novák

Schéma relační databáze je dvojice (R,I), kde R je množina schémat relací (R 1,,R k ) a I je množina integritních omezení integritní omezení lze definovat jako podmínky, např: Atribut rodné číslo má tvar RRMMDD/XXXX, kde DD >= 01 a DD < 31 MM >= 01 a MM < 12 nebo MM>= 51 atd.

Schéma relační databáze přípustná relační databáze se schématem (R,I) je množina relací R 1,,R k takových, že jejich prvky vyhovují integritním omezením

Kandidát na klíč množina atributů relace K: 1. hodnoty K identifikují prvky relace 2. neexistuje K K, že K splňuje 1 (minimalita, tj. žádný atribut v K není nadbytečný) primární klíč (PRIMARY KEY) jeden vybraný kandidát na klíč Poznámka: v relacích často zavádíme umělý primární klíč např. pořadové číslo

Transformace E-R modelu do relačního modelu entita vytvoříme relaci se shodnými atributy jako má entita zvolíme primární klíč (nutné, pokud je entita zapojena ve vztahu) vztah M:N vytvoříme relaci s atributy daného vztahu, přidáme atributy odpovídající primárním klíčům entit, které jsou ve vztahu zapojeny

atribut odpovídající primárnímu klíči entity se nazývá cizí klíč (FOREIGN KEY) 1:N buď: stejným způsobem jako vztah M:N nebo: u entity, která má maximální výskyt ve vztahu roven 1, přidáme do její relace atribut odpovídající primárnímu klíči druhé relace (vhodné pro povinný výskyt ve vztahu) 1:1 u jedné entity přidáme atribut odpovídající primárnímu klíči relace druhé entity

ČTENÁŘ 1 RČ JMÉNO PŘÍJMENÍ M SI_VYPŮJČIL SI_REZERVOVAL DATUM_VÝP N N EXEMPLÁŘ 1 N KNIHA DATUM_REZ PŘÍR_Č CENA D_NÁK JE_OD TITUL AUTOR ISBN

ČTENÁŘ (0,n) RČ JMÉNO PSČ (0,m) SI_VYPŮJČIL SI_REZERVOVAL DATUM_VÝP (0,1) (1,1) EXEMPLÁŘ (0,n) (0,n) KNIHA DATUM_REZ PŘÍR_Č CENA D_NÁK JE_OD TITUL AUTOR ISBN

Příklad: Relační schéma DB knihovny ČTENÁŘ(RČ, JMÉNO, PŘÍJMENÍ) KNIHA(ISBN, TITUL, AUTOR) EXEMPLÁŘ(PŘÍR_Č, CENA, D_NÁK) JE_OD(PŘÍR_Č, ISBN) cizí klíče SI_VYPŮJČIL(RČ, PŘÍR_Č, DATUM_VÝP) SI_REZERVOVAL(RČ, ISBN, DATUM_REZ) eventuální realizace vztahu JE_OD: nebude relace JE_OD, místo ní bude mít relace EXEMPLÁŘ podobu: EXEMPLÁŘ(PŘÍR_Č, CENA, D_NÁK, ISBN) cizí klíč

eventuální realizace vztahu SI_VYPŮJČIL: místo relace SI_VYPŮJČIL bude relace: EXEMPLÁŘ(PŘÍR_Č, CENA, D_NÁK,RČ) Poznámka: pokud není exemplář vypůjčen, hodnota atributu RČ není v příslušném záznamu definována co bude ve skutečnosti uloženo v DB? hodnota NULL, reprezentující prázdnou hodnotu toto není vhodné řešení, pro realizaci vztahu je zde lépe mít samostatnou relaci

ČTENÁŘ RČ JMÉNO PŘÍJMENÍ 320612/1234 František Kuldanů 521006/5678 Josef Novák KNIHA ISBN TITUL AUTOR 80-11111-22-3 U nás A. Jirásek 80-85190-38-9 Babička B. Němcová EXEMPLÁŘ PŘÍR_Č CENA D_NÁK 1 100 25.3.1990 2 100 25.3.1990 3 150 26.3.1990

JE_OD PŘÍR_Č ISBN 1 80-85190-38-9 2 80-85190-38-9 3 80-11111-22-3 SI_VYPŮJČIL RČ PŘÍR_Č DAT 320612/1234 1 10.11.2005 521006/5678 2 20.11.2005

Realizace vztahů 1:N bez relací SI_VYPŮJČIL, JE_OD: ČTENÁŘ(RČ, JMÉNO, PŘÍJMENÍ) KNIHA(ISBN, TITUL, AUTOR) EXEMPLÁŘ(PŘÍR_Č, CENA, D_NÁK,ISBN,RČ,DATUM_VÝP) SI_REZERVOVAL(RČ, ISBN, DATUM_REZ)

ČTENÁŘ RČ JMÉNO PŘÍJMENÍ 320612/1234 František Kuldanů 521006/5678 Josef Novák KNIHA ISBN TITUL AUTOR 80-11111-22-3 U nás A. Jirásek 80-85190-38-9 Babička B. Němcová EXEMPLÁŘ PŘÍR_Č CENA D_NÁK ISBN RČ DATUM_VÝP 1 100 25.3.1990 80-85190-38-9 320612/1234 10.11.2005 2 100 25.3.1990 80-85190-38-9 521006/5678 20.11.2005 3 150 26.3.1990 80-11111-22-3