Bazy danych - Fizyka UMK

advertisement
Literatura:
Paul Benon-Davies – Systemy baz danych
C. J. Date – Wprowadzenie do systemów baz danych
Lech Banachowski, et. al. – Bazy danych, Wykłady i ćwiczenia
1


Baza danych – kolekcja danych zapisanych
zgodnie z określonymi regułami
Bazę danych możemy uważać za zbiór danych,
których zadaniem jest reprezentowanie pewnego
obszaru analizy





Dane to fakty
Fakty same w sobie nie mają znaczenia
Aby były użyteczne, muszą zostać zinterpretowane
Zinterpretowane dane to informacje
Informacje to dane z przypisaną im semantyką znaczeniem
2






Ręczne zarządzanie zapisami (4000 p.n.e -1900
n.e.)
Zarządzanie zapisami na kartach
perforowanych (1900-1955)
Programowane zarządzanie zapisami (19551970)
Sieciowe zarządzanie danymi on-line (19651980)
Relacyjne zarządzanie danymi (1980-1995)
Multimedialne bazy danych (1995- )
3
Dedukcyjny
Obiektowy
Postrelacyjny
Semantyczny
Relacyjny
Sieciowy
Hierarchiczny
1960
1970
1980
1990
4

Zbiór danych, których zadaniem jest
reprezentowanie pewnego obszaru analizy
• Przez trwałość rozumiemy, że dane są
przechowywane przez jakiś czas
5

Zbiór definicji, które opisują strukturę bazy
danych – schemat bazy danych
• Łączny zbiór danych w bazie danych
6

Reguła, która określa, w jaki sposób baza
danych ma pozostać dokładnym
odzwierciedleniem swojego obszaru analizy

Więzy integralności:
 połączenie trzech koncepcji:
 dokładność (ang. accuracy),
 prawdziwość (ang. correctness),
 aktualność (ang. validity)

Redundancja (nadmiarowość)
7



Poprawność modelu – to co w modelu jest
zgodne z rzeczywistością
Istotność każdego elementu dla
funkcjonowania firmy
Pełność modelu – gwarancja, że żaden element
modelu danych, istotny dla funkcjonowania
firmy nie został pominięty
8
Świat
rzeczywisty
Analiza
wymagań
Analiza
Ilościowa,
użycia,
integralności
Decyzje
wdrożeniowe
Modelowanie
perspektyw
Modelowanie
koncepcyjne
Modelowanie
logiczne
Integracja
perspektyw
Modelowanie
fizyczne
Baza danych
9



Współdzielenie baz danych – baza danych
może być użytkowana przez więcej niż jedną
osobę
Integracja danych – baza danych jest zbiorem
danych nie mających cech redundancyjnych
(atrybut ma dwie lub więcej dane identyczne
lub wartość można usunąć bez straty
informacji)
Integralność danych – baza danych dokładnie
odzwierciedla obszar analizy, którego ma być
modelem
10



Bezpieczeństwo danych – ograniczenie
dostępu, zabezpieczenie bazy danych
Abstrakcja
danych
–
informacje
przechowywane w bazie danych są próba
reprezentowania
właściwości
niektórych
obiektów w świecie rzeczywistym
Niezależność danych – dane są oddzielone od
procesów, które używają tych danych
11


Zorganizowany zbiór narzędzi umożliwiający
dostęp i zarządzanie jedną lub wieloma
bazami danych
Funkcje:



Pielęgnacja danych
Wyszukiwanie danych
Kontrola danych
12



poziom fizyczny – zbiór plików z danymi i z
indeksami
poziom logiczny (koncepcyjny) – zbiór tabel,
perspektyw i indeksów
poziom użytkowy – widoki na dane, którymi
posługuje się użytkownik
13

Dwie części aplikacji bazodanowych:

strona klienta – na stacji roboczej użytkownika

strona serwera – na komputerze zawierającym
serwer bazy danych, czyli bazę danych wraz z
systemem zarządzania bazą danych (SZBD)
14

Funkcje aplikacji po stronie serwera bazy
danych

