Bazy danych - Politechnika Białostocka

Transkrypt

Bazy danych - Politechnika Białostocka
Małgorzata Krętowska
Politechnika Białostocka
Wydział Informatyki
Bazy danych
Pracownia specjalistyczna nr 1
Relacyjna baza danych. Normalizacja relacji.
Zadania
Utwórz schemat bazy danych w trzeciej postaci normalnej:
a) mając dane następujące atrybuty:
Id_karty
Imię_
Nazwisko
Adres
Nr_sygnatury
Tytuł
Autor
Rok_wydania
Data_wypożyczenia
Data_zwrotu
b) mając daną tabelę nieznormalizowaną:
NazwaPrzedmiotu
IdPrac
NazwiskoPrac
NrIndeksu
NazwiskoSt
Ocena
TypOceny
Bazy danych
134
Kowalski
34123
34123
67898
67453
67453
Kozioł
Kozioł
Zawadzki
Onopiuk
Onopiuk
4
4,5
3
3,5
5
cw_k1
cw_k2
cw_k1
cw_k1
cw_k2
Systemy operacyjne
678
Dudek
34123
45678
Kozioł
Kozioł
4
3
cw_k1
cw_k2
Michalik
45345
Iwaniuk
4,5
egz
Programowanie obiektowe 123
c) mając dany opis sytuacji: Na zawody skoków narciarskich przyjeżdżają zawodnicy wraz ze
swoją kadrą, w skład której wchodzi dwóch trenerów, lekarz oraz osoba odpowiedzialna za
przygotowanie sprzętu narciarskiego. Skład kadry jest jednakowy dla zawodników z jednego
państwa. Terminarz zawodów jest ustalony z góry (miejsce i data), tak jak skład sędziowski. Każdy
skok jest punktowany. Wynik ogólny jest sumą punktów za styl oraz długość skoku dwóch
wykonanych skoków. W trakcie każdych zawodów poszczególni zawodnicy zdobywają punkty w
klasyfikacji Pucharu Świata. Uzyskanie danego miejsca w konkursie jest przeliczane na punkty do
klasyfikacji PŚ.
Pomoc
Atrybuty (kolumny) – kolejne cechy, np. imię, nazwisko, wiek, …
Krotki = Rekordy (wiersze) – zbiór wartości atrybutów opisujących pojedynczy obiekt
Relacja – Tabela – schemat relacji + dane
Klucz – zbiór atrybutów jednoznacznie identyfikujący rekordy w relacji
Zależność funkcyjna A1, A2, ..., An ->B („atrybuty A1, A2, ..., An określają funkcyjnie atrybut B”) jeśli dwie krotki relacji R są zgodne dla atrybutów A1, A2, .., An (tzn. obie krotki mają takie same
wartości składowych dla wymienionych atrybutów), to muszą być również zgodne w pewnym
innym atrybucie B.
Etapy normalizacji
1.Przedstawienie danych w postaci tabeli nieznormalizowanej
2.Przekształcenie tabeli nieznormalizowanej do 1PN
Relacja jest w 1PN wtedy i tylko wtedy, gdy każdy atrybut niekluczowy jest funkcyjnie zależny od
klucza głównego (Wyodrębniamy powtarzające się grupy danych i tworzymy z nich osobne tabele)
3.Przekształcenie tabeli nieznormalizowanej do 2PN
Relacja jest w 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 (W celu przekształcenia do 2PN należy usunąć z tabeli te
kolumny, które są zależne od części klucza złożonego. Należy sprawdzić, czy tabela zawiera klucz
złożony i czy dane (nie stanowiące żadnej części klucza) są jednoznacznie identyfikowane przez
część tego klucza)
Przykład:
T1(A,B,C,D): A,B->C, A->D – przekształcenie do 2PN – T1(A,B,C): A,B->C; T2(A,D): A->D
(usunięcie niepełnej zależności funkcyjnej)
4.Przekształcenie tabeli nieznormalizowanej do 3PN
Relacja jest w 3PN wtedy i tylko wtedy, gdy jest w 2PN i każdy atrybut niekluczowy jest
bezpośrednio zależny (a nie przechodnio zależny) od klucza głównego
Przykład:
T1(A,B,C): A->B, B->C – przekształcenie do 3PN – T1(A,B): A->B; T2(B,C): B->C
(usunięcie przechodniej zależności funkcyjnej)
5.Przekształcenie tabeli nieznormalizowanej do 4PN (opcjonalnie)
6.Przekształcenie tabeli nieznormalizowanej do 5PN (opcjonalnie)
Przykład normalizacji:
1. Tabela nieznormalizowana
NrZamówienia IdDostawcy NazwaDostawcy AresDostawcy
Warszawa
1
300 FSO
Żeromskigo 10
IdCzęści
53
57
59
2
400 FSM
Tychy
Pogodna 2
54
32
3
4
500 FSR
600 FSM
5
300 FSO
Gdańsk
Olejowa 12
Bielsko-Biała
Mickiewicza 45
88
59
21
Warszawa
Żeromskigo 10
53
57
6
300 FSO
Warszawa
Żeromskigo 10
59
NazwaCzęści Ilość Magazyn AdresMagazynu
Gaźnik
Warszawa
100
5 Chopina 3
Wał
Warszawa
50
5 Chopina 3
Błotnik
Warszawa
500
6 Mozarta 56
Gaźnik
Warszawa
500
5 Chopina 3
Koło
Warszawa
100
6 Mozarta 56
Silnik
Warszawa
15
7 Bacha 45
Błotnik
Warszawa
400
6 Mozarta 56
Prądnica
Warszawa
50
7 Bacha 45
Gaźnik
Warszawa
200
5 Chopina 3
Wał
Warszawa
30
5 Chopina 3
Błotnik
Warszawa
20
6 Mozarta 56
2. Pierwsza postać normalna (1PN)
Dostawca_na_zamówieniu (Nr_Zamówienia, Id_Dostawcy, Nazwa_Dostawcy,
Adres_dostawcy)
Zamówienie (Nr_Zamówienia, Id_Części, Nazwa_Części, Ilość, Magazyn,
Adres_Magazynu)
3. Druga postać normalna (2PN)
Dostawca_na_zamówieniu (Nr_Zamówienia, Id_Dostawcy, Nazwa_Dostawcy,
Adres_dostawcy)
Części_w_magazynie (Id_Części, Nazwa_Części, Magazyn, Adres_Magazynu)
Dostawy_części (Nr_zamówienia, Id_Części, Ilość)
4. Trzecia postać normalna (3PN)
Zmówienie_do_dostawcy (Nr_zamówienia, Id_Dostawcy)
Dostawcy (Id_dostawcy, Nazwa_dostawcy, Adres_dostawcy)
Części (Id_Części, Nazwa_Części, Magazyn)
Magazyny (Magazyn, Adres_Magazynu)
Dostawy_części (Nr_zamówienia, Id_części, Ilość)

Podobne dokumenty