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



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

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

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

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

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

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

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

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

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

Relace x vztah (relationship)

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

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

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

Relační databázová technologie

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

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

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

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

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

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

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

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

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

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

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

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

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

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Integritní omezení (IO)

Konceptuální modelování a SQL

DBS Transformace konceptuálního schématu na

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

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

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.

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

Semestrální práce z DAS2 a WWW

Databázové systémy. Cvičení 6: SQL

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MySQL základní pojmy, motivace Ing. Kotásek Jaroslav

Inovace a zkvalitnění výuky prostřednictvím ICT Databázové systémy MS Access propojení relací s formuláři a sestavami Ing.

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

KIV/ZIS - primární klíč

DB1 cvičení 4 spojení tabulek a složitější dotazy

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

Databázové systémy a SQL

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY

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

Databázové systémy I

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

Jazyk SQL 3 - DML, DDL, TCL, DCL

Microsoft. Access. Nová databáze, návrh tabulky. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

KIV/ZIS - primární klíč

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

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

Gymnázium Vincence Makovského se sportovními třídami Nové Město na Moravě

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

PRO PRÁCI S APLIKACÍ SKV - VÝBĚR KVALITNÍCH VÝSLEDKŮ

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

- sloupcové integritní omezení

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

Databázové systémy a SQL

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

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

4. blok část A Logické operátory

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

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.

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-210

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

Relační databázová technologie

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

Informační systém pro nemocnici

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

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

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

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

Výukový příklad 2 (příklad s řešením): Seznam členů klubu společenských her

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Access Tabulka letní semestr 2013

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

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

10. Editor databází dotazy a relace

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

6. blok část B Vnořené dotazy

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

METODICKÝ POKYN PRÁCE S PORTÁLEM DUMY.CZ. Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky.

12. blok Pokročilé konstrukce SQL dotazů - část II

MS OFFICE, POWERPOINT

PG 9.5 novinky ve vývoji aplikací

Databázové systémy I

zobrazuje názvy polí, vložené hodnoty jednotlivých záznamů, lze v něm zadávat data (přidávat záznamy) v návrhovém zobrazení:

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

Databázové systémy a SQL

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

M E T O D I K A W I K I

1 Tabulky Příklad 3 Access 2010

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

SQL - trigger, Databázové modelování

Inovace výuky prostřednictvím šablon pro SŠ

Střední odborná škola a Střední odborné učiliště, Hořovice

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

Transkript:

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115 Číslo projektu: Číslo šablony: Název materiálu: Ročník: Identifikace materiálu: Jméno autora: Předmět: Tématický celek: Anotace: CZ.1.07/1.5.00/34.0410 V/2 - inovace směřující k rozvoji odborných kompetencí Pracovní listy Databáze 3. ročník (IT) BEL_52_DAT_PL21 Miloslav Bělský Databáze Integritní omezení - fk Obsahem tohoto pracovního listu je využití integritních omezení - cizí klíč. Datum: 15. 04. 2014 21-1

Databáze Pracovní list č. 21 Omezení CIZÍ KLÍČ (FOREIGN KEY) Cíl Pomocí vkládání cizích klíčů (FK) správně propojit tabulky dat. (Pro omezení se používá anglický termín CONSTRAINT.) Výklad Cizí klíč je omezení, které nahrazuje vztah z ERD (Entity Relationship Diagram). Slouží k propojení dat jedné tabulky s jinou tabulkou, k vytvoření logické souvislosti. Například můžeme tabulku s CD medii propojit s tabulkou, která bude obsahovat seznam vydavatelů. Tím budeme moci ke každému CD přiřadit vydavatele, aniž bychom museli všechny jeho údaje vkládat přímo do tabulky s CD. Cizí klíč je možné vytvořit ihned při tvorbě struktury tabulky CREATE TABLE, nebo dodatečně pomocí ALTER TABLE. Každý cizí klíč může mít dodatečné vlastnosti a je možné ho dočasně vypnout. Pokud potřebuje cizí klíč upravit, musíme jej smazat a vytvořit nový. Sloupec, na který odkazuje cizí klíč musí mít omezení primární klíč nebo unikátní klíč, aby byla zajištěna jedinečnost hodnot. V případě shodných hodnot by cizí klíč nemohl rozhodnout, na kterou hodnotu ukazovat. Vytvoření cizího klíče s tabulkou CREATE TABLE zamestnanci( id NUMBER(5) CONSTRAINT zam_pk PRIMARY KEY, prijmeni VARCHAR2(50) NOT NULL, jmeno VARCHAR2(50) NOT NULL, id_oddeleni NUMBER(5), CONSTRAINT zam_odd_fk FOREIGN KEY(id_oddeleni) REFERENCES oddeleni(id) ); Předchozí příklad ukazuje vložení cizího klíče do tabulky zaměstnanci (potomek). Cizí klíč ukazuje do tabulky oddeleni (rodič) na sloupec id. To znamená, že ke každému zaměstnanci můžeme vložit id oddělení, ve kterém pracuje. Tím je vytvořeno logické propojení mezi tabulkami. 21-2

