Normalizacja baz danych

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

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

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

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

Pierwsza postać normalna

Związki pomiędzy tabelami

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

Normalizacja relacyjnych baz danych. Sebastian Ernst

Projektowanie bazy danych przykład

Bazy danych. Andrzej Łachwa, UJ, /15

Technologia informacyjna

Projektowanie Systemów Informacyjnych

Normalizacja. Pojęcie klucza. Cel normalizacji

Pierwsza postać normalna

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

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

Pojęcie zależności funkcyjnej

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

WYKŁAD 1. Wprowadzenie do problematyki baz danych

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

Normalizacja schematów logicznych relacji

Normalizacja baz danych

Baza danych. Baza danych to:

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

Zależności funkcyjne pierwotne i wtórne

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

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

Bazy Danych i Usługi Sieciowe

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

Bazy danych i usługi sieciowe

Cel normalizacji. Tadeusz Pankowski

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

Przykłady normalizacji

Relacyjny model danych

KARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem

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

Normalizacja tabel POSTACIE NORMALNE TABEL

1 Przygotował: mgr inż. Maciej Lasota

Postać normalna Boyce-Codd (BCNF)

Bazy danych 3. Normalizacja baz danych

Model relacyjny bazy danych

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

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

Bazy danych w sterowaniu

Technologia Informacyjna

Grupa kursów: Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30

WPROWADZENIE DO BAZ DANYCH

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

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

Systemy baz danych. Notatki z wykładu

Bazy danych. Andrzej Łachwa, UJ, /15

MS Access Projektowanie c.d. i kwerendy

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

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

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

Program nauczania. Systemy baz danych. technik informatyk

Egzamin / zaliczenie na ocenę* 0,5 0,5

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

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

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Konstruowanie Baz Danych Wprowadzenie do projektowania. Normalizacja

Autor: Joanna Karwowska

Biblioteka. Bazy danych I dokumentacja projektu. Cel projektu:

Projektowanie relacyjnych baz danych

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

Baza danych. Modele danych

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

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

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

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

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

1 Wstęp do modelu relacyjnego

Projektowanie baz danych

Autor: Joanna Karwowska

Literatura. Bazy danych s.1-1

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

Projektowanie relacyjnych baz danych

W poniŝszej tabeli zestawiono charakterystyki poszczególnych postaci normalnych bazy.

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

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

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Bazy Danych. Projektowanie. Normalizacja. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Projekt małej Bazy Danych.

Technologie baz danych

Bazy Danych 2008 Część 1 Egzamin Pisemny

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

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Dekompozycja w systemach wyszukiwania informacji

Normalizacja relacji

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

Bazy danych wykład trzeci. trzeci Przekształcenie modelu ER na model relacyjny 1 / 19

Bazy danych. Algebra relacji

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

Bazy Danych. Modele danych. Krzysztof Regulski WIMiIP, KISiM,

Wykład I. Wprowadzenie do baz danych

ZSE - Systemy baz danych 1 ZASADY PROJEKTOWANIA BAZ DANYCH

Technologie baz danych

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

Transkrypt:

Wrocławska Wyższa Szkoła Informatyki Stosowanej Normalizacja baz danych Dr hab. inż. Krzysztof Pieczarka Email: krzysztof.pieczarka@gmail.com

Normalizacja relacji ma na celu takie jej przekształcenie, by nie posiadała ona cech niepożądanych. Normalizacja polega na dekompozycji relacji na mniejsze schematy relacji. Proces normalizacji musi posiadać następujące własności: żaden atrybut (składowa definicyjna encji) nie może ulec zagubieniu w trakcie tego procesu, dekompozycja relacji nie może prowadzić do utraty informacji wszystkie (pożądane) zależności funkcyjne (głównie semantyczne) są reprezentowane w otrzymanych mniejszych schematach relacji.

Weźmy dla przykładu relację opisującą zajęcia odbywające się na uczelni w jednym semestrze. Relacja ta może zawierać następujące atrybuty: nazwa przedmiotu, imię, nazwisko, adres prowadzącego

Przykładowa krotka takiej relacji mogłaby mieć postać: (język angielski, Lucyna, Nowak, ul. Królewska 30/3 Kraków)

Jednak z tak zaprojektowaną relacją związane są następujące anomalia: adres składający się z kilku części nie został podzielony w związku z tym nie jest możliwe sprawdzenie ile osób mieszka w Krakowie i nie potrzebuje hotelu; jeden prowadzący może mieć zajęcia z kilku przedmiotów, w związku z tym występuje redundancja danych; zmiana jednej z informacji o prowadzącym (np. adresu) powoduje konieczność zmiany wszystkich krotek zawierających te dane w celu zachowania integralności; nie jest możliwe wprowadzenie informacji o prowadzącym, który w aktualnym semestrze nie ma żadnych zajęć; usunięcie przedmiotu może spowodować również usunięcie wszelkich informacji o osobie, która go prowadziła.

Utrzymanie integralności takiej bazy nie jest więc proste. Jednak opisaną relację można zamienić na dwie inne, które nie będą posiadały tych wad: relacja Prowadzący: (identyfikator, imię, nazwisko, kod pocztowy, miejscowość, ulica, nr_domu, nr_mieszkania) relacja Zajęcia (nazwa, id_prowadzącego)

