Banki danych

advertisement
Banki danych
WYKŁAD 2
dr Łukasz Murowaniecki
[email protected]
T-109
Łódź 2008
PRZYPOMNIENIE


Baza danych opisuje w sposób uproszczony pewien fragment
rzeczywistości. Opisuje go przy pomocy modelu danych.
Model danych - zbiór ogólnych zasad posługiwania się danymi.
Zbiór ten obejmuje trzy główne części:



Definicja danych: zbiór reguł określających strukturę danych;
Operowanie danymi: zbiór reguł dotyczących procesu dostępu do
danych i ich modyfikacji;
Integralność danych: zbiór reguł określających, które stany bazy
danych są poprawne (a więc zarazem jakie operacje prowadzące do
modyfikacji danych są dozwolone)
Łódź 2008
System zarządzania bazą danych
Architektura ANSI/SPARC

Trzy poziomy architektury DBMS (poziomy abstrakcji)



Poziom zewnętrzny
poziom zewnętrzny - odnosi
się do sposobu w jaki dane są
widziane przez poszczególnych
użytkowników
poziom pojęciowy - jest
abstrakcyjnym, lecz wiernym
opisem pewnego wycinka
rzeczywistości; sposób widzenia
danych przez grupę
użytkowników
poziom wewnętrzny
(fizyczny) - określa sposoby
organizacji danych w pamięci
zewnętrznej.
Odwzorowanie zewnętrzno-pojęciowe
Poziom pojęciowy
Odwzorowanie pojęciowe-fizyczne
Poziom wewnętrzny
(fizyczne)
Łódź 2008
Podstawy baz danych – modele danych

Rozróżnia się trzy główne typy (lub generacje) modeli danych:



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).
Klasyczne modele danych - należą do nich modele hierarchiczne,
sieciowe i relacyjne. Modele relacyjne stanowią obecnie najbardziej
popularną podstawę architektury systemów baz danych.
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.
Łódź 2008
Podstawy baz danych – model relacyjny









dane przechowywane są w dwuwymiarowych tabelach (relacjach)
w nagłówku relacji są podane atrybuty
schemat relacji = nazwa relacji + atrybuty;
zbiór schematów relacji to schemat relacyjny bazy danych
Wiersze relacji to krotki
odpowiednik atrybutów relacji w krotce to składowe krotki
dziedzina (domain) atrybutu – typ elementarny określający zbiór
możliwych wartości atrybutu
liczebność relacji (cardinality) – liczba krotek
stopień relacji (degree) – liczba atrybutów
każda krotka jest jednoznacznie identyfikowana przez klucz
główny (primary key)
Łódź 2008
Podstawy baz danych – model relacyjny
IMIĘ
ID_AUTORA
NAZWISKO
DZIEDZINY
KLUCZ
GŁÓWNY
RELACJA
S#
S1
S2
S3
S4
ID_Autora
1
2
4
7
Imię
Andrzej
Grady
Jan
Adam
ATRYBUTY
STOPIEŃ
Łódź 2008
Nazwisko
Marciniak
Booch
Kowalski
Nowak
KROTKI
L
I
C
Z
E
B
N
O
Ś
Ć
Podstawy baz danych – model relacyjny
Formalny termin relacyjny Nieformalny równoważnik
relacja
krotka
liczebność tabeli
atrybut
stopień tabeli
klucz główny
dziedzina
tabela
wiersz lub rekord
liczba wierszy
kolumna lub pole
liczba kolumn
jednoznaczny identyfikator
zbiór wartości dopuszczalnych
Łódź 2008
Podstawy baz danych – model relacyjny

Własności relacji:




Nie ma podwójnych krotek
Krotki nie są uporządkowane z góry na dół
Atrybuty nie są uporządkowane z lewa do prawa
Wszystkie wartości atrybutów są atomowe
Łódź 2008
Integralność danych relacyjnych

Integralność baz danych: formalna poprawność bazy danych, ich
fizycznej organizacji, zgodności ze schematem bazy danych i
regułami dostępu.


Integralność encji
Integralność referencyjna
Łódź 2008
Integralność danych relacyjnych
Integralność encji

Klucz kandydujący w relacji R jest podzbiorem K zbioru
atrybutów relacji R, mających własności:



