Algebra relacji v5 cz1

background image

Matematyczne podstawy

relacyjnych baz danych

Model relacyjny i algebra relacji

background image

Pojęcia podstawowe

• Algebra

= dział matematyki, zajmujący się strukturami algebraicznymi i

relacjami

• Struktura algebraiczna

= intuicyjnie: zbiór elementów + działania na tym

zbiorze i ich własności

– Przykłady:

• Algebra Boole’a
• Algebra liniowa
• Algebra zbiorów
• Algebra liczb całkowitych
• Algebra macierzy
• …


2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Algebra zbiorów – przegląd pojęć (1)

• Zbiór (A, B, …), przynależność do zbioru (a

A), zbiór pusty (

),

uniwersum (U).

• Relacje między zbiorami:

– równość (A=B), inkluzja (A

B), zbiory rozłączne (A

B=

)

• Działania na zbiorach:

– suma (A

B), iloczyn (A

B ), różnica (A

B), różnica symetryczna (A

B),

dopełnienie (A’), iloczyn kartezjański (A

B), zbiór potęgowy (2

A

)

• Prawa rachunku zbiorów:

– przemienność sumy (A

B = B

A) i iloczynu (A

B = B

A),

– łączność sumy (A

B)

C = A

(B

C) i iloczynu (A

B)

C = A

(B

C),

– rozdzielność iloczynu względem sumy A

(B

C) = (A

B)

(A

C),

rozdzielność sumy względem iloczynu A

(B

C) = (A

B)

(A

C),

– prawa de Morgana dla zbiorów

• (A

B)' = A'

B'

• (A

B)' = A'

B'

