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

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

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

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

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

Normalizacja baz danych

1 Przygotował: mgr inż. Maciej Lasota

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

Technologia informacyjna

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

Normalizacja relacyjnych baz danych. Sebastian Ernst

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

Baza danych. Baza danych to:

Projektowanie Systemów Informacyjnych

Związki pomiędzy tabelami

Normalizacja baz danych

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

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

Technologia Informacyjna

Pierwsza postać normalna

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

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Autor: Joanna Karwowska

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

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Pierwsza postać normalna

METODY INŻYNIERII WIEDZY

Bazy danych 3. Normalizacja baz danych

Wykład 2. Relacyjny model danych

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

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

Bazy Danych i Usługi Sieciowe

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

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

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

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

SZTUCZNA INTELIGENCJA

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

Systemy baz danych. Notatki z wykładu

Bazy danych. Andrzej Łachwa, UJ, /15

TRANSFORMACJE I JAKOŚĆ DANYCH

Cel normalizacji. Tadeusz Pankowski

WPROWADZENIE DO BAZ DANYCH

BAZY DANYCH. Microsoft Access NAWIGACJA, MENU I PARAMETRY WYSZUKIWANIA. Adrian Horzyk. Akademia Górniczo-Hutnicza

Pojęcie zależności funkcyjnej

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

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Normalizacja. Pojęcie klucza. Cel normalizacji

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

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Technologie baz danych

Normalizacja relacji

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

2. Tabele w bazach danych

METODY INŻYNIERII WIEDZY

WPROWADZENIE DO BAZ DANYCH

Wykład XII. optymalizacja w relacyjnych bazach danych

METODY INŻYNIERII WIEDZY

Bazy danych i usługi sieciowe

Normalizacja schematów logicznych relacji

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Pojęcie bazy danych. Funkcje i możliwości.

PTI S1 Tabele. Tabele. Tabele

Bazy danych. Zasady konstrukcji baz danych

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

Przykłady normalizacji

Program nauczania. Systemy baz danych. technik informatyk

Uzupełnij pola tabeli zgodnie z przykładem poniżej,

Baza danych. Modele danych

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

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

Postać normalna Boyce-Codd (BCNF)

Tworzenie bazy danych na przykładzie Access

Bazy danych Karta pracy 1

1 Wstęp do modelu relacyjnego

Posługiwanie się tabelami

BAZY DANYCH. NIERELACYJNE BAZY DANYCH NoSQL I ASOCJACYJNE STRUKTURY DANYCH. Adrian Horzyk. Akademia Górniczo-Hutnicza

Podstawowe zagadnienia z zakresu baz danych

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

BAZY DANYCH. Microsoft Access. Adrian Horzyk OPTYMALIZACJA BAZY DANYCH I TWORZENIE INDEKSÓW. Akademia Górniczo-Hutnicza

Projektowanie relacyjnych baz danych

ORGANIZACJA I ZARZĄDZANIE INFORMACJĄ W BAZIE DNYCH. podstawowe pojęcia.

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

RELACYJNE BAZY DANYCH

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Etap 1 Projektowanie tabeli która będzie przechowywać informacje na temat książek.

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Normalizacja tabel POSTACIE NORMALNE TABEL

Wprowadzenie do baz danych

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

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

Adrian Horzyk

MS Access Projektowanie c.d. i kwerendy

Relacyjne bazy danych

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

Literatura. Bazy danych s.1-1

Plan wykładu. Problemy w bazie danych. Problemy w bazie danych BAZY DANYCH

Zależności funkcyjne pierwotne i wtórne

Projektowanie baz danych

Relacyjne bazy danych

Transkrypt:

BAZY DANYCH Microsoft Access NORMALIZACJA BAZ DANYCH Adrian Horzyk Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i Inżynierii Biomedycznej Laboratorium Biocybernetyki 30-059 Kraków, al. Mickiewicza 30, paw. C3/205 horzyk@agh.edu.pl, Google: Adrian Horzyk

TWORZENIE BAZ DANYCH Polega na identyfikacji i opisie obiektów świata rzeczywistego poprzez cechy je identyfikujące, a następnie na ich zapisywaniu w oddzielnych tabelach powiązanych relacjami wynikającymi z rzeczywistych relacji pomiędzy tymi obiektami. Takie podejście jest podstawowe, lecz niewystarczające do prawidłowego działania bazy danych gromadzącej wiele danych!