Jednoznaczności – żadne dwie krotki R nie mają tej samej wartości
dla K
Nieredukowalności – żaden właściwy podzbiór K nie ma własności
jednoznaczności
Cechy kluczy kandydujących:




W jednej relacji może wystąpić kilka różnych kluczy kandydujących
Klucz kandydujący zawierający więcej niż jeden atrybut nazywa się
kluczem złożonym, zaś klucz kandydujący zawierający dokładnie
jeden atrybut – kluczem prostym
Klucze kandydujące nie zawierają żadnych atrybutów, które są
zbędne do jednoznacznej identyfikacji
Klucze kandydujące zapewniają podstawowy mechanizm adresowania
na poziomie krotek w systemie relacyjnym.
Łódź 2008
Integralność danych relacyjnych
Integralność referencyjna



Klucz główny (primary key) – wybrany klucz kandydujący
Klucze alternatywne (alternate keys) – pozostałe klucze
kandydujące
Klucze obce (foreign keys) - klucz obcy relacji pochodnej R2 jest
to podzbiór FK, zbioru atrybutów R2 takich, że:


Istnieje relacja podstawowa R1 (relacje R1 i R2 niekoniecznie są
różne) z kluczem kandydującym CK oraz
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 R1
ID Imię
Nazwisko
ID
Marka Nr_rej
Właściciel
1
Jan
Kowalski
1
Ford
EL12345
1
2
Anna
Malinowska
2
Fiat
EL23456
2
3
Stefan Kwiatkowski
3
Seat
WE33333 1
Łódź 2008
Integralność danych relacyjnych
Integralność referencyjna

Cechy kluczy obcych:





Każda wartość danego klucza obcego musi pojawić się jako wartość
odpowiedniego klucza kandydującego. Klucz kandydujący,
odpowiadający danemu kluczowi obcemu może zawierać wartość,
która nie występuje aktualnie jako wartość klucza obcego
Klucz obcy jest złożony – składa się z więcej niż jednego atrybutu –
tylko i tylko wtedy, gdy klucz kandydujący, któremu on odpowiada
jest złożony
Klucz obcy jest prosty wtedy i tylko wtedy, gdy odpowiadający mu
klucz kandydujący jest prosty
Każdy składowy atrybut danego klucza obcego musi być zdefiniowany
na tej samej dziedzinie, co odpowiadający mu składnik właściwego
klucza kandydującego
Integralność referencyjna – w bazie danych nie mogą
występować żadne niedopasowane wartości kluczy obcych
Łódź 2008
Integralność danych relacyjnych
Integralność referencyjna

Reguły kluczy obcych:

Usuwanie:



Aktualizacja:



RESTRICTED – usuwanie jest ograniczone do przypadków, gdy nie ma
krotek powiązanych
CASCADE – usuwane są również krotki powiązane
RESTRICTED – aktualizacja jest ograniczana do przypadków, gdy nie ma
krotek powiązanych
CASCADE – aktualizacja jest propagowana na krotki powiązane
NULL (brak informacji)

Usuwanie:


NULLIFIES – klucz obcy zostaje ustawiony na null i potem krotka
powiązana jest usuwana
Aktualizacja:

NULLIFIES – klucz obcy zostaje ustawiony na null i potem krotka
powiązana jest aktualizowana
Łódź 2008
Rodzaje powiązań

Jeden – do – jeden (1:1)
a
d
b

Jeden – do – wiele (1:n)
c
f
a
d
b

Wiele – do - wiele (m:n)
e
c
f
a
d
b
c
Łódź 2008
e
e
f
Podstawy baz danych – model relacyjny

Operacje na danych - algebra relacyjna

Operatory algebry relacyjnej:








Restrykcja (restrict)
Rzut (project)
Iloczyn (product)
Suma (union)
Przecięcie (intersect)
Różnica (difference)
Iloraz (divide)
Złączenie (join)
Łódź 2008
Podstawy baz danych – model relacyjny

Operacje na danych - algebra relacyjna - restrykcja
Imię
Anna
Piotr
Maria
Olga
Marcin
Stefan
Janusz
Bożena
Barbara
STUDENT
Nazwisko
Wiek
Nowak
Kwiatkowski
Kowal
Pastusiak
Proca
Żbik
Milke
Śledź
Broda
21
20
19
22
21
23
22
19
18
Łódź 2008
Imię
Anna
Olga
Marcin
Stefan
Janusz
Nazwisko Wiek
Nowak
Pastusiak
Proca
Żbik
Milke
21
22
21
23
22
SELECT imię, nazwisko, wiek
FROM student
WHERE wiek >20;
Podstawy baz danych – model relacyjny

