Bazy Danych II prowadzący: mgr inż. Leszek Siwik
description
Transcript of Bazy Danych II prowadzący: mgr inż. Leszek Siwik
Bazy Danych II
prowadzący: mgr inż. Leszek Siwik
Temat referatu: Temat referatu:
Integralność danychIntegralność danych
Magdalena KwiatkowskaMagdalena Kwiatkowska
Małgorzata StrycharzMałgorzata Strycharz
Integralność danych
Zbiór reguł określających, które stany bazy danych Zbiór reguł określających, które stany bazy danych są poprawne, a więc zarazem jakie operacje są poprawne, a więc zarazem jakie operacje prowadzące do modyfikacji danych są dozwoloneprowadzące do modyfikacji danych są dozwolone
Zagadnienia:
Deklaracje kluczyDeklaracje kluczy Zakresy wartości atrybutówZakresy wartości atrybutów Więzy referencyjneWięzy referencyjne AsercjeAsercje TriggeryTriggery
Relacje
Relacja jest zbiorem krotek posiadających taką samą Relacja jest zbiorem krotek posiadających taką samą strukturę, lecz różne wartości. strukturę, lecz różne wartości.
Każda krotka odpowiada jednemu wierszowi tablicy. Każda krotka odpowiada jednemu wierszowi tablicy.
Każda krotka posiada co najmniej jeden atrybut Każda krotka posiada co najmniej jeden atrybut odpowiadający pojedynczej kolumnie tablicy. odpowiadający pojedynczej kolumnie tablicy.
Relacje
Każda relacja (tablica) posiada następujące Każda relacja (tablica) posiada następujące własności:własności:
- krotki (wiersze) – są unikalne- krotki (wiersze) – są unikalne
- atrybuty (kolumny) – są unikalne- atrybuty (kolumny) – są unikalne
- kolejność krotek (wierszy) – nie ma znaczenia- kolejność krotek (wierszy) – nie ma znaczenia
- kolejność atrybutów (kolumn) – nie ma znaczenia- kolejność atrybutów (kolumn) – nie ma znaczenia
- wartości atrybutów (pól) – są atomowe- wartości atrybutów (pól) – są atomowe
Dziedzina (domain)
Definiujemy dziedzinę jako nazwany zbiór wartości Definiujemy dziedzinę jako nazwany zbiór wartości skalarnych. Wszystkie te wartości muszą być tegoskalarnych. Wszystkie te wartości muszą być tegosamego typu. Dziedziny są więc zestawami wartości,samego typu. Dziedziny są więc zestawami wartości,z których są wybierane faktyczne wartościz których są wybierane faktyczne wartościatrybutów.atrybutów.
CREATE DOMAIN nazwa-dziedziny typ-danych;CREATE DOMAIN nazwa-dziedziny typ-danych;
DESTROY DOMAIN nazwa-dziedziny; DESTROY DOMAIN nazwa-dziedziny;
Klucze
Klucze kandydująceKlucze kandydujące Klucze główneKlucze główne Klucze alternatywneKlucze alternatywne Klucze obceKlucze obce
Klucze kandydujące
Klucz kandydujący w relacji R jest podzbiorem K Klucz kandydujący w relacji R jest podzbiorem K zbioru atrybutów relacji R, mającym:zbioru atrybutów relacji R, mającym:
- - Własność jednoznacznościWłasność jednoznaczności: :
(Żadne dwie różne krotki R nie mają tej (Żadne dwie różne krotki R nie mają tej samej samej wartości dla K)wartości dla K)
- - Własność nieredukowalnościWłasność nieredukowalności::
(Żaden właściwy podzbiór K nie ma (Żaden właściwy podzbiór K nie ma własności własności jednoznaczności)jednoznaczności)
Klucze główne i alternatywne
Jeśli dana relacja może mieć więcej niż jeden Jeśli dana relacja może mieć więcej niż jeden klucz kandydujący model relacyjny wymaga, aby klucz kandydujący model relacyjny wymaga, aby jeden z nich został wybrany jako klucz głównyjeden z nich został wybrany jako klucz główny
Pozostałe klucze nazwane są kluczami Pozostałe klucze nazwane są kluczami alternatywnymialternatywnymi
Przykład tworzenia klucza głównego i kandydującego
CREATE TABLE Aktorzy (CREATE TABLE Aktorzy (id_aktora id_aktora INT INT PRIMARY KEY,PRIMARY KEY,nazwisko nazwisko CHAR (30),CHAR (30),imie imie CHAR (20)CHAR (20)););
CREATE TABLE Aktorzy (CREATE TABLE Aktorzy (id_aktoraid_aktora INT,INT,nazwiskonazwisko CHAR (30),CHAR (30),imieimie CHAR (20),CHAR (20),UNIQUE (id_aktora)UNIQUE (id_aktora)););
Klucze obce
Aby można było uznać bazę za zintegrowaną Aby można było uznać bazę za zintegrowaną wprowadza się klucze obce. Dana wartość wprowadza się klucze obce. Dana wartość atrybutu jednej z relacji jest wartością klucza atrybutu jednej z relacji jest wartością klucza głównego w innej. głównego w innej.
Klucze obce, podobnie jak klucze kandydujące Klucze obce, podobnie jak klucze kandydujące zdefiniowane są jako zbiory atrybutów zdefiniowane są jako zbiory atrybutów
Reguły klucza obcego
Na etapie projektowania projektant musi dla Na etapie projektowania projektant musi dla każdego klucza obcego określić nie tylko atrybut, każdego klucza obcego określić nie tylko atrybut, czy kombinację atrybutów, składającą się na ten czy kombinację atrybutów, składającą się na ten klucz i na powiązaną z nim relację docelową, ale klucz i na powiązaną z nim relację docelową, ale także reguły klucza obcego, które należy stosować także reguły klucza obcego, które należy stosować w tym przypadku. w tym przypadku.
Opcje klucza obcego
Opcje:Opcje: RESTRICTED – operacja aktualizacji RESTRICTED – operacja aktualizacji
(usuwania) jest „ograniczona” dla (usuwania) jest „ograniczona” dla przypadków, w których nie istnieją powiązania przypadków, w których nie istnieją powiązania (w przeciwnym razie operacja jest odrzucana)(w przeciwnym razie operacja jest odrzucana)
CASCADES – operacja aktualizacji CASCADES – operacja aktualizacji (usuwania) „kaskadowo” propaguje (usuwania) „kaskadowo” propaguje aktualizację (usuwanie) także powiązanych aktualizację (usuwanie) także powiązanych atrybutów.atrybutów.
Więzy referencyjne
Problemem zapewnienia, by baza danych nie zawierała Problemem zapewnienia, by baza danych nie zawierała żadnych niedopuszczalnych wartości klucza obcego, żadnych niedopuszczalnych wartości klucza obcego, nazywa się problemem nazywa się problemem integralności referencyjnejintegralności referencyjnej
Więzy referencyjneWięzy referencyjne określają warunek, aby wartości określają warunek, aby wartości danego klucza obcego zgadzały się z wartościami danego klucza obcego zgadzały się z wartościami odpowiadającego mu klucza kandydującegoodpowiadającego mu klucza kandydującego
Integralność referencyjna – Integralność referencyjna – w bazie danych nie mogą w bazie danych nie mogą występować żadne niedopasowane wartości kluczy obcychwystępować żadne niedopasowane wartości kluczy obcych
Diagram referencyjny
Więzy referencyjne można przedstawić za pomocą Więzy referencyjne można przedstawić za pomocą diagramu referencyjnego:diagramu referencyjnego:
Każda strzałka oznacza, że w relacji, z której strzałka Każda strzałka oznacza, że w relacji, z której strzałka wychodzi jest, istnieje klucz obcy, który odwołuje się do wychodzi jest, istnieje klucz obcy, który odwołuje się do klucza głównego relacji, na którą strzałka wskazuje. Każdą klucza głównego relacji, na którą strzałka wskazuje. Każdą strzałkę diagramu można oznaczyć nazwą atrybutu (lub strzałkę diagramu można oznaczyć nazwą atrybutu (lub
atrybutów) tworzącego dany klucz obcy.atrybutów) tworzącego dany klucz obcy.
201 RRR
Przykład więzów integralności referencyjnejCREATE TABLE Aktorzy (CREATE TABLE Aktorzy (
id_aktora id_aktora INT INT PRIMARY KEY,PRIMARY KEY,nazwisko nazwisko CHAR (30),CHAR (30),imie imie CHAR (20)CHAR (20)););
CREATE TABLE Role (CREATE TABLE Role (id_roliid_roli INTINT PRIMARY KEY,PRIMARY KEY,nazwanazwa CHAR(20),CHAR(20),id_aktoraid_aktora INT INT REFERENCES Aktorzy (id_aktora),REFERENCES Aktorzy (id_aktora),
ON DELETE SET NULL,ON DELETE SET NULL,ON UPDATE CASCADEON UPDATE CASCADE
););
Problem brakującej informacji - null Pojęcie znacznika Pojęcie znacznika nullnull jest podstawą rozwiązania jest podstawą rozwiązania
problemu brakującej informacjiproblemu brakującej informacji
Reguła integralności encjiReguła integralności encji
Żaden składnik klucza głównego relacji Żaden składnik klucza głównego relacji podstawowej nie może akceptować podstawowej nie może akceptować nullnull
Klasyfikacja reguł integralności
SQL dzieli reguły integralności na trzy kategorie:SQL dzieli reguły integralności na trzy kategorie: Reguły dziedzinReguły dziedzin Reguły tabel bazowychReguły tabel bazowych Ogólne reguły („asercje”)Ogólne reguły („asercje”)
Więzy dziedziny
Polegają na zadeklarowaniu ograniczeń dla Polegają na zadeklarowaniu ograniczeń dla dziedziny atrybutu, a następnie przypisaniu tej dziedziny atrybutu, a następnie przypisaniu tej dziedziny typowi atrybutudziedziny typowi atrybutu
CREATE DOMAIN DziedzinaPłci CHAR(1)CREATE DOMAIN DziedzinaPłci CHAR(1)
CHECK (VALUE IN (‘K’, ‘M’));CHECK (VALUE IN (‘K’, ‘M’));
Reguły tabel bazowych
Kategoria ta obejmuje różne specyfikacje klucza Kategoria ta obejmuje różne specyfikacje klucza kandydującego, klucza głównego i klucza kandydującego, klucza głównego i klucza obcego, a także „więzy CHECK”obcego, a także „więzy CHECK”
Więzy typu CHECK nakładają bardzo proste Więzy typu CHECK nakładają bardzo proste warunki na wartości atrybutów np. zawierają listę warunki na wartości atrybutów np. zawierają listę poprawnych lub niepoprawnych wartościpoprawnych lub niepoprawnych wartości
Asercje
Do schematu bazy danych można dołączyć Do schematu bazy danych można dołączyć asercje jako element schematu, korzystając ze asercje jako element schematu, korzystając ze słowa kluczowego CHECK oraz określenia słowa kluczowego CHECK oraz określenia warunkuwarunku
CREATE ASSERTION <nazwa> CHECK (<warunek>)CREATE ASSERTION <nazwa> CHECK (<warunek>)
Asercje są sprawdzane zawsze wtedy, kiedy Asercje są sprawdzane zawsze wtedy, kiedy następuje jakakolwiek modyfikacja relacji, następuje jakakolwiek modyfikacja relacji, która może naruszać warunek asercji.która może naruszać warunek asercji.
Wyzwalacze (triggers)
Procedura wyzwalana, to taka, która ma być Procedura wyzwalana, to taka, która ma być wywołana, kiedy zostanie spełniony określony wywołana, kiedy zostanie spełniony określony warunek wyzwalacza np. naruszenie więzów warunek wyzwalacza np. naruszenie więzów integralności m.in. podczas aktualizacji danychintegralności m.in. podczas aktualizacji danych
Celem procedury wyzwalanej jest Celem procedury wyzwalanej jest przeprowadzenie pewnego działania mającego z przeprowadzenie pewnego działania mającego z powrotem przywrócić bazę do stanu spójności.powrotem przywrócić bazę do stanu spójności.
Literatura
J.D. Ullman J. Widom J.D. Ullman J. Widom
„„Podstawowy wykład z systemów baz danychPodstawowy wykład z systemów baz danych
C.J.Date C.J.Date
„„Wprowadzenie do systemów baz danych”Wprowadzenie do systemów baz danych”
Pytania
Własności relacjiWłasności relacji Rodzaje kluczy i związane z nimi reguły integralnościRodzaje kluczy i związane z nimi reguły integralności Problem brakującej informacji – znacznik „null”Problem brakującej informacji – znacznik „null” Więzy typu CHECKWięzy typu CHECK AsercjeAsercje TriggeryTriggery
student.uci.agh.edu.pl/~strychar/referatstudent.uci.agh.edu.pl/~strychar/referat