przechowywanie i organizacja dostępu do danych

wykonywanie instrukcji języka baz danych (SQL)

sprawowanie kontroli nad spójnością danych

zarządzanie zasobami bazy danych, w tym kontami
użytkowników
15

Funkcje aplikacji po stronie klienta

kontakt z użytkownikiem (interfejs użytkownika)

wyjaśnienie użytkownikowi stanu obliczeń, w tym
błędów i sytuacji wyjątkowych

przyjmowanie od niego zleceń na operacje,
wykonywanie tych zleceń lub przesyłanie ich w
postaci instrukcji języka SQL do serwera bazy
danych
16





Encja - reprezentacja wyobrażonego lub rzeczywistego
obiektu (grupy obiektów) stosowana przy
modelowaniu danych podczas analizy informatycznej.
Formalnie jest to pojęcie niedefiniowalne, a
podstawową cechą encji jest to, że jest rozróżnialna od
innych encji.
Przykłady encji (i atrybuty w encji):
Osoba (imię, nazwisko, PESEL)
Pojazd (wysokość, szerokość, długość, sposób
poruszania się)
17

Modelowanie związków encji obejmuje
identyfikowanie rzeczy ważnych w
analizowanym przedsiębiorstwie
 encji,
 własności tych rzeczy (atrybutów)
 sposobów, jakimi te encje są ze sobą
powiązane (związków)
18


Moduły i studenci są przykładami rzeczy
istotnych dla uniwersytetu. Takie istotne
obiekty nazywamy klasami lub encjami
Encje maja właściwości lub atrybuty, np.
studenci mają nazwiska, adres, numery
telefonów
19




Atrybut jest dowolnym szczegółem służącym do
kwalifikowania, identyfikowania,
klasyfikowania, określania ilości lub wyrażania
stanu encji (atrybut jest dowolnym opisem
mającym znaczenie dla encji)
Atrybut musi opisywać encję, przy której
występuje
Nazwa atrybutu musi być podana w liczbie
pojedynczej
Każda encja musi być jednoznacznie
zidentyfikowana przez kombinację atrybutów
i/lub związków
20

Związek jest nazwanym, istotnym powiązaniem
istniejącym między dwiema encjami.

• W szczególnym przypadku związek może być
powiązaniem tej samej encji ze sobą


• Każdy związek ma dwa końce, z których każdy ma
przypisaną:
 nazwę
 stopień
 opcjonalność
• Nazwy związku powinny być tak dobierane, aby
możliwe było budowanie zdań w języku naturalnym,
np. pracownik posiada samochód
21

Edgar Codd (1970)

baza danych jest zbiorem relacji

relacja: podzbiór iloczynu kartezjańskiego
zbiorów wartości
22
Reprezentacją relacji jest dwuwymiarowa tabela złożona z kolumn i
wierszy

1.
Każda relacja w bazie danych ma jednoznaczną nazwę
2.
Każda kolumna w relacji ma jednoznaczną nazwę w ramach
jednej relacji
3.
Wszystkie wartości w kolumnie muszą być tego samego typu
– są zdefiniowane w tej samej dziedzinie
4.
Porządek kolumn w relacji nie jest istotny
5.
Każdy wiersz w relacji musi być różny – nie są dozwolone
powtórzenia
6.
Porządek wierszy nie jest istotny
7.
Każde pole leżące na przecięciu kolumna/wiersz w relacji
powinno zawierać wartość atomową – zbiór wartości nie jest
dozwolony na jednym polu relacji
23
NrPrac
Nazwisko
Status
237
Kowalski
L
247
Nowak
SL
445
Malinowski
PL
NazwaModułu
Poziom
Kod
NrPrac
Systemy relacyjnych baz danych
1
CDS
244
Projektowanie systemów
informacyjnych
1
CDS
244
Technologie internetowe
4
CDS
445
Programowanie obiektowe
4
CDS
445
Systemy decyzyjne
2
CDS
247
24
KodKursu
CSD
NazwaPrzedmiotu
Relacyjne bazy danych
Projektowanie systemów informacyjnych
Dedukcyjne bazy danych
Obiektowe bazy danych
Rozproszone bazy danych
BSD
Wprowadzenie do biznesu
Podstawy księgowości
25