NORMALIZACJA BAZ DANYCH GŁÓWNE CELE NORMALIZACJI: Odnaleźć i pogrupować specyficzne cechy poszczególnych obiektów. Usunąć nadmiarowe dane poprzez agregację takich samych danych i usunięcie wszystkich ich duplikatów. Zdefiniowanie unikalnych identyfikatorów dla wszystkich rekordów we wszystkich tabelach i wyeliminowanie niekorzystnych zależności funkcyjnych w tabelach. Uniknięcie anomalii wstawiania, usuwania i aktualizacji rekordów. Uniknięcia błędów niespójności danych. Poprawnego określenia zależności i więzów integralności pomiędzy danymi w tabelach w celu zapewnienia prawidłowej aktualizacji, dodawania i usuwania rekordów pokrewnych.

RODZAJE ANOMALII 1. Anomalie przy wstawianiu nowego rekordu powodujące dezaktualizację innego pola. 2. Anomalie przy usuwaniu rekordu powodujące usunięcie większej ilości danych niż zamierzaliśmy, tj. danych które mogą być potrzebne gdzie indziej wylewanie dziecka z kąpielą albo konieczność kaskadowego usunięcia innych rekordów. 3. Anomalie przy modyfikowaniu rekordu powodujące konieczność kaskadowej aktualizacji również innych rekordów. 4. Redundancja przechowywanych danych powstająca na skutek powielania reprezentacji obiektów lub ich części w kilku krotkach (rekordach) tabel.

PRZYKŁADY ANOMALII Czy możemy dodać nowego studenta, jeśli nie uzyskał zaliczenia? Nie, musimy poczekać z wpisem do jego uzyskania! ANOMALIA DODAWANIA Co będzie, gdy usuniemy studenta Morczyka Jana, który zrezygnował ze studiów? Stracimy informację o wykładowcy dr J. Wojtowiczu! ANOMALIA USUWANIA Co będzie, gdy zmienimy wykładowcę dr inż. M. Święcickiego? Musimy zaktualizować również pola NrWykład i Stopień! ANOMALIA AKTUALIZACJI

ETAPY NORMALIZACJI BAZY DANYCH Proces normalizacji bazy danych składa się z kilku etapów: 1. Zebranie danych 2. Przekształcenie do pierwszej postaci normalnej (1NF) 3. Przekształcenie do drugiej postaci normalnej (2NF) 4. Przekształcenie do trzeciej postaci normalnej (3NF) 5. Przekształcenie do postaci normalnej Boyce a-codd a (BCNF) 6. Przekształcenie do czwartej postaci normalnej (4NF MVD Multivalued Dependencies) 7. Przekształcenie do piątej postaci normalnej (5NF PJ/NF Project-Join Normal Form) 8. DK/NF Domain Key/Normal Form 9. ANF - Associative Normal Form Zwykle tablice po 3NF są już pozbawione anomalii, lecz jeśli tak nie jest, to należy/można wykonać kolejne etapy normalizacji. Każdy etap procesu normalizacji zakłada wykonanie wszystkich wcześniejszych etapów normalizacji.

Proces normalizacji dekompozycji odwracalnej Proces normalizacji to proces podziału tabel baz danych usuwający anomalie. Dokonujemy odwracalnego i bezstratnego rozkładu tabel zwanego dekompozycją odwracalną lub rozkładem odwracalnym. Dekompozycja odwracalna: usuwa redundancję z relacji, można ją odwrócić poprzez naturalne łączenie za pośrednictwem kluczy głównych i obcych, powinna doprowadzić relacje do tzw. postaci normalnej, nie powinna spowodować utraty zależności istniejących w relacji pierwotnej.

