KZ BD w07 id 256666 Nieznany

background image

Bazy danych – wykład szósty

Wi ˛ezy i wyzwalacze

Konrad Zdanowski

Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

1 / 35

background image

Wst ˛ep

Wiemy jak nakłada´c pewne ograniczenia (wi ˛ezy) w schemacie
bazy danych (klucze, integralno´s´c referencyjna).

Implementacja bazy danych mo˙ze korzysta´c z tych ogranicze ´n
aby zwi ˛ekszy´c wydajno´s´c ale musi te˙z dba´c o ich zachowanie,
czyli o spójno´s´c danych.

Mo˙zna dba´c o to z poziomu aplikacji lecz jest to niebezpieczne i
niewygodne.

DBMS dostarcza narz ˛edzi do definiowania czynnosci, które trzeba
podj ˛

a´c aby sprawdzi´c czy wi ˛ezy nie zostały naruszone (i co wtedy

zrobi´c).

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

2 / 35

background image

Outline

1

Wi ˛ezy

Klucze

2

Wyzwalacze

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

3 / 35

background image

Outline

1

Wi ˛ezy

Klucze

2

Wyzwalacze

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

4 / 35

background image

Klucze własne

Klucze własne tabeli deklarujemy przez PRIMERY KEY lub UNIQUE.

cr ea te t a b l e osoby (
p e s e l

char [ 1 1 ] primary key ,

i m i e

char [ 2 0 ] ,

nazwisko

char [ 5 0 ]

) ;

cr ea te t a b l e samochody (

n r _ s i l n i k a

i n t ,

marka

char [ 3 0 ] ,

primary key ( n r _ s i l i n i k a , marka )

) ;

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

5 / 35

background image

Klucze obce

Niech

A b ˛edzie zbiorem atrybutów w relacji T i niech B b ˛edzie zbiorem

atrybutów w relacji

S.

Mo˙zemy zadeklarowa´c

A jako klucz obcy powi ˛

azany z atrybutami

G.

Atrybuty

G musz ˛

a by´c kluczem relacji

S.

Dla ka˙zdej krotki t

T, która ma ró˙zne od NULL warto´sci

atrybutów

A musi istnie´c krotka s S taka, ˙ze t[A] = s[B].

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

6 / 35

background image

Klucze obce

Klucze obce deklarujemy jako

cr ea te t a b l e Malzenstwa (

maz

i n t references Osoby ( i d ) ,

zona

i n t references Osoby ( i d )

) ;

lub przez oddzieln ˛

a deklaracj ˛e

cr ea te t a b l e K s i e g o z b i o r (

t y t u l

char [ 5 0 ] ,

rok_wydania

i n t ,

szerokosc

i n t ,

wysokosc

i n t ,

f o r e i g n key ( t y t u l , r o k )

references K s i a z k i ( t y t u l , r o k )

) ;

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

7 / 35

background image

Problem jajka i kury

Rozwa˙zmy deklaracje

cr ea te t a b l e Kura (

i d

i n t primary key ,

j a j k o _ i d

i n t references J a j k o ( i d )

) ;

cr ea te t a b l e J a j k o (

i d

i n t primary key ,

k u r a _ i d

i n t references Kura ( i d )

) ;

Wykonanie tych polece ´n wygeneruje bł ˛

ad (Oracle) gdy˙z podczas

tworzenia tabeli Kura nie istnieje tabela, do której odwołuje si ˛e klucz
obcy tabeli Kura.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

8 / 35

background image

Problem jajka i kury

Musimy utworzy´c tabele Jajko i Kura bez deklaracji kluczy obcych:

cr ea te t a b l e Kura (

i d

i n t primary key ,

j a j k o _ i d

i n t

) ;

cr ea te t a b l e J a j k o (

i d

i n t primary key ,

k u r a _ i d

i n t

) ;

Nast ˛epnie modyfikujemy tabele:

a l t e r t a b l e Kura add c o n s t r a i n t KuraRefJajko

f o r e i g n key ( j a j k o _ i d ) references J a j k o ( i d )

i n i t i a l l y deferred d e f e r r a b l e ;

a l t e r t a b l e J a j k o add c o n s t r a i n t JajkoRefKura

f o r e i g n key ( k u r a _ i d ) references Kura ( i d )

i n i t i a l l y deferred d e f e r r a b l e ;

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

