Relacyjne


Bazy danych - BD
Relacyjny model danych
Wykład przygotował:
Robert Wrembel
BD  wykład 2 (1)
1
Bazy danych - BD
Plan wykładu
" Relacyjny model danych
" Struktury danych
" Operacje
" Oganiczenia integralnościowe
BD  wykład 2 (2)
W ramach drugiego wykładu z baz danych zostanie przedstawiony relacyjny
model danych, który w praktyce jest najczęściej stosowany. W szczególności
wykład omówi: struktury danych tego modelu, operacje modelu i ograniczenia
integralnościowe.
2
Bazy danych - BD
Model danych
" Definiuje
 struktury danych
 operacje
 ograniczenia integralnościowe
" Relacyjny model danych
 relacje
 selekcja, projekcja, połączenie, operacje na zbiorach
 klucz podstawowy, klucz obcy, zawężenie dziedziny,
unikalność, wartość pusta/niepusta
BD  wykład 2 (3)
W ogólności model danych definiuje:
- struktury wykorzystywane do reprezentowania danych,
- operacje na danych,
- ograniczenia integralnościowe, czyli reguły poprawności danych.
Jednym z fundamentalnych modeli jest model relacyjny. Jest on wykorzystywany
w większości komercyjnych i niekomercyjnych systemów baz danych. W modelu
tym, strukturÄ… danych jest relacja; operacje na danych obejmujÄ… selekcjÄ™,
projekcję, połączenie i operacje na zbiorach. Ograniczenia integralnościowe w
tym modelu to: klucz podstawowy, klucz obcy, zawężenie dziedziny, unikalność
wartości, możliwość nadawania wartości pustych/niepustych.
3
Bazy danych - BD
Struktury danych (1)
" Baza danych jest zbiorem relacji
" Schemat relacji R, oznaczony przez R(A1, A2, ..., An),
składa się z nazwy relacji R oraz listy atrybutów A1,
A2, ..., An
" Liczbę atrybutów składających się na schemat relacji
R nazywamy stopniem relacji
" Każdy atrybut Ai schematu relacji R posiada domenę,
oznaczonÄ… jako dom(Ai)
" Domena definiuje zbiór wartości atrybut relacji
poprzez podanie typu danych
BD  wykład 2 (4)
W modelu relacyjnym, baza danych jest zbiorem relacji. Każda relacja posiada
swój tzw. schemat, który składa się z listy atrybutów. Schemat relacji R jest
często oznaczany jako R(A1, A2, ..., An), gdzie A1, A2, ..., An oznaczają atrybuty.
Liczbę atrybutów składających się na schemat relacji R nazywamy stopniem
relacji.
Każdy atrybut posiada swoją domenę, zwaną także dziedziną. Definiuje ona zbiór
wartości jakie może przyjmować atrybut poprzez określenie tzw. typu danych,
np. liczba całkowita, data, ciąg znaków o długości 30.
4
Bazy danych - BD
Struktury danych (2)
" RelacjÄ… r o schemacie R(A1, A2, ..., An), oznaczonÄ…
r(R), nazywamy zbiór n-tek (krotek) postaci r={t1, t2,
..., tm}.
" Pojedyncza krotka t jest uporzÄ…dkowanÄ… listÄ… n
wartości t=, gdzie vi, 1elementem dom(Ai) lub specjalną wartością pustą
(NULL)
" i-ta wartość krotki t, odpowiadająca wartości atrybutu
Ai, będzie oznaczana przez t[Ai]
" Relacja r(R) jest relacjÄ… matematycznÄ… stopnia n
zdefiniowanÄ… na zbiorze domen dom(A1), dom(A2),
..., dom(An) będącą podzbiorem iloczynu
kartezjańskiego domen definiujących R:
r(R) Ä…" dom(A1) x dom(A2) x ... x dom(An)
BD  wykład 2 (5)
Formalna definicja relacji jest następująca:
Relacją r o schemacie R(A1, A2, ..., An), oznaczoną r(R), nazywamy zbiór n-tek
(krotek) postaci r={t1, t2, ..., tm}.
Pojedyncza krotka t jest uporządkowaną listą n wartości t=, gdzie
vi, 1i-ta wartość krotki t, odpowiadająca wartości atrybutu Ai, będzie oznaczana przez
t[Ai].
Matematyczna definicja relacji jest następująca:
Relacja r(R) jest relacjÄ… matematycznÄ… stopnia n zdefiniowanÄ… na zbiorze domen
dom(A1), dom(A2), ..., dom(An) będącą podzbiorem iloczynu kartezjańskiego
domen definiujÄ…cych R.
5
Bazy danych - BD
Struktury danych (3)
Relacja jest zbiorem krotek (k-wartości), które są
listami wartości
ROR 9345 PLN 07.08.2006
relacja Rachunki
BD  wykład 2 (6)
Innymi słowy, relacja jest zbiorem krotek (k-wartości), które są listami wartości.
Przykładowo, relacja Rachunki jest złożona ze zbioru krotek. Każda z nich
przechowuje trzy wartości, tj. rodzaj rachunku, saldo i datę jego ważności.
6
Bazy danych - BD
Alternatywna definicja relacji
" Wyświetlana relacja ma postać tabeli
 krotki sÄ… wierszami tej tabeli
 nagłówki kolumn są atrybutami
