Databázové systémy 1 (DB1) - Integritní omezení
Vymezují hodnoty objektů databáze tak, aby mohly mít v reálném světě smysl.
Tři typy integritních omezení
- entitní (co musí spl?ovat entita)
- doménové (omezení atributů)
- referenční
Entitní integrita
- požadavek na jednoznačnou identifikaci řádky v tabulce
- definicí primárního klíče (jedinečný, vyplněn)
Doménová integrita
- omezuje hodnoty položek (intervalem, výčtem)
- v normě SQL je příkaz CREATE DOMAIN
Referenční integrita
- popisuje, jaké vztahy platí mezi tabulkam
- obvykle se zavádí cizí klíč
Způsoby zajištění integrity
Restriktivní
- nedovolí zrušit řádku nadřízené tabulce, pokud k ní existují řádky v podřízené tabulce
- rovněž nepřipustí změnu hodnoty klíče
Kaskádovitý
- zruší záznam a zruší všechny jeho podřízené záznamy
- povolí přepsat klíč a všude povolí přepsat podřízené klíče
Dosazení prázdné hodnoty
Historie SQL
ANSI SQL 86
- NOT NULL
- UNIQUE
ANSI SQL 89
- PRIMARY KEY
- CHECK – CREATE TABLE kredit (počet kreditů INTEGER CHECK BETWEEN 1 AND 6);
- REFERENCES a FOREIGN KEY – CREATE TABLE predmet (... FOREIGN KEY (garant) REFERENCES ucitel(cislo_ucitel));
ANSI SQL 92
- definice cizího klíče doplněna o
- ON UPDATE CASCADE
- ON DELETE CASCADE
- ON DELETE NULL
- ON UPDATE NULL
- ALTER TABLE ADD CONSTRAINT
- ALTER TABLE DROP CONSTRAINT
- lze provést změnu v definici tabulky omez. podmínek
- SET CONSTRAINT OFF (ON)
Integritní omezení na úrovni definice dat lze i pomocí napsaných "programů" – uložené procedury, triggery.
- uložená procedura – program uložený na serveru
- trigger – program uložený na serveru, který se spouští při určité činnosti