jego wartość NIE opisuje cechy wykładu
reprezentuje związek przedmiotu z
wykładowcą, o którym informacja znajduje się
w innej tabeli
istotne jest, aby ten identyfikator
jednoznacznie określał danego wykładowcę
NazwaModułu
Poziom
Kod
NrPrac
Systemy relacyjnych baz
danych
1
CDS
244
Projektowanie systemów
informacyjnych
1
CDS
244
Technologie internetowe
4
CDS
445
Programowanie obiektowe
4
CDS
445
Systemy decyzyjne
2
CDS
247
26



dla każdej tabeli musi być określony jednoznaczny
identyfikator nazwany kluczem głównym – jedna
lub więcej kolumn, w których wartości jednoznacznie
identyfikują cały wiersz
klucz kandydujący (alternatywny) ma tę samą
właściwość co klucz główny, przy czym klucz główny
jest tylko jeden, kluczy jednoznacznych w tabeli może
być więcej niż jeden
w tabeli Wykładowcy kluczem głównym jest NrPrac
27

Klucz obcy

Klucz obcy
jest sposobem łączenia danych
przechowywanych w różnych tabelach
jest to jedna lub więcej kolumn,
których wartości występują jako wartości
ustalonego
klucza
głównego
lub
kandydującego w tej lub innej tabeli i są
interpretowane jako wskaźniki do wierszy w
tej drugiej tabeli
28

Dziedziny kolumn są rozszerzone o specjalny
obiekt Null – oznaczający brak wartości



chwilowy brak
wynikający z istoty rzeczy
Wszystkie porównania i operacje na danych, w
argumentem jest Null, dają w wyniku Null
(również Null = Null )
29
koniunkcja
alternatywa
OR
True False
Null
True
true
true
true
False
true
false
null
Null
true
null
null
AND
True False
Null
True
true
false
null
False false
false
false
false
null
Null
null
negacja
NOT
True
False
Null
false
true
null
30

Warunki poprawności danych w relacjach
0<Wiek<140

dla pojedynczych wartości w wierszu np.

dla kilku wartości w wierszu np.
 Data_urodzenia<Data_zatrudnienia

Więzy klucza głównego, klucza kandydującego

Więzy NOT NULL

Więzy referencyjne (więzy spójności referencyjnej):
 wartość klucza obcego może być albo Null albo musi
występować jako wartość powiązanego z nim klucza
głównego

inne
31


Weźmy pod uwagę relację Wykładowcy
Co się stanie z powiązanymi danymi, jeśli
usuniemy jakiegoś wykładowcę:



ograniczone usuwanie – zabraniamy usunąć wiersz
wykładowcy dopóty, dopóki nie będą usunięte
wszystkie wiersze jego modułów
kaskadowe usuwanie – jeśli usuniemy wiersz
wykładowcy, są jednocześnie usuwane wszystkie
powiązane z nim moduły
wstaw null przy usuwaniu – jeśli usuwamy wiersz
wykładowcy, numery pracowników w powiązanych
wierszach modułów ustawiamy na null
32




Metoda „z góry na dół” analizy danych
(odwrotnie niż przy normalizacji)
Model rzeczy istotnych dla przedsiębiorstwa
Model danych jest reprezentowany przy
użyciu konstrukcji diagramu związków encji
(E-R)
Encja jest abstrakcją złożoności pewnej
dziedziny!!!
33

Jeżeli trzeba przechowywać dane na temat wielu
właściwości jakiejś rzeczy, to taka rzecz jest
prawdopodobnie encją
 jest powiązaniem między encjami
 encja jest scharakteryzowana pewną liczbą
właściwości lub atrybutów
34
Encje
Wykład
Moduł
Student
Związki
Wykład
Moduł
Student
Moduł
Atrybuty
Student
Moduł
NazwaModułu
NazwiskoStudenta
Poziom
DataUrStuenta
35

