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

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

Relační databázová technologie

Relace x vztah (relationship)

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

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

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

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

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

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

DBS Transformace konceptuálního schématu na

Konceptuální modelování a SQL

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Konceptuální modelování. Pavel Tyl

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

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. Tomáš Skopal. - úvod do relačního modelu. - převod konceptuálního schématu do relačního

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

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

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

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

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

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

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

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.

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

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

Databázové systémy a SQL

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

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

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

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

Dotazovací jazyk SQL I

Použití databází na Webu

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

DATOVÉ MODELOVÁNÍ ER MODEL

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

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

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

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

Inovace a zkvalitnění výuky prostřednictvím ICT. Základní seznámení s MySQL Ing. Kotásek Jaroslav

- sloupcové integritní omezení

Terminologie v relačním modelu

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

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

1. Relační databázový model

Primární klíč, cizí klíč, referenční integrita, pravidla normalizace, relace

12. blok Fyzický návrh databáze

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

Návrh databázového modelu

Jazyk SQL 3 - DML, DDL, TCL, DCL

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

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

Databázové systémy trocha teorie

Objektově relační databáze a ORACLE 8

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

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

Integritní omezení (IO)

KIV/ZIS cvičení 6. Tomáš Potužák

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

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

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

Co se stane po jeho vykonání? Vyberte libovolný počet možných odpovědí. Správná nemusí být žádná, ale také mohou být správné všechny.

Dotazovací jazyk SQL I

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

Tvorba informačních systémů

Jazyk SQL slajdy k přednášce NDBI001

Vzorové příklady SQL. Tabulka: Kniha CREATE TABLE kniha (id INTEGER, název VARCHAR(50), PRIMARY KEY (id))

Hierarchický databázový model

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í

VŠB FEI - Technická Univerzita Ostrava. DAIS - Projekt. Dopravní podnik. Jméno: Matěj Kotyz (KOT0177)

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

Měřící systém se vzdáleným přístupem. Databáze

Databázové systémy I

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

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

Databázové systémy. Dátové modelovanie - relačný model

Oracle XML DB. Tomáš Nykodým

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

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

Transkript:

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

Přechod z konceptuálního na logický model Entitní typ tabulka Atribut entitního typu sloupec tabulky Vztah: vazba 1:1 a 1:N: Vztah cizí klíč na straně N atribut vztahu sloupec tabulky na straně N vazba N:M: Vztah vazební tabulka Atribut vztahu sloupec vazební tabulky Doplňují se: integritní omezení Omezení hodnot atributů, klíče, unikátnost dat, atp.

http://www.sybase.com/products/modelingmetadata/powerdesigner

Relační databáze primární klíč Klíč: množina (může být i jednoprvková) atributů (sloupců), jež jednoznačně identifikuje danou entitu (záznam) Poznámky: Daný entitní typ (tabulka) může mít více klíčů. Například (i) rodné číslo, (ii) osobní číslo zaměstnance, (iii) syntetický klíč. Každá tabulka má alespoň jeden klíč. V (opravdové) relační databázi tabulka běžně neobsahuje více řádků s týmiž hodnotami v jednotlivých sloupcích (pokud ano, ve většině případů je to chyba). Osobní číslo Rodné číslo Jméno Příjmení Datum narození Jméno Příjmení Datum narození 101 8811010033 Josef Novák 01.11.1988 Josef Novák 01.11.1988 101 8811010033 Josef Novák 01.11.1988

Relační databáze - Cizí klíč Cizí klíč: množina (může být i 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 atributů 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 01.11.1988 Osobní číslo Popis Ráže 101 Kalašnikov 7,65 Rodné číslo SPZ Značka 8811010033 BE-04-30 Škoda

Referenční integrita Mějme dvě tabulky A a B takové, že tabulka B obsahuje cizí klíč odkazující to tabulky A. Referenční integrita je integritní omezení, které v databázi definuje (zajišťuje) vztah (souvislost) mezi cizím a primárním klíčem. Osoba Město V databázi nesmí dojít k tomu, že v nějakém řádku tabulky B odkazuje hodnota cizího klíče na neexistující řádek v tabulce A. V takovém případě jsou data nekonzistentní a v databázi bude docházet k problémům.

Referenční integrita Rodne_cislo Jmeno Prijmeni Osoba drzitel Vyrobni_cislo Vyrobce Typ Popis Strelna_zbran Osoba Zbran Rodne_cislo Jmeno 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 Osoba => cizí klíč příslušného řádku tabulky Zbran bude odkazovat na neexistující řádek tabulky Osoba. b) Změníme hodnotu primárního klíče některého řádku v tabulce Osoba => cizí klíč příslušného řádku tabulky Zbran bude odkazovat na neexistující řádek tabulky Osoba.

Referenční integrita - Implementace Rodne_cislo Jmeno Prijmeni Osoba drzitel Vyrobni_cislo Vyrobce Typ Popis Strelna_zbran 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 Osoba (Rodne_cislo) on delete restrict on update restrict; );

