Krzysztof Regulski
AGH, WIMiIP, ZIP
Bazy Danych i SQL
- Podstawowe zagadnienia algebry relacji
2
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Model relacyjny:
Baza danych przedstawiona jest w postaci tablic dla encji, zwi
ą
zków i
ich atrybutów. Tablice maj
ą
struktury: encje (wiersze) – atrybuty
(kolumny) albo zwi
ą
zki – atrybuty.
Tablice, a tym samym cała baza danych, mog
ą
by
ć
interpretowane
jako relacje w sensie matematycznym. Równie
ż
operacje w bazie
danych – jako operacje na relacjach.
Podstaw
ą
modelu jest algebra relacji opisuj
ą
ca te operacje i ich
własno
ś
ci.
Algebra relacji stanowi równie
ż
podstaw
ę
j
ę
zyków DDL i DML w tym
SQL.
3
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Relacja (przypomnienie):
Dane s
ą
zbiory A
1
, A
2
, …. A
n
, relacj
ą
r nazywamy
dowolny podzbiór A
1
x A
2
x … x A
n
Relacja jest zbiorem krotek (a
1
, a
2
, …, a
n
), gdzie ka
ż
de a
i
∈
A
i
•
Np.
customer-name = {Jones, Smith, Curry, Lindsay}
customer-street = {Main, North, Park}
customer-city = {Harrison, Rye, Pittsfield}
r = {(Jones, Main, Harrison), (Smith, North, Rye),
(Curry, North,Rye), (Lindsay, Park, Pittsfield)}
jest relacj
ą
okre
ś
lon
ą
na
customer-name x customer-street x customer-city
4
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Model relacyjny danych:
A
1
, A
2
, …, A
n
oznaczaj
ą
atrybuty.
R = (A
1
, A
2
, …, A
n
) jest schematem relacji R.
•
Np.
Customer-schema = (customer-name, customer-street,
customer-city)
r(R) oznacza instancj
ę
r relacji o schemacie R.
•
Np.
customer (Customer-schema)
t = (a
1
, a
2
, …, a
n
), t
∈
r oznacza krotk
ę
relacji r(R).
5
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Model relacyjny danych (c.d.):
Aktualna warto
ść
relacji (
instancja relacji
) mo
ż
e by
ć
przedstawiona w
formie tabeli, której:
•
kolumny odpowiadaj
ą
atrybutom,
•
nagłówek odpowiada schematowi relacji.
Elementy relacji -
krotki
s
ą
reprezentowane przez wiersze tabeli.
Jones
Smith
Curry
Lindsay
customer-name
Main
North
North
Park
customer-street
Harrison
Rye
Rye
Pittsfield
customer-city
customer
6
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Kategorie w algebrze relacji:
Zwyczajne działania algebry zbiorów:
suma, przeci
ę
cie i
ró
ż
nica
Operacje zaw
ęż
enia:
selekcja
eliminuje pewne wiersze, a
rzutowanie
pewne kolumny
Operacje komponowania krotek z ró
ż
nych relacji: np.
iloczyn kartezja
ń
ski
Operacje
przemianowania
nie zmieniaj
ą
ce krotek ale
schemat ich relacji
7
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Działania teoriomnogo
ś
ciowe:
R
∪
∪
∪
∪
S –
suma zbiorów
R i S jest zbiorem krotek, z których
ka
ż
da nale
ż
y do R lub S lub do obu razem; je
ż
eli krotka
wyst
ę
puje w obu relacjach to w ich sumie pojawia si
ę
tylko
raz
R
∩
∩
∩
∩
S –
przeci
ę
cie zbiorów
R i S jest zbiorem krotek, które
nale
żą
zarówno do R jak i S
R-S –
ró
ż
nica zbiorów
R i S zawiera krotki nale
żą
ce do R i
nie nale
żą
ce do S
Relacje R i S musz
ą
mie
ć
identyczne schematy
8
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
R
R:
2000
Fiesta
Ford
1990
Uno
Fiat
Rok
produkcji
Model
samochodu
Marka
samochodu
1998
Mondeo
Ford
1004
Panda
Fiat
2000
Mondeo
Ford
1990
Uno
Fiat
Rok
produkcji
Model
samochodu
Marka
samochodu
S
S:
R
R
∪
∪
∪
∪
∪
∪
∪
∪
S
S
:
:
2000
Fiesta
Ford
1998
Mondeo
Ford
1004
Panda
Fiat
2000
Mondeo
Ford
1990
Uno
Fiat
Rok
produkcji
Model
samochodu
Marka
samochodu
Przykłady:
R
R
∩
∩
∩
∩
∩
∩
∩
∩
S
S
:
:
1990
Uno
Fiat
Rok
produkcji
Model
samochodu
Marka
samochodu
R
R
-
-
S
S
:
:
2000
Fiesta
Ford
Rok
produkcji
Model
samochodu
Marka
samochodu
9
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Rzutowanie:
Tworzy now
ą
relacj
ę
z relacji R przez usuni
ę
cie z niej
pewnych kolumn
)
(
,...,
2
,
1
R
An
A
A
π
10
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Selekcja:
nie zmieniaj
ą
c schematu relacji R tworzy now
ą
relacj
ę
zawieraj
ą
cej
podzbiór krotek R spełniaj
ą
cych pewien logiczny warunek
gdzie C to wyra
ż
enie warunkowe na jednym lub wi
ę
cej atrybutach
)
(R
C
σ
11
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Iloczyn kartezja
ń
ski:
(inaczej produkt) relacji R i S to relacja wszystkich uporz
ą
dkowanych par krotek, z
których pierwszy element pary nale
ż
y do relacji R a drugi do S
Schemat relacji R
××××
S jest sum
ą
schematów relacji R i S, w której powtarzaj
ą
ce si
ę
atrybuty (kolumny) traktowane s
ą
jako odr
ę
bne elementy schematu, np. R.A i S.A
niemiecki
Adam Kot
angielski
Adam Kot
J
ę
zyk
Student
R
R:
S
S:
fizyka
Adam Kot
matematyka
Adam Kot
J
ę
zyk
Student
R
R
××××
××××
S
S
:
:
matematyka
Adam Kot
niemiecki
Adam Kot
fizyka
Adam Kot
niemiecki
Adam Kot
Adam Kot
Adam Kot
R.Student
angielski
angielski
J
ę
zyk
fizyka
Adam Kot
matematyka
Adam Kot
Przedmiot
S.Student
12
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Zł
ą
czenie naturalne:
polega na poł
ą
czeniu w pary tych krotek z relacji R i S, które maj
ą
identyczne
warto
ś
ci dla wszystkich wspólnych atrybutów i jest oznaczane R S
w rezultacie powstaje relacja, której schemat zawiera atrybuty relacji R i relacji
S, przy czym wspólna cz
ęść
uwzgl
ę
dniana jest tylko raz
I
II
I
Semestr
2,0
Matematyka
Jan Pies
4,0
Fizyka
Adam Kot
3,0
Matematyka
Adam Kot
Ocena
Przedmiot
Student
Prof. Wilk
Prof. Zaj
ą
c
Prof. Wilk
Prowadz
ą
cy
I
II
I
Semestr
2,0
Matematyka
Jan Pies
4,0
Fizyka
Adam Kot
3,0
Matematyka
Adam Kot
Ocena
Przedmiot
Student
Prof. Kos
II
Matematyka
II
I
Semestr
Prof. Zaj
ą
c
Fizyka
Prof. Wilk
Matematyka
Prowadz
ą
cy
Przedmiot
13
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Typy zł
ą
cze
ń
:
zł
ą
czenie wewn
ę
trzne
(inner join) – w relacji wynikowej wyst
ę
puj
ą
wył
ą
cznie te krotki, które spełniaj
ą
warunek zł
ą
czenia
zł
ą
czenie lewostronne zewn
ę
trzne
(left outer join) – zawiera wszystkie
krotki R uzupełnione krotkami S spełniaj
ą
cymi warunek
zł
ą
czenie prawostronne zewn
ę
trzne
(right outer join) - zawiera
wszystkie krotki S uzupełnione krotkami R spełniaj
ą
cymi warunek
zł
ą
czenie zewn
ę
trzne pełne
(full outer join) – zawiera wszystkie krotki
R oraz S uzupełnione warto
ś
ciami typu NULL gdy do danej krotki nie
pasuje
ż
adna krotka z drugiej relacji
zł
ą
czenie zewn
ę
trzne typu union
- zawiera wszystkie krotki R nie
pasuj
ą
ce do
ż
adnej krotki S uzupełnione krotkami S nie pasuj
ą
cymi do
ż
adnej krotki R
14
Kraków, 2006
str.
K. Regulski, ZIP, v.1.0
Przemianowanie:
zmienia nazw
ę
relacji i ewentualnie nazwy atrybutów (kolumn) w relacji i
jest oznaczane
•
w tym przypadku relacja R zostanie przemianowana na S a atrybuty otrzymaj
ą
nazwy
A
1
, A
2
,...A
n
)
(
)
,...
,
(
2
1
R
n
A
A
A
S
ρ