związek jeden do jeden - 1:1


Konto bankowe należy najwyżej do jednego klient
Klient może mieć najwyżej jedno konto bankowe
Klient
KontoBankowe
36

związek jeden do wiele - 1:M


Klient ma wiele kont bankowych
Konto bankowe należy najwyżej do jednego klienta
Klient
KontoBankowe
37

Związek wiele do wiele – M:N


Klient ma wiele kont bankowych
Konto bankowe może należeć do wielu klientów
Klient
KontoBankowe
38


Każdy wykładowca musi być zatrudniony na
wydziale
Wydział może istnieć bez żadnego
wykładowcy
Klient
Klient
KontoBankowe
KontoBankowe
39

Związek jednoargumentowy


Moduł może mieć określoną liczbę wymaganych
(przed nim) modułów
Moduł może stanowić wymaganie dotyczące innych
modułów
Moduł
Wymaganie
40
NrStudenta
NrStudenta
Student
Student
dwa związki
jeden do wiele
NrStudenta
Rejestracja
Moduł
NazwaModułu
Moduł
NazwaModułu
NazwaModułu
41
Kurs
Student
NrStudenta
KodKursu
Kurs
Student
KodKursu
NrStudenta
Zapis
KodKursu
NrStudenta
DataZapisu
42

Diagram E-R trzeba przekształcić w schemat
relacyjny:
Dla każdej encji tworzymy tabelę
Identyfikujący atrybut encji staje się kluczem
głównym tabeli
 Wszystkie inne atrybuty stają się niegłównymi
atrybutami tabeli
 Dla każdego związku jeden do wiele wstawiamy
klucz główny tabeli ze strony jeden linii związku do
tabeli reprezentujących stronę wiele linii związku
 Opcjonalność mówi, czy klucz obcy może być null
czy nie


43
1.
2.
3.
4.

Jak wstawiamy dane do relacji?
Jak usuwamy dane z relacji?
Jak poprawiamy dane w relacji?
Jak wyszukujemy dane w relacji?
Wyszukiwanie w relacyjnym modelu danych
jest wykonywane przy użyciu operatorów
znanych jako algebra relacyjna
44



Zbiór ośmiu operatorów
Każdy operator bierze jedną lub więcej relacji
jako argument i produkuje jedną relację jako
wynik
Trzy główne operatory:



restrykcja
rzut
złączenie
45

Dodatkowe operatory
iloczyn
 suma
 przecięcie
 różnica
 iloraz

46



jest operatorem, który bierze jedną relację jako
argument i produkuje w wyniku jedną relację
„pozioma maszyna do cięcia” – wydobywa z
wejściowej relacji wiersze
Składnia:

RESTRICT <nazwa tabeli> [WHERE <warunek>] →
<tabela wynikowa>
47

RESTRICT Moduły WHERE Poziom=1
→ R1
R1
NazwaModułu
Poziom
Kod
NrPrac
Systemy relacyjnych baz
danych
1
CSD
1237
Projektowanie relacyjnych baz
danych
1
CSD
3245
48



operator rzut (project) bierze jedną relację jako
swój argument i produkuje jedną relację
wynikową
„pionowa maszyna do cięcia” – tworzy na
wyjściu relację będącą podzbiorem kolumn z
relacji wejściowej
Składnia:

PROJECT <nazwa tabeli> [<lista kolumn>]
→<tabela wynikowa>
49

Np. PROJECT Moduły(NazwaModułu) →
→R1
NazwaModułu
Rozproszone bazy danych
Obiektowe bazy danych
Dedukcyjne bazy danych
Systemy relacyjnych baz danych
Projektowanie relacyjnych baz danych
50


złączenia są oparte na relacyjnym operatorze
kartezjańskim
Brane są dwie relacje jako argumenty i
produkowana jedna relacja wynikowa złożona
ze wszystkich możliwych kombinacji wierszy z
wejściowych tabel
51


