Relace x vztah (relationship)

Podobné dokumenty
Relační databázová technologie

A5M33IZS Informační a znalostní systémy. Relační databázová technologie

Relační databázová technologie

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

Transformace konceptuálního modelu na relační

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

DBS Transformace konceptuálního schématu na

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

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

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

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

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

Databáze. Logický model DB. David Hoksza

Transformace ER SQL. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 9

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Konceptuální modelování a SQL

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Databázové systémy. Tomáš Skopal. - úvod do relačního modelu. - převod konceptuálního schématu do relačního

Souvislost E-R schématu s relačním

Konceptuální modelování. Pavel Tyl

2 Konceptuální modelování a návrh databáze

2 Konceptuální modelování a návrh databáze

Konceptuální datové modely používané při analýze

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

6. SQL složitější dotazy, QBE

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

Kapitola 6: Omezení integrity. Omezení domény

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

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

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

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

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Fakulta elektrotechniky a informatiky Vysoká škola báňská - Technická univerzita Ostrava. Úvod do databázových systémů 2012/2013 IS MHD

DBS Konceptuální modelování

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

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

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

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

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

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

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

Databázové systémy trocha teorie

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

C8 Relační databáze. 1. Datový model

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

DATOVÉ MODELOVÁNÍ ER MODEL

Diagram výskytů a vztahů

Terminologie v relačním modelu

DUM 12 téma: Příkazy pro tvorbu databáze

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

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

Databázové systémy. Vztahy a relace. 3.přednáška

Dotazovací jazyk SQL I

Databázové systémy. Integritní omezení. Vilém Vychodil. V. Vychodil (KMI/DATA1, Přednáška 9) Integritní omezení Databázové systémy 1 / 33

Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

10. blok Logický návrh databáze

Úvod do databázových systémů 2012/2013 IS MHD. Jiří Znoj zno

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

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

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ů

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

Tvorba informačních systémů

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

Microsoft. Access. Databáze s více tabulkami. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Databázové systémy a SQL

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

J. Zendulka: Databázové systémy 4 Relační model dat 1

1. Relační databázový model

Tvorba informačních systémů

Sada 1 - PHP. 14. Úvod do jazyka SQL

Hierarchický databázový model

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

Jazyk SQL databáze SQLite. připravil ing. petr polách

Design databáze. RNDr. Ondřej Zýka

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Dotazovací jazyk SQL I

8. Zpracování dotazu. J. Zendulka: Databázové systémy 8 Zpracování dotazu 1

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

J. Zendulka: Databázové systémy 8 Zpracování dotazu Podstata optimalizace zpracování dotazu

Jazyk SQL slajdy k přednášce NDBI001

Semestrální práce 4IT450

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

Obsah přednášky. Databázové systémy. Normalizace relací. Normalizace relací. Normalizace relací. Normalizace relací

Návrh databázového modelu

RNDr. Jakub Lokoč, Ph.D. RNDr. Michal Kopecký, Ph.D. Katedra softwarového inženýrství Matematicko-Fyzikální fakulta Univerzita Karlova v Praze

DATABÁZE A INFORMAČNÍ SYSTÉMY

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Zkouškový příklad 4IT218 Rezervační systém zážitkové agentury. Karel Kohout FIS VŠE

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Normální formy. Zdeněk Kouba

Použití databází na Webu

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

Strukturované metody Jan Smolík

Transkript:

Relace x vztah (relationship) Peter Chen, Peter Pin-Shan (March 1976): "The Entity-Relationship Model Toward a Unified View of Data". ACM Transactions on Database Systems 1. E-R diagram v Chennově notaci

Relace x vztah (relationship) Identifikující atribut Atribut vztahu Atribut entitního typu Entitní typ Vztah E-R diagram v Chennově notaci

Cardinality x connectivity Kardinalita (Chen): 1 narozena v N Město Konektivita (také UML): N 1 narozena v Město Bohužel, místo konektivita se běžně říká kardinalita.

Tvorba datového modelu (schematu) Konceptuální model Logický model Fyzický model Nezávisí na použité DB technologii Závisí na technologii, ale nezávisí na typu DB Závisí na konkrétním typu DB Vzhledem k naprosté převaze relačních databází se často nerozlišuje fáze tvorby konceptuálního a logického modelu.

