Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Bazy danych 1 Literatura: Paul Benon-Davies – Systemy baz danych

Podobne prezentacje


Prezentacja na temat: "Bazy danych 1 Literatura: Paul Benon-Davies – Systemy baz danych"— Zapis prezentacji:

1 Bazy danych 1 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

2 Baza danych 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

3 Krótka historia Ręczne zarządzanie zapisami (4000 p.n.e -1900 n.e.)
Zarządzanie zapisami na kartach perforowanych ( ) Programowane zarządzanie zapisami ( ) Sieciowe zarządzanie danymi on-line ( ) Relacyjne zarządzanie danymi ( ) Multimedialne bazy danych (1995- )

4 Chronologia modeli danych
Dedukcyjny Obiektowy Postrelacyjny Semantyczny Relacyjny Sieciowy Hierarchiczny 1960 1970 1980 1990

5 Obszar analizy: Baza faktów
Zbiór danych, których zadaniem jest reprezentowanie pewnego obszaru analizy Trwałość Przez trwałość rozumiemy, że dane są przechowywane przez jakiś czas

6 Baza danych: Część intensjonalna
Zbiór definicji, które opisują strukturę bazy danych – schemat bazy danych Część ekstensjonalna Łączny zbiór danych w bazie danych

7 Obszar analizy: Integralność
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ść)

8 Jakość schematu bazy danych
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

9 Konstruowanie baz danych
Świat rzeczywisty Analiza wymagań Modelowanie perspektyw Modelowanie koncepcyjne Integracja perspektyw Analiza Ilościowa, użycia, integralności Modelowanie logiczne Modelowanie fizyczne Decyzje wdrożeniowe Baza danych

10 Właściwości baz danych
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

11 Właściwości baz danych cd.
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

12 System Zarządzania Bazą Danych (SZBD)
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

13 Poziomy relacyjnej bazy danych
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 indeks – to dodatkowa struktura danych, umożliwiająca szybki dostęp do wierszy tabeli na podstawie wartości w określonej kolumnie lub kolumnach, np. indeks zbudowany na kolumnie Nazwisko umożliwia szybkie wyszukanie danych wykładowcy w oparciu o jego nazwisko. Przypomina indeks (skorowidz) w książce.

14 Architektura klient-serwer
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)

15 Architektura klient-serwer cd.
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

16 Architektura klient-serwer cd.
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

17 Modele danych: Diagramy związków encji, diagramy E-R (entity-relationship)
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ę)

18 Modelowanie związków encji
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)

19 Moduły i studenci są przykładami rzeczy istotnych dla uniwersytetu
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

20 Atrybuty encji 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

21 Związek 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

22 Relacyjny model danych
Edgar Codd (1970) baza danych jest zbiorem relacji relacja: podzbiór iloczynu kartezjańskiego zbiorów wartości

23 Relacja Reprezentacją relacji jest dwuwymiarowa tabela złożona z kolumn i wierszy Każda relacja w bazie danych ma jednoznaczną nazwę Każda kolumna w relacji ma jednoznaczną nazwę w ramach jednej relacji Wszystkie wartości w kolumnie muszą być tego samego typu – są zdefiniowane w tej samej dziedzinie Porządek kolumn w relacji nie jest istotny Każdy wiersz w relacji musi być różny – nie są dozwolone powtórzenia Porządek wierszy nie jest istotny 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

24 Przykład: Tabela Wykładowy
NrPrac Nazwisko Status 237 Kowalski L 247 Nowak SL 445 Malinowski PL Tabela Moduły NazwaModułu Poziom Kod NrPrac Systemy relacyjnych baz danych 1 CDS 244 Projektowanie systemów informacyjnych Technologie internetowe 4 445 Programowanie obiektowe Systemy decyzyjne 2 247

25 Czy to jest relacja? Podstawy księgowości KodKursu NazwaPrzedmiotu CSD
Relacyjne bazy danych Projektowanie systemów informacyjnych Dedukcyjne bazy danych Obiektowe bazy danych Rozproszone bazy danych BSD Wprowadzenie do biznesu Podstawy księgowości kolumna NazwaPrzedmiotu zawiera klika wartości

