Normalizacja baz danych



Podobne dokumenty
Technologia informacyjna

1 Przygotował: mgr inż. Maciej Lasota

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

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

Normalizacja relacyjnych baz danych. Sebastian Ernst

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

Baza danych. Baza danych to:

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

Normalizacja tabel POSTACIE NORMALNE TABEL

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

Związki pomiędzy tabelami

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Normalizacja baz danych

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

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

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

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

Technologia Informacyjna

Projektowanie bazy danych przykład

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

Dział Temat lekcji Ilość lekcji. godz. 1 Organizacja zajęć Omówienie programu nauczania 3

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

Tworzenie bazy danych na przykładzie Access

2. Tabele w bazach danych

Pierwsza postać normalna

Pierwsza postać normalna

Autor: Joanna Karwowska

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

WPROWADZENIE DO BAZ DANYCH

Projektowanie Systemów Informacyjnych

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

Import danych z plików Excel. (pracownicy, limity urlopowe i inne)

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

Aktualizacja baz danych systemu qs-stat

Wykład 2. Relacyjny model danych

Program nauczania. Systemy baz danych. technik informatyk

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

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0

ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 5.0

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

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

MS Access Projektowanie c.d. i kwerendy

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

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

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów

Pytania SO Oprogramowanie Biurowe. Pytania: Egzamin Zawodowy

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

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

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

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

Podstawowe informacje o projekcie bazy danych

Krzysztof Kluza proste ćwiczenia z baz danych

PTI S1 Tabele. Tabele. Tabele

SIECI KOMPUTEROWE I BAZY DANYCH

Baza danych. Modele danych

2017/2018 WGGiOS AGH. LibreOffice Base

Bazy danych TERMINOLOGIA

Cel normalizacji. Tadeusz Pankowski

Zwróćmy uwagę w jakiej lokalizacji i pod jaką nazwą zostanie zapisana baza (plik z rozszerzeniem *.accdb). Nazywamy

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

RELACYJNE BAZY DANYCH

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

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

Bazy danych - wykład wstępny

Normalizacja. Pojęcie klucza. Cel normalizacji

Projekt małej Bazy Danych.

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

OPRACOWANIE: SŁAWOMIR APANOWICZ

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

ECDL/ICDL Zaawansowane użytkowanie baz danych Moduł A3 Sylabus, wersja 2.0

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

Pojęcie zależności funkcyjnej

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

1. Zarządzanie informacją w programie Access

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

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Baza danych to zbiór wzajemnie powiązanych ze sobą i zintegrowanych danych z pewnej dziedziny.

Projektowanie internetowej bazy danych część 1

Posługiwanie się tabelami

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Bazy danych. Zasady konstrukcji baz danych

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

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Zajęcia 1. W następnej tabeli zebrane są dane używane w bibliotece, które są przetwarzane przez bibliotekarza w różnych fazach obsługi czytelnika.

Bazy danych. Andrzej Łachwa, UJ, /15

Projektowanie relacyjnych baz danych

Jak zacząć korzystać w HostedExchange.pl ze swojej domeny

Haszowanie (adresowanie rozpraszające, mieszające)

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

Word. Korespondencja seryjna

Systemy GIS Systemy baz danych

Wykład II. dr Artur Bartoszewski Wydział Nauczycielski, Kierunek Pedagogika Wprowadzenie do baz danych

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

Model relacyjny bazy danych

Normalizacja relacji

Budowa aplikacji ASP.NET współpracującej z bazą dany do obsługi przesyłania wiadomości

Konspekt do lekcji informatyki dla klasy II gimnazjum. TEMAT(1): Baza danych w programie Microsoft Access.

OpenOfficePL. Zestaw szablonów magazynowych. Instrukcja obsługi

Zintegrowany System Zarządzania Biblioteką SOWA2/MARC21 OBSŁUGA CZASOPISM

Transkrypt:

