Transcript Część 3

Tworzenie bazy danych
dr inż. Zbigniew Wiśniewski
Proces tworzenia bazy danych
Projekt logiczny bazy danych
Projekt fizyczny bazy danych
Właściwości bazy danych
• Współdzielenie bazy danych
• Integracja danych (jeden logiczny element tylko
w jednym miejscu)
• Integralność danych (dokladnie odzwierciedla
obszar analizy, którego ma być modelem)
• Bezpieczeństwo danych
• Abstrakcja danych (przechowywane są tylko
niektóre dane o obiektach – jest abstrakcja
prawdziwego świata)
• Niezależność danych (oddzielenie danych od
procesów, które ich używają)
System bazy danych
Relacje
• Model relacyjny powstał dzięki jednej
osobie – E. F. Coddowi
• Wcześniejsze modele traktowały dane w
niezdyscyplinowany sposób
• W jego modelu został poprawiony możliwy
do uzyskania poziom niezależności
między programami a danymi
• Wzrosła wydajność tworzenia
oprogramowania
Relacje
•
•
Jest tylko jedna struktura danych w
modelu relacyjnym – RELACJA. Jest
matematyczną strukturą opartą na teorii
zbiorów.
Relacja jest tabelą, dla której spełniony
jest zbiór zasad:
Relacje
1.
Każda relacja w bazie danych ma jednoznaczną nazwę. Według Codda
dwuwymiarowa tabela jest matematycznym zbiorem, a matematyczne
zbiory muszą być nazywane jednoznacznie.
2.
Każda kolumna w relacji ma jednoznaczną nazwę w ramach jednej
relacji. Każda kolumna relacji jest również zbiorem i dlatego powinna być
jednoznacznie nazwana.
3.
Wszystkie wartości w kolumnie muszą być tego samego typu. Wynika to
z p. 2.
4.
Porządek kolumn w relacji nie jest istotny. Schemat relacji - lista nazw jej
kolumn - jest również matematycznym zbiorem. Elementy zbioru nie są
uporządkowane.
5.
Każdy wiersz w relacji musi być różny. Innymi słowy, powtórzenia wierszy
nie są dozwolone w relacji.
6.
Porządek wierszy nie jest istotny. Skoro zawartość relacji jest zbiorem, to
nie powinno być określonego porządku wierszy relacji.
7.
Każde pole leżące na przecięciu kolumny/wiersza w relacji powinno
zawierać wartość atomową. To znaczy, zbiór wartości nie jest dozwolony
na jednym polu relacji.
Klucze
• Każda relacja musi mieć klucz główny
• Klucz główny to jedna lub więcej kolumn, w których
wartości jednoznacznie identyfikują każdy rekord
• W każdej relacji może istnieć wiele kluczy
kandydujących – czyli takich, które mogą występować
jako jednoznaczny identyfikator
• Klucz główny jest wybierany ze zbioru kluczy
kandydujących
• Każdy klucz kandydujący (a więc i główny) musi mieć
dwie właściwości:
– Musi być jednoznaczny
– Nie może zawierać wartości null – jego wartość musi być
określona dla każdego rekordu
Klucze
• Klucze obce – są sposobem łączenia
danych przechowywanych w różnych
tabelach.
• Klucz obcy jest kolumną lub grupą kolumn
tabeli, która czerpie swoje wartości z tej
samej dziedziny co klucz główny tabeli
powiązanej z nią w bazie danych
MODUŁY
NazwaModułu
Poziom
KodKursu
NrPrac
Systemy realcyjnych baz danych
1
CSD
234
Projektowanie relacyjnych baz danych
1
CSD
234
Dedukcyjne bazy danych
3
CSD
345
Obiektowe bazy danych
3
CSD
345
Rozproszone bazy danych
2
CSD
237
WYKŁADOWCY
NrPrac
NazwiskoPrac
Status
234
Davies T.
Ad
237
Jones S.
W
345
Evans. R.
Sw
Normalizacja
• Zadanie: zaprojektować bazę danych z
informacjami na temat studentów,
modułów, wykładowców
Moduły
NazwaModułu
NrPrac
NazwPrac
NrStudenta
NazwStudenta
Oce
na
TypOceny
Systemy relacyjnych baz
danych
234
Davies T.
34698
Smith S.
4
Cwk1
Systemy relacyjnych baz
danych
234
Davies T.
34698
Smith S.
3
Cwk2
Systemy relacyjnych baz
danych
234
Davies T.
37798
Jones S.
3,5
Cwk1
Systemy relacyjnych baz
danych
234
Davies T.
34888
Patel P.
3
Cwk1
Systemy relacyjnych baz
danych
234
Davies T.
34888
Patel P.
4
Cwk2
Projektowanie relacyjnych
baz danych
234
Davies T.
34698
Smith S.
3,5
Cwk1
Projektowanie relacyjnych
baz danych
234
Davies T.
34888
Patel P.
4
Cwk1
Dedukcyjne bazy danych
345
Evans R.
34668
Smith J.
5
Egz
• Co będzie, jeśli usuniemy studenta 34668? W wyniku
operacji stracimy informacje nt. dedukcyjnych baz
danych i powiązanego z nimi wykładowcy. Zjawisko to
nosi nazwę EFEKTU UBOCZNEGO USUNIĘCIA.
• Co będzie, jeśli zmienimy wykładowcę projektowania
relacyjnych baz danych na Jones S.? Musimy wtedy
zmodyfikować we wszystkich wystąpieniach nie tylko
NazwPrac ale i NrPrac. Zjawisko to nosi nazwę EFEKTU
UBOCZNEGO MODYFIKACJI.
• Co będzie jeśli wpiszemy nowego studenta na moduł?
Nie możemy wpisać nowego rekordu studenta dopóty,
dopóki nie będzie miał przynajmniej jednego zaliczenia.
Zjawisko to nosi nazwę EFEKTU UBOCZNEGO
WSTAWIENIA
Normalizacja
1. Zbierz zbiór danych
2. Przekształć nieznormalizowany zbiór
danych w tabele w pierwszej postaci
normalnej 1NF
3. Przekształć tabele z pierwszej postaci
normalnej w drugą postać normalną 2NF
4. Przekształć tabele z drugiej postaci
normalnej w trzecią postać normalną
3NF
Normalizacja
•
Niekiedy jeszcze w trzeciej postaci
normalnej występują anomalie danych.
Wtedy wykonuje się dalsze kroki:
5. Przekształć tabele z trzeciej postaci
normalnej w czwartą postać normalną
4NF
6. Przekształć tabele z czwartej postaci
normalnej w piątą postać normalną 5NF
Normalizacja
• Proces przekształcania
nieznormalizowanego zbioru danych w
pełni znormalizowaną (3NF) nazywamy
procesem rozkładu odwracalnego
• Przy każdym kolejnym przekształceniu
dzieli się strukturę danych na coraz więcej
tabel bez straty podstawowych związków
zachodzących między elementami danych
(czyli z możliwością odwrócenia operacji)
Normalizacja
• Normalizacja jest procesem identyfikowania logicznych związków
między elementami danych i projektowania bazy, która będzie
reprezentować takie związki ale bez anomalii.
• Logiczne związki między elementami danych, które wskazują kierunek
w stronę dobrego schematu nazywamy związkami zależności lub
determinowania.
• Mówimy, że dwa elementy A i B są w związku zależności (lub
determinowania) jeżeli pewne wartości elementu danych B występują
zawsze z pewnymi wartościami elementu danych A.
• Jeżeli element A jest determinującym elementem danych a B
zależnym, to kierunek związku jest od A do B.
• Istnieją dwa główne typy zależności (determinowania):
– Zależności funkcyjne (jednowartościowe)
– Zależności niefunkcyjne (wielowartościowe)
Normalizacja
• Mówimy, że element danych B jest funkcyjnie zależny od
elementu danych A, jeżeli dla każdej wartości A istnieje
jedna, jednoznacznie określona wartość B. (element A
jest determinującym a B zależnym)
• Zależność ta jest modelowana za pomocą funkcji
matematycznej, czyli skierowanego odwzorowania
jeden-do-jeden między elementami jednego zbioru a
elementami drugiego zbioru
– Zależność NrPrac i NazwPrac jest funkcyjnym związkiem
zależności, elementem determinującym jest NrPrac, a NazwPrac
jest elementem zależnym: dla każdego NrPrac istnieje tylko
jedno nazwisko zależne.
Normalizacja – 1NF
Moduły
NazwaModułu
NazwaModułu
NrPrac NazwPrac
NrStudenta
NazwStudenta
Ocena
TypOceny
Systemy relacyjnych baz
danych
Systemy
234 relacyjnych
Daviesbaz
T.
danych
34698
Smith S.
4
Cwk1
Systemy relacyjnych baz
danych
Systemy
234 relacyjnych
Daviesbaz
T.
danych
34698
Smith S.
3
Cwk2
Systemy relacyjnych baz
danych
Systemy
234 relacyjnych
Daviesbaz
T.
danych
37798
Jones S.
3,5
Cwk1
Systemy relacyjnych baz
danych
Systemy
234 relacyjnych
Daviesbaz
T.
danych
34888
Patel P.
3
Cwk1
Systemy relacyjnych baz
danych
Systemy
234 relacyjnych
Daviesbaz
T.
danych
34888
Patel P.
4
Cwk2
relacyjnych
Projektowanie relacyjnych Projektowanie
234
Davies
T.
baz danych
baz danych
34698
Smith S.
3,5
Cwk1
relacyjnych
Projektowanie relacyjnych Projektowanie
234
Davies
T.
baz danych
baz danych
34888
Patel P.
4
Cwk1
34668
Smith J.
5
Egz
Dedukcyjne bazy danych
Dedukcyjne
bazy
danych
345
Evans
R.
Normalizacja – 1NF
Relacja jest w pierwszej postaci normalnej
(1NF) wtedy i tylko wtedy, gdy każdy atrybut
niekluczowy jest funkcyjnie zależny od
klucza głównego
MODUŁY
NazwaModułu
NazwPrac
NrPrac
Systemy realcyjnych baz danych
Davies T.
234
Projektowanie relacyjnych baz danych
Davies T.
234
Dedukcyjne bazy danych
Evans R.
345
ZALICZENIA
NazwaModułu
NrStudenta
NazwStudenta
Ocena
TypOceny
Systemy relacyjnych baz
danych
34698
Smith S.
4
Cwk1
Systemy relacyjnych baz
danych
34698
Smith S.
3
Cwk2
Systemy relacyjnych baz
danych
37798
Jones S.
3,5
Cwk1
Systemy relacyjnych baz
danych
34888
Patel P.
3
Cwk1
Systemy relacyjnych baz
danych
34888
Patel P.
4
Cwk2
Projektowanie
relacyjnych baz danych
34698
Smith S.
3,5
Cwk1
Projektowanie
relacyjnych baz danych
34888
Patel P.
4
Cwk1
Dedukcyjne bazy danych
34668
Smith J.
5
Egz
Normalizacja – 2NF
• Aby przejść do drugiej postaci normalnej
należy usunąć zależności od części klucza
• Wiąże się to ze zbadaniem tabel, które
mają klucze złożone
• Należy postawić każdemu niekluczowemu
elementowi danych zadać pytanie: czy ten
element nie jest aby jednoznacznie
identyfikowany tylko przez część klucza
złożonego?
Normalizacja – 2NF
Relacja jest w drugiej postaci normalnej
(2NF) wtedy i tylko wtedy, gdy jest w 1NF i
każdy atrybut niekluczowy jest w pełni
funkcyjnie zależny od klucza głównego
ZALICZENIA
STUDENCI
NazwaModułu
NrStudenta
NazwStudenta
Ocena
TypOceny
Systemy relacyjnych baz
danych
34698
Smith S.
4
Cwk1
Systemy relacyjnych baz
danych
34698
Smith S.
3
Cwk2
Systemy relacyjnych baz
danych
37798
Jones S.
3,5
Cwk1
Systemy relacyjnych baz
danych
34888
Patel P.
3
Cwk1
Systemy relacyjnych baz
danych
34888
Patel P.
4
Cwk2
Projektowanie
relacyjnych baz danych
34698
Smith S.
3,5
Cwk1
Projektowanie
relacyjnych baz danych
34888
Patel P.
4
Cwk1
Dedukcyjne bazy danych
34668
Smith J.
5
Egz
MODUŁY
NazwaModułu
NazwPrac
NrPrac
Systemy realcyjnych baz danych
Davies T.
234
Projektowanie relacyjnych baz danych
Davies T.
234
Dedukcyjne bazy danych
Evans R.
345
ZALICZENIA
NazwaModułu
NrStudenta
Ocena
TypOceny
Systemy relacyjnych baz
danych
34698
4
Cwk1
Systemy relacyjnych baz
danych
34698
3
Cwk2
Systemy relacyjnych baz
danych
37798
3,5
Cwk1
Systemy relacyjnych baz
danych
34888
3
Cwk1
Systemy relacyjnych baz
danych
34888
4
Cwk2
Projektowanie
relacyjnych baz danych
34698
3,5
Cwk1
Projektowanie
relacyjnych baz danych
34888
4
Cwk1
Dedukcyjne bazy danych
34668
5
Egz
STUDENCI
NrStudenta
NazwStudenta
34698
Smith S.
37798
Jones S.
34888
Patel P.
34668
Smith J.
Normalizacja – 3NF
• Aby przejść z 2NF do 3NF usuwamy tzw.
zależności przechodnie między danymi
• Należy rozważyć każdą tabelę i dla każdej
pary niekluczowych elementów danych
zadać pytanie: czy wartość pola A zależy
od wartości pola B lub odwrotnie? Jeżeli
odpowiedź brzmi TAK, to przenosimy
powiązane elementy danych do oddzielnej
tabeli
Normalizacja – 3NF
Relacja jest w trzeciej postaci normalnej
(3NF) wtedy i tylko wtedy, gdy jest w 2NF i
każdy atrybut niekluczowy jest
bezpośrednio zależny (a nie przechodnio
zależny) od klucza głównego
MODUŁY
NazwaModułu
NazwPrac
NrPrac
Systemy realcyjnych baz danych
Davies T.
234
Projektowanie relacyjnych baz danych
Davies T.
234
Dedukcyjne bazy danych
Evans R.
345
WYKŁADOWCY
NazwPrac
NrPrac
Davies T.
234
Davies T.
234
Evans R.
345
STUDENCI
MODUŁY
NrStudenta
NazwStudenta
234
34698
Smith S.
Projektowanie relacyjnych baz danych
234
37798
Jones S.
Dedukcyjne bazy danych
345
34888
Patel P.
34668
Smith J.
NazwaModułu
NrPrac
Systemy realcyjnych baz danych
ZALICZENIA
NazwaModułu
NrStudenta
Ocena
TypOceny
Systemy relacyjnych baz
danych
34698
4
Cwk1
Systemy relacyjnych baz
danych
34698
3
Cwk2
Systemy relacyjnych baz
danych
37798
3,5
Cwk1
Systemy relacyjnych baz
danych
34888
3
Cwk1
Systemy relacyjnych baz
danych
34888
4
Cwk2
Projektowanie
relacyjnych baz danych
34698
3,5
Cwk1
Projektowanie
relacyjnych baz danych
34888
4
Cwk1
Dedukcyjne bazy danych
34668
5
Egz
WYKŁADOWCY
NazwPrac
NrPrac
Davies T.
234
Evans R.
345