Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Relacyjny model danych
definicja modelu
Wykład 3
16.10.2007
Antoni Dydejczyk
http://www.ftj.agh.edu.pl/~antek
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Plan wyk
Plan wyk
ł
ł
adu
adu
Klasyfikacja modeli baz danych
Model hierarchiczny - informacja
Model sieciowy - informacja
Relacyjny model danych
Definicja relacji, krotki, atrybutu
Powiązanie relacji 1-1, 1-n, n-m
Klucze: kandydujący, główny, obcy
Algebra relacyjna
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
G
G
ł
ł
ó
ó
wne typy (generacje) baz danych
wne typy (generacje) baz danych
1. Proste modele danych. Dane zorganizowane są w strukturę rekordów
zgrupowanych w plikach. Głównymi dostępnymi operacjami są
operacje na rekordach (ewentualnie na ich poszczególnych polach).
2. Klasyczne modele danych. Należą do nich modele hierarchiczne,
sieciowe i relacyjne.
Modele relacyjne stanowią najbardziej popularną
obecnie podstawę architektur systemów baz danych
.
3. Semantyczne modele danych. Semantyka to inaczej znaczenie.
Klasyczne modele danych nie dostarczają łatwego sposobu odczytania
informacji o semantyce danych, stąd podejmuje się próby stworzenia
innych modeli, uzupełniających ten brak. Przykładem częściowej
realizacji tego programu są obiektowe modele danych.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Ewolucja modeli danych
Ewolucja modeli danych
System plików
Diagramy Bachmana
Model hierarchiczny
Model sieciowy
Płaski model relacyjny
Modele obiektów złożonych
Zagnieżdżony model relacyjny
Semantyczne modele danych
Model związków encji
Model obiektowy
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model hierarchiczny
Model hierarchiczny
Teoretyczne podstawy:
- brak,
- model danych opracowany na podstawie istniejących
aplikacji,
- SZBD realizujący założenia modelu - system IMS
( Information Management System)
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model hierarchiczny
Model hierarchiczny
TOWARY
ZAMÓWIENIA
CZŁONKOWIE
ZAMÓWIENIA
Członkowie
Towary
Organizacja danych w bazie
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model hierarchiczny
Model hierarchiczny
Definicja danych:
- typy rekordów,
- związki nadrzędny - podrzędny.
Typ rekordów - jest struktura danych, złożoną ze zbioru
nazwanych pól. Każde pole jest używane do przechowywania
prostego atrybutu i jest mu przyporządkowany typ danych.
Powiązanie nadrzędny - podrzędny - jest związkiem jeden - do
- wielu między dwoma typami rekordów.
Schemat hierarchiczny jest złożony z wielu typów rekordów,
powiązanych ze sobą za pomocą związków nadrzędny-
podrzędny.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model hierarchiczny
Model hierarchiczny
TOWARY
ZAMÓWIENIA
CZŁONKOWIE
Wirtualne
ZAMÓWIENIA
Towary
Członkowie
Organizacja danych w bazie
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model hierarchiczny
Model hierarchiczny
TOWARY
ZAMÓWIENIA
CZŁONKOWIE
Wirtualne
ZAMÓWIENIA
Bezpośrednia implementacja związku wieloznacznego
Wirtualne
CZŁONKOWIE
Wirtualne
TOWARY
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model hierarchiczny
Model hierarchiczny
TOWARY
ZAMÓWIENIA
CZŁONKOWIE
Wirtualne
ZAMÓWIENIA
Użycie wskaźnika do poprzednika
Wirtualne
CZŁONKOWIE
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model hierarchiczny
Model hierarchiczny
Przeszukiwanie bazy
a
b
c
d
e
f
g
j
i
h
a
b
c
d
e
f
g
j
i
h
Nanizany porządek poprzedzający
Wskaźniki do lewego
następnika / prawego
współnastępnika
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model hierarchiczny
Model hierarchiczny
Operowanie danymi:
W hierarchicznym modelu danych operowanie danymi jest
wykonywane poprzez wbudowanie funkcji dostępu do bazy
danych w wybranym języku programowania.
WHILE DB_status 0 DO
BEGIN
WRITELN (moduł.NazwaModułu);
GET NEXT Moduł WHERE Poziom=1;
END;
Instrukcja ta jest procedurą - zbiorem instrukcji wyrażonej w
pewnej sekwencji. Hierarchiczne języki zapytań opisywane są
jako proceduralne języki zapytań.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model hierarchiczny
Model hierarchiczny
Integralność danych:
1) Nie mogą istnieć żadne wystąpienia rekordów, z wyjątkiem
rekordu korzenia ( najwyższego w hierarchii), bez
powiązania z odpowiednim wystąpieniem rekordu
nadrzędnego.
a) nie można wstawić rekordu podrzędnego, dopóki nie
zostanie powiązany z rekordem nadrzędnym,
b) usunięcie rekordu nadrzędnego powoduje
automatyczne usunięcie wszystkich powiązanych z
nim rekordów podrzędnych.
2) Jeżeli podrzędny typ rekordu ma związane dwa lub więcej
nadrzędnych typów rekordów, to rekord podrzędny musi
zostać powielony dla każdego rekordu nadrzędnego.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model sieciowy
Model sieciowy
Model sieciowy uważany jest za następcę hierarchicznego
modelu danych.
Rozwój sieciowego modelu danych:
1971 - Propozycje grupy DBTG na konferencji na temat
systemów i języków programowania - CODASYL.
1984 - zarekomendowanie przez organizację ANSI języka
definicji sieciowych (NDL).
DBTG – Data Base Task Group
CODASYL – Conference on Data System Languages
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model sieciowy
Model sieciowy
Struktury danych w modelu:
- typy rekordów
- typy kolekcji
Typ rekordów, pojęciowo zgodny z typem rekordów w modelu
hierarchicznym, z tą różnicą, że pola mogą być używane do
przechowywania wielu wartości lub reprezentowania
złożonych wartości, które się powtarzają.
Typ kolekcji jest opisem związku jeden - do - wielu między
dwoma typami rekordów. Każdy typ kolekcji składa się z
nazwy, typu rekordów właściciela i typu rekordów członka
kolekcji.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model sieciowy
Model sieciowy
DOSTAWCY
Nazwa_dost
Adres_dost
CENY
Ilosc
TOWAR
ZAMÓWIENIA
CZŁONKOWIE
Nr. zamów.
Adres
Saldo
Nazwisko
Koszt
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model sieciowy
Model sieciowy
TOWARY
DOSTAWCY
CZŁONKOWIE
CENY
ZAMÓWIENIA
CenDost
CenTowar
ZamTowar
ZamCzlon
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model sieciowy
Model sieciowy
Operowanie danymi:
Operowanie na danych w bazie danych odbywa się w języku programowania
gospodarza.
Operacje te można podzielić na trzy grupy:
-
polecenia nawigacji po danych (ustawienia wskaźników bieżących
rekordów),
-
polecenie sprowadzenia zawartości bieżących wartości,
-
polecenia modyfikujące zawartości wystąpień rekordów i kolekcji.
Język programowania i system bazy danych to dwa oddzielne systemy
oprogramowania. Połączone są one poprzez wspólny interfejs.
Program napisany w języku programowania gospodarza używa zbioru
zmiennych lokalnych (obszar roboczy użytkownika), na których zapisane są
wartości sprowadzone z rekordów bazy danych.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Model sieciowy
Model sieciowy
Integralność danych:
Integralność dotyczy określenia członkostwa w kolekcji i trybu
wstawienia.
Członkostwo w kolekcji może być zdefiniowane jako wymagane
lub opcjonalne.
Członkostwo kolekcji ma dwa tryby wstawiania:
ręczny - programy użytkowe mają wstawiają rekordy według
określonego schematu,
automatyczny - gdy tworzony jest rekord członka, jest on
automatycznie wstawiany do bieżącego wystąpienia kolekcji.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Relacyjny model danych
Relacyjny model danych
1970 – E.F. Codd – A relational model for large shared data
banks – fundament relacyjnego modelu baz danych
1979 – E.F.Codd – rozszerzona wersja relacyjnego modelu
baz danych RM/T – Extending the relational database model
to capture more meaning.
1990 – E.F.Codd – książka The Relational Model for
Database Management: Version 2
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Relacja
Relacja
-
-
definicja
definicja
Relacja R – zbiór dziedzin D1, ..., Dn – składający się z dwóch
części: nagłówka i treści. W tabelarycznej reprezentacji
powiemy, nagłówek – wiersz złożony z tytułów kolumn, treść
– zbiór wierszy z danymi.
1. Nagłówek – ustalony zbiór atrybutów, dokładniej par
<nazwa atrybutu:nazwa dziedziny>
{ <A1:D1>, <Aj:Dj>, ... ,<An:Dn> }
2. Treść składa się z krotek. Każda krotka jest zbiorem par
<nazwa atrybutu:wartość atrybutu>
{ <A1:vi1>, <Aj:vij>, ... , <An:vin> }
(j = 1,2, ... , n) stopień relacji R
(i = 1,2, ... ,m) liczebność relacji R
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Relacja
Relacja
-
-
definicja
definicja
Athens
30
Adams
S5
London
20
Clark
S4
Paris
30
Blake
S3
Paris
10
Jones
S2
London
20
Smith
S1
CITY
STATUS
SNAME
S#
S#
NAME
Klucz
główny
STATUS
CITY
Dziedziny
Atrybuty
Stopień tabeli
Liczebność
Krotki
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Poj
Poj
ę
ę
cia stosowane do opisu relacyjnego modelu
cia stosowane do opisu relacyjnego modelu
zbiór dopuszczalnych
wartości
dziedzina
jednoznaczny identyfikator
klucz główny
liczba kolumn
stopień tabeli
kolumna lub pole
atrybut
liczba wierszy
liczebność tabeli
wiersz lub rekord
krotka
tabela
relacja
Nieformalny równoważnik
Formalny termin relacyjny
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Zbi
Zbi
ó
ó
r zasad opisuj
r zasad opisuj
ą
ą
cych relacj
cych relacj
ę
ę
Każda relacja w bazie danych ma jednoznaczną nazwę.
Każdy atrybut w relacji ma jednoznaczną nazwę w
ramach jednej relacji.
Wszystkie wartości danego atrybutu muszą należeć do tej
samej dziedziny.
Porządek atrybutów w relacji nie jest istotny.
Każda krotka w relacji musi być różna.
Porządek krotek jest nie istotny.
Każde atrybut w relacji powinien zawierać wartość
atomową.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Schemat relacji
Schemat relacji
Nazwa relacji oraz zbiór jej atrybutów.
Relacja R ( atrybut_1, atrybut_2, ... , atrybut_n )
{ <S# : S# >,
<Sname
: name >,
<Status : status >,
<CITY : city> }
( S1, Smith, 20, London )
( Smith, 20, London, S1 )
( London, Smith, 20, S1 )
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Dziedzina
Dziedzina
Dziedzina jest to zbiór wartości skalarnych. Wszystkie
muszą być tego samego typu. Do dziedziny należy
najmniejsza semantyczna jednostka danych – pojedyncza
wartość danych. Przez najmniejszą należy rozumieć, że
nie posiadają struktury wewnętrznej w ramach modelu
relacyjnego.
Np.
• numer dostawcy
• pojedynczy ciężar
• pojedyncza nazwa miasta
• liczba części w dostawie
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Integralno
Integralno
ść
ść
danych relacyjnych
danych relacyjnych
Baza danych zawiera konkretny układ wartości danych –
układ ten powinien odpowiadać rzeczywistości.
Klucz kandydujący w relacji R jest podzbiorem K zbioru
atrybutów relacji R, mającym:
•
Własność jednoznaczności:
ś
adne dwie różne krotki R nie posiadają tej samej wartości dla K.
•
Własność nieredukowalności:
ś
aden właściwy podzbiór K nie ma własności jednoznaczności.
Jeżeli w relacji jest więcej niż jeden klucz kandydujący, należy
wybrać jeden z nich jako – klucz główny tej relacji, pozostałe
nazywane są kluczami alternatywnymi.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Klucze obce
Klucze obce
Definicja:
R2 jest relacją podstawową. Klucz obcy relacji R2 jest to
podzbiór FK zbioru atrybutów R2, taki że:
Istnieje relacja podstawowa R1 z kluczem kandydującym Ck,
W każdej chwili każda wartość FK w aktualnej wartości relacji R2
jest taka sama, jak wartość Ck w pewnej krotce aktualnej wartości
relacji R1.
Wartość klucza obcego stanowi referencję (odwołanie) do krotki
zawierającej wartość odpowiadającego mu klucza kandydującego.
Integralność referencyjna – zapewnienie, aby baza nie zawierała
niedopuszczalnych wartości klucza obcego.
Więzy referencyjne – zgodność klucza obcego z wartościami
odpowiadającemu mu klucza kandydującego.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
237
CSD
2
Rozproszone bazy danych
345
CSD
3
Dedukcyjne bazy danych
234
CSD
1
Projektowanie relacyjnych baz danych
234
CSD
1
Systemy relacyjnych baz danych
NrPrac
KodKursu
Poziom
NazwaModułu
Moduły (NazwaModułu,Poziom,KodKursu,NrPrac)
Klucz obcy
SL
Jones S
237
L
Davies T
234
Status
NazwiskoPrac
NrPrac
Wykładowcy (NrPrac,nazwiskoPrac,Status)
Klucz główny
Klucz g
Klucz g
ł
ł
ó
ó
wny i obcy w relacjach
wny i obcy w relacjach
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Relacja jeden do jeden
Relacja jeden do jeden
AAA
A3
A2
A1
Tabela R1
Klucz
Właściwości:
- niepowtarzalny
AAA
B3
B2
B1
A1
Tabela R2
Klucz obcy
Właściwości:
- niepowtarzalny
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Relacja jeden do wielu
Relacja jeden do wielu
AAA
A3
A2
A1
Tabela R1
Klucz
Właściwości:
- niepowtarzalny
Tabela R2
AAA
AAA
AAA
B3
B2
B1
A1
Klucz obcy
Właściwości:
- powtarzalny
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Relacja jeden do wielu
Relacja jeden do wielu
AA2
AA1
A3
A2
A1
BB1
BB3
BB2
B4
B3
B2
B1
Tabela R1 (np. wykład)
Tabela R2 (np. prowadzący)
Klucz
Klucz
BB1
AA2
BB2
AA2
BB3
AA2
BB3
AA1
BB1
AA1
B2
A1
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Operowanie danymi
Operowanie danymi
1. Jak wstawiamy dane do relacji ?
2. Jak usuwamy dane z relacji ?
3. Jak poprawiamy dane w relacji ?
4. Jak wyszukujemy dane w relacji ?
Zastosowanie dobrego projektu bazy danych prowadzi do konieczności
korzystania z technik umożliwiających złożenie danych znajdujących
się w kilku relacjach (tabelach) w jedną spójną całość.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Przyk
Przyk
ł
ł
ad
ad
Relacje:
Książka (ISBN, tytul, WydID, Cena)
Wydawnictwo (WydID, WydNazwa, WydTel)
Pytanie:
Podać wykaz nazw i telefonów wydawnictw
wydających książki w cenie poniżej ceny A.
Algebra relacyjna:
1. połącz relacje książka i wydawnictwo na atrybucie WydID
2. wyselekcjonuj wiersze w których wartość atrybutu Cena jest
mniejsza niż A
3.
pokaż relację zawierającą atrybuty WydNazwa i WydTel
Rachunek relacyjny:
{(x,y) | Wydawnictwo(z,x,y) i Książki (a,b,z,c) i c<A }
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Algebra relacyjna i rachunek relacyjny
Algebra relacyjna i rachunek relacyjny
Algebra relacyjna.
Język proceduralny. Wyrażenia opisują
procedurę zwracającą wyniki.
Rachunek relacyjny.
Język nieproceduralny. Język używa wyrażeń
logicznych, opisujących warunki, które muszą
być spełnione, aby wiersz znalazł się w tabeli
wynikowej, bez wyjaśnienia w jaki sposób
otrzymać ten wiersz.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Wyszukiwanie danych
Wyszukiwanie danych
–
–
algebra relacyjna
algebra relacyjna
Algebra relacyjna definiuje osiem operatorów, które działając
na relacje, dają jedną relację jako wynik.
Wyróżniamy następujące operatory:
1. Selekcja (ograniczenie, restrykcja)
2. Rzut (projekcja)
3. Złączenie
4. Iloczyn
5. Suma
6. Przecięcie
7. Różnica
8. Iloraz
Algebra relacyjna – proceduralny język zapytań.
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Selekcja
Selekcja
Daje w wyniku relację składającą się ze wszystkich
krotek, które w wskazanej relacji spełniają określone
warunki.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
RESTRICT <nazwa relacji>
[ WHERE <warunek>]
<relacja wynikowa>
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Selekcja
Selekcja
-
-
przyk
przyk
ł
ł
ad
ad
237
CSD
2
Rozproszone bazy danych
345
CSD
3
Dedukcyjne bazy danych
234
CSD
1
Projektowanie relacyjnych baz danych
234
CSD
1
Systemy relacyjnych baz danych
NrPrac
KodKursu
Poziom
NazwaModułu
Moduły (NazwaModułu,Poziom,KodKursu,NrPrac)
RESTRICT Moduły WHERE Poziom=1
R1
234
CSD
1
Projektowanie relacyjnych baz danych
234
CSD
1
Systemy relacyjnych baz danych
NrPrac
KodKursu
Poziom
NazwaModułu
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Rzut
Rzut
Daje w wyniku relację składającą się z tych wszystkich
krotek, które pozostały jako krotki w danej relacji po
usunięciu wskazanych atrybutów.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
PROJECT <nazwa relacji> [<lista atrybutów>]
R1
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Rzut
Rzut
-
-
przyk
przyk
ł
ł
ad
ad
237
CSD
2
Rozproszone bazy danych
345
CSD
3
Dedukcyjne bazy danych
234
CSD
1
Projektowanie relacyjnych baz danych
234
CSD
1
Systemy relacyjnych baz danych
NrPrac
KodKursu
Poziom
NazwaModułu
Moduły (NazwaModułu,Poziom,KodKursu,NrPrac)
RESTRICT Moduły (NazwaModułu)
R1
Projektowanie relacyjnych baz danych
...
Systemy relacyjnych baz danych
NazwaModułu
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Iloczyn
Iloczyn
Daje relację składającą się ze wszystkich możliwych krotek,
będących kombinacjami dwóch krotek, po jednej z każdej
wskazanej relacji.
c
b
a
y
x
y
c
x
c
y
b
x
b
y
a
x
a
PRODUKT <relacja 1> WITH <relacja 2>
<relacja>
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Suma
Suma
Daje w wyniku relację składającą się ze wszystkich krotek,
występujących w jednej lub obu wskazanych relacjach.
Suma bierze dwie zgodne relacje (te same atrybuty i
dziedziny) i produkuje relację wynikową.
<relacja 1> UNION <relacja2>
<relacja>
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Suma
Suma
-
-
przyk
przyk
ł
ł
ad
ad
PL
Evans
345
SL
Jones S
237
L
Davies T
234
Status
NazwiskoPrac
NrPrac
Wykładowcy (NrPrac,nazwiskoPrac,Status)
PL
Evans
345
Starszy urzędnik
Jones S
1023
Urzędnik
Davies P
1001
Status
NazwiskoPrac
NrPrac
Adminstratorzy (NrPrac,nazwiskoPrac,Status)
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Suma
Suma
-
-
przyk
przyk
ł
ł
ad
ad
Wykładowcy UNION Administratorzy
R1
L
Davies T
234
SL
Jones S
237
PL
Evans
345
Starszy urzędnik
Jones S
1023
Urzędnik
Davies P
1001
Status
NazwiskoPrac
NrPrac
R1 (NrPrac,nazwiskoPrac,Status)
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Przeci
Przeci
ę
ę
cie
cie
Daje w wyniku relację składającą się ze wszystkich krotek,
występujących w obu wskazanych relacjach.
Przecięcie bierze dwie zgodne relacje (te same atrybuty i
dziedziny) i produkuje relację wynikową z krotkami wspólnymi
dla obu relacji.
<relacja 1> INTERSECTION <relacja2>
<relacja>
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Przeci
Przeci
ę
ę
cie
cie
-
-
przyk
przyk
ł
ł
ad
ad
PL
Evans
345
SL
Jones S
237
Status
NazwiskoPrac
NrPrac
Wykładowcy (NrPrac,nazwiskoPrac,Status)
PL
Evans
345
Starszy urzędnik
Jones S
1023
Status
NazwiskoPrac
NrPrac
Adminstratorzy (NrPrac,nazwiskoPrac,Status)
PL
Evans
345
Status
NazwiskoPrac
NrPrac
Wykładowcy INTERSECTION Administratorzy
R1
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
R
R
ó
ó
ż
ż
nica
nica
Daje w wyniku relację składającą się ze wszystkich krotek,
występujących w pierwszej i nie występujących drugiej
wskazanej relacji.
W przypadku tego operatora istotna jest kolejność relacji.
<relacja 1> DIFFERENCE <relacja2>
<relacja>
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
R
R
ó
ó
ż
ż
nica
nica
-
-
przyk
przyk
ł
ł
ad
ad
PL
Evans
345
SL
Jones S
237
L
Davies T
234
Status
NazwiskoPrac
NrPrac
PL
Evans
345
Starszy urzędnik
Jones S
1023
Urzędnik
Davies P
1001
Status
NazwiskoPrac
NrPrac
SL
Jones S
237
L
Davies T
234
Status
NazwiskoPrac
NrPrac
Wykładowcy DIFFERENCE Administratorzy
R1
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
R
R
ó
ó
ż
ż
nica
nica
-
-
przyk
przyk
ł
ł
ad
ad
PL
Evans
345
SL
Jones S
237
L
Davies T
234
Status
NazwiskoPrac
NrPrac
PL
Evans
345
Starszy urzędnik
Jones S
1023
Urzędnik
Davies P
1001
Status
NazwiskoPrac
NrPrac
Wykładowcy DIFFERENCE Wykładowcy
R1
Starszy urzędnik
Jones S
1023
Urzędnik
Davies P
1001
Status
NazwiskoPrac
NrPrac
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Iloraz
Iloraz
Bierze dwie relacje, jedną binarną, a drugą unarną i daje w
wyniku relację składająca się ze wszystkich wartości
jednego atrybutu relacji binarnej, które zgadzają się ze
wszystkimi wartościami relacji unarnej.
a
z
x
y
c
x
b
y
b
z
a
y
a
x
a
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Z
Z
łą
łą
czenie
czenie
Daje w wyniku relację składającą się ze wszystkich
możliwych krotek, które są kombinacjami dwu krotek, po
jednej z każdej ze wskazanych relacji, takich że mają tę samą
wartość wspólnego atrybutu. Wyróżniamy:
- równozłączenie
- złączenie naturalne
- złączenie zewnętrzne
lewostronne złączenie zewnętrzne
prawostronne złączenie zewnętrzne
obustronne złączenie zewnętrzne
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Z
Z
łą
łą
czenie
czenie
-
-
przyk
przyk
ł
ł
ad
ad
237
CSD
2
Rozproszone bazy danych
345
CSD
3
Obiektowe bazy danych
345
CSD
3
Dedukcyjne bazy danych
234
CSD
1
Projektowanie relacyjnych baz danych
234
CSD
1
Systemy relacyjnych baz danych
NrPrac
KodKursu
Poziom
NazwaModułu
PL
Evans
345
SL
Jones S
237
L
Davies T
234
Status
NazwiskoPrac
NrPrac
Moduły (NazwaModułu,Poziom,KodKursu,NrPrac)
Wykładowcy (NrPrac,nazwiskoPrac,Status)
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
R
R
ó
ó
wnoz
wnoz
łą
łą
czenie
czenie
-
-
przyk
przyk
ł
ł
ad
ad
237
345
345
234
234
NrPrac
237
345
345
234
234
NrPrac
Jones S
Evans R
Evans R
Davies T
Davies T
NazwiskoPrac
SL
CSD
2
Rozproszone
bazy danych
PL
CSD
3
Obiektowe bazy
danych
PL
CSD
3
Dedukcyjne bazy
danych
L
CSD
1
Projektowanie
relacyjnych baz
danych
L
CSD
1
Systemy
relacyjnych baz
danych
status
KodKursu
Poziom
NazwaModułu
EQUIJOIN <relacja1> WITH <relacja2>
<relacja>
EQUIJOIN Wykładowcy WITH Moduły
R1
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Z
Z
łą
łą
czenie naturalne
czenie naturalne
-
-
przyk
przyk
ł
ł
ad
ad
237
345
345
234
234
NrPrac
Jones S
Evans R
Evans R
Davies T
Davies T
NazwiskoPrac
SL
CSD
2
Rozproszone
bazy danych
PL
CSD
3
Obiektowe bazy
danych
PL
CSD
3
Dedukcyjne bazy
danych
L
CSD
1
Projektowanie
relacyjnych baz
danych
L
CSD
1
Systemy
relacyjnych baz
danych
status
KodKursu
Poziom
NazwaModułu
JOIN <relacja1> WITH <relacja2>
<relacja>
JOIN Wykładowcy WITH Moduły
R1
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Z
Z
łą
łą
czenie zewn
czenie zewn
ę
ę
trzne
trzne
–
–
przyk
przyk
ł
ł
ad
ad
PL
Evans
345
L
Smith J
123
SL
Thomas P
145
SL
Jones S
237
L
Davies T
234
Status
NazwiskoPrac
NrPrac
Wykładowcy (NrPrac,nazwiskoPrac,Status)
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Z
Z
łą
łą
czenie zewn
czenie zewn
ę
ę
trzne
trzne
-
-
przyk
przyk
ł
ł
ad
ad
237
CSD
2
Rozproszone bazy danych
null
CSD
2
Tworzenie baz danych
null
CSD
2
Administrowanie bazami danych
345
CSD
3
Obiektowe bazy danych
345
CSD
3
Dedukcyjne bazy danych
234
CSD
1
Projektowanie relacyjnych baz danych
234
CSD
1
Systemy relacyjnych baz danych
NrPrac
KodKursu
Poziom
NazwaModułu
Moduły (NazwaModułu,Poziom,KodKursu,NrPrac)
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Lewostronne z
Lewostronne z
łą
łą
czenie zewn
czenie zewn
ę
ę
trzne
trzne
-
-
przyk
przyk
ł
ł
ad
ad
SL
Jones S
237
237
CSD
2
Rozproszone bazy
danych
null
null
null
null
CSD
2
Tworzenie baz
danych
null
null
null
null
CSD
2
Administrowanie
bazami danych
345
345
234
234
NrPrac
345
345
234
234
NrPrac
Evans R
Evans R
Davies T
Davies T
NazwiskoPrac
PL
CSD
3
Obiektowe bazy
danych
PL
CSD
3
Dedukcyjne bazy
danych
L
CSD
1
Projektowanie
relacyjnych baz
danych
L
CSD
1
Systemy relacyjnych
baz danych
status
KodKursu
Poziom
NazwaModułu
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Prawostronne z
Prawostronne z
łą
łą
czenie zewn
czenie zewn
ę
ę
trzne
trzne
-
-
przyk
przyk
ł
ł
ad
ad
SL
Jones S
237
237
CSD
2
Rozproszone bazy
danych
L
Smith J
123
123
null
null
null
SL
Thomas P
145
145
null
null
null
345
345
234
234
NrPrac
345
345
234
234
NrPrac
Evans R
Evans R
Davies T
Davies T
NazwiskoPrac
PL
CSD
3
Obiektowe bazy
danych
PL
CSD
3
Dedukcyjne bazy
danych
L
CSD
1
Projektowanie
relacyjnych baz danych
L
CSD
1
Systemy relacyjnych
baz danych
status
KodKursu
Poziom
NazwaModułu
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Obustronne z
Obustronne z
łą
łą
czenie zewn
czenie zewn
ę
ę
trzne
trzne
-
-
przyk
przyk
ł
ł
ad
ad
SL
Thomas P
145
145
null
null
null
null
nul
null
null
CSD
2
Tworzenie baz danych
null
null
null
null
CSD
2
Administrowanie bazami
danych
SL
Jones S
237
237
CSD
2
Rozproszone bazy danych
L
Smith J
123
123
null
null
null
345
345
234
234
NrPrac
345
345
234
234
NrPrac
Evans R
Evans R
Davies T
Davies T
NazwiskoPrac
PL
CSD
3
Obiektowe bazy danych
PL
CSD
3
Dedukcyjne bazy danych
L
CSD
1
Projektowanie relacyjnych
baz danych
L
CSD
1
Systemy relacyjnych baz
danych
status
KodK
ursu
Poziom
NazwaModułu
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Algebra relacyjna
Algebra relacyjna
Umożliwia stworzenie proceduralnego języka zapytań. Co to oznacza:
W celu wydobycia informacji z bazy danych przy użyciu algebry relacyjnej
określamy ciąg operatorów, w których wynik z każdego kroku w ciągu
tworzy relację, którą można użyć jako argumentu wejściowego w
następnych krokach.
Przykład:
RESTRICTED Wykładowcy WHERE NazwiskoPrac = ‘Davies T’
R1
JOIN R1 WITH Moduły ON NrPrac
R2
PROJECT R2 (NazwaModułu)
R3
Forma zagnieżdżona:
PROJECT ( JOIN Moduły WITH
( RESTRICT Wykładowcy WHERE NazwiskoPrac = ‘DaviesT’)
ON NrPrac )
(NazwaModułu)
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Podstawowe operatory
Podstawowe operatory
Wyróżniamy operatory podstawowe:
selekcja, rzut, iloczyn, suma, różnica
Operatory pozostałe można zdefiniować przy
pomocy operatorów podstawowych:
złączenie, przecięcie, iloraz
Np. operator złączenia – rzut selekcji na iloczynie
A jak utworzymy operatory przecięcia i ilorazu ?
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Zastosowania wyra
Zastosowania wyra
ż
ż
e
e
ń
ń
algebry relacyjnej
algebry relacyjnej
Definiowanie zakresu wydobywania danych
(definiowanie zakresu danych jakie będą zwrócone w wyniku
operacji wyszukiwania)
Definiowanie zakresu aktualizacji
(określenie danych, które mają być wstawione, zmodyfikowane
bądź usunięte)
Definiowanie (nazwanych) relacji wirtualnych
(definiowanie danych dostępnych w perspektywach)
Definiowanie migawek
(definiowanie danych, które będą przechowywane w postaci
relacji „migawkowych”)
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Zastosowania wyra
Zastosowania wyra
ż
ż
e
e
ń
ń
algebry relacyjnej
algebry relacyjnej
Definiowanie zasad bezpieczeństwa
(definiowanie zakresu danych, które odnoszą się poszczególne
rodzaje autoryzacji)
Definiowanie wymagań stabilności
(definiowanie zakresu danych, które będą poddawane kontroli w
czasie współbieżnego przetwarzania)
Definiowanie reguł integralności
(określenie szczególnych reguł, które musi spełniać baza danych )
Antoni Dydejczyk, Bazy danych, wykład 3
WFiIS, Katedra Informatyki Stosowanej, 2007
Pytania ...
Pytania ...