Relační databáze Implementace entitního typu - tabulka Implementace vztahu klíč, cizí klíč Město Rodne_cislo Prijmeni Narozen Město-ID Název 7455071111 Jana Nováková 1 1 Beroun 7906071111 Josef Nakoupil 1 2 Benešov 8404251111 Karel Kubát 3 3 Příbram 8602191111 Luděk Pondělí 3 Klíč Primární klíč Cizí klíč Vztah Město: kardinalita N : 1 0,N : 1,1

Relace vzniklá spojením jiných relací (equi) JOIN Rodne_cislo Prijmeni Narozen Město-ID Název 7455071111 Jana Nováková 1 1 Beroun 7906071111 Josef Nakoupil 1 2 Benešov 8404251111 Karel Kubát 3 3 Příbram 8602191111 Luděk Pondělí 3 Rodne_cislo Prijmeni Narozen Název 7455071111 Jana Nováková 1 Beroun 7906071111 Josef Nakoupil 1 Beroun 8404251111 Karel Kubát 3 Příbram 8602191111 Luděk Pondělí 3 Příbram

Vztah (relationship) c Parcialita d Město vztah a Konektivita b Notace Crow's Foot

Vztah N:M EntitníTyp1 vztah EntitníTyp2 Dekompozice vztahu s konektivitou N:M na dva vztahy s konektivitou 1:N EntitníTyp1 vztah EntitníTyp2 Notace Crow's Foot

Vztah N:M Ucitel R_CISLO (PK) Prijmeni vyucuje Skol_rok Trida Predmet Kod (PK) Nazev Rocnik Hodin_tydne Notace Crow's Foot

Rekurzivní vztah Jak budeme modelovat vztah mezi osobou a matkou dané osoby? Matka osoby je rovněž osobou, nemůže být tudíž v jiné tabulce! R_CISLO (PK) Prijmeni ma-matku Primární klíč R_CISLO (PK) Prijmeni R_CISLO_MATKY Cizí klíč Notace Crow's Foot

Relační databázová technologie Cizí klíč: množina (možná jednoprvková) atributů (sloupců), jejichž hodnota určuje hodnotu klíče jiné tabulky. Poznámky: 1. Datový typ jednotlivých atributů musí být kompatibilní s datovým typem odpovídajících atrinutů klíče referencované tabulky. 2. Cizí klíč není (nemusí být) v dané tabulce klíčem. 3. Vztah mezi entitami se realizuje asociativní vazbou cizí klíč -> primární klíč. 4. Vzhledem k tomu, že tabulka může mít více klíčů, je dobré jeden z nich zvolit a systematicky ho používat k realizaci vztahů s ostatními tabulkami. Takto zvolený klíč nazýváme klíčem primárním. Osobní číslo Rodné číslo Jméno Příjmení Datum narození 101 8811010033 Josef Novák 1.11.1988 Osobní číslo Popis Ráže 101 Kalašnikov 7,65 Rodné číslo SPZ Značka 8811010033 BE-04-30 Škoda

Převod konceptuální model -> logický model Entitní typ -> tabulka Atribut entitního typu -> sloupec tabulky Vztah: 1:1 nebo 1:N: vztah->cizí klíč na straně N atribut vztahu -> sloupec tabulky na straně N N:M: Vztah -> vazební tabulka Atribut vztahu -> sloupec vazební tabulky

Konceptuální model Logický model

Logický model Organizace ICO N zev Telefon_prefix DECIMAL(8,0) VARCHAR(30) DECIMAL(9,0) <pk> create table Linky ( ICO DECIMAL(8,0) not null, Linka DECIMAL(9,0) not null, Uzivatel-jmeno CHAR(15) null, Uzivatel-prijmeni CHAR(20) null, constraint PK_LINKY primary key (ICO, Linka) ); create table Organizace ( ICO DECIMAL(8,0) not null, Nazev VARCHAR(30) not null, Telefon_prefix DECIMAL(9,0) null, constraint PK_ORGANIZACE primary key (ICO) ); FK_LINKY_MA-LINKY_ORGANIZA ICO Linka Uûivatel-jmÈno Uûivatel-p ÌjmenÌ Linky DECIMAL(8,0) DECIMAL(9,0) CHAR(15) CHAR(20) <pk,fk> <pk> alter table Linky add constraint "FK_LINKY_MA-LINKY_ORGANIZA" foreign key (ICO) references Organizace (ICO) on delete restrict on update restrict;

Reflexivní vztah 1 matka ma-matku Rodne-cislo Prijemni <pi> DC10,0 A15 A20 <M> dìtï dìtï FK_OSOBA_RELATIONS_OSOBA Rodne-cislo Oso_Rodne-cislo Prijemni DECIMAL(10,0) DECIMAL(10,0) CHAR(15) CHAR(20) <pk> <fk> matka

