background image

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

background image

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

background image

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

background image

4

Przykład relacji

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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ę 

background image

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)

background image

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ść)

background image

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ść)

background image

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ść)

background image

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

background image

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

background image

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

background image

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

background image

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