Weblog   Foto galerie   Odkazy   Implementace katedrálního portálu   ZČU-FAV

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í

  1. entitní (co musí spl?ovat entita)
  2. doménové (omezení atributů)
  3. 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