Konceptuální modelování a SQL

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

Konceptuální modelování. Pavel Tyl

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

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

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

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

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

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

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

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

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

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í

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

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

Jazyk SQL 3 - DML, DDL, TCL, DCL

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

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

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

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

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

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

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

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

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

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

Relace x vztah (relationship)

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

Structured Query Language SQL

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

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

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

Databázové systémy trocha teorie

Dotazovací jazyk SQL I

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

OBJECT DEFINITION LANGUAGE. Jonáš Klimeš NDBI001 Dotazovací Jazyky I 2013

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

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

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

Databáze SQL SELECT. David Hoksza

Databázové systémy a SQL

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

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

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

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

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

DBS Transformace konceptuálního schématu na

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

Relační databázová technologie

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

Databázové systémy úvod

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

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

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

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

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

Jazyk SQL slajdy k přednášce NDBI001

Dotazovací jazyk SQL I

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

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

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

Použití databází na Webu

Kurz Databáze. Obsah. Návrh databáze E-R model. Datová analýza, tabulky a vazby. Doc. Ing. Radim Farana, CSc.

Relační DB struktury sloužící k optimalizaci dotazů - indexy, clustery, indexem organizované tabulky

Základy relačních databází, jejich využití v programování webu

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

Kapitola 4: SQL. Základní struktura

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

Model podnikových procesu. Model objektu. Model funkcí. Akce. Proces Objekt (trída) Událost Atribut. Akce. Akce. Funkce

MySQL. mysql> CREATE DATABASE nova CHARACTER SET latin2 COLLATE latin2_czech_cs; Query OK, 1 row affected (0.02 sec)

1. Relační databázový model

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

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

Tvorba informačních systémů

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

Internetová filmová databáze IFDB

Databáze. Logický model DB. David Hoksza

Tvorba informačních systémů