Zależności funkcyjne i niefunkcyjne W celu dokonania dekompozycji tabel w trakcie normalizacji należy określić tzw. zależności funkcyjne i niefunkcyjne (wielowartościowe). Dwa atrybuty A i B są w związku zależności (determinowania), jeśli pewne wartości B występują zawsze z pewnymi wartościami A. B jest funkcyjnie zależny od A, jeżeli dla każdej wartości A istnieje jednoznacznie określona wartość B. B jest niefunkcyjnie zależny od A, jeżeli dla każdej wartości A istnieje ograniczony zbiór wartości B powiązanych z A. Zależność funkcyjna (determinowanie) między atrybutami wskazuje kierunek tego związku, tzn.: Jeżeli A determinuje B, to związek funkcyjny zachodzi od A do B, wtedy też A jest determinantem, czyli B jest funkcyjnie zależne od A. Jeżeli B determinuje A, to związek funkcyjny zachodzi od B do A, wtedy też B jest determinantem, czyli A jest funkcyjnie zależne od B.

Zależności funkcyjne i niefunkcyjne PRZYKŁAD zależności funkcyjnej: Pomiędzy NrStud i Student istnieje zależność funkcyjna. Pomiędzy NrWykład i Wykładowca istnieje zależność funkcyjna. PRZYKŁAD zależności niefunkcyjnej: Pomiędzy Przedmiot i Wykładowca istnieje zależność funkcyjna. Etapy normalizacji: 1NF, 2NF, 3NF i BCNF dotyczą zależności funkcyjnych, 4NF i 5NF dotyczą zależności niefunkcyjnych.

Zależności funkcyjne Zależności funkcyjne wynikają z rzeczywistych relacji pomiędzy atrybutami, które czasami nie można automatycznie określić poprzez analizę danych w tabelach, szczególnie jeśli danych jest niewiele. Automatyczna analiza tabel może prowadzić do nadmiarowego i nieprawdziwego określenia zależności funkcyjnych, a w skutek tego może doprowadzić do niepoprawnej normalizacji bazy danych. Określenie zależności funkcyjnych wymaga zrozumienia danych i zależności pomiędzy nimi. Zależności funkcyjne mogą być pozorne, powodując błędne działanie bazy danych, jeśli nie zostały prawidłowo zidentyfikowane. Zależności funkcyjne określane są pomiędzy atrybutami tabel, a nie poszczególnymi instancjami danych (rekordami). Mogą być jednak określane również pomiędzy grupami atrybutów, a nie tylko pojedynczymi atrybutami, np. jeśli pole = szerokość x wysokość, wtedy wartość pole jest funkcyjnie zależne zarówno od pola szerokość, jak również od pola wysokość. Zależności funkcyjne spełniają regułę przechodniości, tzn. jeśli A jest funkcyjnie zależne od B oraz B jest funkcyjnie zależne od C, tzn. że A jest funkcyjnie też zależne od C.

Pierwsza postać normalna 1NF Relacja jest w pierwszej postaci normalnej (1NF) wtedy i tylko wtedy, gdy każdy atrybut tabeli (kolumna) jest wartością elementarną (atomową, niepodzielną) oraz nie zawiera kolekcji, czyli powtarzających się grup danych. Tabela w 1NF ma zdefiniowany klucz główny. Wszystkie wartości atrybutów muszą być elementarne (niepodzielne/atomowe). Atomowość oznacza istnieje tylko jednej wartości każdym polu tabeli, tzn. wyklucza się możliwość istnienia wielu wartości w polu, np. macierzy, list lub innych pól o własnej strukturze. Zabrania się też istnienia powtarzających się grup danych, nawet jeśliby były one rozłożone w wielu kolumnach.

Pierwsza postać normalna 1NF Wyeliminowanie list wartości można dokonać poprzez podział tabeli bądź tak jak w poniżej tabeli.

Pierwsza postać normalna 1NF W Hurtowniach Danych przechowuje się zwykle ogromne ilości informacji, co powoduje, iż mechanizmy bazodanowe łączenia danych z wielu tabel są mało efektywne. Z tego też powodu często pozostawia się tabele w pierwszej postaci normalnej 1NF, jeśli służą one głównie do odczytu danych. Można też utworzyć projekcje łączące znormalizowanych tabel, w celu przyspieszenia dostępu do często odczytywanych danych.