9 / 35

background image

Problem jajka i kury

Opcja

initially deferred deferrable ka˙ze odroczy´c sprawdzenie

integralno´sci referencyjnej.

Dzi ˛eki temu mo˙zemy doda´c co´s do obu tabel:

i n s e r t i n t o Kura values ( 1 , 3 ) ;
i n s e r t i n t o J a j k o values ( 3 , 1 ) ;

commit ;

Sprawdzenie nast ˛epuje dopiero podczas

commit.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

10 / 35

background image

Problem jajka i kury

Podobnie usuni ˛ecie tabeli Kura narusza warunek klucza obcego z
tabeli Jajko.

Przed usuni ˛eciem musimy wcze´sniej zmieni´c tabele

a l t e r t a b l e Kura drop c o n s t r a i n t KuraRefJajko ;
a l t e r t a b l e J a j k o drop c o n s t r a i n t JajkoRefKura ;

drop t a b l e Kura ;
drop t a b l e J a j k o ;

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

11 / 35

background image

Odroczenie sprawdzania wi ˛ezów

Domy´slnie wi ˛ezy sprawdzane s ˛

a po ka˙zdej instrukcji, która mo˙ze

je naruszy´c.

Mo˙zemy odroczy´c sprawdzanie wi ˛ezów przez deklaracje bf
deferable initially deferred.

Mo˙zemy te˙z zmieni´c strategie sprawdzania wi ˛ezów poleceniem:
set constraint <ograniczenie> deferred lub set constraint
<ograniczenie>

immediate.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

12 / 35

background image

Integralno´s´c referencyjna

Zmiany krotek, w tabeli z wi ˛ezami mog ˛

a spowodowa´c ich

naruszenie.

DBMS powinien zareagowa´c w takich sytuacjach.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

13 / 35

background image

Integralno´s´c referencyjna

Rozwa˙zmy tabele Klucze(id) i KluczeObce(ko), gdzie ko jest kluczem
obcym odwołuj ˛

acym si ˛e do Klucze(id).

Je´sli chcemy wstawi´c do

KluczeObce krotk˛e z warto´sci ˛

a klucza

obcego ró˙zn ˛

a od NULL i tak ˛

a, ˙ze nie znajduje si ˛e ona w tabel

Klucze, to DBMS odrzuci zmian ˛e.

Podobnie musi zachowa´c si ˛e w sytuacji, gdy zmieniamy warto´s´c
ko w KluczeObce na warto´s´c ró˙zn ˛

a od NULL i nie znajduj ˛

ac ˛

a si ˛e

w tabeli

Klucze.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

14 / 35

background image

Integralno´s´c referencyjna – usuwanie

Rozwa˙zmy tabele Klucze(id) i KluczeObce(ko), gdzie ko jest kluczem
obcym odwołuj ˛

acym si ˛e do Klucze(id).

DBMS domy´slnie zabroni usuni ˛ecia krotek z tabeli

Klucz, do

których odwołuj ˛

a si ˛e pewne krotki z tabeli

KluczObcy.

Polityka kaskadowa usunie wszystkie krotki z tabeli

KluczObcy,

które odwołuj ˛

a si ˛e do usuni ˛etej warto´sci (opcja

on delete

cascade).

Polityka ustawienia NULL wstawi warto´sci NULL w miejsce
wszystkich warto´sci, które przestały odwoływa´c si ˛e do istniej ˛

acej

warto´sci (

on delete set null).

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

15 / 35

background image

Integralno´s´c referencyjna – modyfikacja

Rozwa˙zmy tabele Klucze(id) i KluczeObce(ko), gdzie ko jest kluczem
obcym odwołuj ˛

acym si ˛e do Klucze(id).

DBMS domy´slnie zabroni modyfikacji krotek z tabeli

Klucz, do

których odwołuj ˛

a si ˛e pewne krotki z tabeli

KluczObcy.

Polityka kaskadowa zmieni warto´sci atrybutu

ko krotek z tabeli

KluczObcy, na now ˛

a warto´s´c (opcja

on update cascade).

Polityka ustawienia NULL wstawi warto´sci NULL w miejsce
wszystkich warto´sci, które przestały odwoływa´c si ˛e do istniej ˛

acej

warto´sci (

on update set null).

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

16 / 35

background image

Wi ˛ezy atrybutów i krotek

