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ść)