Upload
wynona
View
70
Download
1
Embed Size (px)
DESCRIPTION
Integrita dat datab áze Oracle. Lubom ír Andrle lubomir.andrle @ unicorn.eu 4 . přednáška 21 .10.201 3. Obsah. Data integrity Integrity constraints Reference integrity Triggers Jak přistupovat k řešení data integrity. DATA integrity. Data integrity. - PowerPoint PPT Presentation
Citation preview
Obsah
• Data integrity– Integrity constraints– Reference integrity– Triggers
• Jak přistupovat k řešení data integrity
DATA INTEGRITY
Data integrity• Integrita databáze znamená, že databáze vyhovuje zadaným
pravidlům – integritním omezením (wiki)
• Důvody vzniků nekonzistencí– nedostatečná aktualizace dat– vložení nesprávných hodnot• Vložená data neodpovídají realitě
– referenční integrita• Při rušení řádku v jedné tabulce může nastat situace,
kdy v jiné tabulce zůstanou informace, které se k tomuto řádku vztahují (odkazují)
Zajištění data integrity
• Volba správného datového typu– Číslo je opravdu číslo, apod.
• Použití mechanismu Integrity constraints• Využití triggerů
Integrity constraints
• NOT NULL• UNIQUE KEY• PRIMARY KEY• FOREIGN KEY• CHECK
NOT NULL constraint
• Zamezuje vložení NULL hodnoty do daného sloupce
UNIQUE KEY constraint
• Zamezuje vložení dvakrát stejné hodnoty do daného sloupce
COMPOSITE UNIQUE KEY
• Lze definovat tzv. Složený Unique Key– Skládá se z více sloupců
PRIMARY KEY constraint
• Každá tabulka musí mít definován právě jeden Primary Key (PK) constraint
• Implementace PK constraint garantuje– V rámci jedné tabulky neexistují dva řádky se
stejným PK– PK neumožňuje vložit hodnotu NULL
PRIMARY KEY (PK)
• Sloupce definující PK constranit se nazývají Primary Key Columns
• Úloha PK– Každý řádek je
jednoznačně identifikován
– Neexistují duplicitní řádky v jedné tabulce
PRIMARY KEY Indexes
• Každý PK constraints používá Index– Unique index
• I pro složené PK je vytvořen složený Index
CHECK constraint
• Omezení definováno speciální podmínkou
Jak definovat contraints
• Při založení a úpravě tabulek– CREATE a ALTER TABLE
• Pozor na zanedbání definice constraints!– Ošetření na úrovni business vrstvy není dostačující• Lze využít jako doplněk DB constraints
Integrity contraints a výkon
• Každý constraint má dopad na práci s řádky• Pořadí náročnosti– NOT NULL– UNIQUE– PRIMARY KEY– FOREIGN KEY– CHECK– TRIGGERS
REFERENCE INTEGRITY
Co je referenční integrita• Jedná se o požadavek, aby pro pole záznamu, jež má
obsahovat odkaz na jiný záznam někde v databázi, takový odkazovaný záznam skutečně existoval, tedy aby takový odkaz nevedl „do prázdna“ a nejednalo se o tzv. databázového sirotka (wiki)
Referenční integrita - Reference integrity
• Každá reference mezi tabulkami podléhá určitým pravidlům
• Úkolem referenční integrity je tyto pravidla dodržovat a udržovat– Reference integrity constraints
Reference integrity constraints
• Foreign Key (FK)– Sloupec, který určuje danou referenci
• Reference Key– Unique nebo primary key, který je referencován
právě cizím klíčem (FK)• Závislá tabulka (child)– Tabulka obsahující FK
• Referencovaná tabulka (parent)
Foreign Key
• Dvě úrovně zadání– Hodnota odpovídá odkazované hodnotě– Obsahuje NULL hodnotu
• Možnost využití DELETE CASCADE
Foreign Key
Foreign Key – reference v 1 tabulce
Foreign Key III
• Porovnání zámků při indexovaném FK
Další možnosti constraints
• Možnost definovat typ vyhodnocení constraints – deferrable nebo not deferrable
• Stavy constraints– Enable, Disable– Validate, Novalidate
Triggers
• Definice dalších integritní omezení• Komplexnější definice kontrol, jež se budou
provádět při každém pokusu o zápis záznamu do databáze
• Typ uložené procedury spouštěné za předem definovaných událostí– Insert, Update, Delete
Triggers
JAK PŘISTUPOVAT K ŘEŠENÍ DATA INTEGRITY
Best practices
• Constraints používejte vždy!• Výjimky– Dávkový import dat– Rozsáhlé datové modely, kde je již v době návrhu
počítáno s absencí některých constraints
Informace• http://docs.oracle.com/cd/B19306_01/server.102/b14220/data_int.htm#i4665
Q&A