BD  wykład 2 (7)
Intuicyjnie, relacja ma postać klasycznej tabeli z kolumnami i wierszami.
Kolumny odpowiadają atrybutom relacji, a wiersze (zwane również rekordami)
odpowiadajÄ… krotkom.
7
Bazy danych - BD
Baza danych
" Baza danych = zbiór relacji
" Schemat bazy danych = zbiór schematów relacji
" Schemat relacji = zbiór {atrybut, dziedzina,
[ograniczenia integralnościowe]}
" Relacja = zbiór krotek
" Krotka = lista wartości atomowych
BD  wykład 2 (8)
Slajd ten podsumowuje omówione wcześniej definicje.
Baza danych jest zbiorem relacji.
Schemat relacji jest zbiorem {atrybut, dziedzina, [ograniczenia
integralnościowe]}.
Schemat bazy danych jest zbiorem schematów relacji.
Relacja jest zbiorem krotek.
Krotka jest listą wartości atomowych.
8
Bazy danych - BD
Charakterystyka relacji
" Każdy atrybut relacji ma unikalną nazwę
" Porządek atrybutów w relacji nie jest istotny
" PorzÄ…dek krotek w relacji nie jest istotny i nie jest
elementem definicji relacji
" Wartości atrybutów są atomowe (elementarne)
" Relacja nie zawiera rekordów powtarzających się
BD  wykład 2 (9)
Relacja posiada następujące cechy:
- każdy atrybut relacji ma unikalną nazwę,
- porządek atrybutów w relacji nie jest istotny,
- porzÄ…dek krotek w relacji nie jest istotny i nie jest elementem definicji relacji,
- wartości atrybutów są atomowe (elementarne),
- relacja nie zawiera rekordów powtarzających się. Ponieważ relacja jest
zbiorem krotek, więc, z definicji zbioru, wszystkie krotki relacji muszą być
unikalne.
9
Bazy danych - BD
Unikalność krotek relacji - klucze (1)
" Ograniczenie na unikalność krotek relacji
 Każdy podzbiór S atrybutów relacji R, taki że dla
