Algebra relacji - przypomnienie
Niech R(A
1
, . . . ,
A
k
)
i S(B
1
, . . . ,
B
n
)
relacje.
Podstawowe operacje na relacjach:
operacje teoriomnogo´sciowe:
suma – R ∪ S,
iloczyn – R ∩ S,
ró˙znica – R \ S,
iloczyn kartezja ´nski – R × S,
rzutowania – π
A
i1
,...,
A
ik
(
R),
przemianowanie – ρ
T (C
1
,...,
C
k
)
(
R).
selekcja – σ
W
(
R), gdzie σ warunek.
Konrad Zdanowski
Algebra relacji - przypomnienie
Niech R(A
1
, . . . ,
A
k
)
i S(B
1
, . . . ,
B
n
)
relacje.
zł ˛
aczenie (naturalne) – R
1S,
zł ˛
aczenie warunkowe (theta) – R
1
W
S,
Uwaga. Zł ˛
aczenie warunkowe tworzymy przez wybranie z
iloczynu kartezja ´nskiego relacji tych krotek, które spełaniaj ˛
a
warunek W. Wynikowa relacja ma inny schemat ni˙z przy
zwykłym zł ˛
aczeniu.
Konrad Zdanowski
Algebra relacji - przykład
Niech
R(mama, dziecko) =
mama
dziecko
Ala
Ela
Ela
Jan
Ola
null
S(tata, dziecko) =
tata
dziecko
Jan
Ela
Adam
Jan
Marian
null
Marian
Jan
Zł ˛
aczenie R
1S to
mama
dziecko
tata
Ala
Ela
Jan
Ela
Jan
Adam
Ela
Jan
Marian
Iloczyn kartezja ´nski R × S ma 12 krotek i cztery atrybuty:
R.mama, R.dziecko, S.tata, S.dziecko.
Konrad Zdanowski
Algebra relacji - przykład
Zł ˛
aczenie warunkowe R
1
W
S,
dla warunku W=(R.dziecko=’Ela’ or S.tata=’Adam’), daje
R.mama
R.dziecko
S.tata
S.dziecko
Ala
Ela
Jan
Ela
Ala
Ela
Adam
Jan
Ala
Ela
Marian
null
Ala
Ela
Marian
Jan
Ala
Ela
Adam
Jan
Ela
Jan
Adam
Jan
Ola
null
Adam
Jan
Konrad Zdanowski
Algebra relacji - przykład
Niech Q relacja z poprzedniego przykładu, Q = R
1
W
S, dla
W = (R.dziecko =
0
Ela
0
or S.tata =
0
Adam
0
)
.
Rozpatrzmy
σ
B=’Ela’ and not C = ’Jan’
(ρ
T (A,B,C)
(π
R.mama,R.dziecko,S.tata
(
Q))).
A
B
C
Ala
Ela
Adam
Ala
Ela
Marian
Ala
Ela
Marian
Ala
Ela
Adam
Konrad Zdanowski
Wi ˛ezy w algebrze relacji
W algebrze relacji mo˙zemy wyra˙za´c ograniczenia, które
chcemy nało˙zy´c na relacje.
Warunki te b ˛ed ˛
a nam towarzyszy´c pó´zniej podczas
projektowania schematu bazy danych.
Konrad Zdanowski
Wi ˛ezy w algebrze relacji
Napis R = ∅ wyra˙za, ˙ze relacja R nie zawiera krotek.
Napis R ⊆ S wyra˙za, ˙ze ka˙zda krotka z R znajduje si ˛e te˙z
w S.
Fakt. R ⊆ S wtedy i tylko wtedy, gdy R \ S = ∅.
Konrad Zdanowski
Wi ˛ezy integralno´sci referencyjnej
Wi ˛ezy integralno´sci referencyjnej wyra˙zaj ˛
a, ˙ze warto´s´c,
któr ˛
a przyjmuje pewien atrybut danej relacji musi pojawi´c
si ˛e te˙z jako warto´s´c innego atrybutu w innej relacji.
Warunek taki mo˙zemy opisa´c jako π
A
(
R) ⊆ π
B
(
S).
Bardziej ogólnie mo˙zemy wyra˙za´c zawieranie pomi ˛edzy
zbiorami atrybutów: π
A,B,C
(
R) ⊆ π
D,E ,F
(
S).
Konrad Zdanowski
Wi ˛ezy integralno´sci referencyjnej
Ka˙zdy pracownik otrzymuje pensj ˛e:
π
pesel
(
Pracownicy) ⊆ π
pesel
(
Pensje).
Ka˙zdy ksi ˛
a˙zka ma autora, który wyst ˛epuje w relacji
Pisarze: π
nazwisko_autora
(
Ksiazki) ⊆ π
nazwisko
(
Pisarze).
Konrad Zdanowski
Wi ˛ezy zale˙zno´sci funkcyjnej
Wi ˛ezy zale˙zno´sci funkcyjnej wyra˙zaj ˛
a, ˙ze warto´s´c danej
grupy atrybutów jest jednoznacznie wyznaczona przez
inne atrybuty.
Przykłady:
Np. numer pesel wyznacza jednoznacznie inne atrybuty
osoby.
Atrybut wiek zale˙zy od daty urodzenia i aktualnej daty.
Konrad Zdanowski
Wi ˛ezy zale˙zno´sci funkcyjnej
Niech R(A, B, C) b ˛edzie dan ˛
a relacj ˛
a.
Je´sli warto´s´c C zale˙zy funkcyjnie od A i B, to mo˙zemy
wyrazi´c to nast ˛epuj ˛
aco:
σ
S.A=R.A∧S.B=R.B∧S.C6=R.C
(
R × ρ
S
(
R)) = ∅.
Je˙zeli R1 i R2 to nazwy relacji R oraz C jest zale˙zy
funkcyjnie od A i B, to mo˙zemy wyra´zi´c to jako
σ
R1.A=R2.A∧R1.B=R2.B∧R1.C6=R2.C
(
R1 × R2) = ∅.
Konrad Zdanowski
Wi ˛ezy klucza
Wi ˛ezy klucza wyra˙zaj ˛
a, ˙ze warto´s´c danej grupy atrybutów
nie mo˙zemy by´c taka sama w dwóch ró˙znych krotkach
relacji.
Przykłady:
Np. nie ma dwóch ró˙znych osób, które maj ˛
a ten sam numer
pesel.
Przy danej ulicy nie ma dwóch domów o tych samych
numerach.
Konrad Zdanowski
Wi ˛ezy klucza
Niech R(A, B, C) b ˛edzie dan ˛
a relacj ˛
a.
Wi ˛ezy klucza dla atrybutu C mo˙zemy wyrazi´c nast ˛epuj ˛
aco:
σ
S.C=R.C∧(S.A6=R.A∨S.B6=R.B)
(
R × ρ
S
(
R)) = ∅.
Je˙zeli R1 R2 to nazwy relacji R oraz C jest kluczem to
mo˙zemy to wyra˙zi´c jako
σ
R1.C=R2.C∧(R1.A6=R2.A∨R1.B6=R2.B)
(
R1 × R2) = ∅.
Je˙zeli kluczem jest para atrybutów B i C to mo˙zemy to
wyrazi´c jako:
σ
R1.B=R2.B∧R1.C=R2.C∧R1.A6=R2.A
(
R1 × R2) = ∅.
Konrad Zdanowski
Wi ˛ezy dziedziny
Wi ˛ezy dziedziny wyra˙zaj ˛
a ograniczenia warto´sci atrybutów.
Np. osoba mo˙ze mie´c tylko płe´c ’m ˛e˙zczyzna’ lub ’kobieta’:
σ
plec6=
0
K
0
∧plec6=
0
M
0
(
Osoby ).
Wiek osoby nie mo˙ze przekroczy´c 150 lat:
σ
wiek¬150
(
Osoby ).
Konrad Zdanowski