EQUINJOIN - jest iloczynem kartezjańskim,
po którym wykonywana jest restrykcja
Składnia

EQUINJOIN <tabela 1> WITH <tabela 2> →<tabela
wynikowa>
52

EQUINJOIN Wykładowcy WITH Moduły →
R1
Nazwa przedmiotu
Poziom
Kod
NrPrac NrPrac
NazwiskoPrac
Status
Systemy relacyjnych baz
danych
1
CDS
244
244
Kowalski
L
Projektowanie systemów
informacyjnych
1
CDS
244
244
Kowalski
L
Technologie internetowe
4
CDS
445
445
Nowak
PL
Programowanie obiektowe
4
CDS
445
445
Nowak
PL
Systemy decyzyjne
2
CDS
247
247
Malinowski
SL
Łączymy dwie tabele, ale tylko dla wierszy, w których
wartości w kolumnach złączenia są takie same (nie są
usuwane powtórzenia )
53

usuwa jedną z powtarzających się kolumn
złączenia
JOIN <tabela 1> WITH <tabela 2> →<tabela
wynikowa>
 JOIN Wykładowcy WITH Moduły → R1

54
Nazwa przedmiotu
Poziom Kod
NrPrac
NazwiskoPrac
Status
Systemy relacyjnych baz
danych
1
CDS 244
Kowalski
L
Projektowanie systemów
informacyjnych
1
CDS 244
Kowalski
L
Technologie internetowe
4
CDS 445
Nowak
PL
Programowanie obiektowe
4
CDS 445
Nowak
PL
Systemy decyzyjne
2
CDS 247
Malinowski
SL
55


Rozszerzamy zawartość bazy w oparciu o
logikę trójwartościową
Złączenie naturalne zdefiniowane jest tak, aby
produkować wynik z dwóch wejściowych
relacji R i S, złożony tylko z tych wierszy z R,
które mają odpowiadające sobie wiersze w S i
odwrotnie
56
NazwaModułu
Poziom
Kod
NrPrac
Systemy relacyjnych baz danych
1
CDS
244
Projektowanie systemów informacyjnych
1
CDS
244
Dedukcyjne bazy danych
4
CDS
445
Obiektowe bazy danych
4
CDS
445
Rozproszone bazy danych
2
CDS
247
Opracowanie baz danych
2
CDS
null
Administrowanie danymi
2
CDS
null
NrPrac
Nazwisko
Status
244
Kowalski
L
247
Nowak
SL
124
Wójcik
L
145
Gmoch
SL
445
Malinowski
PL
57
NazwaModułu
Poziom
Kod
NrPrac
NazwiskoPrac
Systemy relacyjnych
baz danych
1
CDS
244
Kowalski
L
Projektowanie
systemów
informacyjnych
1
CDS
244
Kowalski
L
Dedukcyjne bazy
danych
4
CDS
445
Nowak
Obiektowe bazy
danych
4
CDS
445
Rozproszone bazy
danych
2
CDS
247
Opracowanie baz
danych
2
CDS
null
null
null
Administrowanie
danymi
2
CDS
null
null
null
Nowak
Malinowski
Status
PL
PL
SL
58
NazwaModułu
Poziom
Kod
NrPrac
NazwiskoPrac Status
Systemy relacyjnych
baz danych
1
CDS
244
Kowalski
L
Projektowanie
systemów
informacyjnych
1
CDS
244
Kowalski
L
Dedukcyjne bazy
danych
4
CDS
445
Nowak
Obiektowe bazy
danych
4
CDS
445
Rozproszone bazy
danych
2
CDS
247
Malinowski
Nowak
PL
PL
SL
null
null
null
124
Wójcik
L
null
null
null
145
Gmoch
SL
59
Nazwa przedmiotu
Poziom Kod
NrPrac
NazwiskoPrac
Status
Systemy relacyjnych baz
danych
1
CDS
244
Kowalski
L
Projektowanie systemów
informacyjnych
1
CDS
244
Kowalski
L
Dedukcyjne bazy danych
4
CDS
445
Nowak
Obiektowe bazy danych
4
CDS
445
Rozproszone bazy danych
2
CDS
247
Malinowski
Nowak
PL
PL
SL
null
null
null
124
Wójcik
L
null
null
null
145
Gmoch
SL
Opracowanie baz danych
2
CDS
null
null
null
Administrowanie danymi
2
CDS
null
null
null
60