każdych dwóch krotek ze zbioru r(R) zachodzi
t1[S] `" t2[S] superkluczem (super key) R
 Superklucz
" cały schemat relacji
BD  wykład 2 (10)
Każdy podzbiór S atrybutów relacji R, jest nazywany superkluczem (ang. super
key) relacji R jeżeli dla każdych dwóch krotek ze zbioru r(R) zachodzi t1[S] !=
t2[S]. W ogólności, cały schemat relacji jest superkluczem.
10
Bazy danych - BD
Unikalność krotek relacji - klucze (2)
" Superklucz może posiadać nadmiarowe atrybuty
" Kluczem K schematu relacji R nazywamy superklucz
schematu R o takiej własności, że usunięcie
dowolnego atrybutu A z K powoduje, że K =K-A nie
jest już superkluczem
" Klucz jest minimalnym superkluczem zachowujÄ…cym
własność unikalność krotek relacji
" Schemat relacji może posiadać więcej niż jeden klucz
BD  wykład 2 (11)
Superklucz może posiadać nadmiarowe atrybuty. Kluczem K schematu relacji R
nazywamy superklucz schematu R o takiej własności, że usunięcie dowolnego
atrybutu A z K powoduje, że K =K-A nie jest już superkluczem.
Klucz jest minimalnym superkluczem zachowującym własność unikalność krotek
relacji.
Schemat relacji może posiadać więcej niż jeden klucz.
11
Bazy danych - BD
Unikalność krotek relacji - klucze (3)
" Wyróżniony klucz klucz podstawowy
" Pozostałe klucze klucze wtórne lub kandydujące
BD  wykład 2 (12)
Jeden z kluczy relacji może być wyróżniony jako tzw. klucz podstawowy, który
jednoznacznie identyfikuje krotki relacji. W zwiÄ…zku z tym, klucz podstawowy
nie może przyjmować wartości pustych. Pozostałe klucze schematu relacji
nazywamy kluczami wtórnymi lub kandydującymi.
12
Bazy danych - BD
Ograniczenie integralnościowe
" Mechanizm (reguła), który gwarantuje że dane wpisane
to relacji spełnią nałożone na nie warunki
 czuwa nad tym SZBD
" Definiuje siÄ™ na poziomie
 pojedynczego atrybutu
 całej relacji
" Rodzaje
 klucz podstawowy (primary key)
 klucz obcy (foreign key)
 unikalność (unique)
 zawężenie domeny/dziedziny (check)
 wartość pusta/niepusta (NULL/NOT NULL)
BD  wykład 2 (13)
Każda relacja może posiadać jawnie zdefiniowane ograniczenia
integralnościowe. Ograniczenie integralnościowe jest pewną regułą
gwarantującą, że dane znajdujące się w relacji spełniają tę regułę. W praktyce
nad zapewnieniem integralności danych czuwa SZBD. Ograniczenie
integralnościowe definiuje się albo dla pojedynczego atrybutu albo dla całej
relacji.
Wyróżnia się następujące ograniczenia integralnościowe:
- klucz podstawowy (primary key),
- klucz obcy (foreign key),
- unikalność (unique),
- zawężenie domeny/dziedziny (check),
- wartość pusta/niepusta (NULL/NOT NULL).
13
Bazy danych - BD
Klucz podstawowy
" Klucz podstawowy relacji (primary key)
 atrybut (lub zbiór atrybutów), którego wartość
jednoznacznie identyfikuje krotkÄ™
 wartość ta jest unikalna w obrębie całej relacji i
jest niepusta
" Przykłady:
 adres e-mail, NIP, PESEL, nr dowodu, nr
paszportu
BD  wykład 2 (14)
Klucz podstawowy relacji (ang. primary key) jest to atrybut lub zbiór atrybutów,
którego wartość jednoznacznie identyfikuje krotkę relacji. Z definicji, wartość
atrybutu, który zdefiniowano jako klucz podstawowy jest unikalna w obrębie
całej relacji i jest niepusta.
Przykładami atrybutów, które mogły by być kluczami podstawowymi są np.
adres e-mail, NIP, PESEL, nr dowodu, nr paszportu.
14
Bazy danych - BD
Klucz obcy (1)
" Klucz obcy relacji (foreign key)
 atrybut (lub zbiór atrybutów), który wskazuje na klucz
podstawowy
 służy do reprezentowania powiązań między danymi
(Å‚Ä…czenia relacji)
klucz obcy klucz podstawowy
relacja Pracownicy
IdPrac ImiÄ™ Nazwisko Szef IdZesp IdZesp Nazwa
100 Jan MiÅ› 10 10 Reklama
110 Piotr Wilk 100 10 20 Badania
120 Roman Lis 100 20
relacja Zespoły
insert
{130, Zenon, Szop, 100, 50}
BD  wykład 2 (15)
Klucz obcy relacji (ang. foreign key) jest atrybutem lub zbiorem atrybutów, który
wskazuje na klucz podstawowy w innej relacji. Klucz obcy służy do
reprezentowania powiązań między danymi (łączenia relacji). Dziedziną wartości
klucza obcego jest dziedzina wartości klucza podstawowego, na który ten klucz
obcy wskazuje.
W przykładzie ze slajdu, w relacji Zespoły kluczem podstawowym jest atrybut
IdZesp. W relacji Pracownicy kluczem obcym jest IdZesp i wskazuje on na
IdZesp w relacji Zespoły. Wartościami atrybutu IdZesp w relacji Pracownicy
mogą być tylko te wartości, które przyjmuje IdZesp w relacji Zespoły.
Przykładowy rekord {130, Zenon, Szop, 100, 50} nie zostanie wstawiony do
relacji Pracownicy, ponieważ wartość atrybutu IdZesp (50) nie znajduje się w
relacji Zespoły. Naruszono w tym przypadku ograniczenie integralnościowe
klucza obcego.
15
Bazy danych - BD
Klucz obcy (2)
" Dane są relacje R1 i R2. Podzbiór FK atrybutów
relacji R1 nazywany jest kluczem obcym R1 jeżeli:
 atrybuty w FK majÄ… takÄ… samÄ… domenÄ™ jak
atrybuty klucza podstawowego PK relacji R2
 dla każdej krotki t1 relacji R1 istnieje dokładnie
jedna krotka t2 relacji R2, taka że t1 [FK] = t2 [PK],
lub t1 [FK] = null
" Klucz obcy (ograniczenie referencyjne) gwarantuje,
że rekordy z tabeli R1 występują w kontekście
zwiÄ…zanego z nim rekordu z tabeli R2
BD  wykład 2 (16)
Bardziej formalna definicja klucza obcego jest następująca.
Dane są relacje R1 i R2. Podzbiór FK atrybutów relacji R1 nazywany jest
kluczem obcym R1 jeżeli:
- atrybuty w FK majÄ… takÄ… samÄ… domenÄ™ jak atrybuty klucza podstawowego PK
relacji R2,
- dla każdej krotki t1 relacji R1 istnieje dokładnie jedna krotka t2 relacji R2, taka
że t1 [FK] = t2 [PK], lub t1 [FK] = null.
Klucz obcy, zwany również ograniczeneim referencyjnym, gwarantuje, że
rekordy z tabeli R1 występują w kontekście związanego z nim rekordu z tabeli
R2.
16
Bazy danych - BD
Zawężenie dziedziny
" Zawężenie dziedziny (ograniczenie domeny) atrybutu
(check)
 ograniczenie dozwolonych wartości do pewnego
podzbioru przez wyrażenie logiczne określające
przedział lub za pomocą wyliczeniowej listy
wartości
" Przykłady:
 płeć: K, M, nieznana, N/A
 pensja: wartości dodatnie
 kolor oczu: niebieskie, szare, piwne
BD  wykład 2 (17)
Zbiór wartości domeny atrybutu może być zawężony przez wyrażenie logiczne
do pewnego podzbioru: przedziału lub wyliczeniowej listy wartości. Jest to tzw.
ograniczenie integralnościowe zawężenia dziedziny (domeny). Przykładami tego
typu ograniczenia sÄ… np.
- ograniczenie dopuszczalnych wartości atrybutu płeć do: K, M, nieznana, N/A
(zgodnie ze standardem ISO),
- zagwarantowanie dodatnich wartości atrybutu pensja,
- ograniczenie dopuszczalnych wartości atrybut kolor_oczu do trzech wartości:
niebieskie, szare, piwne.
17
Bazy danych - BD
Zawężenie dziedziny - przykład
" Etat - dziedzina: {'Analityk', 'Dyrektor', 'Referent',
Kierownik', 'Sekretarka'}
" PÅ‚aca - dziedzina: placa>500
" IdPrac - klucz podstawowy relacja Pracownicy
IdPrac Nazwisko Etat Placa Szef IdZesp
120 Kowalski Analityk 850 100 10
100 Tarzan Dyrektor 1700 10
130 Nowak Referent 600 100 10
110 Józiek Kierownik 1200 100 20
140 Nowacki Analityk 800 110 20
150 Bunio Sekretarka 700 100 10
{200, 'Szop', 'Księgowy', 900, 10}
insert
{130, 'Borsuk', 'Kierownik', 1000, 20}
{210, 'Rosomak', 'Kierownik', 400, 20}
BD  wykład 2 (18)
Jako przykład rozważmy relację Pracownicy ze slajdu. Przyjmijmy, że dla
atrybutu Etat zdefiniowano ograniczenie zawężające zbiór jego wartości do
analityka, dyrektora, referenta, kierownika i sekretarki. Dla atrybutu płaca
określono dziedzinę wartości większych niż 500. Atrybut IdPrac zdefiniowano
jako klucz podstawowy relacji Pracownicy. Do tak zdefiniowanej relacji nie da
się wstawić żadnej z trzech krotek. Pierwsza z nich narusza integralność etatu,
druga narusza integralność klucza podstawowego, a trzecia - integralność płacy.
18
Bazy danych - BD
Podstawowe operacje algebry relacji
" Selekcja (SELECT)
" Projekcja (PROJECT)
" Połączenie (JOIN)
 Iloczyn kartezjański
" Operacje na zbiorach
 suma (UNION)
 część wspólna (INTERSECTION)
 różnica (MINUS, DIFFERENCE)
BD  wykład 2 (19)
W modelu relacyjnym wykorzystuje się tzw. algebrę relacji, definiującą zbiór
operacji na danych i semantykÄ™ tych operacji. Operacjami tymi sÄ…: selekcja,
projekcja, połączenie, iloczyn kartezjański jako specjalny przypadek połączenia,
operacje na zbiorach (suma, część wspólna i różnica).
19
Bazy danych - BD
Operacja selekcji
" Przeznaczenie:
 wyodrębnienie podzbioru krotek relacji, które
spełniają warunek selekcji
" Notacja: Ã ()
 warunek selekcji jest zbiorem predykatów postaci
"
" lub
"
 predykaty sÄ…Å‚Ä…czone operatorami logicznymi: AND
lub OR
" Własności: operacja selekcji jest komutatywna:
à (Ã(R))=à (à (R))
BD  wykład 2 (20)
Operacja selekcji umożliwia wyodrębnienie podzbioru krotek relacji, które
spełniają warunek selekcji.
Operacja ta jest oznaczana symbolem sigma z pewnym warunkiem selekcji.
Operacja ta działa na relacji o pewnej nazwie. Warunek selekcji jest zbiorem
predykatów postaci lub
.
Predykaty sÄ… Å‚Ä…czone operatorami logicznymi: AND lub OR.
Rozważmy dwie operacje selekcji. Operacja S1 jest realizowana jako pierwsza.
S1 posiada warunek W1 i jest realizowana na relacji R. Operacja S2 jest
realizowana jako druga. S2 posiada warunek W2 i jest realizowana na wyniku
operacji S1. Przyjmijmy, że wynik operacji S1 i S2 wykonanych w takiej
kolejności jest zbiorem krotek {k1, k2, k3}. Jeżeli zamienimy kolejność
wykonywania operacji selekcji, tzn. najpierw zostanie wykonana operacja S2 z
warunkiem W2 na relacji R, a następnie S1 z warunkiem W1 na wyniku działania
operacji S2, to w wyniku końcowym otrzymamy identyczny zbiór krotek jak
poprzednio. Taką własność operacji selekcji nazywamy komutatywnością.
20
Bazy danych - BD
Operacja selekcji - przykłady (1)
" ÃIdZesp = 10 (Pracownicy)
select IdPrac, Nazwisko, Etat, Szef,
Zatrudniony, PÅ‚aca, IdZesp
from Pracownicy
where IdZesp=10
" ÃPÅ‚aca > 7000 (Pracownicy)
select IdPrac, Nazwisko, Etat, Szef,
Zatrudniony, PÅ‚aca, IdZesp
from Pracownicy
where PÅ‚aca>10
BD  wykład 2 (21)
Na slajdzie przedstawiono dwa przykłady operacji selekcji. Pierwszy z nich
wybiera z relacji Pracownicy te rekordy, dla których wartość atrybut IdZesp jest
równa 10. Drugi przykład wybiera z relacji Pracownicy tylko tych pracowników
których wartość atrybutu Płaca jest większa niż 7000. Obie operacje wyrażono w
notacji ogólnej i w języku SQL.
21
Bazy danych - BD
Operacja selekcji - przykłady (2)
" Ã(IdZesp=10 AND PÅ‚aca>7000) OR (IdZesp=20) AND PÅ‚aca>8000)
(Pracownicy)
select IdPrac, Nazwisko, Etat, Szef,
Zatrudniony, PÅ‚aca, IdZesp
from Pracownicy
where (IdZesp=10 and PÅ‚aca>7000)
or (IdZesp=20 and PÅ‚aca>8000)
" ÃEtat= KsiÄ™gowy AND (PÅ‚aca>=6000 AND PÅ‚aca<9000) (Pracownicy)
select IdPrac, Nazwisko, Etat, Szef,
Zatrudniony, PÅ‚aca, IdZesp
from Pracownicy
where Etat='KSIGOWY'
and (PÅ‚aca>=6000 and PÅ‚aca<9000)
BD  wykład 2 (22)
W pierwszym przykładzie z tego slajdu operacja selekcji wybiera z relacji
Pracownicy krotki dla których wartość atrybutu IdZesp=10 i Płaca>7000 lub
IdZesp=20 i Płaca>8000. Należy zwrócić tu uwagę na priorytety operatorów.
AND ma wyższy priorytet niż OR, co dodatkowo zostało zaznaczone za pomocą
nawiasów.
Drugi przykład ilustruje selekcję z relacji Pracownicy wszystkich księgowych
zarabiających w przedziale między 6000 i 9000.
22
Bazy danych - BD
Operacja projekcji
" Przeznaczenie:
 wyodrębnienie wybranych atrybutów relacji
" Notacja: Ä„ ()
 atrybuty jest podzbiorem atrybutów ze schematu
relacji
" Własności: operacja projekcji nie jest komutatywna
" Składanie operacji projekcji jest możliwe jeżeli lista2
zawiera wszystkie atrybuty lista1
Ä„ (Ä„ (R))=Ä„ (R)
BD  wykład 2 (23)
Drugą operacją modelu relacyjnego jest projekcja. Umożliwia ona wyodrębnienie
(wybór) tylko określonych atrybutów relacji.
Operacja ta jest oznaczana symbolem pi z podzbiorem wybieranych atrybutów z
całego zbioru atrybutów relacji. Operacja ta działa na relacji o pewnej nazwie.
Operacja projekcji nie jest komutatywna, a składanie operacji projekcji jest
możliwe jeżeli lista2 zawiera wszystkie atrybuty lista1. Notację operacji
składania projekcji przedstawiono na slajdzie.
23
Bazy danych - BD
Operacja projekcji - przykłady
" Ä„Nazwisko (Pracownicy)
select Nazwisko
from Pracownicy
" Ä„Nazwisko, Etat, PÅ‚aca (Pracownicy)
select Nazwisko, Etat, PÅ‚aca
from Pracownicy
BD  wykład 2 (24)
Na slajdzie przedstawiono dwa przykłady projekcji. W pierwszym, ze zbioru
atrybutów relacji Pracownicy jest wybierany tylko atrybut Nazwisko. Wynikiem
tej operacji projekcji jest zbiór nazwisk wszystkich pracowników. W drugim
przykładzie, ze zbioru atrybutów relacji Pracownicy są wybierane atrybuty
Nazwisko, Etat i Płaca. W tym przypadku, wynikiem jest zbiór krotek wszystkich
pracowników, ale każda z krotek posiada tylko 3 wartości: nazwiska, etatu i
pensji.
Obie przykładowe operacje projekcji wyrażono w notacji ogólnej i w języku
SQL.
24
Bazy danych - BD
Składanie operacji
" Wynik danej operacji może być zbiorem wejściowym dla
innej operacji
ÃIdZesp = 10 (Pracownicy) PracZesp10
Ä„IdPrac, Nazwisko (PracownicyZesp10 ) PracZesp10Wynik
PracZesp10Wynik = Ä„IdPrac, Nazwisko (ÃIdZesp = 10 (Pracownicy))
BD  wykład 2 (25)
Sekwencja wielu operacji, w której kolejne operacje są wykonywane na
pośrednich wynikach operacji poprzednich, może być zastąpiona pojedynczą
operacją złożoną, powstałą przez zagnieżdżenie operacji elementarnych.
Jako przykład rozważmy operację selekcji z warunkiem IdZesp=10. Przyjmijmy,
że jej wynikiem jest relacja tymczasowa o nazwie PracZesp10. Następnie na tej
relacji wykonujemy operację projekcji atrybutów IdPrac i Nazwisko.
Przyjmijmy, że jej wynikiem jest relacja tymczasowa o nazwie
PracZesp10Wynik.
Obie operacje można złożyć w jedną, której wynik będzie identyczny z
zawartością relacji PracZesp10Wynik, jak pokazano na slajdzie.
25
Bazy danych - BD
Operacje na zbiorach (1)
" Kompatybilność relacji
 Dwie relacje: R(A1, ..., An) i S(B1, ...,Bn) sÄ…
kompatybilne, jeżeli mają ten sam stopień i jeżeli
dom(Ai) = dom(Bi) dla 1d"id"n
" Operacje na zbiorach
 dla dwóch kompatybilnych relacji: R(A1, ..., An) i
S(B1, ...,Bn)
BD  wykład 2 (26)
W modelu relacyjnym są dostępne operacje na zbiorach o takiej samej
semantyce, jak standardowe operacje na zbiorach znane z kursu matematyki. W
modelu relacyjnym operacje te są wykonywane na relacjach, które jak wiemy są
zbiorami krotek. Relacje te muszą być kompatybilne.
Dwie relacje są kompatybilne jeśli mają ten sam stopień i dziedziny
odpowiadających sobie atrybutów są takie same.
Operacje sumy, iloczynu i różnicy dwóch kompatybilnych relacji R i S są
zdefiniowane następująco.
26
Bazy danych - BD
Operacje na zbiorach (2)
" Suma:
 Wynikiem tej operacji, oznaczanej przez R*"S, jest
relacja zawierająca wszystkie krotki, które
występują w R i wszystkie krotki, które występują w
S, z wyłączeniem duplikatów krotek
 Operacja sumy jest operacjÄ… komutatywnÄ…: R*"S =
S*"R
" Iloczyn:
 Wynikiem tej operacji, oznaczonej przez R)"S, jest
relacja zawierająca krotki występujące zarówno w
R i S
 Operacja iloczynu jest operacjÄ… komutatywnÄ…:
R)"S = S)"R
BD  wykład 2 (27)
Suma: wynikiem tej operacji, oznaczanej przez R SUMA S, jest relacja
zawierająca wszystkie krotki, które występują w R i wszystkie krotki, które
występują w S, z wyłączeniem duplikatów krotek. Operacja sumy jest operacją
komutatywnÄ…: R SUMA S = S SUMA R.
Iloczyn: wynikiem tej operacji, oznaczonej przez R ILOCZYN S, jest relacja
zawierająca krotki występujące zarówno w R i S. Operacja iloczynu jest operacją
komutatywnÄ…: R ILOCZYN S = S ILOCZYN R.
27
Bazy danych - BD
Operacje na zbiorach (3)
" Różnica:
 Wynikiem tej operacji, oznaczonej przez R-S, jest
relacja zawierająca wszystkie krotki, które występują
w R i nie występują w S
 Operacja różnicy nie jest operacją komutatywną:
R - S `" S - R
BD  wykład 2 (28)
Różnica: wynikiem tej operacji, oznaczonej przez R-S, jest relacja zawierająca
wszystkie krotki, które występują w R i nie występują w S. Operacja różnicy nie
jest operacjÄ… komutatywnÄ…: R - S != S - R.
28
Bazy danych - BD
Operacje na zbiorach - przykłady
Uczniowie Instruktorzy
ImiÄ™ Nazwisko ImiÄ™ Nazwisko
Ala Kusiak Jan Kuc
Edek Musiał Edek Musiał
Adam ZajÄ…c Wacek Misiek
Olek StruÅ›
Ola Buba
Uczniowie *" Instruktorzy Uczniowie )" Instruktorzy
ImiÄ™ Nazwisko
ImiÄ™ Nazwisko
Ala Kusiak
Edek Musiał
Uczniowie - Instruktorzy
Edek Musiał
Adam ZajÄ…c ImiÄ™ Nazwisko
Instruktorzy - Uczniowie
Olek StruÅ› Ala Kusiak
Ola Buba Adam ZajÄ…c ImiÄ™ Nazwisko
Jan Kuc Olek StruÅ› Jan Kuc
Wacek Misiek Ola Buba Wacek Misiek
BD  wykład 2 (29)
Na slajdzie przedstawiono dwie kompatybilne relacje Uczniowie i Instruktorzy
oraz wyniki operacji sumy, iloczynu i różnicy tych relacji.
29
Bazy danych - BD
Operacje na zbiorach - SQL
select ImiÄ™, Nazwisko
select ImiÄ™, Nazwisko
from Uczniowie
from Uczniowie
MINUS
UNION
select ImiÄ™, Nazwisko
select ImiÄ™, Nazwisko
from Instruktorzy;
from Instruktorzy;
select ImiÄ™, Nazwisko select ImiÄ™, Nazwisko
from Uczniowie from Instruktorzy
INTERSECT MINUS
select ImiÄ™, Nazwisko select ImiÄ™, Nazwisko
from Instruktorzy; from Uczniowie;
BD  wykład 2 (30)
Na slajdzie przedstawiono polecenia zapisane w języku SQL realizujące operacje
sumy, iloczynu i różnicy relacji z poprzedniego slajdu.
30
Bazy danych - BD
Iloczyn kartezjański
" Dane sÄ… dwie relacje: R(A1, ..., An) i S(B1, ...,Bm)
 Wynikiem iloczynu kartezjańskiego relacji R i S,