Mo˙zemy nakłada´c wi ˛ezy na poszczególne atrybuty tabeli.
Przykłady:

I

id

int not null,

I

plec

char(1) check (plec in (’K’, ’M’)).

I

kluczobcy

int check (exists (select id from Klucze)).

I

check (placa >= select avg(placa) / 2 from pracownicy).

Wi ˛ezy te s ˛

a sprawdzane przy ka˙zdym wstawieniu lub aktualizacji

warto´sci atrybutu.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

17 / 35

background image

Wi ˛ezy atrybutów i krotek

W definicji tabeli mo˙zemy doda´c warunek, który maj ˛

a spełnia´c

krotki z tabeli.
Np. tylko osoby posiadaj ˛

ace kart ˛e kredytow ˛

a w danym banku

mog ˛

a mie´c w nim kredyt:

I

check ( (KartaKredytowa is not null)or( Kredyt is null)).

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

18 / 35

background image

Wi ˛ezy atrybutów i krotek

Wi ˛ezy krotek s ˛

a sprawdzane przy modyfikacji krotki.

Wi ˛ezy atrybutów s ˛

a sprawdzane tylko przy wło˙zeniu lub

modyfikacji atrybutu.

Je´sli warunek odwołuje si ˛e do innych krotek w tabeli lub innych
tabel, to łatwo mo˙ze sta´c si ˛e fałszywy.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

19 / 35

background image

Własno´sci wi ˛ezów

Nało˙zone wi ˛ezy mog ˛

a by´c:

DEFERRABLE albo NOT DEFERRABLE,

INITIALLY DEFERRED albo INITIALLY IMMEDIATE.

Konsekwencje ró˙znych własno´sci:

Wi ˛ezy IMMEDIATE s ˛

a sprawdzane po ka˙zdej instrukcji, która

mo˙ze zmieni´c ich zachodzenie (insert, update).

Wi ˛ezy DEFERRED s ˛

a sprawdzane dopiero podczas operacji

commit.

Własno´sci wi ˛ezów ustawiamy instrukcj ˛

a

set constraint

<warunek> <własno ´s ´c>.

Aby mo˙zna było ustawi´c własno´s´c DEFERRED dane ograniczenie
musi by´c utworzone z własno´sci ˛

a DEFERRABLE.

Je´sli wi ˛ezy nie s ˛

a spełnione transakcja lub cały ci ˛

ag transakcji

(przy własno´sci deferred) zostaje cofni ˛ety.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

20 / 35

background image

Własno´sci wi ˛ezów – przykład

Je´sli w tabeli

T mamy ograniczenie T_chk postaci check (a>-20 and

a<20) , które ma własno´s´c deferred i wykonujemy ci ˛

ag instrukcji:

insert into T values(30);

insert into T values(11);

insert into T values(2);

commit;

to cofni ˛ete zostan ˛

a wszystkie instrukcje.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

21 / 35

background image

Własno´sci wi ˛ezów – przykład

W tabeli

T mamy ograniczenie T_chk postaci check (a>-20 and a<20).

set c o n s t r a i n t T_chk immediate ;

i n s e r t i n t o T values ( 1 6 ) ;
i n s e r t i n t o T values ( 2 0 ) ;
i n s e r t i n t o T values ( 1 7 ) ;

set c o n s t r a i n t T_chk deferred ;

i n s e r t i n t o T values ( 1 8 ) ;
i n s e r t i n t o T values ( 3 0 ) ;
i n s e r t i n t o T values ( 1 9 ) ;

Po wykonaniu powy˙zszych instrukcji T b ˛edzie „zawiera´c” warto´sci 16,
17, 18, 30, 19.

Po wykonaniu

commit wszystkie powy˙zsze instrukcje zostan ˛

a

cofni ˛ete. Mo˙zemy si ˛e przed tym zabezpieczy´c wykonuj ˛

a´c przed

zako ´nczeniem transakcji

set constraint T_chk immediate.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

22 / 35

background image

Modyfikacje wi ˛ezów

Mo˙zemy modyfikowa´c wi ˛ezy poprzez instrukcje:

set constraint ...

albo

alter table ... modify constraint ...

Wi ˛ezy mo˙zemy wł ˛

acz ˛

a´c lub wył ˛

acza´c, ENABLE lub DISABLE, z

opcjami VALIDATE lub NOVALIDATE.