Normalizacja baz danych Definicja 1 1 Normalizacja to proces organizowania danych w bazie danych. Obejmuje to tworzenie tabel i ustanawianie relacji między tymi tabelami zgodnie z regułami zaprojektowanymi w celu zarówno ochrony danych, jak i zapewnienia większej elastyczności bazy danych przez wyeliminowanie nadmiarowości i niespójnych zależności. Definicja 2 Normalizacja bazy danych jest to proces mający na celu eliminację powtarzających się danych w relacyjnej bazie danych. Główna idea polega na trzymaniu danych w jednym miejscu, a w razie potrzeby linkowania do danych. Taki sposób tworzenia bazy danych zwiększa bezpieczeństwo danych i zmniejsza ryzyko powstania niespójności. Nadmiarowe dane zajmują dodatkowe miejsce na dysku i przyczyniają się do problemów z konserwacją. Gdy trzeba zmienić dane istniejące w więcej niż jednym miejscu, dane we wszystkich tych lokalizacjach należy zmienić w dokładnie taki sam sposób. Zmiana adresu klienta jest znacznie łatwiejsza, gdy te dane są przechowywane tylko w tabeli Klienci i nigdzie indziej w bazie danych. Co to jest niespójna zależność? Użytkownik intuicyjnie zagląda do tabeli Klienci, aby sprawdzić adres określonego klienta, ale nie zajrzy tam, aby sprawdzić wynagrodzenie pracownika dzwoniącego do tego klienta. Wynagrodzenie pracownika jest powiązane z pracownikiem (zależne od niego), więc powinno zostać przeniesione do tabeli Pracownicy. Niespójne zależności utrudniają dostęp do danych, ponieważ może brakować ścieżki do odnalezienia danych. Istnieje kilka reguł normalizacji bazy danych. Każda reguła jest nazywana postacią normalną. Jeśli pierwsza reguła jest przestrzegana, o bazie danych mówi się, że jest w pierwszej postaci normalnej. Jeśli pierwsze trzy reguły są przestrzegane, o bazie danych mówi się, że jest w trzeciej postaci normalnej. Chociaż są możliwe inne poziomy normalizacji, trzecia postać normalna jest uważana za najwyższy poziom niezbędny dla większości aplikacji. Tak jak w przypadku wielu formalnych reguł i specyfikacji, rzeczywiste scenariusze nie zawsze umożliwiają doskonałą zgodność. Normalizacja wymaga zwykle dodatkowych tabel i niektórzy klienci mogą uważać to za niewygodne. W razie decyzji o naruszeniu jednej z trzech pierwszych reguł normalizacji należy upewnić się, że aplikacja przewiduje wszelkie ewentualne problemy, na przykład nadmiarowe dane i niespójne zależności. Cel normalizacji: 1. Uniknięcie redundancji (tj. powtarzania się pól z identycznymi wartościami w różnych tabelach). 2. Wyeliminowanie niewygodnych relacji wieloznacznych. 3. Uniknięcie anomalii przy aktualizacji: modyfikacji, wstawianiu i usuwaniu. 4. Unikniecie niespójności. 1 http://support.microsoft.com/kb/283878/pl 1

Koszt: Mnożenie liczby tabel wydłużenie czasu dostępu do danych. Postacie Normalne Edgar Frank Codd (twórca normalizacji) początkowo wymyślił 3 postacie normalne: 1NF, 2NF i 3NF. Obecnie istnieją jeszcze inne postacie, ale 3NF jest powszechnie uznawana za wystarczającą do większości projektów. Pierwsza postać normalna 1NF Wyeliminuj powtarzające się grupy w poszczególnych tabelach. Utwórz osobną tabelę dla każdego zestawu powiązanych danych. Zidentyfikuj każdy zestaw powiązanych danych za pomocą klucza podstawowego. Nie należy używać wielu pól w jednej tabeli do przechowywania podobnych danych. Na przykład aby można było śledzić pozycję magazynową mogącą pochodzić z dwóch źródeł, rekord magazynu może zawierać pola na kod pierwszego dostawcy i na kod drugiego dostawcy. Co się stanie po dodaniu trzeciego dostawcy? Dodanie pola nie jest rozwiązaniem. Wymagałoby zmodyfikowania programu i tabeli, a ponadto nie jest sprawną metodą dodawania kolejnych dostawców. Zamiast tego najlepiej jest umieścić wszystkie informacje o dostawcach w osobnej tabeli o nazwie Dostawcy, a następnie połączyć magazyn z dostawcami za pomocą klucza numeru pozycji albo połączyć dostawców z magazynem za pomocą klucza kodu dostawcy. Druga postać normalna 2NF Utwórz osobne tabele dla zestawów wartości dotyczących wielu rekordów. Powiąż te tabele za pomocą klucza obcego. Rekordy nie powinny zależeć od niczego innego niż klucz podstawowy tabeli (jeśli jest to niezbędne, klucza złożonego). Rozważmy na przykład adres klienta w systemie księgowym. Adres jest potrzebny w tabeli Klienci, ale także w tabelach Zamówienia, Wysyłka, Faktury, Rozrachunki z odbiorcami i Pobory należności. Zamiast przechowywać adres klienta w osobnym wpisie w każdej z tych tabel, należy przechowywać go w jednym miejscu, w tabeli Klienci lub w osobnej tabeli Adresy. Trzecia postać normalna 3NF Wyeliminuj pola, które nie zależą od klucza. Wartości w rekordzie, które nie stanowią części klucza rekordu, nie powinny znajdować się w danej tabeli. Ogólnie w każdym przypadku, w którym zawartość grupy pól może dotyczyć więcej niż jednego rekordu w tabeli, należy rozważyć umieszczenie tych pól w osobnej tabeli. Na przykład w tabeli Rekrutacja pracowników można uwzględnić nazwę i adres uniwersytetu kandydata. Ale do wysyłek grupowych potrzebna jest pełna lista uniwersytetów. Jeśli informacje o uniwersytetach są przechowywane w tabeli Kandydaci, nie można utworzyć listy uniwersytetów bez bieżących kandydatów. Należy utworzyć osobną tabelę Uniwersytety i połączyć ją z tabelą Kandydaci za pomocą klucza kodu uniwersytetu. WYJĄTEK: stosowanie się do trzeciej postaci normalnej, chociaż teoretycznie pożądane, nie zawsze jest praktyczne. Jeśli jest używana tabela Klienci i trzeba wyeliminować wszelkie możliwe zależności między polami, należy utworzyć osobne tabele dla miast, kodów pocztowych, przedstawicieli 2