Reflexivní vztah 1 matka ma-matku Rodne-cislo Prijemni <pi> DC10,0 A15 A20 <M> dìtï Reflexive mandatory reference A reflexive reference exists should not have a mandatory parent which could lead to inconsistent dìtï joins. FK_OSOBA_RELATIONS_OSOBA Rodne-cislo Oso_Rodne-cislo Prijemni DECIMAL(10,0) DECIMAL(10,0) CHAR(15) CHAR(20) <pk> <fk> matka

Reflexivní vztah 2 dìtï ma-matku Rodne-cislo Prijemni <pi> DC10,0 A15 A20 <M> matka Nepovinná hodnota cizího klíče matka FK_OSOBA_RELATIONS_OSOBA Rodne-cislo Oso_Rodne-cislo Prijemni DECIMAL(10,0) DECIMAL(10,0) CHAR(15) CHAR(20) <pk> <fk> dìtï

Reflexivní vztah 2 dìtï Nepovinná hodnota cizího klíče ma-matku create Rodne-cislo table <pi> DC10,0 ( <M> Rodne_cislo matka A15 DECIMAL(10,0) not null, Oso_Rodne_cislo Prijemni A20 DECIMAL(10,0) null, CHAR(15) null, Prijmeni CHAR(20) null, constraint PK_OSOBA primary key (Rodne_cislo) ); matka FK_OSOBA_RELATIONS_OSOBA alter table add constraint FK_OSOBA_RELATIONS_OSOBA foreign key (Oso_Rodne_cislo) references ("Rodne-cislo") on delete restrict on Rodne-cislo update restrict; DECIMAL(10,0) <pk> dìtï Oso_Rodne-cislo DECIMAL(10,0) <fk> CHAR(15) Prijemni CHAR(20)

Reflexivní vztah 2 dìtï ma-matku create Rodne-cislo table <pi> DC10,0 ( <M> Rodne_cislo DECIMAL(10,0) not matka A15 null, Oso_Rodne_cislo Prijemni A20 DECIMAL(10,0) null, CHAR(15) null, Prijmeni CHAR(20) null, constraint PK_OSOBA primary key (Rodne_cislo) ); matka FK_OSOBA_RELATIONS_OSOBA alter table add constraint FK_OSOBA_RELATIONS_OSOBA foreign key (Oso_Rodne_cislo) references ("Rodne-cislo") on delete restrict on Rodne-cislo update restrict; DECIMAL(10,0) <pk> dìtï Oso_Rodne-cislo DECIMAL(10,0) <fk> CHAR(15) Prijemni CHAR(20)

Referenční integrita 1 Mějme dvě tabulky A a B takové, že tabulka B obsahuje cizí klíč odkazující to tabulky A. V databázi nesmí dojít k tomu, že pro nějaký řádek tabulky B odkazuje jeho hodnota cizího klíče na neexistující řádek tabulky A.

Referenční integrita 2 Rodne_cislo Prijmeni <pi> <M> drzitel Vyrobni_cislo Vyrobce Typ Popis Strelna_zbran <pi> <pi> <M> <M> Zbran Rodne_cislo Prijmeni Drzitel Vyrobni_cislo Vyrobce Typ Popis 1 Josef Novák 1 101 Zbrojovka Vzduchovka Slavie 2 Jaroslav Novotný 2 202 Zbrojovka Kalashnikov Vzor 57 Jak může dojít k porušení referenční integrity? a) Zrušíme záznam v tabulce => cizí klíč příslušného řádku tabulky Zbran bude odkazovat na neexistující řádek tabulky. b) Změníme hodnotu primárního klíče některého řádku v tabulce => cizí klíč příslušného řádku tabulky Zbran bude odkazovat na neexistující řádek tabulky.

Referenční integrita 3 Rodne_cislo Prijmeni <pi> <M> drzitel Vyrobni_cislo Vyrobce Typ Popis Strelna_zbran <pi> <pi> <M> <M> create table Strelna_zbran ( Vyrobni_cislo CHAR(10) not null, Vyrobce CHAR(10) not null, Rodne_cislo CHAR(10) not null, Typ CHAR(10) null, Popis CHAR(10) null, constraint PK_STRELNA_ZBRAN primary key (Vyrobni_cislo, Vyrobce) constraint FK_STRELNA DRZITEL_OSOBA foreign key (Rodne_cislo) references (Rodne_cislo) on delete restrict on update restrict; );