Vytvoření cizího klíče dodatečně ALTER TABLE zaměstnanci ADD CONSTRAINT zam_odd_fk FOREIGN KEY(id_oddeleni) REFERENCES oddeleni(id); Syntaxe je prakticky stejná, jen následuje po příkazu ALTER TABLE ADD. Zrušení cizího klíče Zrušení je možné provést několika způsoby: ALTER TABLE zaměstnanci DROP CONSTRAINT nazev; ALTER TABLE zaměstnanci DROP PRIMARY KEY; ALTER TABLE zaměstnanci DROP FOREIGN KEY nazev; Klauzule ON DELETE K cizímu klíči můžeme přidat podmínku, jak se má zachovat, když dojde k odstranění nebo úpravě řádku z rodičovské tabulky. Například, když odstraníme nějaké oddělení z tabulky oddeleni v uvedeném příkladu. Pokud neuvedeme jinak, tak nebude možné oddělení odstranit nebo upravit jeho id, dokud na něj odkazuje alespoň jeden řádek z tabulky potomka. Další možnosti: Přidáním ON DELETE CASCADE dojde k odstranění všech řádků potomka, které na smazaný záznam v rodiči ukazovali. Například všichni zaměstnanci smazaného oddělení budou odstraněny. Pokud přidáme ON DELETE SET NULL, dojde při smazání oddělení k nastavení hodnoty NULL u všech řádků v potomkovi. POZOR! Pokud máte v potomkovi na sloupci cizího klíče zároveň omezení NOT NULL, není možné klauzuli se SET NULL použít. Příklad použití: ALTER TABLE zaměstnanci ADD CONSTRAINT zam_odd_fk FOREIGN KEY(id_oddeleni) REFERENCES oddeleni(id) ON DELETE SET NULL; 21-3

Příklady k procvičení: Vytvářejte dotazy podle následujícího zadání. Pod každým úkolem je prostor na poznámky: 1. Vytvořte tabulku VYDAVATELE se sloupci id, nazev, ICO, adresa. a. Sloupec ID musí být PK, ostatní omezení volte podle sebe. Uvědomte si, proč musí být sloupec id primárním klíčem? b. Vložte několik řádek do tabulky VYDAVATELE. c. Do tabulky CD (z minulého pracovního listu č. 10) přidejte sloupec id_vydavatele a vložte cizí klíč, který bude odkazovat do tabulky VYDAVATELE. d. Vložte k jednotlivým CD konkrétní id vydavatele. e. Vypište všechna CD včetně názvu vydavatele. f. Pokuste se smazat některého vydavatele, na nějž existuje odkaz z tabulky CD. 2. Vytvořte tabulku PRISPEVKY se sloupci id, text, datum, id_uzivatele. Tato tabulka bude odkazovat na tabulku UZIVATELE z předchozího pracovního listu č. 10. a. Vložte potřebný cizí klíč, který tyto tabulky logicky propojí. Přidejte klauzuli ON DELETE SET NULL. b. Vložte několik záznamů do tabulky PRISPEVKY. c. Vypište příspěvky včetně jména uživatele. d. Vypište počty příspěvků jednotlivých uživatelů. e. Z tabulky UZIVATELE odstraňte jeden řádek (musí na něj odkazovat alespoň jeden příspěvek) a zkontrolujte změny v tabulce PRISPEVKY. 21-4

3. Vytvořte jednoduchou databázi, která bude evidovat výpůjčky knížek v knihovně. Budete potřebovat tabulky: CTENARI (id, jmeno, prijmeni, datum registrace), KNIHY (id, ISBN, nazev), AUTORI (id, jmeno, prijmeni), ZANRY (id, nazev), VYPUJCKY (sloupce vhodně zvolte). a. U všech tabulek zvolte vhodná omezení. b. Tabulky správně propojte cizími klíči a zvažte využití klauzule ON DELETE. c. Tabulky naplňte daty. d. Nakreslete ERD vaší databáze. e. Vypište: i. Seznam autorů s počtem jejich knih v knihovně. ii. Seznam čtenářů a jejich výpůjčky. iii. Seznam nevrácených výpůjček včetně jména čtenáře a jména knížky. iv. Vypište žebříček nejpůjčovanějších knih. v. *** Za každý den prodlení nad jeden měsíc se účtuje 10 Kč penále. Vypište výpůjčky se jmény čtenářů a výší pokuty. Pokud zatím žádná není, objeví se text v pořádku 21-5