handlowych, klas klientów oraz wszelkich innych czynników, które mogą zostać zduplikowane w wielu rekordach. W teorii warto stosować normalizację. Jednak stosowanie wielu małych tabel może pogorszyć wydajność lub spowodować przekroczenie dozwolonej liczby otwartych plików lub pojemności pamięci. Niekiedy lepszym rozwiązaniem jest stosowanie trzeciej postaci normalnej tylko do danych często zmienianych. Jeśli pozostają jakieś pola zależne, projekt aplikacji powinien wymagać od użytkownika zweryfikowania wszystkich powiązanych pól po zmianie jednego z nich. Inne postacie normalizacji Czwarta postać normalna, nazywana też postacią BCNF (Boyce Codd Normal Form), i piąta postać normalna istnieją, ale rzadko są brane pod uwagę w rzeczywistych projektach. Zignorowanie tych reguł może skutkować projektem niedoskonałym, ale nie powinno wpływać na działanie. 2 Normalizowanie przykładowej tabeli W ramach tych czynności przedstawiono proces normalizowania fikcyjnej tabeli studentów. Tabela nieznormalizowana: Nr studenta Opiekun Pokój opiekuna Zajęcia 1 Zajęcia 2 Zajęcia 3 1022 Czarnecki 412 101-07 143-01 159-02 4123 Borkowski 216 201-01 211-02 214-01 1. Pierwsza postać normalna: brak powtarzających się grup 2 http://www.zie.pg.gda.pl/md/bazy_danych/przyklady_normalizacja.pdf 3

Tabele powinny mieć tylko dwa wymiary. Ponieważ jeden student może mieć kilka rodzajów zajęć, zajęcia powinny być wymienione w osobnej tabeli. Pola Zajęcia 1, Zajęcia 2 i Zajęcia 3 w powyższych rekordach sygnalizują problemy z projektem. W arkuszach kalkulacyjnych często jest używany trzeci wymiar, ale w tabelach nie powinno to mieć miejsca. Inną metodą przestawienia tego problemu jest relacja jeden-do-wielu: nie należy umieszczać strony jeden i strony wielu tej relacji w tej samej tabeli. Zamiast tego należy utworzyć inną tabelę w pierwszej postaci normalnej przez wyeliminowanie powtarzającej się grupy (Zajęcia nr), tak jak to pokazano poniżej: Nr studenta Opiekun Pokój opiekuna Nr zajęć 1022 Czarnecki 412 101-07 1022 Czarnecki 412 143-01 1022 Czarnecki 412 159-02 4123 Borkowski 216 201-01 4123 Borkowski 216 211-02 4123 Borkowski 216 214-01 2. Druga postać normalna: wyeliminowanie danych nadmiarowych W powyższej tabeli dla każdej wartości Nr studenta występuje wiele wartości Nr zajęć. Wartości Nr zajęć nie są funkcjonalnie zależne od klucza podstawowego Nr studenta, więc ta relacja nie jest w drugiej formie normalnej. W poniższych dwóch tabelach pokazano drugą formę normalną: Studenci: Nr studenta Opiekun 1022 Czarnecki 412 4123 Borkowski 216 Pokój opiekuna Rejestracja: Nr studenta Nr zajęć 1022 101-07 1022 143-01 1022 159-02 4123 201-01 4123 211-02 4123 214-01 3. Trzecia postać normalna: wyeliminowanie danych, które nie zależą od klucza W ostatniej tabeli wartości Pokój opiekuna są funkcjonalnie zależne od atrybutu Opiekun. 4

Rozwiązaniem jest przeniesienie tego atrybutu z tabeli Studenci do tabeli Wykładowcy, jak pokazano poniżej: Studenci: Nr studenta Opiekun 1022 Czarnecki 4123 Borkowski Wykładowcy: Nazwisko Pokój Wydział Czarnecki 412 42 Borkowski 216 42 Przykłady zastosowań normalizacji: Poniższe przykłady pochodzą z materiałów ze strony http://www.neurosoft.edu.pl/jbartman/bd- W3.pdf 5

6

7