operator, który bierze dwie zgodne relacje jako
argumenty i produkuje jedną relację wynikową
Zgodne relacje – tabele mają taką samą
strukturę – te same kolumny określone są na
tych samych dziedzinach

<tabela 1> UNION <tabela 2> →<tabela
wynikowa>
61
Administratorzy
NrPrac
Nazwisko
Status
1001
Zieliński
Urzędnik
1024
Suoski
445
Kowalski
Starszy
urzędnik
PL
 Wykładowcy UNION Administratorzy → R1
NrPrac
Nazwisko
Status
1001
Zieliński
Urzędnik
1024
Suoski
Starszy urzędnik
445
Kowalski
PL
247
Nowak
SL
124
Wójcik
L
145
Gmoch
SL
62

działanie przeciwne do sumy (wiersze
wspólne)



<tabela 1> INTERSECTION <tabela 2>
→<tabela wynikowa>
Wykładowcy INTERSECTION
Administratorzy →R1
Pracownicy, którzy są jednocześnie
wykładowcami i administratorami
NrPrac
Nazwisko
Status
445
Kowalski
PL
63



jedna z tabel musi być binarną (mieć dwie
kolumny)
druga tabela musi być unarna (jedna kolumna)
Tabela unarna musi być zdefiniowana na tej
samej dziedzinie co jedna z kolumn w tabeli
binarnej
64
NazwaModułu
Dzień
Systemy relacyjnych baz danych
19/12/1998
Projektowanie systemów informacyjnych
12/12/1998
Projektowanie systemów informacyjnych
19/12/1998
Obiektowe bazy danych
20/12/1998
Obiektowe bazy danych
20/12/1998
DniModułu
NazwaModułu
Systemy relacyjnych baz danych
ParyModułu
Projektowanie systemów informacyjnych
Chcemy znaleźć wspólny dzień, w którym wykładane są moduły
Systemy relacyjnych baz danych oraz Projektowanie
DniModułu DIVISION ParyModułu →R1
Dzień
R1
19/12/1998
65

Każdy fakt przechowywany w bazie danych powinien
być wyrażalny w niej tylko na jeden sposób

informacja o przedmiocie powinna być zapisana tylko w
jednym miejscu (a nie przy każdym studencie, który uczęszcza
na zajęcia z tego przedmiotu)

jeżeli w bazie danych zapisujemy informacje o rodzicach każdej
osoby, nie ma już potrzeby zapisywać informacji o dziadkach,
gdyż ta informacja daje się wyprowadzić z informacji i
rodzicach

jeżeli w modelu firmy lotniczej Pasażer i Pracownik to dwie
odrębne tabele, to jedna osoba może figurować w bazie danych
– raz jako pasażer, a raz jako pracownik firmy lotniczej.
Wówczas dane dotyczące takiej osoby będą zapisane w dwóch
różnych miejscach
66
1.
2.
3.
4.
Zbierz zbiór danych
Przekształć nieznormalizowany zbiór danych
w tabele w pierwszej postaci normalnej
Przekształć tabelę z pierwszej postaci
normalnej w drugą postać normalną
Przekształć tabelę z drugiej postaci normalnej
w trzecią postać normalną
67




Moduły(NazwaModułu, NrPrac)
Wykładowcy(NrPrac, NazwaPrac)
Oceny(NazwaModułu, NrStudenta, typOceny,
Ocena)
Studenci(NrStudenta, Student)
68