Dotazy v SQL. Výraz relační algebry R1( )[A1,A2,...,Aj] lze zapsat takto: SELECT A1,A2,...,Aj FROM R1 WHERE. Výraz (R1, R2... Rk)( )[A1,A2,...

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

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

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

Databázové a informační systémy. Dokumentace k projektu. Učební sklad

RELAČNÍ DATABÁZOVÉ SYSTÉMY

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

Univerzita Pardubice. Centrální správa dokumentů

DATABÁZE A INFORMAČNÍ SYSTÉMY

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

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

Oracle XML DB. Tomáš Nykodým

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

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

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

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

Relační databázová technologie

Verzování a publikace dat na webu za pomoci PostgreSQL

Databázové systémy I

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

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

Transkript:

Konceptuální modelování a SQL přednáška č.? 1/90

Vytváření IS Analýza Návrh Implementace Testování Předání SW Jednotlivé fáze mezi sebou iterují 2/90

Proč modelovat/analyzovat? Standardizované pracovní postupy Snadnější komunikace v týmu Aktuální a kompletní dokumentace 3/90

Fáze návrhu databáze Požadavky na uložená data Konceptuální návrh Konceptuální schéma (ERD) Logický návrh Logické schéma (tabulky) Fyzický návrh Fyzické schéma Uložené záznamy Přístupové metody 4/53

Funkční analýza Analýza DFD Data Flow Diagram Datová analýza ER Model Entity Relationship Model ERD (Entity-Relationship Diagram) Peter Chen in 1976 5/90

Vztah E-R a DFD Kontextový diagram DFD 1. úroveň ERA diagram DFD n-tá úroveň Definice všech datových prvků Specifikace procesů popis všech funkcí s uvedením na datové prvky a s popisem podmínek vykonání funkcí 6/90

Funkční analýza Identifikace systémových funkcí Identifikace událostí Definice transakcí Popis transakcí 7/90

DFD Data Flow Diagram Stavební prvky DFD Proces 1 Název Terminátor Název Datový tok Název Úložiště dat Název 8/90

DFD Top-Down Postup Používáme postup Shora dolů Úrovně: 1. Kontextový diagram inf. o tom jak bude IS komunikovat se zbytkem světa 2.- n-tá další postupné rozklady (max. doporučená hodnota n je 3) Vhodná jmenná konvence 9/90

Chyby DFD datastory, z nichž se jenom čte nebo se do nich jenom zapisuje samogenerující funkce, tj. funkce které mají jenom výstupy černé díry, tj. funkce do nichž data pouze vstupují 10/90

Seznam událostí p.č. Název události Typ Reakce systému 1. Dílna žádá materiál Data Vyhledá mat., vystaví výdejku 2. Sklad nemá dostatek materiálu Řídící Vystaví objednávku 3. Dodavatel dodá materiál Data Přijme mat., potvrdí dodací list 4. Je první den v měsíci Řídící datum Vytvoří přehled o spotřebě 11/90

Jednoduchý příklad kontextového diagramu Dílna Dodavatel Sklad Management 12/90

Upřesněný kontextový diagram Žádanka Dodavatel Objednávka Dodací list Sklad Výdejka Dílna Přehled spotřeby Management 13/90

Další úrovně rozkladu - sklad Objednávka Žádanka Výdejka Objednávání Materiál Výdej mat. Mat. dodavatel Databáze Zásoba mat. Příjem mat. Mat. Skladové zásoby Tvorba přehledů Přehled spotřeby 14/90

ER Model Cílem je vytvořit datový model postihující určitou část světa Svět je chápán jako množina objektů (entit) a vztahů mezi nimi říkáme ER diagram ERA diagram ještě přidává atributy Vytváříme Konceptuální schéma (nezávisle na DB modelu -relační, síťový, ) 15/90

Postup návrhu databáze Entitní množiny a vztahy Prvotní schéma Osoba (rč,jméno,příjmení,vzdělání, děti, Normalizované schéma Osoba (rč,jméno,příjmení, ) Vzdelani (název, ) Normalizace Návrh fyzické organizace db (indexy, tabulkové prostory, Vytvoření databázových objektů CREATE TABLE Osoba (rč int not null, Jméno varchar(15) NULL, CREATE INDEX irc on Osoba 16/53

Entitní množiny a vztahy Prvotní schéma Produkt(nazev,lokalita,parametry, ) Normalizované schéma Produkt(nazev) Lokalita(nazev,misto,parametry, ) Normalizace Návrh fyzické organizace databáze (indexy, tabulkové prostory, Vytvoření databázových objektů CREATE TABLE Produkt (nazev varchar(15) NULL, CREATE INDEX inazev on Produkt 17/53

SQL Structured Query Language

SQL SEQUEL-XRM, IBM v roce 1974 Neprocedurální jazyk říkáme co chceme, ne jak to provést Standardem od roku 1986 jako SQL86.. 19

Interakční a hostitelská verze Interakční příkazy lze zadávat přímo v režimu on-line Hostitelská SQL je součástí hostitelského jazyka, např. C, Java, PHP, ASP, 20

Spouště DML Řízení transakcí Vložené a dynamické SQL SQL DDL Integritní omezení Bezpečnost Přístupová práva 21

Vytvoření relace CREATE TABLE jméno_relace (atribut datový_typ [NOT NULL[UNIQUE]] [, atribut datový_typ [NOT NULL [UNIQUE]]...] [,UNIQUE seznam_atributů]) CREATE TABLE osoby ( jmeno varchar(25), prijmeni varchar(25), vek integer)

Datové typy v SQL Přesné numerické typy INTEGER, DECIMAL(p,q) Aproximativní numerické typy FLOAT, REAL Znakové řetězce CHARACTER(n), CHARACTER VARYING(n) řetězec o maximální délce n

Datové typy v SQL Datové typy Integer celé číslo se znaménkem; Decimal(p,q) číslo s p ciframi a desetinou čárkou na q pozici zprava; Float reálné číslo; Char(n) řetězec znaků délky n; Varchar(n) řetězec znaků max. délky n; Standartní: Numeric, Real, Double precision, Smallint; Nestandarní: Date,Money, geometric types

CHECK DEFAULT FOREIGN KEY PRIMARY KEY NOT NULL Integritní omezení - kontrola vstupních dat - výchozí hodnota - definice cizího klíče - definice primárního klíče -sloupec nesmí mít hodnotu NULL UNIQUE -všechny hodnoty ve sloupci/ích musí být unikátní, NULL je přípustné

NULL hodnota Předpoklad že vždy známe hodnotu atributu je velmi silný a v reálném světě nereálný Hodnoty atributů mohou být neznámé (nevíme do vložit) SQL na toto pamatuje hodnotou NULL

NULL hodnota II. NULL použije tehdy, pokud je hodnota atributu: Neznámá Neaplikovatelná NULL není 0 ani mezera!! NOT NULL IO nepřipouští ani vložení NULL hodnoty do sloupce

CHECK Jedná se integritní omezení na atributu SQL92 = umožňuje definovat CHECK na více atributech, či dokonce pro více tabulek CHECK specifikuje Boolean podmínku (TRUE, FALSE, nebo neznámé), která se aplikuje na všechny hodnoty do atributu vložené Pokud FALSE, pak je dotaz odmítnut Lze specifikovat i vícenásobný CHECK pro každý atribut JEDNÁ SE O DOMÉNOVÉ OMEZENÍ 28

Příklad CHECK CREATE TABLE my_table( int_column INTEGER, char_column VARCHAR(55), pocet INTEGER NOT NULL, PRIMARY KEY(int_column), CHECK (pocet >=1 AND pocet<=10)) 29

Příklad CHECK II CREATE TABLE cust_sample ( cust_id int PRIMARY KEY, cust_name char(50), cust_address char(50), cust_credit_limit money, CONSTRAINT chk_id CHECK (cust_id BETWEEN 0 and 10000), CONSTRAINT chk_cust_credit_limit CHECK (cust_credit_limit>= 15000 AND cust_credit_limit <= 100000) ) 30

Příklad CHECK III CREATE TABLE my_table( id_mytable INTEGER, trida VARCHAR(55), PRIMARY KEY(id_mytable), CONSTRAINT CK_no_myclass CHECK ( dbs <> SELECT trida.jmeno FROM trida WHERE trida.id_trida = my_table.trida)) 31

UNIQUE UNIQUE zajistí, že se nebudou vyskytovat žádné duplikáty v atributu, který není součástí primárního klíče UNIQUE je vhodné použít tam, kde chce mít atribut/y bez duplicit, které nejsou součástí primárního klíče. Na rozdíl od PRIMARY KEY, UNIQUE dovolí vložit NULL do hodnoty atributu Pouze jedna NULL hodnota je však dovolena v rámci atributu!!! 32

PRIMARY KEY Definuje atribut/atributy, které tvoří primární klíč Pouze jeden pro tabulku Nelze do takového atributu/ů vložit NULL hodnotu Když je specifikován PRIMARY KEY, SQL Server 2005 Database Engine zajistí unikátnost dat tím, že založí unique index pro atribut/y primárního klíče. Index zároveň urychluje přístup k atributům primárního klíče 33

Pro více atributů Pokud je PRIMARY KEY definován pro více atributů, je možné, aby se hodnota opakovala v jednom z nich, ale kombinace musí být unikátní. 34

Příklad CREATE TABLE part_sample ( part_nmbr int PRIMARY KEY, part_name char(30), part_weight decimal(6,2), part_color char(15)primary KEY ); 35

DEFAULT Pomocí DEFAULT lze zadat výchozí hodnotu atributu Pokud tedy uživatel nezadaná hodnotu bude takto definovaný atribut mít hodnotu definovanou pomocí DEFAULT

Příklad DEFAULT CREATE TABLE my_table( id_mytable INTEGER, pocet INTEGER DEFAULT 0, trida VARCHAR(55) DEFAULT N/A, PRIMARY KEY(id_mytable)) 37

FOREIGN KEY Pomocí FOREIGN KEY definujeme vazbu mezi dvěma entitami - referenční integritu

Referenční integrita Referenční integrita definuje logické vazby (vztahy) mezi tabulkami Osoba Id_os jmeno prijmeni datum_n id_os primární klíč tabulky Osoba 11 23 Karel Petr Omáčka Rýha 1.10.1978 19.4.1980 Tridni cizí klíč tabulky Trida Trida Nazev tridni zaku rocnik A4A 11 23 4 A3 23 22 3

SQL CREATE TABLE Osoba ( id_os int, Jmeno varchar(35), Prijmeni varchar(35), Datum_n datetime ) CREATE TABLE Trida ( nazev varchar(20), zaku int, Rocnik int, tridni int FOREIGN KEY FK_osoba REFERENCES Osoba(id_os); 40

Referenční integrita Jedná se o provázání dvou tabulek pomocí odkazu z vedlejší tabulky do tabulky hlavní Osoba Id_os jmeno prijmeni datum_n 11 Karel Omáčka 1.10.1978 23 Petr Rýha 19.4.1980 Trida Nazev tridni zaku rocnik A4A 11 23 4 A3 22 22 3

Referenční integrita Pomocí referenční integrity se lze odkazovat i v rámci jedné tabulky = self relace S výhodou lze použít například pro definic vztahu dokument a přílohy dokumentů, kdy přílohy jsou opět dokumenty 42

Příklad na self-relaci Co je v daném schématu primární klíč? Co je cizí klíč? doc_id title size attachment 13 Doc 1: Zpráva 07 100 NULL 15 Příloha 1 200 13 18 Příloha 2 40 13 43

SQL CREATE TABLE Doc ( doc_id int PRIMARY KEY, title varchar(20), Size int, attachment int FOREIGN KEY FK_attachment REFERENCES Doc(doc_id) ); 44

Referenční integrita pro operace SQL92 Definována pro operace: INSERT UPDATE DELETE 45

INSERT Vkládání řádků do závislé tabulky Operace není povolena pokud pro hodnotu K cizího klíče neexistuje odpovídající řádek v hlavní tabulce, kde K je hodnota primárního klíče Id_os jmeno prijmeni datum_n Osoba hlavní tabulka 11 Karel Omáčka 1.10.1978 Trida závislá tabulka 23 Petr Rýha 19.4.1980 Osoba Nazev tridni Trida zaku rocnik A4A 11 23 4 46 A3 23 22 3

INSERT Je tedy v pořádku následující příklad? Osoba? Id_os jmeno prijmeni datum_n 11 Karel Omáčka 1.10.1978 23 Petr Rýha 19.4.1980 Trida Nazev tridni zaku rocnik A4A 11 23 4 47 A3 22 22 3

INSERT A co v tomto případě? Osoba? Id_os jmeno prijmeni datum_n 11 Karel Omáčka 1.10.1978 11 Petr Rýha 19.4.1980 Trida Nazev tridni zaku rocnik A4A 11 23 4 A3 22 22 3 48

INSERT A teď? Osoba Id_os jmeno prijmeni datum_n 11 Karel Omáčka 1.10.1978 21 Petr Rýha 19.4.1980 Trida Nazev tridni zaku rocnik A4A 11 23 4 A3 11 22 3 49

DELETE - ON DELETE CASCADE Kaskádové odstranění řádků ON DELETE CASCADE Při odstranění záznamu z hlavní tabulky s hodnotou primárního klíče K se odstraní i záznamy v tabulce vedlejší s hodnotou K v cizím klíči Id_os 11 23 jmeno Karel Petr prijmeni Omáčka Rýha datum_n 1.10.1978 19.4.1980 Osoba hlavní tabulka Trida závislá tabulka Trida Osoba Nazev A4A tridni 11 zaku 23 rocnik 4 A3 23 22 3 50

DELETE - ON DELETE CASCADE Co se stane pokud mažu záznam A4A z tabulky trida? Id_os jmeno prijmeni datum_n 11 Karel Omáčka 1.10.1978 23 Petr Rýha 19.4.1980 Trida Osoba Nazev A4A tridni 11 zaku 23 rocnik 4 A3 23 22 3 51

DELETE - ON DELETE CASCADE Co se stane pokud mažu záznam 22 z tab. osoba? Id_os jmeno prijmeni datum_n 11 Karel Omáčka 1.10.1978 22 Petr Rýha 19.4.1980 Trida Osoba Nazev A4A tridni 11 zaku 23 rocnik 4 A3 11 22 3 52

SQL CREATE TABLE Osoba ( id_os int, Jmeno varchar(35), Prijmeni varchar(35), Datum_n datetime ) CREATE TABLE Trida ( nazev varchar(20), zaku int, Rocnik int, tridni int FOREIGN KEY FK_osoba REFERENCES Osoba(id_os) ON DELETE CASCADE; 53

DELETE - SET NULL Nahrazení cizího klíče pomocí NULL SET NULL Odpovídající hodnoty cizích klíčů v závislé tabulce se nahradí hodnotou NULL Id_os 11 jmeno Karel prijmeni Omáčka datum_n 1.10.1978 Osoba hlavní tabulka 23 Petr Rýha 19.4.1980 Trida závislá tabulka Trida Osoba Nazev A4A tridni NULL zaku 23 rocnik 4 A3 23 22 3 54

DELETE - SET NULL Co se stane pokud mažu záznam A4A z tabulky trida? Id_os jmeno prijmeni datum_n 11 Karel Omáčka 1.10.1978 23 Petr Rýha 19.4.1980 Trida Osoba Nazev A4A tridni 11 zaku 23 rocnik 4 A3 23 22 3 55

DELETE - SET NULL Co se stane pokud mažu záznam 22 z tab. osoba? Id_os jmeno prijmeni datum_n 11 Karel Omáčka 1.10.1978 22 Petr Rýha 19.4.1980 Trida Osoba Nazev A4A tridni 11 zaku 23 rocnik 4 A3 11 22 3 56

DELETE - SET NULL Co se stane pokud mažu záznam 11 z tab. osoba? Id_os jmeno prijmeni datum_n 11 Karel Omáčka 1.10.1978 22 Petr Rýha 19.4.1980 Trida Osoba Nazev A4A tridni 11 zaku 23 rocnik 4 A3 11 22 3 57

DELETE - SET NULL Co se stane pokud mažu záznam 11 z tab. osoba? Id_os jmeno prijmeni datum_n 11 Karel Omáčka 1.10.1978 22 Petr Rýha 19.4.1980 Trida Osoba Nazev A4A tridni NULL zaku 23 rocnik 4 A3 NULL 22 3 58

SQL CREATE TABLE Osoba ( id_os int, Jmeno varchar(35), Prijmeni varchar(35), Datum_n datetime ) CREATE TABLE Trida ( nazev varchar(20), zaku int, Rocnik int, tridni int FOREIGN KEY FK_Osoba REFERENCES Osoba(id_os) ON DELETE SET NULL; 59

DELETE - SET DEFAULT Nahrazení hodnoty cizího klíče DEFAULT hodnotou SET DEFAULT Hodnota cizího klíče se nahradí výchozí hodnotou v definici atributu/ů cizího klíče 60

DELETE - SET DEFAULT Jak je definovaná tabulka Osoba? A jak je to s tabulkou Trida? Id_os jmeno prijmeni datum_n 11 Karel Omáčka 1.10.1978 22 Petr Rýha 19.4.1980 Trida Osoba Nazev A4A tridni NULL zaku 23 rocnik 4 A3 NULL 22 3 61

SQL CREATE TABLE Osoba ( id_os int, Jmeno varchar(35), Prijmeni varchar(35), Datum_n datetime ) 62

SQL CREATE TABLE Trida ( nazev varchar(20), zaku int, Rocnik int, tridni int DEFAULT null FOREIGN KEY FK_Osoba REFERENCES Osoba(id_os) ON DELETE SET DEFAULT; 63

DELETE Odstranění záznamů z hlavní tabulky s upozorněním NO ACTION operace se neprovede, pokud pro hodnotu primárního klíče v hlavní tabulce existují záznamy v tabulce vedlejší NO ACTION je výchozí hodnota t.z. že pokud se neuvede nic pak je NO ACTION 64

SQL CREATE TABLE Osoba ( id_os int, Jmeno varchar(35), Prijmeni varchar(35), Datum_n datetime ) CREATE TABLE Trida ( nazev varchar(20), zaku int, Rocnik int, tridni int FOREIGN KEY FK_Osoba REFERENCES Osoba(id_os) ON DELETE NO ACTION; 65

UPDATE Pro UPADTE platí to samé jako pro DELETE 66

SQL např. CREATE TABLE Osoba ( id_os int, Jmeno varchar(35), Prijmeni varchar(35), Datum_n datetime ) CREATE TABLE Trida ( nazev varchar(20), zaku int, Rocnik int, tridni int FOREIGN KEY FK_Osoba REFERENCES Osoba(id_os) ON UPDATE NO ACTION ON DELETE SET DEFAULT; 67

Konec. 68/53