Primární a cizí klíč Kandidát primárního klíče (KPK) Je taková množina atributů, která splňuje podmínky: • Unikátnosti • Minimálnosti (neredukovatelnosti) Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče. Alternativní klíč (AK) Je taková množina atributů, která tvoří kandidáta primárního klíče, ale není primárním klíčem. Nadklíč Je libovolná nadmnožina nějakého KPK.
Primární a cizí klíč (pokračování) Cizí klíč (Foreign Key - FK) Cizí klíč je množina atributů z relace R taká, že existuje relace R´ s kandidátem primárního klíče, jehož množina atributů je identická s atributy tvořící cizí klíč. Relaci R´ nazýváme logicky nadřízenou nebo-li hlavní. Relaci R nazýváme logicky podřízenou nebo-li závislou. Pro cizí klíč platí: - FK může být množinou atributů. - Každá hodnota FK, která se objeví v relaci se musí vyskytovat jako hodnota PK v jiné relaci. - Je nutné, aby hodnota FK v logicky podřízené relaci R měla vždy stejnou hodnotu s hodnotou KPK v logicky nadřízené relaci R´. - Každý z atributů tvořící FK musí mýt definovanou stejnou doménu jako příslušný atribut KPK. - FK je odkazem na řádek relace, kde hodnota KPK je totožná s hodnotou FK. - FK je vyjádřením vztahu mezi dvojicí n-tic a reprezentuje spojení mezi relacemi.
Ochrana dat Důvody : - data jsou pro všechny uživatele uložena ve společné bázi dat - každý údaj je uložený v bázi dat pouze jednou - mezi daty existuje logická struktura - interaktivní přístup k bázi dat - vícenásobná současná aktualizace báze dat Možnosti : 1) ochrana integrity dat 2) utajení dat
Integrita dat Integrita V oblasti databází je pojem integrita chápán ve významu správnosti a zabezpečení konzistence dat.
Integritní omezení Pravidla vymezující korektnost uložených dat a rozhodující o proveditelnosti aktualizačních operací.
Pravidla přesunuta z aplikací na server - nižší zátěž komunikace po síti - uplatnění na všechny akce
Klasifikace integritních omezení : 1) Doménová integrita (D-Integrita) 2) Integrita sloupcová (C-integrita) 3) Integrita entit (E-integrita) 4) Referenční integrita (R-integrita)
Integrita dat (pokračování) Doménová integrita : • Typ dat • Omezení rozsahu • Množina přípustných hodnot
Sloupcová integrita : • Dodatečné omezení pro rozsah hodnot, které jsou podmnožinou příslušné domény • Povolení nebo zakázání vkládání nedefinovaných hodnot (NULL nebo NOT NULL) • Povolení nebo zakázání duplicit hodnot (UNIQUE)
Entitní integrita : Zabezpečení entitní integrity databáze znamená nepřipustit uložení řádku, ve kterém je hodnota položky představující klíč či některou z jeho komponent nenaplněná nebo duplicitní vzhledem k již uloženým řádkům.
Integrita dat (pokračování) Referenční integrita Udržet referenční integritu dat znamená nepřipustit aktualizaci, která by způsobila, že se budou mezi hodnotami cizího klíče vyskytovat hodnoty, které nejsou podmnožinou hodnot odkazovaného primárním klíčem. Garantuje korektnost vztahů mezi logicky souvisejícími tabulkami. Prostředky udržení referenční integrity : 1) Restrikčním způsobem Znemožní: -zrušit řádek, pokud se hodnota některé z položek vyskytuje v nějaké jiné tabulce jako cizí klíč -aktualizaci hodnoty této položce -uložení řádku s hodnotou klíče, která se dosud mezi hodnotami odkazované položky v logicky nadřízené tabulce nevyskytuje 2) kaskádovité dovedení změn v logicky nadřízené tabulce do všech logicky podřízeným záznamů 3) nahrazením hodnot cizích klíčů hodnotou neurčitou
Integrita dat (pokračování) Prostředky k zajištění doménové, sloupcové, entitní a referenční integrity databáze mají :
a) deklarativní charakter - specifikace integritního omezení je přímou součástí definice struktury databáze v rámci příkazů CREATE TABLE resp. ALTER TABLE
b) procedurální charakter - založeno na využití databázových procedur - automatické provedení předem definovaných akcí poskytuje mechanismus označovaný jako database triggers - definice triggeru obvykle zahrnuje uvedení aktualizujícího příkazu a relační tabulky včetně případných podmínek, při kterých má být trigger aktivován
Uživatelé databáze Uživatele databázových systémů dělíme do kategorii : • Správce dat - systémový programátor - navrhuje konceptuální schéma DB, rekonstruuje, udílí práva přístupu a vyhodnocuje její využívání. • Aplikační programátor - programátor profesionál (vytváří konkrétní aplikační programy) - pracuje s dílčí částí schématu pomocí dotazovacího jazyka • Příležitostný uživatel - nemá detailní znalosti programování - dokáže popsat strukturu své databáze naplnit ji daty a formulovat své dotazy prostřednictvím vizuálního dotazovacího jazyka QBE. • Naivní uživatel - používá jen hotové programy Databáze na osobním počítači : • Naivní uživatele - používají jen hotové programy • Aplikační uživatele - dokáží popsat strukturu své databáze, naplnit ji daty a formulovat své dotazy pomocí DML.