Dostawcy(Nazwa_dostawcy, Adres, Nazwa_towaru, Cena)
1.
2.
3.
4.
NazwaDostawcy
Adres
Nazwa_towaru
Cena
Kowalski
Wiolinowa 7
Telewizor
1500
Kowalski
Wiolinowa 7
Radio
500
Jaworski
Mozarta 5
Telewizor
1800
Jaworski
Mozarta 5
Komputer
5000
Kowalski
Wiolinowa 7
Baterie
Marciniak
Warszawska 1
Magnetowid
5
1000
Redundancja: adres dostawcy powtarza się dla każdego dostarczonego
towaru
Anomalie przy modyfikacji: uaktualniony adres w jednym wierszu
pozostaje niezmieniony w innych
anomalie przy wstawianiu: trudno wstawić dostawcę bez towarów; towar
wchodzi w skład klucza – nie może być null
Anomalie przy usuwaniu: usuwając informacje o wszystkich towarach
dostarczonych przez dostawcę (mógł zmienić profil), usuwamy
informacje o samym dostawcy
69

Przyczyna: złączenie w jednej tabeli dwóch
różnych obiektów

Dostawcy(Nazwa_dostawcy, Adres)

Towary(Nazwa_dostawcy, Nazwa_towaru, Cena)
70
Nieznormalizowany zbiór danych Moduły
NazwaModułu
NrPrac
NazwiskoPrac
Nr Studenta
Student
Ocena
TypOceny
Systemy relacyjnych
baz danych
234
Daniec
34698
Saniewski S.
B3
cwk1
Daniec
34698
Saniewski S.
B2
cwk2
Daniec
37798
Janosik S.
B1
cwk1
Daniec
34888
Patel P.
B3
cwk1
Daniec
34888
B2
cwk2
Systemy relacyjnych
baz danych
234
Systemy relacyjnych
baz danych
234
Systemy relacyjnych
baz danych
234
Systemy relacyjnych
baz danych
234
Patel P.
Projektowanie
systemów
informacyjnych
234
Daniec
34698
Saniewski S.
B3
cwk1
Projektowanie
systemów
informacyjnych
234
Daniec
34698
Saniewski S
B1
cwk2
Obiektowe bazy
danych
345
Emski
34668
Saniewski J.
A1
egz
71

Mówimy, że dwa elementy danych A i B są w związku
zależności lub związku determinowania, jeżeli pewne
wartości elementu danych B zawsze występują z
pewnymi wartościami elementu danych A



zależności funkcyjne (jednowartościowe)
zależności wielofunkcyjne (wielowartościowe)
Mówimy, ze element B jest funkcjonalnie zależny od
elementu danych A, jeżeli dla każdej wartości A
istnieje jedna, jednoznacznie określona wartość B

W takim związku element danych A jest nazywany elementem
determinującym, a element B determinowanym
72
Nieznormalizowany zbiór danych Moduły bez powtórzeń
NazwaModułu
NrPrac
Nazwisko
Prac
NrStudenta
Student
Ocena
TypOceny
Systemy
relacyjnych baz
danych
234
Daniec
34698
Saniewski S.
B3
cwk1
B2
cwk2
Projektowanie
systemów
informacyjnych
Obiektowe bazy
danych
234
345
Daniec
Emski
37798
Janosik S.
B1
cwk1
34888
Patel P.
B3
cwk1
B2
cwk2
B3
cwk1
B1
cwk2
A1
egz
34698
34668
Saniewski S.
Saniewski J.
73

Relacja jest w pierwszej postaci normalnej 1PN,
wtedy i tylko wtedy, gdy każdy atrybut
niekluczowy jest funkcjonalnie zależny od
klucza głównego
74



