1
Relacyjna struktura danych
●
W modelu relacyjnym dane mają logiczną strukturę
relacji
–
relacja
jest fizycznie realizowana w postaci tabeli
(tabela – posiadająca wiersze i kolumny)
●
Każda relacja ma
nazwę
–
Nazwa relacji jest
unikatowa
w skali bazy danych
–
Nazwa powinna kojarzyć się z rodzajem
opisywanego
obiektu
–
Nazwa powinna być jak najkrótsza
2
Opis relacji
●
Relacja jest przedstawiana jako dwuwymiarowa
tabela
●
Każda relacja zawiera
atrybuty
– kolumny
–
Nazwy atrybutów są
unikalne
wewnątrz tabeli
–
Nazwy atrybutów jednoznacznie powinny opisywać
rodzaj przechowywanych informacji
–
Atrybuty przechowują informacje
atomowe
●
Jeżeli informacja nie może być przedstawiona w postaci
atomowej należy ja rozbić na informacje atomowe
●
Atrybuty mogą się pojawiać w dowolnej kolejności
3
Krotki i rekordy
●
Krotka
– to wiersz relacji
–
Każda krotka zawiera
jedną
wartość każdego
atrybutu
–
Krotka jest
stanem
(wystąpieniem) relacji
–
Wraz z użytkowaniem relacji zmienia się
stan
relacji
●
Fizyczną realizację krotki nazywamy
rekordem
●
Dziedzina
–
Zbiór dopuszczalnych wartości dla jednego lub
większej liczby atrybutów
4
Przykład relacji
5
Dziedziny wybranych atrybutów
Atrybut
Znaczenie
Definicja dziedziny
miasto
Zbiór wszystkich nazw ulic typ znakowy: rozmiar 25
typ znakowy: rozmiar 8
płeć
Płeć człowieka
Nazwa
dziedziny
biuroNr
NumeryBiur
Zbiór wszystkich numerów
biur
typ znakowy: rozmiar 4,
zakres B001-B999
NazwyMiast
kodPocztowy KodyPocztowe
Zbiór wszystkich kodów
pocztowych
TypyPłci
typ znakowy: rozmiar 1,
wartość M lub K
dataUr
DatyUrodzenia
Możliwe wartości dat uro-
dzenia pracowników
typ daty, zakres od
1.01.1920, format
dd.mm.rrrr
6
Klucze relacji
●
Relacja
nie zawiera powtarzających
się krotek
●
Aby
zagwarantować
możliwość
jednoznacznej
identyfikacji krotek
klucz główny relacji
●
Klucz główny jest to
atrybut
lub
zbiór atrybutów
,
które pozwalają jednoznacznie identyfikować krotkę w
relacji
–
Klucz główny można wybrać na wiele sposobów (klucze
kandydujące)
–
Spośród możliwych kluczy kandydujących wybieramy
klucz główny o najmniejszej liczbie atrybutów
–
Pozostałe klucze główne, które nie zostaną wybrane
nazywamy
kluczami alternatywnymi
7
Klucze relacji
●
Jeżeli ze zbioru
kluczy kandydujących
nie można
wybrać klucza głównego to klucz główny musi być
utworzony w sposób sztuczny
–
Dodanie nowego atrybutu, np: idOsoba
–
Typ atrybutu całkowity (bez znaku, ze znakiem)
–
Właściwość: autonumber (autonumeracja)
●
Jest to specjalny typ danych gwarantujący
niepowtarzalność każdej krotki
●
Klucze obce
–
Atrybut lub zbiór atrybutów z jednej relacji, który
odpowiada kluczowi głównemu innej relacji
8
Integralność relacji
●
Każdy
atrybut
związany jest z pewną
dziedziną
●
Atrybut nie może zawierać informacji która nie
należy do dziedziny
●
Jeżeli w danym momencie wartość atrybutu jest
niekreślona lub nieznana a atrybut wymaga podania
informacji stosujemy wartość
NULL
–
Nieokreślona wartość logiczna
–
Niekompletne dane
–
Sytuacje nieprzewidziane
9
Integralność
●
Więzy kluczy głównych
–
W relacji żaden atrybut klucza głównego nie może być
pusty
●
Więzy referencyjne
–
Jeżeli w relacji istnieje klucz obcy:
●
Wartość musi być równa wartości klucza głównego
(kandydującego) z innej relacji
●
Lub klucz obcy ma wartości puste dla wszystkich krotek
●
Więzy ogólne
–
Dodatkowe warunki poprawności danych określone
przez użytkownika lub administratora bazy danych
10
Perspektywy
●
Perspektywa
–
Sposób widzenia bazy danych przez użytkowników
–
Jest relacją wirtualną (nie jest realizowana fizycznie)
–
Perspektywa jest wyliczana za każdym razem gdy
nastąpi wywołanie perspektywy
●
Wynik jednej lub wielu operacji relacyjnych
●
Relacja bazowa
–
Relacja o ustalonej nazwie
–
Krotki relacji bazowej są fizycznie obecne w bazie
danych
11
Właściwości perspektywy
●
Użytkownik może traktować perspektywę jak relację
istniejącą w rzeczywistości
–
Można wykonywać na niej operacje tak jak na relacji
bazowej
●
Perspektywy są
dynamiczne
–
Zmiany w relacjach bazowych wpływające na perspektywę
są natychmiast w niej odzwierciedlane
–
Zmiany w perspektywie są automatycznie przenoszone do
relacji bazowych
●
Ograniczenie na modyfikowanie relacji bazowych za
pomocą perspektywy
12
Zadania perspektyw
●
Ochrona danych przed użytkownikami
–
Ukrywanie krotek i atrybutów
●
Dostosowanie dostępu do danych w sposób
dostosowany do potrzeb użytkownika
●
Uproszczenie operacji na relacja bazowych
–
Perspektywa jest złączeniem kilku relacji bazowych
●
Zapewniają logiczną niezależność danych
–
Dodanie atrybutów do relacji może być niezauważone
przez użytkownika
–
Dodanie lub podział relacji bazowych może zostać
niezauważone
13
Modyfikowanie danych
●
Zmiany w relacji bazowej muszą być odzwierciedlone w
perspektywie
●
Zmiana w perspektywie powinna być odzwierciedlona w relacji
bazowej
●
Modyfikacja jest możliwa gdy:
–
Perspektywa jest utworzona prostym zapytaniem (brak złączeń)
na bazie jednej relacji bazowej
–
Perspektywa zawiera klucz główny relacji
●
Modyfikacji nie można dokonać gdy:
–
Perspektywa oparta jest na kilku relacjach bazowych
–
Perspektywa wykorzystuje operatory grupowania i funkcje
agregujące
14
Selekcja
●
Operacja
selekcji
działa na jednej relacji i daje w
wyniku relację zawierającą te krotki, które spełniają
podany warunek (predykat)
–
Podaj wszystkich pracowników, którzy mają pensję
wyższą niż 1500 zł
–
σ
pensja > 1500
(Personel)
●
Bardziej skomplikowane predykaty można otrzymać
stosując operatory AND(^), LUB, NOT
–
σ
(pensja > 1500) ^ (pleć = M)
(Personel)
●
W wyniku działania operatora selekcji otrzymujemy
relację
15
Rzutowanie
●
Działa na jednej relacji
●
Wynikiem działania jest relacja
–
Zawiera pionowy wycinek relacji bazowej
–
Wybierane są wartości określonych atrybutów
–
Duplikaty krotek
●
Podaj listę zawierającą imię, nazwisko oraz pensje
wszystkich pracowników
Π
imię, nazwisko, pensja
(Personel)
16
Suma zbiorów
●
Operator sumy działa na dwóch relacjach R i S
●
Wynikiem działania operatora jest relacja
–
Zawiera krotki relacji R oraz krotki relacji S
–
Duplikaty są eliminowane
–
Relacje R i S muszą mieć zgodne schematy
●
Taka sama liczba atrybutów
●
Każda para odpowiadających sobie atrybutów ma tę samą dziedzinę
●
Jeżeli schematy się różnią można zastosować operator rzutowania
–
Podaj wszystkie miasta, w których znajduje się biuro lub
nieruchomość
Π
miasto
(Biuro)
U
Π
miasto
(Nieruchomość)
17
Różnica zbiorów
●
Działa na dwóch relacjach R i S
●
Wynikiem działania jest relacja
–
Zawiera wszystkie krotki należące do R ale nie
należące do S
–
Relacje R i S muszą mieć zgodne schematy
–
Podaj wszystkie miasta, w których znajdują się biura
firmy, ale nie ma żadnej nieruchomości
Π
miasto
(Biuro)
-
Π
miasto
(Nieruchomość)
18
Przekrój zbiorów
●
Działa na dwóch relacjach R i S
●
Wynikiem działania jest relacja
–
Zawiera wszystkie krotki należące zarówno do R jak i
należące do S
–
Relacje R i S muszą mieć zgodne schematy
–
Podaj wszystkie miasta, w których znajdują się biura
firmy i nieruchomości
Π
miasto
(Biuro)
∩
Π
miasto
(Nieruchomość)
19
Iloczyn kartezjański
●
Iloczyn kartezjański definiuje relację, która zawiera
konkatenację każdej krotki z relacji R z każdą krotką z
relacji S
●
Jeżeli relacja
R
ma
I
krotek i
N
atrybutów a relacja
S
ma
J
krotek i
M
atrybutów
–
Relacja wynikowa ma
(I*J)
krotek o
(N+M)
atrybutach
a
b
R
1
2
3
S
R
x
S
1
2
3
a
a
a
b
b
b
1
2
3
20
Złączenie naturalne
●
Relacja zawierająca krotki iloczynu kartezjańskiego
relacji R i S, spełniających warunek równości co
najmniej jednego atrybutu
–
Relacje R i S muszą zawierać co najmniej jeden atrybut
mający tę samą dziedzinę
–
Jedno z wystąpień każdego ze wspólnych atrybutów
jest eliminowane z relacji wynikowej
A
--------
a
b
B
--------
1
2
R
S
D
--------
1
1
3
E
--------
x
y
z
R
▹◃
. = .
R B S D
S
A
--------
a
a
B
--------
1
1
E
--------
x
y
21
Złączenie zewnętrzne
●
Do relacji wynikowej są włączane również takie krotki
z relacji R, dla których w relacji S nie występują
wartości wspólnych atrybutów
–
Brakujące wartości atrybutów wypełniane są wartością
NULL
–
Złączenia lewostronne, prawostronne, pełne złączenie
zewnętrzne
A
--------
a
b
B
--------
1
2
R
S
D
--------
1
1
3
E
--------
x
y
z
R
⊃
◃
. = .
R B S D
S
A
--------
a
a
b
B
--------
1
1
2
E
--------
x
y
NULL
22
Półzłączenie
●
Wynikiem
operacji
półzłączenia
jest
relacja
zawierająca te krotki relacji R, które weszłyby do
złączenia R i S
–
Złączenie dwóch relacji
–
Rzutowanie wyniku na atrybuty pierwszego argumentu
A
--------
a
b
B
--------
1
2
R
S
D
--------
1
1
3
E
--------
x
y
z
R
▹
. = .
R B S D
S
A
--------
a
B
--------
1
23
Teta-złączenie
●
Wynikiem operacji złączenia jest relacja zawierająca
krotki iloczynu kartezjańskiego R i S, spełniające
warunek F
–
Warunek F jest postaci R.a (<, ≤, >, ≥, =, ≠) S.b
–
a jest atrybutem relacji R, b jest atrybutem relacji S
A
--------
a
b
B
--------
1
2
R
S
D
--------
1
1
3
E
--------
x
y
z
R
▹◃
. ≥ .
R B S D
S
A
--------
a
a
b
b
B
--------
1
1
2
2
E
--------
x
y
x
y
D
--------
1
1
1
1