• Zbiory skończone/nieskończone, moc zbioru (card, #), równoliczność


2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Algebra zbiorów – przegląd pojęć (2)

• Brak duplikatów elementów w zbiorze.

– Koncepcja MULTIZBIORU {3*a, 4*b, 1*c} jako funkcji f : A  N
– Działania na multizbiorach (suma, iloczyn, różnica)

• Brak zdefiniowanego porządku elementów w zbiorze.
• Zbiory uporządkowane

– Porządek częściowy – relacja na zbiorze
– Porządek całkowity (liniowy) – relacja na zbiorze



2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Algebra relacji

• Algebra relacji = relacje + działania na nich + ich własności

• Definicja relacji (w sensie matematycznym)

Niech dane będą zbiory D

1

, D

2

, .., D

n

.

Relacją matematyczną R nad zbiorami D

1

, D

2

, .., D

n

nazywamy dowolny

podzbiór iloczynu kartezjańskiego

R

D

1

D

2

..

D

n

= {(d

1

, d

2

, .., d

n

): d

i

D

i

, i=1, 2, .., n}



2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Reprezentacja relacji (matematycznej)

– grafy, tabele

• A = {a1, a2, a3}
• B = {b1, b2}
• A

B = { (a1, b1), (a1, b2), (a2,

b1), (a2, b2), (a3, b1), (a3, b2) }

• Relacja R

A

B jest

zdefiniowana następująco:

R = { (a1, b1), (a1, b2), (a2, b1),

(a3, b2) }


• Uwagi:

– Ważna kolejność w parach
– Nie ma duplikatów par
– Zbiór pusty jest relacją (pustą)
– Nie każdy element z A musi mieć

swój odpowiednik w B

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Relacja jako tabela (w bazach danych)

• W bazach danych rozróżnienie między:

– Strukturą

tabeli (schema)

– Zawartością tabeli,

instancją

(instance)

• Analogia do imperatywnych języków programowania:

– Struktura = typ
– Instancja = wartość

R

A

1

A

2

..

A

n

a

11

a

12

..

a

1n

a

21

a

22

..

a

2n

a

m1

a

m2

..

a

mn

Nazwa relacji

Lista atrybutów

Krotka (ang.
tuple
)
(odwzorowanie
encji)

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Schemat relacji (struktura tabeli)

Schemat relacji

R

(

A

1

:

D

1

,

A

2

:

D

2

, …,

A

n

:

D

n

)

składa się z:

– nazwy relacji (tu:

R

)

– niepustego zbioru atrybutów (tu:

A

1

, …,

A

n

)

– typu lub dziedziny

D

i

= dom(

A

i

) dla każdego atrybutu

A

i

• Przykład:

Czytelnik

(

Numer

:

integer

,

Nazwisko

:

nazwa

,

Imię

:

nazwa

,

DataUrodzenia

:

data

,

Adres

:

varchar(50)

)


Uwaga:
• Jeśli nie jest to konieczne lub jest oczywiste, nie podaje się dziedzin

atrybutów

• Podkreśleniami zaznacza się atrybuty kluczowe

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Typy i dziedziny atrybutów

• Typ

= klasa wartości atomowych, np.

– Liczby całkowite, rzeczywiste, napisy
– Liczby całkowite między 15 a 80, napisy nie przekraczające 50 znaków

• Dziedzina

= nazwany zbiór wartości atomowych, pełniący specjalne

znaczenie w modelu bazy danych lub aplikacji, np.

– Nazwa

,

Wiek

, …

• Dziedzina posiada typ, np.

– Wiek

= Integer[5..80]

– Nazwa

= Varchar(50)

– PLN

= Decimal(10, 2)

• Dziedzina może posiadać wartość domyślną

• Używanie dziedziny zamiast typu wprowadza dodatkowy poziom

abstrakcji dla modelu i aplikacji

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Instancja relacji

Dla relacji o schemacie:

Czytelnik

(

Numer

:

integer

,

Nazwisko

:

nazwa

,

Imię

:

nazwa

,

DataUrodzenia

:

data

,

Adres

:

varchar(50)

)

krotka może być reprezentowana
jako ciąg wartości atrybutów
ustawionych zgodnie z kolejnością
atrybutów w schemacie relacji

(133, Nowak, Jan, 10.03.1957, ‘31-950
Kraków, ul. Warszawska 3’)


Instancja relacji

= zbiór krotek

spełniających relację (tzn.
składowe krotki są typu lub
dziedziny odpowiadającego im
atrybutu)

Czytelnik

Numer

Nazwisko

Imię

DataUrodz
enia

Adres

133

Nowak

Jan

10.03.1957

31-950
Kraków, ul.
Warszawsk
a 3

134

Kowalski

Jan

1.01.1964

31-950
Kraków, ul.
Warszawsk
a 3

135

Nowak

Piotr

3.03.1993

30-199
Kraków, ul.
Balicka 100

2034

Molenda

Jan

2.09.1972

30-199
Kraków, ul.
Balicka 100

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Schemat bazy danych i jej instancja

• Schemat bazy danych

= zbiór schematów relacji + ograniczenia

dotyczące integralności danych

• Przykład:

– Deklaracja dziedzin:

• Nazwa = Varchar(30); PLN = Decimal(10,2);

– Schematy relacji:

• Produkt( NazwaProduktu : Nazwa, Cena: PLN, Kategoria : Nazwa, Producent :

Nazwa)

• Sprzedawca( NazwaSprzedawcy : Nazwa, Adres : Varchar(50), Telefon :

Character(11))

– Ograniczenia integralnościowe: …

• Instancja bazy danych

= zbiór instancji relacji, po jednej dla każdego

schematu

• WAŻNE

:

– Schemat bazy – niezmienny w długim przedziale czasu
– Instancja bazy – zmienna

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Aktualizacje

• Baza danych odzwierciedla stan pewnego wycinka rzeczywistości.
• Świat się zmienia  baza danych się zmienia

• Aktualizacja instancji:

– Dodawanie krotek
– Usuwanie krotek
– Modyfikowanie atrybutu krotki

• Aktualizacja danych  częsta
• Aktualizacja struktury danych  relatywnie rzadko, raczej „bolesna”

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Wartości NULL

• Wartości atrybutów:

– są atomowe
– są określonego typu, pochodzą ze znanej dziedziny
– czasami mogą być puste (

NULL

)

• Trzy przyczyny występowania

NULL

– Wartość nie ma zastosowania
– Wartość nie jest znana
– Wartość nie wprowadzona (ale znana)

• Dla potrzeb algebry relacji, konieczność rozszerzenia dziedziny atrybutu

o wartość

NULL

oraz konieczność stosowania logiki trójwartościowej

(

TRUE

,

FALSE

,

UNKNOWN

)

• NULL

należy do dziedziny każdego atrybutu

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Wartości NULL i logika trójwartościowa

• Dowolne porównania z

NULL

zwracają wartość nieznaną

UNKNOWN

• Logika trójwartościowa z UNKNOWN:

– OR:

• (UNKNOWN or true) = true,
(UNKNOWN or false) = UNKNOWN,
• (UNKNOWN or UNKNOWN) = UNKNOWN.

– AND:

(true and UNKNOWN) = UNKNOWN,
(false and UNKNOWN) = false,
(UNKNOWN and UNKNOWN) = UNKNOWN.

– NOT:

(not UNKNOWN) = UNKNOWN

• SQL: Wynik wyrażenia w klauzuli where jest traktowany jako false,

jeżeli obliczenia wyrażenia dają wartość UNKNOWN.

• SQL: Można testować czy wartość atrybutu jest nieokreślona stosując

predykat IS NULL lub IS NOT NULL

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Porządek i duplikaty

• W relacjach matematycznych:

– Kolejność atrybutów jest znacząca (bo iloczyn kartezjański)
– Kolejność krotek nie ma znaczenia (bo zbiór)
– Nie występują duplikaty krotek (bo zbiór)

• W tabelach (jako reprezentacji relacji)

– Kolejność atrybutów (tzn. kolumn) może być bez znaczenia, jeśli kolumny

identyfikowane są przez unikalne nazwy

– Kolejność krotek (tzn. wierszy) może być bez znaczenia lub mieć znaczenie,

zależne od interpretacji tabeli

– Duplikaty krotek (tzn. wierszy) mogą wystąpić

• Problem – w jaki sposób użyć fundamentów matematycznych dla

reprezentowania relacji w formie takich właśnie tabel?

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Tabelka w postaci:

reprezentuje relację
R(X), X={A

1

, A

2

, .., A

n

} (w sensie Codd’a), jeżeli:

1. Nazwa tabeli jest nazwą relacji.
2. Nie ma dwóch różnych kolumn o tej samej nazwie.
3. Uporządkowanie kolumn jest nieistotne.
4. W kolumnie o nazwie A

i

występują tylko elementy ze zbioru

Dom(A

i

).

5. Nie ma dwóch równych wierszy i ich kolejność jest nieistotna.

R

A

1

A

2

..

A

n

a

11

a

12

..

a

1n

a

21

a

22

..

a

2n

a

m1

a

m2

..

a

mn

Relacja w sensie

Codd’a

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Relacja w sensie

Codd’a

• Niech

U

oznacza zbiór atrybutów, np.

U = {NazwaProduktu, Cena, Kategoria, Producent}

• Niech

D

oznacza sumę dziedzin atrybutów, np.

D = dom(NazwaProduktu)

dom(Cena)

dom(Kategoria)

dom(Producent)

• Krotka jest funkcją:

t : U

D

np.

{ NazwaProduktu

Nikon D90,

Cena

3000.00,

Kategoria

fotografia,

Producent

Nikon }

• Kolejność atrybutów w krotce jest bez znaczenia, nazwy atrybutów są

ważne

• Taki model reprezentacji matematycznej zastosowany jest w SQL

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Oznaczenia

• Dla schematu

R(A

1

, ..., A

n

)

, niech krotka

t

spełnia ten schemat.

• Wtedy:

– t[A

i

]

= wartość krotki

t

dla atrybutu

A

i

– t[A

i

, A

j

, A

k

]

= podkrotka

t

, z wartościami z atrybutów

A

i

, A

j

, A

k

• Przykład:

– Schemat:

Produkt( NazwaProduktu : Nazwa, Cena: PLN, Kategoria : Nazwa,

Producent : Nazwa)

– Krotka:

t = (Nikon D90, 3000.00, fotografia, Nikon)

– t[Cena] = 3000.00
– t[NazwaProduktu, Producent] = (Nikon D90, Nikon)

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

• Dwie definicje relacji:

1. jako podzbiór iloczynu kartezjańskiego; kolejność atrybutów w krotce jest

istotna, nazwy atrybutów nieistotne (zapis pozycyjny)

2. jako funkcja (mapowanie) atrybutów w sumę ich dziedzin; krotka jest

wartością takiego odwzorowania, kolejność atrybutów jest nieistotna,
ważne są nazwy atrybutów

• Obie definicje wykorzystywane są w praktyce:

– SQL: ad. 2 – krotki jako funkcje
– QBE (query by example): ad. 1 – krotki w zapisie pozycyjnym

• Dlaczego model relacyjny dla składowania i dostępu do danych?

– Bo bardzo prosty
– Bo dostarcza prostej koncepcji (tabele) reprezentacji danych
– Bo ma silne podstawy matematyczne, bazuje na teorii zbiorów i logice
– Bo dostarcza abstrakcji dla języka dostępu do danych (SQL – najważniejszy

język dla Systemów Zarządzania Bazami Danych)

• !!! W SQL używamy MULTIZBIORÓW, tymczasem abstrakcyjny model relacyjny

bazuje na teorii zbiorów

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Ograniczenia

integralnościowe

• Przesłanki:

– Sytuacja idealna

: Baza danych odzwierciedla świat rzeczywisty

– Rzeczywistość

: Nie zawsze jest to możliwe

– Cel

: Wiedzieć, kiedy baza danych się rozsynchronizowuje

– Obserwacja

: Nie każda matematycznie możliwa instancja (sytuacja) ma

rzeczywisty sens

– Pomysł

:

• Opisać warunki, które muszą być spełnione dla wszystkich sensownych instancji

(sytuacji)

• Sprawdzić, czy warunki są utrzymane po wykonanej aktualizacji

• Takie warunki nazywane są ograniczeniami integralnościowymi (ang.

integrity constraint)

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Typy ograniczeń integralnościowych

• Zależności funkcyjne

(ang. functional dependencies, FDs)

– A

B, każdej wartości z dziedziny atrybutu A przypisana jest nie więcej niż jedna wartość z

dziedziny atrybutu B

– „Pracownicy tego samego działu mają tego samego kierownika”

• Klucze

(ang. keys) – specjalny przypadek zależności funkcyjnej

– „Pracownicy z tym samym numerem PESEL są identyczni”

• Integralność referencyjna

(ang. referential integrity) – klucze obce (ang. foreign

keys constraints, FKs)

– Każda wartość danego atrybutu w relacji R istnieje jako wartość pewnego atrybutu w innej relacji

S

– „Pracownik może być przyporządkowany tylko do tego działu, który jest wymieniony w

relacji Działy”

• Zawężenia dziedziny

(ang. domain constraints) - check

– „Nie ma pracownika młodszego niż 15 lat i starszego niż 80 lat”

• Unikalność

(ang. unique),

obligatoryjność

(NULL / not NULL)

• Ograniczenia integralnościowe stanowią część schematu (relacji, bazy). DBMS

zezwala jedynie na instancje spełniające takie ograniczenia.

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Zależności funkcyjne – przykład

• Dla schematu:

Pracownik(Nazwisko, PESEL, Dział, Kierownik)

• Zapisujemy zależności funkcyjne:

– Dział

Kierownik

• czytamy:

Kierownik zależy funkcyjnie od Działu

, lub

Dział funkcyjnie determinuje

Kierownika

– PESEL

Nazwisko, Dział, Kierownik

• czytamy:

Nazwisko, Dział, Kierownik zależą funkcyjnie od PESEL

, lub

PESEL

funkcyjnie determinuje Nazwisko, Dział oraz Kierownika

W tej sytuacji stan relacji

Pracownik

, w którym istnieją dwie krotki:

– z tym samym Działem i różnymi Kierownikami, albo
– z tym samym PESELEM, ale z różnym Nazwiskiem lub Działem lub

Kierownikiem

jest sprzeczny z założonymi zależnościami funkcyjnymi (baza jest
rozsynchronizowana)

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Zależności funkcyjne - formalizmy

Niech

R

będzie relacją (w sensie

baz danych), niech

A

1

, …,

A

m

,

B

1

,

…,

B

n

, będą atrybutami tej

relacji.

Zależność funkcyjna

w relacji

R

jest wyrażeniem:

A

1

, …, A

m

B

1

, …, B

n

• Instancja

r

relacji

R

spełnia tę

zależność funkcyjną, jeśli dla
dowolnych krotek

t

1

i

t

2

relacji

R

zachodzi implikacja:

jeśli t

1

[A

1

, …, A

m

] = t

2

[A

1

, …, A

m

],

to t

1

[B

1

, …, B

n

] = t

2

[B

1

, …, B

n

]

• Problem, ile w danej relacji może

wystąpić zależności funkcyjnych?
Rozważ przypadek relacji z
trzema atrybutami

R(A, B, C)

.

Wypisz wszystkie możliwe
sytuacje.

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Zależności funkcyjne - przykład

Rozważmy schemat relacji:

Pracownik( Id, Nazwisko, Telefon,

Rola)


Rozważmy instancję tej relacji

(tabela po prawej stronie)

Id

Nazwisko

Telefon

Rola

1

Kowalski

1234

prawnik

2

Nowak

9876

sprzedawca

3

Kowalski

9876

sprzedawca

4

Molenda

1234

informatyk

• Które z zależności funkcyjnych są spełnione dla tej instancji?

– Id → Nazwisko, Telefon, Rola
– Rola → Telefon
– Telefon → Rola
– Nazwisko, Telefon → Rola
– Nazwisko → Rola
– Nazwisko → Telefon, Rola

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Zależności funkcyjne, superklucze, klucze

Przykłady schematów z zapisem zależności funkcyjnych:

• Osoba (PESEL, Nazwisko, DataUrodzenia)

– PESEL → Nazwisko, DataUrodzenia

• Produkt (Nazwa, Cena, Producent)

– Nazwa → Cena, Producent
– Nazwa → Nazwa, Cena, Producent
– Nazwa, Cena → Nazwa, Cena, Producent

• Książka (Autor, Tytuł, Wydanie, Cena)

– Autor, Tytuł, Wydanie → Cena

• Podzbiór atrybutów relacji jest

superkluczem

, jeśli funkcyjnie

determinuje wszystkie atrybuty tej relacji. (W szczególności cały
schemat relacji jest superkluczem).

• Superklucz jest

kluczem kandydującym

, jeśli żaden z jego podzbiorów

nie jest superkluczem (tzn. usunięcie z niego dowolnego atrybutu
powoduje, że przestaje być superkluczem)

Klucz kandydujący jest

minimalnym superkluczem

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Superklucze

, klucze kandydujące, klucz główny

• Superklucz

– zbiór atrybutów, których wartości zawsze jednoznacznie

identyfikują krotkę w relacji.

• Klucz kandydujący

– superklucz, który nie zawiera superklucza nie

będącego nim samym  (tzn. minimalny superklucz)

– Dla danej relacji może być więcej niż jeden klucz kandydujący

• Klucz główny

– wybrany klucz kandydujący,

– jeden na każdą relację

• Zapis klucza głównego w schemacie relacji: podkreślenie linią ciągłą i

pogrubienie

Student( NrAlbumu, Nazwisko, Imię, Rocznik, Promotor, IdObrony )

• Klucze:

– {

NrAlbumu, Nazwisko, Imię, Rocznik, Promotor}

- superklucz

– {NrAlbumu}

– superklucz, klucz kandydujący, klucz główny

– {Promotor, IdObrony}

– superklucz, klucz kandydujący

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Klucze obce (foreign keys)

• Klucz obcy

=

zbiór atrybutów

w relacji, który dokładnie odpowiada

kluczowi głównemu

w innej relacji

– Nazwy atrybutów nie muszą być identyczne, ale muszą być z tej samej

dziedziny

Student (NrAlbumu, Nazwisko, Kierunek, Rocznik, Promotor)

Pracownik(Wykładowca, Pokój, Przełożony)

• Notacja:

– FK1: Student(Promotor) references Pracownik(Wykładowca)
– FK2: Pracownik(Przełożony) references Pracownik(Wykładowca)


Ograniczenie referencyjne klucza obcego

“FK: R(A) references S(B)”

jest spełnione przez instancje relacji

R

oraz

S

, jeśli dla każdej krotki

t

1

w

R

istnieje krotka

t

2

w

S

taka, że

– t

1

[A] = t

2

[B]

,

– przy założeniu, że

t

1

[A] IS NOT NULL

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Aktualizacje

• Aktualizacje = wstawianie, usuwanie, modyfikacja krotek
• Aktualizacje mogą naruszać ograniczenia.
• Pytania:

– Co może pójść nie tak?
– Jak na taką sytuację ma zareagować System Zarządzania Bazą Danych?

Przykład wiodący:

Student (NrAlbumu, Nazwisko, Kierunek, Rocznik, Promotor)
Pracownik(Wykładowca, Pokój, Przełożony)

• FK1: Student(Promotor) references Pracownik(Wykładowca)
• FK2: Pracownik(Przełożony) references Pracownik(Wykładowca)

Student

Pracownik

NrAlbumu

Nazwisko

Kierunek

Rocznik

Promotor

Wykładowca

Pokój

Przełożony

s1

abacki

adm

2 busz

nowak

IT206

wilusz

s2

babacki

zarz

2 nowak

busz

2.26

kapon

s3

cacacki

inf

2 molenda

molenda

2.82

kapon

s4

dadacki

adm

1 molenda

zobel

2.34

wilusz

s5

abacki

inf

1 zobel

wilusz

IT212

kowalski

s6

lalacki

adm

3 nowak

woda

IT204

kowalski

kapon

A14

wilusz

lula

2.10

woda

kowalski

2.125

null

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Wstawianie krotek i problemy

• Co się stanie i dlaczego, jeśli do relacji

Student

dodana zostanie

krotka

– (s1, abacki, zarz, 3, kapon)
– (null, abacki, zarz, 3, kapon)
– (s7, abacki, zarz, 3, null)
– (s7, abacki, zarz, 3, barbaszewski)

Student

Pracownik

NrAlbumu

Nazwisko

Kierunek

Rocznik

Promotor

Wykładowca

Pokój

Przełożony

s1

abacki

adm

2 busz

nowak

IT206

wilusz

s2

babacki

zarz

2 nowak

busz

2.26

kapon

s3

cacacki

inf

2 molenda

molenda

2.82

kapon

s4

dadacki

adm

1 molenda

zobel

2.34

wilusz

s5

abacki

inf

1 zobel

wilusz

IT212

kowalski

s6

lalacki

adm

3 nowak

woda

IT204

kowalski

kapon

A14

wilusz

lula

2.10

woda

kowalski

2.125

null

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Usuwanie krotek i problemy

• Co się stanie i dlaczego, jeśli z relacji

Student

usunięta zostanie

krotka

– (s2, babacki, zarz, 2, nowak)

• Co się stanie i dlaczego, jeśli z relacji

Pracownik

usunięta zostanie

krotka

– (nowak, IT206, wilusz)

Student

Pracownik

NrAlbumu

Nazwisko

Kierunek

Rocznik

Promotor

Wykładowca

Pokój

Przełożony

s1

abacki

adm

2 busz

nowak

IT206

wilusz

s2

babacki

zarz

2 nowak

busz

2.26

kapon

s3

cacacki

inf

2 molenda

molenda

2.82

kapon

s4

dadacki

adm

1 molenda

zobel

2.34

wilusz

s5

abacki

inf

1 zobel

wilusz

IT212

kowalski

s6

lalacki

adm

3 nowak

woda

IT204

kowalski

kapon

A14

wilusz

lula

2.10

woda

kowalski

2.125

null

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Modyfikowanie krotek i problemy

• Co się stanie i dlaczego, jeśli w relacji

Student

zmodyfikowana

zostanie krotka

– (s1, abacki, adm, 2, busz)

na

(s1, abacki, adm, 2, wilusz)

– (s2, babacki, zarz, 2, nowak)

na

(s1, abacki, adm, 2, dadacki)

• Co się stanie i dlaczego, jeśli w relacji

Pracownik

zmodyfikowana

zostanie krotka

– (lula, 2.10, woda)

na

(lala, 2.10, woda)

– (molenda, 2.82, kapon)

na

(molęda, 2.82, kapon)

Student

Pracownik

NrAlbumu

Nazwisko

Kierunek

Rocznik

Promotor

Wykładowca

Pokój

Przełożony

s1

abacki

adm

2 busz

nowak

IT206

wilusz

s2

babacki

zarz

2 nowak

busz

2.26

kapon

s3

cacacki

inf

2 molenda

molenda

2.82

kapon

s4

dadacki

adm

1 molenda

zobel

2.34

wilusz

s5

abacki

inf

1 zobel

wilusz

IT212

kowalski

s6

lalacki

adm

3 nowak

woda

IT204

kowalski

kapon

A14

wilusz

lula

2.10

woda

kowalski

2.125

null

2013-01-10

Krzysztof Molenda, Bazy danych I

background image

Podsumowanie

• Model relacyjny bazuje na koncepcji

teorii zbiorów i logiki

• Formalizuje koncepcję

tabel

• Wyróżnia:

– Schemat relacji

: nazwę, atrybuty i ich typy

(dziedziny)

– Instancję relacji

: relację na dziedzinach

atrybutów

• Dwa formalizmy krotek

– Notacja pozycyjna versus funkcyjna

• Ograniczenia integralnościowe:

zawężenie dziedziny, zależności
funkcyjne, klucze, klucze obce

• Aktualizacje mogą naruszać

ograniczenia integralnościowe i SZBD
musi na to reagować

Reakcje na naruszenie
więzów integralności – SZBD
może:

• Odrzucić

aktualizację

• Naprawić

efekt naruszenia

integralności poprzez:

– Wstawienie NULL
– Wstawienie wartości

domyślnej

– Kaskadowe usuwanie
– Kaskadową modyfikację

2013-01-10

Krzysztof Molenda, Bazy danych I


Wyszukiwarka

Podobne podstrony:
algebra relacji
Microsoft PowerPoint 04 algebra relacji i rachunek relacyjny
Algebra relacji
ALGEBRA RELACJI SQL cw1
Algebra Relacje
Relacje Spoleczne Cz1 (psychologia spoleczna)
algebry relacji
Relacje i funkcje ćw 2(2), stud, I semsetr, ALGEBRA, Ćwicenia i wyklady
Informa cz1 v5 id 213357 Nieznany
Algebra w2
RI cz1

więcej podobnych podstron