Atrybuty NrStudenta, Student, Ocena i
TypOceny nie są funkcyjnie zależne od
wybranego przez nas klucza głównego
NazwaModułu
Artybuty NrPrac, NazwiskoPrac są funkcyjnie
zależne od klucza głównego
Tworzymy dwie tabele: jedną dla atrybutów
funkcyjnie zależnych drugą dla niezależnych
75
NrStudenta
Student
Ocena
TypOceny
Systemy relacyjnych
baz danych
34698
Saniewski S.
B3
cwk1
Systemy relacyjnych
baz danych
34698
Saniewski S.
B2
cwk2
Systemy relacyjnych
baz danych
37798
Janosik S.
B1
cwk1
Systemy relacyjnych
baz danych
34888
Patel P.
B3
cwk1
Systemy relacyjnych
baz danych
34888
Patel P.
B2
cwk2
Projektowanie
systemów
informacyjnych
34698
Saniewski S.
B3
cwk1
Saniewski S.
B1
cwk2
Saniewski J.
A1
egz
Oceny NazwaModułu
Projektowanie
systemów
informacyjnych
34698
Obiektowe bazy
danych
34668
76
Moduły
NazwaModułu
NrPrac
NazwiskoPrac
Systemy relacyjnych baz
danych
234
Daniec
Projektowanie systemów
informacyjnych
234
Daniec
Projektowanie systemów
informacyjnych
234
Daniec
Obiektowe bazy danych
345
Emski
77


Relacja jest w drugiej postaci normalnej (2PN)
wtedy i tylko wtedy gdy jest w 1PN i każdy
atrybut niekluczowy jest w pełni funkcyjnie
zależny od klucza głównego
usuwamy zależności od części klucza. Badamy te tabele, które
mają klucze złożone, i dla każdego niekluczowego elementu
danych tabeli – pytamy, czy ten element danych nie jest
jednoznacznie identyfikowany przez część klucza złożonego
78

Tabela Oceny:
klucz złożony z trzech części NazwaModułu,
NrStudenta i TypOceny
 NazwaModułu nie ma wpływu na Studenta
 NrStudenta sam definiuje Studenta (nazwisko)


Rozdzielamy determinujące i zależne elementy
danych na osobne tabele
79
Moduły
NazwaModułu
NrPrac
Nazwisko
Prac
Systemy relacyjnych
baz danych
234
Daniec
Projektowanie
systemów
informacyjnych
234
Daniec
Obiektowe bazy
danych
345
Emski
Studenci
NrStudenta
Student
34698
Saniewski S.
37798
Janosik S.
34888
Patel P.
34668
Saniewski J.
80
Oceny
NazwaModułu
NrStudenta
Ocena
TypOceny
Systemy relacyjnych baz
danych
34698
B3
cwk1
Systemy relacyjnych baz
danych
34698
B2
cwk2
Systemy relacyjnych baz
danych
37798
B1
cwk1
Systemy relacyjnych baz
danych
34888
B3
cwk1
Systemy relacyjnych baz
danych
34888
B2
cwk2
Projektowanie systemów
informacyjnych
34698
B3
cwk1
Projektowanie systemów
informacyjnych
34698
B1
cwk2
Obiektowe bazy danych
34668
A1
egz
81


Relacja jest w trzeciej postaci normalnej wtedy i
tylko wtedy, gdy jest w 2PN i każdy
niekluczowy atrybut jest bezpośrednio zależny
( a nie przechodnio zależny) od klucza
głównego
usuwamy zależności przechodnie między danymi
82

Tabela Moduły:


NrPrac determinuje NazwPrac
NazwPrac nie jest przechodnio zależny od
NazwaModułu
83
Moduły
NazwaModułu
NrPrac
Systemy relacyjnych
baz danych
234
Projektowanie
systemów
informacyjnych
234
Obiektowe bazy
danych
345
Wykładowcy
Studenci
NrPrac
Nazwisko
Prac
NrStudenta
Student
234
Daniec
34698
Saniewski S.
345
Emski
37798
Janosik S.
34888
Patel P.
34668
Saniewski J.
84
1.
2.
3.
4.
5.
Bez powtórzeń
Pola zależą od klucza
Od całego klucza
I niczego innego, tylko klucza
Tak mi dopomóż Codd.
85
The key,
the whole key
and nothing but the key.
So help me Codd
86



Normalizacja - proces rozkładu odwracalnego,
rozpoczyna się od jednej (uniwersalnej) relacji
Anomalie są stopniowo usuwane za pomocą
ciągu rzutów
wymaga, aby cały zbiór danych był w pełni
określony
87
Download