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

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

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

Normalizacja baz danych

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

1 Przygotował: mgr inż. Maciej Lasota

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.

Pierwsza postać normalna

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

Technologia Informacyjna

Normalizacja baz danych

Projektowanie Systemów Informacyjnych

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

Związki pomiędzy tabelami

Pierwsza postać normalna

Baza danych. Baza danych to:

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Autor: Joanna Karwowska

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

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Bazy danych 3. Normalizacja baz danych

METODY INŻYNIERII WIEDZY

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

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

Bazy Danych i Usługi Sieciowe

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

Bazy danych. Andrzej Łachwa, UJ, /15

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

Wykład 2. Relacyjny model danych

Pojęcie zależności funkcyjnej

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

Systemy baz danych. Notatki z wykładu

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

Normalizacja relacji

Technologie baz danych

SZTUCZNA INTELIGENCJA

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

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

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

Bazy danych i usługi sieciowe

Cel normalizacji. Tadeusz Pankowski

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

Przykłady normalizacji

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

TRANSFORMACJE I JAKOŚĆ DANYCH

METODY INŻYNIERII WIEDZY

WPROWADZENIE DO BAZ DANYCH

Bazy danych Karta pracy 1

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

METODY INŻYNIERII WIEDZY

Normalizacja schematów logicznych relacji

2. Tabele w bazach danych

WPROWADZENIE DO BAZ DANYCH

PTI S1 Tabele. Tabele. Tabele

Postać normalna Boyce-Codd (BCNF)

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

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

Posługiwanie się tabelami

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

Projektowanie relacyjnych baz danych

Tworzenie bazy danych na przykładzie Access

MS Access Projektowanie c.d. i kwerendy

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

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

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

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

Adrian Horzyk

Podstawowe zagadnienia z zakresu baz danych

Baza danych. Modele danych

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

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

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

1 Wstęp do modelu relacyjnego

Normalizacja tabel POSTACIE NORMALNE TABEL

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

KATOLICKI UNIWERSYTET LUBELSKI. Projekt Bazy Danych. Maciej Lis K A T O L I C K I U N I W E R S Y T E T L U B E L S K I

Projektowanie baz danych

Bazy danych. Zasady konstrukcji baz danych

Zależności funkcyjne pierwotne i wtórne

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

Relacyjne bazy danych

Literatura. Bazy danych s.1-1

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

Projektowanie relacyjnych baz danych

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

Program nauczania. Systemy baz danych. technik informatyk

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

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

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

Zależności funkcyjne

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

Model relacyjny bazy danych

Bazy danych. Andrzej Łachwa, UJ, /15

INFORMATYKA W ZARZĄDZANIU LOTNICTWEM -LABORATORIUM

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. 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 stroni 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ę

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?

BAZY DANYCH