Druga postać normalna 2NF Relacja jest w drugiej postaci normalnej (2NF) wtedy i tylko wtedy, gdy jest w 1NF oraz każdy niekluczowy atrybut tabeli (kolumna) jest w zależny funkcyjnie od całego klucza głównego. Tabele w 2NF powinny przechowywać dane dotyczące tylko jednego obiektu, który jest identyfikowany przez klucz główny. Niekluczowe kolumny (atrybuty) w 2NF nie mogą być funkcyjnie zależne tylko od części klucza głównego w sytuacji, gdy klucz główny zdefiniowany jest jako kombinacja kilku kolumn, np. jeśli tabela definiuje klucz główny jako imię i nazwisko i zawiera informację o płci, która zależy potencjalnie tylko od imiona (tzn. części klucza głównego), wtedy nie jest w 2. postaci normalnej. Jeśli np. stopień jest zależny od Wykładowcy, nie jest zależny od klucza głównego.

Trzecia postać normalna 3NF Relacja jest w trzeciej postaci normalnej (3NF) wtedy i tylko wtedy, gdy jest w 2NF oraz każdy atrybut niekluczowy jest w bezpośrednio funkcyjnie zależny od klucza głównego. Tabele w 3NF powinny przechowywać dane wzajemnie niezależne, jeśli nie definiują klucza głównego tej tabeli, tzn. atrybuty nie będące kluczem są od siebie funkcyjnie niezależne. 3NF eliminuje przechodniość w funkcyjnej zależności od klucza głównego. Jeśli np. w tabeli występuje imię, nazwisko, stanowisko i stawka wynagrodzenia, a kluczem głównym jest imię i nazwisko, które jest ma przypisane stanowisko, a stawka wynagrodzenia zależna jest od stanowiska, wtedy tabela nie jest w 3NF, gdyż występuje pośrednia zależność stawki od klucza głównego.

Metoda Bernsteina transformacji do 3FN 1. Przekształć każdą zależność tak, aby po prawej stronie był tylko jeden atrybut. 2. Wyeliminuj powtarzające się zależności. 3. Przekształć zależność tak, aby żaden podzbiór atrybutów stojący po lewej stronie nie określał prawej strony zależności. 4. Połącz zależności z takimi samymi lewymi stronami. 5. Znajdź klucz dla relacji pierwotnej. Jeżeli żaden z kluczy nie jest zawarty w zbiorach z poprzedniego kroku, wtedy utwórz nowy zbiór z atrybutami klucza. 6. Jeżeli jakiś nowo utworzony zbiór jest rzutem (projekcją) innego, to wyeliminuj ten zbiór.

Przykład normalizacji POSTAĆ NIEZNORMALIZOWANA POSTAĆ 1. NORMALNA

POSTAĆ 1. NORMALNA Przykład normalizacji POSTAĆ 2. NORMALNA Przy założeniu, że Nazwisko i Imię są kluczem, Płeć nie jest zależna od całego klucza głównego, lecz tylko od jednej jego części tj. Imię. Jeśli stosujemy automatycznie generowane klucze główne jednoatrybutowe, wtedy w naturalny sposób uzyskujemy zależność od całego klucza głównego!

Przykład normalizacji POSTAĆ 2. NORMALNA POSTAĆ 3. NORMALNA

Przykład 1 i 2 Czy coś w tej tabeli nie spełnia postaci normalnej: 1NF, 2NF lub 3NF?

Przykład 3 Czy coś w tej tabeli nie spełnia postaci normalnej: 1NF, 2NF lub 3NF?

Przykład 4 Czy coś w tej tabeli nie spełnia postaci normalnej: 1NF, 2NF lub 3NF?

Przykład 5 Czy coś w tej tabeli nie spełnia postaci normalnej: 1NF, 2NF lub 3NF?

ZALETY NORMALIZACJI: Wady i zalety normalizacji zmniejszenie ogólnej liczby danych przechowywanych w bazach rozwiązanie problemów anomalii dodawania, modyfikacji i usuwania informacji (rekordów) z bazy przyspieszenie wykonywania części zapytań większa efektywność przechowywania danych w tabelach wąskie tabele są efektywniej przetwarzanie i składowanie ich na dysku oraz wymagają mniejszej ilości operacji wejścia/wyjścia (I/O) lepsze zarządzanie transakcjami szybsze wykonywanie aktualizacji, mniej blokad w dostępnie do danych skrócenie czasu odczytu WADY NORMALIZACJI: spowolnienie wykonania części zapytań (wymagających wielu złączeń)

BAZY DANYCH PRZYDATNE LINKI: http://www.sqlpedia.pl/projektowanie-i-normalizacja-bazy-danych/ https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf