Normalizacja relacyjnych baz danych. Sebastian Ernst

Podobne dokumenty
Normalizacja. Pojęcie klucza. Cel normalizacji

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

PLAN WYKŁADU BAZY DANYCH ZALEŻNOŚCI FUNKCYJNE

Cel normalizacji. Tadeusz Pankowski

Projektowanie Systemów Informacyjnych

Normalizacja baz danych

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Normalizacja baz danych

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Pojęcie zależności funkcyjnej

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

Pierwsza postać normalna

Systemy baz danych. Notatki z wykładu

Relacyjny model baz danych, model związków encji, normalizacje

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Bazy danych Teoria projektowania relacyjnych baz danych. Wykła. Wykład dla studentów matematyki

Związki pomiędzy tabelami

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Jak wiernie odzwierciedlić świat i zachować występujące w nim zależności? Jak implementacja fizyczna zmienia model logiczny?

BAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski

Bazy Danych i Usługi Sieciowe

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny technologiczny Politechnika Śląska

Projektowanie baz danych

Autor: Joanna Karwowska

Bazy danych i usługi sieciowe

Technologia informacyjna

Bazy danych 3. Normalizacja baz danych (c.d.)

Bazy danych 3. Normalizacja baz danych

Pierwsza postać normalna

Konstruowanie Baz Danych Wprowadzenie do projektowania. Normalizacja

Normalizacja tabel POSTACIE NORMALNE TABEL

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Relacyjne Bazy Danych Andrzej M. Borzyszkowski. Projekt bazy danych normalizacja. PJATK/ Gdańsk. Dwie metodologie. Formalne zasady projektowe

Bazy danych. Andrzej Łachwa, UJ, /15

1 Przygotował: mgr inż. Maciej Lasota

Zależności funkcyjne pierwotne i wtórne

Bazy danych 2. Zależności funkcyjne Normalizacja baz danych

Technologie baz danych

Normalizacja Projektowanie Diagramy encji. Bazy Danych i Systemy informacyjne Wykład 7. Piotr Syga

Pożyczkobiorcy. Anomalia modyfikacji: Anomalia usuwania: Konta_pożyczkowe. Anomalia wstawiania: Przykłady anomalii. Pożyczki.

Relacyjne bazy danych. Normalizacja i problem nadmierności danych.

Program nauczania. Systemy baz danych. technik informatyk

Wykład 2. Relacyjny model danych

Normalizacja bazy danych. WYKŁAD Piotr Ciskowski

Projektowanie bazy danych przykład

Chemoinformatyczne bazy danych - Wprowadzenie do technologii baz danych. Andrzej Bąk

Normalizacja schematów logicznych relacji

Projektowanie relacyjnych baz danych

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Baza danych. Baza danych to:

Najważniejsze problemy, których dostarczy nam tak zaprojektowana tabela :

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Przykłady normalizacji

Hurtownie danych a transakcyjne bazy danych

Hurtownie danych. 31 stycznia 2017

Zależności funkcyjne c.d.

Postać normalna Boyce-Codd (BCNF)

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Bazy danych Wykład zerowy. P. F. Góra

Projektowanie struktury danych

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

Bazy Danych i Usługi Sieciowe

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Normalizacja schematu bazy danych. Radosław Fijołek Paweł Romanowski Paweł Trzos

Bazy danych. Zasady konstrukcji baz danych

Projektowanie warstwy danych

Bazy danych w sterowaniu

1 Wstęp do modelu relacyjnego

WPROWADZENIE DO BAZ DANYCH

Bazy danych 1. Wykład 6 Metodologia projektowania baz danych. (projektowanie logiczne - Normalizacja)

Księgarnia PWN: Michael J. Hernandez Bazy danych dla zwykłych śmiertelników

Transformacja modelu ER do modelu relacyjnego

Systemy baz danych. mgr inż. Sylwia Glińska

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

BAZA DANYCH. Informatyka. ZESPÓŁ SZKÓŁ ELEKTRYCZNYCH Prowadzący: inż. Marek Genge

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Bazy danych 3. Zależności funkcyjne Normalizacja relacyjnych baz danych

S y s t e m y. B a z D a n y c h

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH. Problemy w bazie danych Przykład sprowadzenia nieznormalizowanej SQL

Normalizacja relacji

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

Relacyjny model danych

PODSTAWY BAZ DANYCH 2009/ / Notatki do wykładu "Podstawy baz danych"

Bazy danych. Andrzej Łachwa, UJ, /15

Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Literatura. Bazy danych s.1-1

Bazy danych Projektowanie i implementacja relacyjnych baz danych

Projektowanie hurtowni danych i modelowanie wielowymiarowe

Utwórz klucz podstawowy relacji na podstawie unikalnego identyfikatora encji. podstawie kluczy podstawowych wiązanych relacji.

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

Baza danych. Modele danych

Model relacyjny bazy danych

Modele danych - wykład V. Zagadnienia. 1. Wprowadzenie 2. MOLAP modele danych 3. ROLAP modele danych 4. Podsumowanie 5. Zadanie fajne WPROWADZENIE

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

Projekt małej Bazy Danych.

ZSE - Systemy baz danych 1 ZASADY PROJEKTOWANIA BAZ DANYCH

Transkrypt:

Normalizacja relacyjnych baz danych Sebastian Ernst

Zależności funkcyjne Zależność funkcyjna pomiędzy zbiorami atrybutów X oraz Y oznacza, że każdemu zestawowi wartości atrybutów X odpowiada dokładnie jeden zestaw wartości atrybutów Y. Zależności: trywialne, proste, tranzytywne. X! Y

Zależności funkcyjne Zależność funkcyjna pomiędzy zbiorami atrybutów X oraz Y oznacza, że każdemu zestawowi wartości atrybutów X odpowiada dokładnie jeden zestaw wartości atrybutów Y. Zależności: trywialne, proste, tranzytywne. X! Y X! A i

Zależności funkcyjne Zależność funkcyjna pomiędzy zbiorami atrybutów X oraz Y oznacza, że każdemu zestawowi wartości atrybutów X odpowiada dokładnie jeden zestaw wartości atrybutów Y. Zależności: trywialne, proste, tranzytywne. X! Y X! A i X! Y Y! Z

Zależności funkcyjne X! Y Jeżeli znam X, to znam Y. Przykłady: PESEL Nazwisko Kod paskowy Nazwa towaru, cena

Po co normalizacja? Redukcja nadmiarowości. Uniknięcie anomalii.

Postacie normalne po co są? 1. Brak powtarzających się elementów bądź grup elementów. 2. Brak częściowych zależności od kluczy złożonych. 3. Brak zależności od atrybutów niekluczowych.

Baza faktur i zamówień

Ile Panów Pikusiów zamówił Kuj S.A. w 2010 roku? Ile sprzedano Małych Głodów w świętokrzyskiem? Jakie towary sprzedano 6 grudnia 2009?

1NF: Brak powtarzających się elementów bądź grup elementów.

1NF: Brak powtarzających się elementów bądź grup elementów. dane jednej faktury

1NF: Brak powtarzających się elementów bądź grup elementów. krotki

atrybuty

Wymagania 1NF: Atomiczność: wiersz nie może zawierać powtarzających się grup o podobnej strukturze. Klucz główny: każdy wiersz musi posiadać unikalny identyfikator.

Wymagania 1NF: Atomiczność: wiersz nie może zawierać powtarzających się grup o podobnej strukturze. Klucz główny: każdy wiersz musi posiadać unikalny identyfikator.

1NF 2NF 3NF

1NF 2NF 3NF

Anomalie modyfikacji Klient Kuj S.A. przeniósł się z ul. Kozła 7 na ul. Koziołka 3.

Anomalie modyfikacji Klient Kuj S.A. przeniósł się z ul. Kozła 7 na ul. Koziołka 3.

Anomalie usuwania Klient Kuj S.A. anulował swoje ostatnie zamówienie.

Anomalie usuwania Klient Kuj S.A. anulował swoje ostatnie zamówienie.

Anomalie dodawania Chcemy dopisać nowego klienta, który jeszcze nic u nas nie zamawiał.

2NF: Brak częściowych zależności od kluczy złożonych. Relacja w 1NF. w pełni funkcyjnie zależny. Każdy atrybut spoza klucza głównego jest od niego Czyli: nie jest zależny od jego fragmentu.

2NF: Brak częściowych zależności od kluczy złożonych. Wartość każdej kolumny musi zależeć wyłącznie od całego klucza złożonego. Czy ta kolumna może istnieć bez któregoś ze składników klucza?

2NF: Brak częściowych zależności od kluczy złożonych. Wartość każdej kolumny musi zależeć wyłącznie od całego klucza złożonego. Czy ta kolumna może istnieć bez któregoś ze składników klucza?

Czy ta kolumna może istnieć bez któregoś ze składników klucza?

Czy ta kolumna może istnieć bez któregoś ze składników klucza?

Czy ta kolumna może istnieć bez któregoś ze składników klucza?

Czy ta kolumna może istnieć bez któregoś ze składników klucza?

Czy ta kolumna może istnieć bez któregoś ze składników klucza?

Czy ta kolumna może istnieć bez któregoś ze składników klucza?

Czy ta kolumna może istnieć bez któregoś ze składników klucza?

Reguły 2NF dotyczą tylko tabel ze złożonym kluczem głównym, więc tabela zamowienia spełnia 2NF automatycznie. Nowo utworzona tabela pozycje_zamowien musi być sprawdzona pod kątem zgodności z 2NF.

1NF 2NF 3NF

1NF 2NF 3NF

3NF: Brak zależności od atrybutów niekluczowych. Relacja w 1NF i 2NF. niego tranzytywnie zależny. Żaden atrybut spoza klucza głównego nie jest od Czyli: jest zależny bezpośrednio.

3NF: Brak zależności od atrybutów niekluczowych. Czy ta kolumna jest zależna od innej kolumny niekluczowej? 3NF ma na celu ekstrakcję danych o samodzielnych encjach do innej tabeli.

Czy ta kolumna jest zależna od innej kolumny niekluczowej?

Czy ta kolumna jest zależna od innej kolumny niekluczowej?

Czy ta kolumna jest zależna od innej kolumny niekluczowej?

Czy ta kolumna jest zależna od innej kolumny niekluczowej?

1NF 2NF 3NF

1NF 2NF 3NF

BCNF Boyce-Codd Normal Form. Każda nietrywialna zależność jest od klucza (niekoniecznie głównego). Nie istnieją w ogóle zależności tranzytywne.

BCNF Zazwyczaj tabela w 3NF również spełnia BCNF. Tabela w 3NF nie posiadająca wielu nakładających się kluczy kandydujących zawsze będzie w BCNF.

BCNF

BCNF SAVER, for Court 1 bookings made by members STANDARD, for Court 1 bookings made by nonmembers PREMIUM-A, for Court 2 bookings made by members PREMIUM-B, for Court 2 bookings made by nonmembers

BCNF SAVER, for Court 1 bookings made by members STANDARD, for Court 1 bookings made by nonmembers PREMIUM-A, for Court 2 bookings made by members PREMIUM-B, for Court 2 bookings made by nonmembers {Court, Start Time} {Court, End Time} {Rate Type, Start Time} {Rate Type, End Time}

BCNF

BCNF

BCNF Nie każdy schemat w 3NF da się rozłożyć do BCNF.

Przykład: 3NF, ale nie BCNF Miasto Ulica Kod pocztowy Klucze: {M, U}, {U, K} Zależności: MU K, K M. Występują anomalie: usuwając ulicę możemy utracić informację o mieście. 3NF tak: brak atrybutów niekluczowych. BCNF nie: K nie jest kluczem. Relacja nierozkładalna do BCNF bez utraty zależności.

4NF Nowy typ zależności: zależności wielowartościowe. 4NF jest spełniona jeżeli: dla każdej zależności wielowartościowej X Y, X jest nadkluczem. Zbiór atrybutów Y jest zależny wielowartościowo od zbioru X gdy z każdą konfiguracją wartości atrybutów z X jest związany zbiór konfiguracji wartości z Y niezależnie od wartości pozostałych atrybutów.

Zależność wielowartościowa Podręczniki do danego przedmiotu nie zależą od wykładowców. Nie ma zależności funkcyjnych. Zależności: Z W, Z P. Można zamienić części krotek ZW i P.

4NF Dla każdej zależności wielowartościowej X Y, X jest nadkluczem. Nie ma zależności funkcyjnych jest BCNF. Zależności: Z W, Z P; Z nie jest nadkluczem. Nadmiar informacji: powtórzone dane podreczników i wykładowców. Aby doprowadzić do 4NF rozkładamy na ZW i ZP.

4NF Nauka baz danych kończy się zazwyczaj po BCNF. Wynika to z przekonania, że w większości rzeczywistych aplikacji tabele niespełniające 4NF zdarzają się rzadko. W analizie wykonanej w 1992 roku, ponad 20% aplikacji zawierało jedną lub więcej tabel niespełniających 4NF, a spełniających BCNF. źródło: Wu, M. S. (1992). The practical need for fourth normal form. ACM SIGCSE Bulletin, 24(1), 19-23. doi: 10.1145/135250.134515.

Algorytm normalizacji Identyfikacja zależności funkcyjnych. Generacja wszystkich kluczy, podział atrybutów na kluczowe i niekluczowe. Sprawdzenie 2NF: czy są atrybuty niekluczowe zależne od fragmentu klucza? Sprawdzenie 3NF: czy są atrybuty niekluczowe zależne tranzytywnie od klucza? Sprawdzenie BCNF: czy są zależności nie od klucza?

Rozpoznawanie 2NF i 3NF 2NF warunki wystarczające: istnieją tylko klucze proste, wszystkie atrybuty kluczowe. 3NF warunki wystarczające: wszystkie atrybuty kluczowe, brak zależności tranzytywnych.

Zasady projektowania Jeden obiekt jedna tablica. Atrybuty!= obiekty. Atomiczność atrybutów. Atrybuty tylko raz, przy swoim obiekcie. Encje asocjacyjne osobne tablice. Dekompozycja M:N do 1:N. Eliminacja redundancji.

Denormalizacja Optymalizacja wydajności operacji odczytu przez wprowadzenie danych nadmiarowych lub grup danych. Baza zdenormalizowana to nie to samo, co baza, której nie poddano normalizacji.

Denormalizacja Widoki zmaterializowane, m.in.: przechowywanie liczników N obiektów jako atrybutów tabeli 1 w relacjach 1:N, dodawanie atrybutów z innej tabeli. Schematy gwiaździste. Prekompilacja kostek OLAP.