Operacje na danych - algebra relacyjna - rzut
Imię
Anna
Piotr
Maria
Olga
Marcin
Stefan
Janusz
Bożena
Barbara
STUDENT
Nazwisko
Wiek
Nowak
Kwiatkowski
Kowal
Pastusiak
Proca
Żbik
Milke
Śledź
Broda
21
20
19
22
21
23
22
19
18
Imię
Anna
Piotr
Maria
Olga
Marcin
Stefan
Janusz
Bożena
Barbara
Nazwisko
Nowak
Kwiatkowski
Kowal
Pastusiak
Proca
Żbik
Milke
Śledź
Broda
SELECT imię, nazwisko
FROM student;
Łódź 2008
Podstawy baz danych – model relacyjny

Operacje na danych - algebra relacyjna - iloczyn
Imię
Anna
Piotr
STUDENT
Nazwisko
Nowak
Kwiatkowski
Wiek
21
20
PRZEDMIOT
Nazwa
Ekonomia
Ekonometria
Algebra
Prawo
Imię
prowadzącego
Stefan
Jan
Anna
Anna
Nazwisko
prowadzącego
Krajewski
Gajda
Żółtowska
Barańska
Imię
Anna
Anna
Anna
Anna
Piotr
Piotr
Piotr
Piotr
Nazwisko
Nowak
Nowak
Nowak
Nowak
Kwiatkowski
Kwiatkowski
Kwiatkowski
Kwiatkowski
Nazwa
Ekonomia
Ekonometria
Algebra
Prawo
Ekonomia
Ekonometria
Algebra
Prawo
SELECT imię, nazwisko, nazwa
FROM student, przedmiot;
Łódź 2008
Podstawy baz danych – model relacyjny

Operacje na danych - algebra relacyjna - suma
Imię
Anna
Piotr
STUDENT
Nazwisko
Nowak
Kwiatkowski
Wiek
21
20
PRZEDMIOT
Nazwa
Ekonomia
Ekonometria
Algebra
Prawo
Imię
prowadzącego
Stefan
Jan
Anna
Anna
Nazwisko
prowadzącego
Krajewski
Gajda
Żółtowska
Barańska
Imię
Anna
Piotr
Stefan
Jan
Anna
Anna
Nazwisko
Nowak
Kwiatkowski
Krajewski
Gajda
Żółtowska
Barańska
SELECT imię, nazwisko FROM student
UNION
SELECT Imię_prowadzącego, nazwisko_prowadzącego FROM przedmiot;
Łódź 2008
Podstawy baz danych – model relacyjny

Operacje na danych - algebra relacyjna - przecięcie
Imię
Anna
Piotr
STUDENT
Nazwisko
Nowak
Kwiatkowski
Wiek
21
20
PRZEDMIOT
Nazwa
Ekonomia
Ekonometria
Algebra
Prawo
Imię
prowadzącego
Stefan
Jan
Anna
Anna
Nazwisko
prowadzącego
Krajewski
Gajda
Żółtowska
Barańska
Imię
Anna
SELECT imię FROM student
INTERSECTION
SELECT Imię_prowadzącego FROM przedmiot;
Łódź 2008
Podstawy baz danych – model relacyjny

Operacje na danych - algebra relacyjna - różnica
Imię
Anna
Piotr
STUDENT
Nazwisko
Nowak
Kwiatkowski
Wiek
21
20
PRZEDMIOT
Nazwa
Ekonomia
Ekonometria
Algebra
Prawo
Imię
prowadzącego
Stefan
Jan
Anna
Anna
Nazwisko
prowadzącego
Krajewski
Gajda
Żółtowska
Barańska
Imię
Piotr
SELECT imię FROM student
DIFFERENCE
SELECT Imię_prowadzącego FROM przedmiot;
Łódź 2008
Podstawy baz danych – model relacyjny

Operacje na danych - algebra relacyjna - iloraz
a
a
a
b
b
c
x
y
z
y
x
y
a
x
y
Łódź 2008
Download