oznaczonym przez R x S, jest relacja Q stopnia
n+m i schemacie: Q(A1, ..., An, B1, ...,Bm)
" Krotkom w relacji Q odpowiadajÄ… wszystkie
kombinacje krotek z relacji R i S
" Jeżeli relacja R ma N krotek, a relacja S ma M
krotek, to relacja Q będzie miała N*M krotek
BD  wykład 2 (31)
Kolejną operacją modelu relacyjnego jest połączenie. Szczególnym przypadkiem
połączenia jest tzw. iloczyn kartezjański, zdefiniowany następująco.
Dane sÄ… dwie relacje: R(A1, ..., An) i S(B1, ...,Bm). Wynikiem iloczynu
kartezjańskiego relacji R i S, oznaczonym przez R x S, jest relacja Q stopnia n+m
i schemacie: Q(A1, ..., An, B1, ...,Bm). Krotkom w relacji Q odpowiadajÄ…
wszystkie kombinacje krotek z relacji R i S. Jeżeli relacja R ma N krotek, a
relacja S ma M krotek, to relacja Q będzie miała M*N krotek. Innymi słowy,
iloczyn kartezjański polega na połączeniu każdej krotki z relacji R z każdą krotką
relacji S.
31
Bazy danych - BD
Iloczyn kartezjański - przykład
Pracownicy
Zespoły
ImiÄ™ Nazwisko
Nazwa Lokalizacja
Ala Kusiak
Reklama Krucza 10
Edek Musiał
Badania Piotrowo 3A
Adam ZajÄ…c
Pracownicy x Zespoły
ImiÄ™ Nazwisko Nazwa Lokalizacja
Ala Kusiak Reklama Krucza 10
Edek Musiał Reklama Krucza 10
Adam ZajÄ…c Reklama Krucza 10
Ala Kusiak Badania Piotrowo 3A
Edek Musiał Badania Piotrowo 3A
Adam ZajÄ…c Badamia Piotrowo 3A
BD  wykład 2 (32)
Na slajdzie przedstawiono dwie relacje, tj. Pracownicy i Zespoły oraz wynik
iloczynu kartezjańskiego tych relacji.
32
Bazy danych - BD
Operacja połączenia (1)
" Przeznaczenie:
 łączenie na podstawie warunku połączeniowego
wybranych krotek z dwóch relacji w pojedynczą krotkę
" Notacja: operacja połączenia relacji R(A1, ..., An) i S(B1,
...,Bm), jest oznaczona jako:
R S

 warunek połączeniowy jest zbiorem predykatów
połączonych operatorami logicznymi AND
 predykaty sÄ… postaci: Ai ¸ Bj
" Ai i Bj są atrybutami połączeniowymi
" Ai jest atrybutem R, Bj jest atrybutem S
" dom(Ai) = dom(Bj),
" ¸ jest operatorem relacyjnym ze zbioru { =, `", <, d", >, e" }
BD  wykład 2 (33)
Operacja połączenia umożliwia łączenie wybranych krotek z dwóch relacji w
pojedynczÄ… krotkÄ™. Krotki sÄ… Å‚Ä…czone na podstawie podanego warunku
połączeniwego.
NotacjÄ™ operacji Å‚Ä…czenia relacji R i S przedstawiono na slajdzie. Warunek
połączeniowy jest zbiorem predykatów połączonych operatorami logicznymi
AND. Predykaty te sÄ… postaci: Ai THETA Bj, gdzie
- Ai i Bj są atrybutami połączeniowymi,
- Ai jest atrybutem R, Bj jest atrybutem S,
- dom(Ai) = dom(Bj),
- THETA jest operatorem relacyjnym ze zbioru { =, !=, <, >, <=, >= }.
33
Bazy danych - BD
Operacja połączenia (2)
" Ogólna postać operacji połączenia (theta join)
 R S
¸
" Połączenie równościowe (equi join)
 ¸ jest operatorem =
" Połączenie nierównościowe (non-equi join)
 ¸ jest operatorem różnym od =
BD  wykład 2 (34)
Ogólna postać operacji połączenia, gdzie THETA jest dowolnym operatorem
relacyjnym jest nazywana połączeniem typu THETA (ang. theta join).
Operacja połączenia, dla której THETA jest operatorem =, nazywana jest
połączeniem równościowym (ang. equi join).
Operacja połączenia, dla której THETA jest operatorem różnym od =, nazywana
jest połączeniem nierównościowym (ang. non-equi join).
34
Bazy danych - BD
Operacja połączenia (3)
" Połączenie naturalne (natural join)
 połączenie równościowe
 jeden z atrybutów połączeniowych jest usunięty ze
schematu relacji wynikowej
 oznaczane jako: R * S
 atrybuty połączeniowe w obu relacjach muszą mieć
takÄ… samÄ… nazwÄ™
BD  wykład 2 (35)
Operacja połączenia równościowego, w której jeden z atrybutów połączeniowych
jest usunięty ze schematu relacji wynikowej, jest nazywana połączeniem
naturalnym (ang. natural join). Połączenie naturalne jest oznaczane jako: R * S,
przy czym wymagane jest, by atrybuty połączeniowe w obu relacjach miały taką
samÄ… nazwÄ™.
35
Bazy danych - BD
Operacja połączenia - przykłady
Pracownicy Zespoły
IdPrac ImiÄ™ Nazwisko Szef IdZesp IdZesp Nazwa
100 Jan MiÅ› 10 10 Reklama
110 Piotr Wilk 100 10 20 Badania
120 Roman Lis 100 20
Pracownicy Pracownicy
Szef=IdPrac
IdPrac ImiÄ™ Nazwisko Szef IdZesp IdPrac ImiÄ™ Nazwisko Szef IdZesp
110 Piotr Wilk 100 10 100 Jan MiÅ› 10
120 Roman Lis 100 20 100 Jan MiÅ› 10
Pracownicy * Zespoły
IdPrac ImiÄ™ Nazwisko Szef IdZesp Nazwa
100 Jan MiÅ› 10 Reklama
110 Piotr Wilk 100 10 Reklama
120 Roman Lis 100 20 Badania
BD  wykład 2 (36)
Na slajdzie przedstawiono dwie relacje, tj. Pracownicy i Zespoły oraz wynik
połączenia równościowego i naturalnego tych relacji.
36
Bazy danych - BD
Operacja połączenia - SQL
select *
połączenie równościowe
from pracownicy p join zespoly z
(niestandardowe)
on p.id_zesp=z.id_zesp
select nazwisko, nazwa
połączenie równościowe
from pracownicy p join zespoly z
(standardowe)
on p.id_zesp=z.id_zesp
połączenie naturalne
(standardowe)
select *
from pracownicy p natural join zespoly z
BD  wykład 2 (37)
Na slajdzie przedstawiono polecenia zapisane w języku SQL realizujące operacje
połączenia równościowego i naturalnego relacji z poprzedniego slajdu.
Połączenie równościowe zapisano w dwóch postaciach, pierwsza nie jest zgodna
ze standardem SQL, ale jest wspierana przez wiele SZBD. Druga notacja jest
zgodna ze standardem języka. Połączenie naturalne wyspecyfikowano zgodnie ze
standardem.
37


Wyszukiwarka

Podobne podstrony:
Microsoft PowerPoint 04 algebra relacji i rachunek relacyjny
2004 11 Porównanie serwerów relacyjnych baz danych Open Source [Bazy Danych]
01 Projektowanie relacyjnej bazy danych Czym jest relacyj
Wykorzystanie XML w relacyjnych?zach?nych
Bazy Danych relacyjne czy obiektowe
Projekt? Relacyjne?zy?nych obligat ET II II
Zestaw 1 Wprowadzenie do relacyjnych baz danych
Dokumenty XML w relacyjnych bazach danych czyli wojna światów I
Wykład 4 Transformacja modelu ER do modelu relacyjnego
9 P Kwiatek?ekty relacyjne w zarzadzaniu relacjami
Konfidencjonalna społeczność a estetyka relacyjna
Zajęcia 4 Dokumenty XML zapisywane w relacyjnej bazie danych
01 model relacyjny
2009 02 Relacyjna baza danych HSQLDB [Bazy Danych]
podstawy relacyjnych?z?nych wyklad cz3 projektowanie

więcej podobnych podstron