26 Znaczenie NrPrac z relacji Moduły
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 Technologie internetowe 4 445 Programowanie obiektowe Systemy decyzyjne 2 247

27 Klucz główny i jednoznaczny
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 w tabeli Wykładowcy kluczem głównym jest IDWykładowcy. Nazwisko nie musi być kluczem

28 Klucz obcy Klucz obcy jest sposobem łączenia danych przechowywanych w różnych tabelach Klucz obcy 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 w tabeli Przedmioty kluczem obcym jest IDWykładowcy, którego wartości pochodzą z kolumny IdWykładowcy w tabeli Wykładowcy. Na przykład, wartość występująca w wierszu przedmiotu „Bazy danych” tabeli Przedmioty stanowi odwołanie do wiersza w tabeli Wykładowcy, w którym są zapisane informacje o wykładowcy o nazwisku „Kowalski”

29 NULL – „brak wartości” 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 )

30 Logika trójwartościowa
koniunkcja AND True False Null true false null alternatywa OR True False Null true false null negacja NOT True False Null false true null

31 Więzy spójności danych
Warunki poprawności danych w relacjach dla pojedynczych wartości w wierszu np. 0<Wiek<140 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

32 Utrzymywanie integralności referencyjnej
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

33 Diagramy związków encji – modelowanie danych
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!!!

34 Encje Związek Atrybuty
Jeżeli trzeba przechowywać dane na temat wielu właściwości jakiejś rzeczy, to taka rzecz jest prawdopodobnie encją Związek jest powiązaniem między encjami Atrybuty Wartości przypisywanych atrybutom używamy, aby odróżnić jedna encję od drugiej encja jest scharakteryzowana pewną liczbą właściwości lub atrybutów

35 Metoda E-R Encje Związki Atrybuty Wykład Moduł Student Wykład Moduł
NazwiskoStudenta DataUrStuenta NazwaModułu Poziom

36 Liczebność (stopień) 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

37 Liczebność cd. związek jeden do wiele - 1:M
Klient ma wiele kont bankowych Konto bankowe należy najwyżej do jednego klienta Klient KontoBankowe

38 Liczebność cd. Związek wiele do wiele – M:N
Klient ma wiele kont bankowych Konto bankowe może należeć do wielu klientów Klient KontoBankowe

39 Uczestnictwo (opcjonalność)
Każdy wykładowca musi być zatrudniony na wydziale Wydział może istnieć bez żadnego wykładowcy Klient Klient KontoBankowe KontoBankowe

40 Związki rekurencyjne 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 Wymaganie Moduł

41 Uproszczenie związków wiele do wiele
dwa związki jeden do wiele NrStudenta NrStudenta Student Student NrStudenta Rejestracja Aby uprościć proces przekształcenia w schemat relacyjny, zaleca się zastąpienie w modelu danych każdego związku wiele do wiele dwoma związkami jeden do wilel Moduł Moduł NazwaModułu NazwaModułu NazwaModułu

42 Modelowanie czasu Kurs Student NrStudenta KodKursu Kurs Student
Zapis KodKursu DataZapisu NrStudenta

43 Przekształcenie w schemat relacyjny
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

44 Operowanie danymi 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

45 Algebra relacyjna 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

46 Algebra relacyjna cd. Dodatkowe operatory iloczyn suma przecięcie
różnica iloraz Nie ma standardowej składni operatorów algebry relacyjnej. Przedstawiona poniżej ma na celu wyjaśnienie, a nie narzucenie standardu

47 Restrykcja (selekcja)
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>

48 Restrykcja cd. RESTRICT Moduły WHERE Poziom=1 → R1 R1 NazwaModułu
Kod NrPrac Systemy relacyjnych baz danych 1 CSD 1237 Projektowanie relacyjnych baz danych 3245

49 Rzut 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>

50 Rzut cd. 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

51 Iloczyn 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

52 Równozłączenie EQUINJOIN - jest iloczynem kartezjańskim, po którym wykonywana jest restrykcja Składnia EQUINJOIN <tabela 1> WITH <tabela 2> →<tabela wynikowa> łączymy dwie tabele, ale tylko dla wierszy, w których wartości w kolumnach są taki same. Zakładamy, że klucz główny jednej z tabel i klucz obcy drugie tabeli tworzą domyślnie kolumny złączenia

53 Równozłączenie cd. EQUINJOIN Wykładowcy WITH Moduły → R1
Nazwa przedmiotu Poziom Kod NrPrac NazwiskoPrac Status Systemy relacyjnych baz danych 1 CDS 244 Kowalski L Projektowanie systemów informacyjnych Technologie internetowe 4 445 Nowak PL Programowanie obiektowe Systemy decyzyjne 2 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 )

54 Złączenie naturalne usuwa jedną z powtarzających się kolumn złączenia
JOIN <tabela 1> WITH <tabela 2> →<tabela wynikowa> JOIN Wykładowcy WITH Moduły → R1

55 Złączenie naturalne cd.
Nazwa przedmiotu Poziom Kod NrPrac NazwiskoPrac Status Systemy relacyjnych baz danych 1 CDS 244 Kowalski L Projektowanie systemów informacyjnych Technologie internetowe 4 445 Nowak PL Programowanie obiektowe Systemy decyzyjne 2 247 Malinowski SL

56 Złączenie zewnętrzne 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

57 Moduły Wykładowcy NazwaModułu Poziom Kod NrPrac
Systemy relacyjnych baz danych 1 CDS 244 Projektowanie systemów informacyjnych Dedukcyjne bazy danych 4 445 Obiektowe bazy danych Rozproszone bazy danych 2 247 Opracowanie baz danych null Administrowanie danymi NrPrac Nazwisko Status 244 Kowalski L 247 Nowak SL 124 Wójcik 145 Gmoch 445 Malinowski PL Wykładowcy

58 Złączenie lewostronne – zachowuje nie pasujące wiersze z tabeli będącej pierwszym argumentem operatora złączenia NazwaModułu Poziom Kod NrPrac NazwiskoPrac Status Systemy relacyjnych baz danych 1 CDS 244 Kowalski L Projektowanie systemów informacyjnych Dedukcyjne bazy danych 4 445 Nowak PL Obiektowe bazy danych Rozproszone bazy danych 2 247 Malinowski SL Opracowanie baz danych null Administrowanie danymi

59 Złączenie prawostronne
NazwaModułu Poziom Kod NrPrac NazwiskoPrac Status Systemy relacyjnych baz danych 1 CDS 244 Kowalski L Projektowanie systemów informacyjnych Dedukcyjne bazy danych 4 445 Nowak PL Obiektowe bazy danych Rozproszone bazy danych 2 247 Malinowski SL null 124 Wójcik 145 Gmoch

60 Dwustronne złączenie zewnętrzne
Nazwa przedmiotu Poziom Kod NrPrac NazwiskoPrac Status Systemy relacyjnych baz danych 1 CDS 244 Kowalski L Projektowanie systemów informacyjnych Dedukcyjne bazy danych 4 445 Nowak PL Obiektowe bazy danych Rozproszone bazy danych 2 247 Malinowski SL null 124 Wójcik 145 Gmoch Opracowanie baz danych Administrowanie danymi

61 Suma 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>

62 Suma cd. Wykładowcy UNION Administratorzy → R1 NrPrac Nazwisko Status
1001 Zieliński Urzędnik 1024 Suoski Starszy urzędnik 445 Kowalski PL Administratorzy 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

63 Przecięcie 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

64 Iloraz 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

65 DniModułu DIVISION ParyModułu →R1
NazwaModułu Dzień Systemy relacyjnych baz danych 19/12/1998 Projektowanie systemów informacyjnych 12/12/1998 Obiektowe bazy danych 20/12/1998 DniModułu NazwaModułu Systemy relacyjnych baz danych Projektowanie systemów informacyjnych ParyModułu 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ń 19/12/1998 R1

66 Normalizacja 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

67 Normalizacja 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ą

68 Notacja nawiasowa Moduły(NazwaModułu, NrPrac)
Wykładowcy(NrPrac, NazwaPrac) Oceny(NazwaModułu, NrStudenta, typOceny, Ocena) Studenci(NrStudenta, Student)

69 Normalizacja Dostawcy(Nazwa_dostawcy, Adres, Nazwa_towaru, Cena)
Kowalski Wiolinowa 7 Telewizor 1500 Radio 500 Jaworski Mozarta 5 1800 Komputer 5000 Baterie 5 Marciniak Warszawska 1 Magnetowid 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

70 Przyczyna: złączenie w jednej tabeli dwóch różnych obiektów
Dostawcy(Nazwa_dostawcy, Adres) Towary(Nazwa_dostawcy, Nazwa_towaru, Cena)

71 Nieznormalizowany zbiór danych Moduły
NazwaModułu NrPrac NazwiskoPrac Nr Studenta Student Ocena Typ-Oceny Systemy relacyjnych baz danych 234 Daniec 34698 Saniewski S. B3 cwk1 B2 cwk2 37798 Janosik S. B1 34888 Patel P. Projektowanie systemów informacyjnych Saniewski S Obiektowe bazy danych 345 Emski 34668 Saniewski J. A1 egz

72 Zależność/determinowanie
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

73 Nieznormalizowany zbiór danych Moduły bez powtórzeń
NazwaModułu NrPrac NazwiskoPrac NrStudenta Student Ocena Typ-Oceny Systemy relacyjnych baz danych 234 Daniec 34698 Saniewski S. B3 cwk1 B2 cwk2 37798 Janosik S. B1 34888 Patel P. Projektowanie systemów informacyjnych Obiektowe bazy danych 345 Emski 34668 Saniewski J. A1 egz

74 Pierwsza postać normalna
Relacja jest w pierwszej postaci normalnej 1PN, wtedy i tylko wtedy, gdy każdy atrybut niekluczowy jest funkcjonalnie zależny od klucza głównego

75 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

76 Oceny 34698 B3 cwk1 B2 cwk2 37798 B1 34888 34668 A1 egz NazwaModułu
NrStudenta Student Ocena Typ-Oceny Systemy relacyjnych baz danych 34698 Saniewski S. B3 cwk1 B2 cwk2 37798 Janosik S. B1 34888 Patel P. Projektowanie systemów informacyjnych Obiektowe bazy danych 34668 Saniewski J. A1 egz

77 Moduły 234 Daniec 345 Emski NazwaModułu NrPrac NazwiskoPrac
Systemy relacyjnych baz danych 234 Daniec Projektowanie systemów informacyjnych Obiektowe bazy danych 345 Emski

78 Druga postać normalna 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 usuwamy zależność od części klucza

79 Rozdzielamy determinujące i zależne elementy danych na osobne tabele
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

80 Moduły 234 Daniec 345 Emski Studenci 34698 37798 34888 34668
NazwaModułu NrPrac NazwiskoPrac Systemy relacyjnych baz danych 234 Daniec Projektowanie systemów informacyjnych Obiektowe bazy danych 345 Emski Studenci NrStudenta Student 34698 Saniewski S. 37798 Janosik S. 34888 Patel P. 34668 Saniewski J.

81 Oceny 34698 B3 cwk1 B2 cwk2 37798 B1 34888 34668 A1 egz NazwaModułu
NrStudenta Ocena Typ-Oceny Systemy relacyjnych baz danych 34698 B3 cwk1 B2 cwk2 37798 B1 34888 Projektowanie systemów informacyjnych Obiektowe bazy danych 34668 A1 egz

82 Trzecia postać normalna
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

83 Tabela Moduły: NrPrac determinuje NazwPrac
NazwPrac nie jest przechodnio zależny od NazwaModułu

84 Moduły Wykładowcy Studenci
NazwaModułu NrPrac Systemy relacyjnych baz danych 234 Projektowanie systemów informacyjnych Obiektowe bazy danych 345 Wykładowcy Studenci NrPrac NazwiskoPrac 234 Daniec 345 Emski NrStudenta Student 34698 Saniewski S. 37798 Janosik S. 34888 Patel P. 34668 Saniewski J.

85 Przysięga normalizacji
Bez powtórzeń Pola zależą od klucza Od całego klucza I niczego innego, tylko klucza Tak mi dopomóż Codd.

86 The key, the whole key and nothing but the key. So help me Codd

87 Normalizacja 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


Pobierz ppt "Bazy danych 1 Literatura: Paul Benon-Davies – Systemy baz danych"

Podobne prezentacje


Reklamy Google