Referenční integrita - Implementace constraint FK_STRELNA DRZITEL_OSOBA foreign key (Rodne_cislo) references Osoba (Rodne_cislo) on delete restrict on update restrict;

Transformace N:M vazby na 1:N vazby Konceptuální model Logický model

Slabý entitní typ VA30 Slabý entitní typ modeluje situaci, kdy jeden entitní typ je existenčně závislý na jiném entitním typu. ma-linky Příklad: Telefonní linky v organizaci 1 11111111 Nemocnice Motol 224 43 11111111 1111 Ústředna 22222222 Honda Motol 234 09 11111111 2920 Kardiocentrum 11111111 2101 Novorozenecké oddělení 22222222 1111 Recepce 22222222 6690 Prodej nových vozů Cizí klíč Cizí Primární klíč klíč

Slabý entitní typ logický model - motivace VA30 VARCHAR(30) DECIMAL(9,0) ma-linky FK_LINKY_RELATIONS_ORGANIZA 1 1 DECIMAL(9,0) CHAR(15) CHAR(20) <fk> Konceptuální model Logický model Při přidání vazby dojde k přidání cizího klíče, ale...

Slabý entitní typ logický model - motivace VA30 VARCHAR(30) DECIMAL(9,0) ma-linky Není to divné? Sloupec IČO tu máme 2x FK_LINKY_RELATIONS_ORGANIZA 1 1 DECIMAL(9,0) CHAR(15) CHAR(20) <fk> Konceptuální model Logický model Při přidání vazby dojde k přidání cizího klíče, ale...

Slabý entitní typ logický model - motivace VA30 VARCHAR(30) DECIMAL(9,0) ma-linky FK_LINKY_RELATIONS_ORGANIZA 1 1 DECIMAL(9,0) CHAR(15) CHAR(20) <fk> Konceptuální model Logický model Při přidání vazby dojde k přidání cizího klíče, ale...

ma-linky VA30 1 VA30 ma-linky VA30 Slabý entitní typ správná vazba

Slabý entitní typ správná vazba Řídící entitní typ VA30 VA30 ma-linky Slabý entitní typ ma-linky Identifikující vztah (vazba) 1 11111111 Nemocnice Motol 224 43 11111111 1111 Ústředna 22222222 Honda Motol 234 09 11111111 2920 Kardiocentrum 11111111 2101 Novorozenecké oddělení 22222222 1111 Recepce 22222222 6690 Prodej nových vozů

Slabý entitní typ Logický model VA30 VARCHAR(30) DECIMAL(9,0) ma-linky FK_LINKY_MA-LINKY_ORGANIZA DECIMAL(9,0) CHAR(15) CHAR(20) <pk,fk>

Slabý entitní typ SQL pro vytvoření create table ( not null, DECIMAL(9,0) not null, Uzivatel-jmeno CHAR(15) null, Uzivatel-prijmeni CHAR(20) null, constraint PK_LINKY primary key (, ) ); create table ( not null, Nazev VARCHAR(30) not null, DECIMAL(9,0) null, constraint PK_ORGANIZACE primary key () ); VARCHAR(30) DECIMAL(9,0) FK_LINKY_MA-LINKY_ORGANIZA DECIMAL(9,0) CHAR(15) CHAR(20) <pk,fk> alter table add constraint "FK_LINKY_MA-LINKY_ORGANIZA" foreign key () references () on delete restrict on update restrict;

Reflexivní vztah matka ma-matku Osoba Rodne-cislo Jmeno Prijemni DC10,0 dítě dítě FK_OSOBA_RELATIONS_OSOBA Rodne-cislo Oso_Rodne-cislo Jmeno Prijemni Osoba DECIMAL(10,0) DECIMAL(10,0) CHAR(15) CHAR(20) <fk> matka

Reflexivní vztah matka ma-matku Osoba Rodne-cislo Jmeno Prijemni DC10,0 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 Jmeno Prijemni Osoba DECIMAL(10,0) DECIMAL(10,0) CHAR(15) CHAR(20) <fk> matka

Reflexivní vztah dítě ma-matku Osoba Rodne-cislo Jmeno Prijemni DC10,0 matka Nepovinná hodnota cizího klíče matka FK_OSOBA_RELATIONS_OSOBA Rodne-cislo Oso_Rodne-cislo Jmeno Prijemni Osoba DECIMAL(10,0) DECIMAL(10,0) CHAR(15) CHAR(20) <fk> dítě

Reflexivní vztah dítě Nepovinná hodnota cizího klíče ma-matku Osoba Rodne-cislo Jmeno Prijemni DC10,0 matka create table Osoba ( Rodne_cislo DECIMAL(10,0) not null, Oso_Rodne_cislo DECIMAL(10,0) null, Jmeno CHAR(15) null, Prijmeni CHAR(20) null, constraint PK_OSOBA primary key (Rodne_cislo) ); alter table Osoba add constraint FK_OSOBA_RELATIONS_OSOBA foreign key (Oso_Rodne_c references Osoba ("Rodne-cislo") on delete restrict on update restrict;