Bazy Danych II prowadzący: mgr inż. Leszek Siwik

Post on 14-Jan-2016

61 views 0 download

description

Bazy Danych II prowadzący: mgr inż. Leszek Siwik. Temat referatu: Integralność danych Magdalena Kwiatkowska Małgorzata Strycharz. Integralność danych. Zbiór reguł określających, które stany bazy danych są poprawne, a więc zarazem jakie operacje prowadzące do modyfikacji danych są dozwolone. - PowerPoint PPT Presentation

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