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 (AB, …), 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 

 D

1

D

 .. 

 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

 

• 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. 

A

A

.. 

A

 

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

– t[A

i

, A

j

, A

k

= podkrotka 

t

, z wartościami z atrybutów 

A

i

, A

j

, A

 

• 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 

– „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

 

• 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 

Kowalski 

1234 

prawnik 

Nowak 

9876 

sprzedawca 

Kowalski 

9876 

sprzedawca 

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