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 Aktualizujące Zainicjuj semestr Zaoferuj moduł Anuluj moduł Wpisz studenta na kurs Wpisz studenta na moduł Przenieś studenta między modułami 9 Czy moduł 1 jest oferowany Czy Jan Kowalski zalicza Projektowanie relacyjnych baz danych? Które moduły są oferowane? Którzy studenci zaliczają moduł Projektowanie relacyjnych baz danych? 10 Ś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 11 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 12 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 13 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 14 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 15 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) 16 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 17 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 18 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ę) 19 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) 20 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 21 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 22 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 23 Edgar Codd (1970) baza danych jest zbiorem relacji relacja: podzbiór iloczynu kartezjańskiego zbiorów wartości 24 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 25 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 26 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 27 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 28 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 29 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 30 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 ) 31 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 32 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 33 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 34 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!!! 35 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 36 Encje Wykład Moduł Student Związki Wykład Moduł Student Moduł Atrybuty Student Moduł NazwaModułu NazwiskoStudenta Poziom DataUrStuenta 37 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 38 związek jeden do wiele - 1:M Klient ma wiele kont bankowych Konto bankowe należy najwyżej do jednego klienta Klient KontoBankowe 39 Związek wiele do wiele – M:N Klient ma wiele kont bankowych Konto bankowe może należeć do wielu klientów Klient KontoBankowe 40 Każdy wykładowca musi być zatrudniony na wydziale Wydział może istnieć bez żadnego wykładowcy Klient Klient KontoBankowe KontoBankowe 41 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 42 NrStudenta NrStudenta Student Student dwa związki jeden do wiele NrStudenta Rejestracja Moduł NazwaModułu Moduł NazwaModułu NazwaModułu 43 Kurs Student NrStudenta KodKursu Kurs Student KodKursu NrStudenta Zapis KodKursu NrStudenta DataZapisu 44 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 45 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 46 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 47 Dodatkowe operatory iloczyn suma przecięcie różnica iloraz 48 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> 49 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 50 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> 51 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 52 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 53 EQUINJOIN - jest iloczynem kartezjańskim, po którym wykonywana jest restrykcja Składnia EQUINJOIN <tabela 1> WITH <tabela 2> →<tabela wynikowa> 54 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 ) 55 usuwa jedną z powtarzających się kolumn złączenia JOIN <tabela 1> WITH <tabela 2> →<tabela wynikowa> JOIN Wykładowcy WITH Moduły → R1 56 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 57 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 58 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 59 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 60 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 61 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 62 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> 63 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 64 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 65 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 66 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 67 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 68 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ą 69 Moduły(NazwaModułu, NrPrac) Wykładowcy(NrPrac, NazwaPrac) Oceny(NazwaModułu, NrStudenta, typOceny, Ocena) Studenci(NrStudenta, Student) 70 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 71 Przyczyna: złączenie w jednej tabeli dwóch różnych obiektów Dostawcy(Nazwa_dostawcy, Adres) Towary(Nazwa_dostawcy, Nazwa_towaru, Cena) 72 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 73 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 74 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. 75 Relacja jest w pierwszej postaci normalnej 1PN, wtedy i tylko wtedy, gdy każdy atrybut niekluczowy jest funkcjonalnie zależny od klucza głównego 76 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 77 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 78 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 79 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 80 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 81 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. 82 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 B1 cwk2 A1 egz Projektowanie systemów informacyjnych 34698 Obiektowe bazy danych 34668 83 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 84 Tabela Moduły: NrPrac determinuje NazwPrac NazwPrac nie jest przechodnio zależny od NazwaModułu 85 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. 86 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. 87 The key, the whole key and nothing but the key. So help me Codd 88 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 89 alternatywa do normalizacji określa mechanizm przyrostowego projektowania danych nie jest konieczny pełny zbiór elementów danych po udokumentowaniu diagram zależności może być przekształcony w schemat relacyjny w kilku łatwych krokach 90 NrPrac NrZamówienia NazwiskoPrac DataZamówienia NrStudenta KodKursu Zależności funkcyjne 91 NazwaModułu NrPrac NrPrac JęzykPrac Zależności niefunkcyjne (wielowartościowe) 92 NrPrac Nazwa Działu Lokalizacja NrPrac Nazwa Działu Lokalizacja wykrycie i usunięcie zależności przechodnich upraszcza złożone diagramy (normalizacja) NazwaModułu NrStudenta TypZaliczenia Ocena Jeden element nie wystarcza aby w pełni zdeterminować wartość jakiegoś innego elementu danych 93 Akomodacja – Proces przekształcenia diagramu zależności w zbiór struktur tabel lub schemat relacyjny NazwaDziału Lokalizacja NrPrac NazwiskoPrac Każdy funkcjonalnie determinujący element staje się kluczem głównym tabeli. Wszystkie bezpośrednio zależne od niego elementy danych staja się niegłównymi atrybutami tabeli /(reguła Boyce’a-Codda) 94 Elementy determinujące – wychodzą z nich strzałki Mamy dwa takie elementy – potrzebujemy dwóch tabel Klucze obce – owale, do których zarówno wchodzą jak i wychodzą strzałki Pracownicy(NrPrac, NazwPrac, NazwaDziału) Działy(NazwaDziału,Lokalizacja) 95 NrPrac NazwiskoPrac Pesel NazwaDziału Lokalizacja NrPrac NazwiskoPrac JęzykPrac Każdy funkcjonalnie determinujący element staje się kluczem kandydującym relacji. Z pewnej liczby kluczy kandydujących wybieramy jeden, aby pełnił funkcję klucza głównego. 96 Każdy niefunkcyjny determinujący element staje się częścią klucza głównego tabeli Pracownicy(NrPrac, NazwPrac, NazwaDziału) Działy(NazwaDziału, Lokalizacja) Język(NrPrac, JęzykPrac) 97