Te dwie relacje nie posiadają opisanych wcześniej cech niepożądanych ponieważ: adres jest zdekomponowany na części składowe, w związku z czym możliwe jest wyszukiwanie danych np. według miejscowości zamieszkania prowadzącego; zmiana informacji o prowadzącym (np. adresu) nie powoduje konieczności zmian danych w relacji "Zajęcia". Zmiana ta odbywa się tylko w jednym miejscu; możliwe jest wprowadzenie informacji o osobie, która nie ma zajęć w aktualnym semestrze, ale być może będzie je miała w semestrze następnym; usunięcie przedmiotu nie powoduje usunięcia informacji o osobie, która go prowadziła.

Jednak taka reprezentacja danych posiada wady podobne do opisanych wcześniej, ale dotyczące przedmiotów. Dlatego w dobrze zaprojektowanej bazie danych konieczne jest wydzielenie trzeciej tabeli, która będzie zawierała spis przedmiotów.

Postaci normalne - określają stopień dekompozycji bazy danych. W odróżnieniu od schematu procesu projektowania bazy danych z góry do dołu (ang. top down od ogółu do szczegółów), normalizacja jest uznawana niekiedy za odrębną metodologię projektowania typu z dołu do góry (ang. bottom up, tzn. od szczegółów do uogólnień). W swojej pracy na temat relacyjnego modelu danych E.F.Codd sformułował reguły projektowania relacyjnych baz danych. Reguły te zostały pierwotnie nazwane postaciami normalnymi. Codd opisał trzy postacie normalne oznaczane często symbolami 1NF, 2NF, 3NF. Proces kolejnego przekształcania projektu bazy danych przez te trzy postacie normalne jest znany jako normalizacja bazy danych.

W połowie lat siedemdziesiątych spostrzeżono pewne niedostatki w trzeciej postaci normalnej Codd a i zdefiniowano mocniejszą postać normalną, znaną jako postać normalna Boyce'a-Codda. Później Fagin przedstawił czwartą postać normalną, i piątą postać normalną. Jest pięć (ale jedna z nich dodatkowo ma dwa warianty!) postaci normalnych: (I, II, III, III B-C, IV, V). Zwykle doprowadzenie bazy danych do trzeciej postaci normalnej wystarcza do uznania schematów relacji za dobre do implementacji.

Pierwsza postać normalna Relacja jest w pierwszej postaci normalnej, jeśli wartości atrybutów są elementarne tzn. są to pojedyncze wartości określonego typu, a nie zbiory wartości.

Pierwsza postać normalna jest konieczna aby, tabelę można było nazwać relacją. Większość systemów baz danych nie ma możliwości zbudowania tabel nie będących w pierwszej postaci normalnej.

Przekształcenie z postaci nie znormalizowanej do pierwszej postaci normalnej ilustruje rysunek:

Druga postać normalna Relacja jest w drugiej postaci normalnej, jeżeli każdy atrybut wtórny (tzn. nie wchodzący w skład żadnego klucza potencjalnego) tej relacji jest w pełni funkcjonalnie zależny od wszystkich kluczy potencjalnych tej relacji.

Można zauważyć, że relacja "Zamówienia" nie jest w drugiej postaci normalnej, ponieważ atrybuty "Id dostawcy", "Nazwa dostawcy", "Adres dostawcy" i "Nazwa części" nie są w pełni funkcjonalnie zależne od jedynego klucza potencjalnego - pary ("Nr zamówienia", "Id części").

W celu sprowadzenia relacji do drugiej postaci normalnej, należy podzielić ją na takie relacje, których wszystkie atrybuty będą w pełni funkcjonalnie zależne od kluczy. W tym celu przykładową relację "Zamówienia" należy podzielić na trzy relacje: "Dostawca na zamówieniu", "Zamówione dostawy", "Części" w następujący sposób:

Jak widać wszystkie te trzy relacje są w drugiej postaci normalnej, ponieważ klucze relacji "Dostawca na zamówieniu" oraz "Części" są kluczami prostymi, natomiast atrybut "Ilość" w relacji "Zamówione dostawy" jest w pełni funkcjonalnie zależny od klucza złożonego ("Nr zamówienia", "Id części"). Należy zauważyć, że relacja będąca w pierwszej postaci normalnej, jest równocześnie w drugiej postaci normalnej, jeśli wszystkie jej klucze potencjalne są kluczami prostymi.

Po przekształceniu relacji "Zamówienia" do drugiej postaci normalnej otrzymujemy następujące zależności funkcjonalne: Dostawca na zamówieniu Zamówione dostawy Części

Trzecia postać normalna Dana relacja jest w trzeciej postaci normalnej, jeśli jest ona w drugiej postaci normalnej i każdy jej atrybut nie wchodzący w skład żadnego klucza potencjalnego nie jest przechodnio funkcjonalnie zależny od żadnego klucza potencjalnego tej relacji.

Aby doprowadzić relację, której atrybuty pozostają w przechodniej zależności funkcjonalnej, należy podzielić ją na relacje zawierające tylko zależność funkcjonalną. Podział relacji ilustruje rysunek:

W opisywanym przykładzie przechodnia zależność funkcjonalna występuje pomiędzy atrybutami "Nazwa dostawcy" i "Adres dostawcy" a atrybutem "Nr zamówienia" w relacji "Dostawca na zamówieniu". W związku z tym konieczne jest dokonanie podziału relacji "Dostawca na zamówieniu" na dwie relacje: "Zamówienia" i "Dostawcy" w następujący sposób:

Podsumowanie Przekształcenie relacji do kolejnych postaci normalnych wiąże się najczęściej ze zmniejszeniem ilości pamięci potrzebnej do przechowania informacji. Proces normalizacji ma na celu takie przekształcenie relacji, by uniknąć dublowania informacji. Unikanie powtórzeń pozwala na łatwiejsze i w wielu przypadkach szybsze posługiwanie się bazą danych.