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

24
Bazy Danych II prowadzący: mgr inż. Leszek Siwik Temat referatu: Temat referatu: Integralność danych Integralność danych Magdalena Kwiatkowska Magdalena Kwiatkowska Małgorzata Strycharz Małgorzata Strycharz

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

Page 1: 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

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

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

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

Zagadnienia:

Deklaracje kluczyDeklaracje kluczy Zakresy wartości atrybutówZakresy wartości atrybutów Więzy referencyjneWięzy referencyjne AsercjeAsercje TriggeryTriggery

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

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.

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

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

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

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;

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

Klucze

Klucze kandydująceKlucze kandydujące Klucze główneKlucze główne Klucze alternatywneKlucze alternatywne Klucze obceKlucze obce

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

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)

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

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

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

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)););

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

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

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

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.

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

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.

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

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

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

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

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

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

););

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

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

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

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”)

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

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’));

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

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

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

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.

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

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.

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

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”

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

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