ENABLE (opcja domy´slna VALIDATE) „wł ˛

acza” warunek i

sprawdza czy zachodzi dla aktualnych danych. Je´sli nie jest
spełniony to instrukcja si ˛e nie powiedzie.

ENABLE NOVALIDATE wł ˛

acza warunek lecz nie sprawdza go dla

aktualnych danych.

DISABLE (opcja domy´slna NOVALIDATE ) „wył ˛

acza” warunek (np.

usuwa index dla warunków UNIQUE lub PRIMARY KEY).

DISABLE VALIDATE „wył ˛

acza” warunek lecz nie pozwala na

pó´zniejsz ˛

a modyfikacj ˛e kolumny, której dotyczy warunek.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

23 / 35

background image

Outline

1

Wi ˛ezy

Klucze

2

Wyzwalacze

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

24 / 35

background image

Wyzwalacze

Wyzwalacze pozwalaj ˛

a kontrolowa´c zarówno czas wykonania

akcji jak i warunek, który ma by´c spełniony.
Okre´slane jako reguły ECA – event-condition-action.

I

event – modyfikacja bazy danych,

I

condition – wyra˙zenie SQL o warto´sci booleowskiej,

I

action — wyra˙zenie SQL.

Nie nale˙zy stosowa´c wyzwalaczy je´sli mo˙zemy uzyska´c ten sam
efekt przez zastosowanie wi ˛ezów (NOT NULL, UNIQUE,
PRIMARY KEY, FOREIGN KEY, CHECK, ON DELETE
CASCADE, ON DELETE SET NULL).

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

25 / 35

background image

Przykład

Je´sli wkładana do tabeli KluczeObce(id, ko) warto´s´c ko nie wyst ˛epuje
w tabeli Klucze(id), to zast ˛

apmy j ˛

a warto´sci ˛

a NULL.

cr ea te or replace t r i g g e r BrakKlucza

a f t e r i n s e r t on KluczeObce

r e f e r e n c i n g
old row as
S t a r a K r o t k a

new row as NowaKrotka

f o r each row

when ( NowaKrotka . ko not i n

(

s e l e c t i d from Klucze ) )

update

KluczeObce ( i d , ko )

set ko=NULL

where i d =NowaKrotka . i d ;

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

26 / 35

background image

Przykład

Ostatniego przykładu prosz ˛e nie sprawdza´c w Oracle.

Nie ma DBMS, który by implementował cało´s´c standardu SQL
zwi ˛

azanego z wyzwalaczami.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

27 / 35

background image

Wyzwalacze – Wydarzenie

Wyzwalacz mo˙zemy uruchomi´c

przed, po lub zamiast

wydarzenia (

before, after, instead of).

Wydarzenie

instead of jest zarezerwowane dla perspektyw

(okre´slamy co zrobi´c zamiast modyfikowania perspektywy).

Wykonuj ˛

ac wyzwalacz przed wydarzeniem, po wykonaniu

wyzwalacza warunek nie jest sprawdzany drugi raz.

Wydarzeniami mog ˛

a by´c:

insert, update, delete.

Przy

update mo˙zemy zaw ˛ezi´c modyfikacj ˛e do pewnych

atrybutów:

update of atrybuty.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

28 / 35

background image

Wyzwalacze – warunek

Warunek to wyra˙zenie SQL o warto´sci boole’owskiej.

Warunek sprawdzany jest w tabeli, która istnieje

przed zmian ˛

a

lub która

istniałaby

po zmianie.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

29 / 35

background image

Wyzwalacze – akcja

Akcj ˛

a mo˙ze by´c pojedy ´ncza instrukcja SQL lub ich zbiór (

begin ...

end).

Akcj ˛e mo˙zemy wykona´c dla pojedy ´nczych wierszy (

for each row)

lub dla całej instrukcji, która uruchomiła wyzwalacz (

for each

statement – domy´slne).

Przy opcji

for each row mo˙zemy odwoła´c si ˛e do starej i nowej

krotki tabeli (je´sli istniej ˛

a).

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

30 / 35

background image

Wyzwalacze – Oracle

Mo˙zemy wywoła´c wyzwalacz przy wydarzeniu systemowym
(startup, shutdown, logon, logoff)

Przy

update mo˙zemy zaw ˛ezi´c modyfikacj ˛e do pewnych

atrybutów:

update of atrybuty.

Mo˙zemy wymieni´c do trzech warunkow przy pomocy

or: before

update or insert on Tab.

Wyzwalacz typu

statement nie mo˙ze posiada´c klauzuli when.

W warunku

when nie mo˙zemy u˙zy´c kwerendy SQL.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

31 / 35

background image

Wyzwalacze – Oracle

Jeden wyzwalacz mo˙ze okre´sla´c akcje typu

statement jak i akcj ˛e

each row (compound triggers).

Do nowych krotek odwołujemy si ˛e przez

new, do starych przez

old.

W akcji nowe i stare wartosci poprzedzamy dwukropkiem ale po
warunku

when nie.

Aby unikn ˛

a´c „niesko ´nczonych” sekwencji wywoła ´n wyzwalacz nie

mo˙ze:

I

modyfikowa´c tabeli, której modyfikacja go uruchomiła,

I

modyfikowa´c tabeli powi ˛

azanej z t ˛

a tabel ˛

a przez wi ˛ezy klucza

obcego.

Mo˙zemy obejrze´c bł ˛edy kompilacji wyzwalacza wydaj ˛

ac

polecienie:

show errors trigger <nazwa_wyzwalacza>;

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

32 / 35

background image

Wyzwalacze – przykład

Wstawianie domy´slnej warto´sci zamiast NULL we wstawianych do
tabeli danych.

cr ea te or replace t r i g g e r UstawJajko
before update or i n s e r t on Kura
f o r each row

when ( new . j a j k o _ i d i s n u l l )

be gin

:

new . j a j k o _ i d : = 1 ;

end ;

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

33 / 35

background image

Wyzwalacze – przykład

Wstawianie brakuj ˛

acej krotki z kluczem do tabeli Klucze przy próbie

wstawienia do tabeli KluczeObce.

cr ea te or replace t r i g g e r DodajKlucz
before update or i n s e r t on KluczeObce
f o r each row
d e c l a r e

i

number ;

be gin
s e l e c t count ( ∗ ) i n t o i from Klucze

where i d = :new . k l u c z o b c y ;

i f ( i =0)

then i n s e r t i n t o Klucze values ( : new . k l u c z o b c y ) ;

end i f ;
end ;

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

34 / 35

background image

Podsumowanie

Wi ˛ezy kluczy:

I

sprawdzane przy zmianach tabeli z kluczem obcym oraz przy
zmianach tabeli, do której odwołuje sie klucz obcy,

I

pozwalaj ˛

a na ró˙zne lecz ograniczone strategie przy niespełnieniu

integralno´sci.

Wi ˛ezy

check atrybutów:

I

sprawdzane tylko przy zmianach odpowiednich atrybutów,

I

zmiany innych krotek lub tabel mog ˛

a je ufałszywi´c,

I

pozwalaj ˛

a na dowolne strategie reakcji.

Wi ˛ezy

check krotek – podobnie jak atrybutów lecz s ˛

a cz ˛e´sciej

sprawdzane.
Wyzwalacze:

I

elastyczne warunki uruchomienia.

I

dowolne podejmowane akcje.

Konrad Zdanowski ( Uniwersytet Kardynała Stefana Wyszy ´nskiego, Warszawa)

Bazy danych – wykład szósty Wi ˛ezy i wyzwalacze

35 / 35


Document Outline


Wyszukiwarka

Podobne podstrony:
KZ BD w09 id 256667 Nieznany
KZ BD w14 2 id 256670 Nieznany
KZ BD w12 id 256669 Nieznany
KZ BD w03 2 id 256664 Nieznany
KZ BD w11 2 id 256668 Nieznany
KZ BD w09 id 256667 Nieznany
gs w07 id 197504 Nieznany
bd lab2 id 81995 Nieznany (2)
bd dbastudio id 81961 Nieznany (2)
BD 408e id 130025 Nieznany (2)
inf2 w07 id 213009 Nieznany
bd w1 id 81977 Nieznany (2)
gs w07 id 197504 Nieznany
bd lab2 id 81995 Nieznany (2)
bd dbastudio id 81961 Nieznany (2)
BD 1st 2 4 lab3 tresc 1 1 id 81 Nieznany
bd lab 04 id 81967 Nieznany (2)
al1 w07 zima2011 id 54569 Nieznany (2)

więcej podobnych podstron