Normalizacja bazy danych. WYKŁAD Piotr Ciskowski



Podobne dokumenty
Normalizacja relacyjnych baz danych. Sebastian Ernst

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

1 Przygotował: mgr inż. Maciej Lasota

Wykład 2. Relacyjny model danych

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

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

Związki pomiędzy tabelami

Technologia informacyjna

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

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

Baza danych. Baza danych to:

Technologie baz danych

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

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

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

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

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

1 Wstęp do modelu relacyjnego

Pierwsza postać normalna

Projektowanie Systemów Informacyjnych

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Autor: Joanna Karwowska

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

Normalizacja baz danych

Projektowanie baz danych

Cel normalizacji. Tadeusz Pankowski

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

WPROWADZENIE DO BAZ DANYCH

Wykład XII. optymalizacja w relacyjnych bazach danych

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

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

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

Bazy Danych i Usługi Sieciowe

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

Normalizacja baz danych

Sylabus do programu kształcenia obowiązującego od roku akademickiego 2014/15

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

Autor: Joanna Karwowska

Baza danych. Modele danych

Systemy baz danych. Notatki z wykładu

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

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

Bazy Danych. Model Relacyjny. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

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

Agnieszka Ptaszek Michał Chojecki

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

Technologie baz danych

BAZY DANYCH Podstawowe pojęcia

Bazy danych. Zasady konstrukcji baz danych

Jerzy Nawrocki, Wprowadzenie do informatyki

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

Bazy danych i usługi sieciowe

Technologia Informacyjna

Przykłady normalizacji

Pierwsza postać normalna

Model relacyjny. Wykład II

W A R S Z A W S K A W Y Ż S Z A S Z K O Ł A I N F O R M A T Y K I

Wprowadzenie do baz danych

Relacyjny model danych

Podstawowe informacje o bazach danych. Technologie Informacyjne

Normalizacja. Pojęcie klucza. Cel normalizacji

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

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

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

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

Bazy danych. Dr inż. Paweł Kasprowski

Projektowanie hurtowni danych i modelowanie wielowymiarowe

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

Bazy Danych i Systemy informacyjne Wykład 7. Piotr Syga

Bazy danych 3. Normalizacja baz danych

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Spis treści. 2. Przypomnienie najważniejszych pojęć z baz danych.

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

SIECI KOMPUTEROWE I BAZY DANYCH

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

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

WPROWADZENIE DO BAZ DANYCH

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

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

Pojęcie zależności funkcyjnej

Model relacyjny bazy danych

TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO

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

Literatura. Bazy danych s.1-1

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

ZSE - Systemy baz danych 1 ZASADY PROJEKTOWANIA BAZ DANYCH

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

Bazy Danych egzamin poprawkowy, 2012 rozwiazania

Lab.8: Podstawy języka SQL.

P o d s t a w y j ę z y k a S Q L

Program nauczania. Systemy baz danych. technik informatyk

Bazy Danych i Usługi Sieciowe

Posługiwanie się tabelami

Wprowadzenie do języka SQL

Bazy danych model relacyjny minimum? E. F. Codd za podstawę modelu baz danych przyjął pojęcie relacji obiektu ze świata matematyki.

SIECI KOMPUTEROWE I BAZY DANYCH

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Projektowanie baz danych

Transkrypt:

Normalizacja bazy danych WYKŁAD Piotr Ciskowski

Normalizacja danych o proces upraszczania danych do najbardziej efektywnej postaci efektywna = prosta efektywna wydajna o rozłożenie danych w pewien logiczny, niezawierający powtórzeń sposób, umożliwiający ponowne złożenie ich w całość

Normalizacja danych o proces upraszczania danych do najbardziej efektywnej postaci o rozłożenie danych w pewien logiczny, niezawierający powtórzeń sposób, umożliwiający ponowne złożenie ich w całość Edgar Frank Codd postaci normalne: 1NF first normal form 2NF 3NF 4NF 5NF BCNF Boyce-Codd normal form 6NF DKNF domain-key normal form

Normalizacja danych o proces upraszczania danych do najbardziej efektywnej postaci o rozłożenie danych w pewien logiczny, niezawierający powtórzeń sposób, umożliwiający ponowne złożenie ich w całość Edgar Frank Codd zagnieżdżane większość baz 3NF

Normalizacja danych o zanim zaczniemy każda tabela opisuje jedną encję wszystkie wiersze są unikalne i zawierają klucz podstawowy kolejność kolumn i wierszy nie ma znaczenia

1NF 1 POSTAĆ NORMALNA

1NF - pierwsza postać normalna o każda encja ma swój klucz główny o każdy klucz główny może mieć tylko jedną wartość, a nie zbiór wartości o baza nie zawiera powtarzających się grup

1NF - pierwsza postać normalna przykład studio nagraniowe - dane o wykonawcach i albumach Johnson, Jones. Modelowanie danych w SQL Server 2005 i 2008 baza z powtarzającymi się grupami: wykonawca gatunek album data wydania albumu The Awkward Stage rock Home 10.01.2006 Girth metal On the Sea 13.12.1997 Wasabi Peanuts country Spicy Legumes 11.08.2005 The Bobby Jenkins Band r&b Live! 07.03.1985 Running the Game 10.11.1988 Juices of Brazil latin jazz Long Road 01.01.2003 White 06.10.2005

1NF - pierwsza postać normalna baza bez powtarzających się grup rozwiązanie 1 niezbyt dobre: wykonawca gatunek album 1 data wydania albumu 1 album 2 data wydania albumu 2 The Awkward Stage rock Home 10.01.2006 NULL NULL Girth metal On the Sea 13.12.1997 NULL NULL Wasabi Peanuts country Spicy Legumes 11.08.2005 NULL NULL The Bobby Jenkins Band r&b Live! 07.03.1985 Running the Game 10.11.1988 Juices of Brazil latin jazz Long Road 01.01.2003 White 06.10.2005

1NF - pierwsza postać normalna baza bez powtarzających się grup rozwiązanie 2 lepsze: Albumy album data wydania wykonawca Home 10.01.2006 The Awkward Stage On the Sea 13.12.1997 Girth Spicy Legumes 11.08.2005 Wasabi Penuts Live! 07.03.1985 The Bobby Jenkins Band Running the Game 10.11.1988 The Bobby Jenkins Band Long Road 01.01.2003 Juices of Brazil White 06.10.2005 Juices of Brazil Wykonawcy wykonawca The Awkward Stage Girth Wasabi Peanuts The Bobby Jenkins Band Juices of Brazil gatunek rock metal country r&b latin jazz

2NF 2 POSTAĆ NORMALNA

2NF - druga postać normalna o 1 NF + o eliminacja zależności częściowych = wszystkie atrybuty niekluczowe mają być funkcyjnie zależne od całego klucza głównego

2NF - druga postać normalna przykład studio nagraniowe - dane o wykonawcach i albumach Johnson, Jones. Modelowanie danych w SQL Server 2005 i 2008 każdy wykonawca nagrywa tylko w jednym gatunku: Wykonawcy wykonawca The Awkward Stage Girth Wasabi Peanuts The Bobby Jenkins Band Juices of Brazil gatunek rock metal country r&b latin jazz

2NF - druga postać normalna rozwiązanie 1 - wykonawca nagrywa w kilku gatunkach: Wykonawcy wykonawca The Awkward Stage Girth Wasabi Peanuts The Bobby Jenkins Band The Bobby Jenkins Band Juices of Brazil Juices of Brazil gatunek rock metal country r&b soul latin jazz world beat

2NF - druga postać normalna rozwiązanie 1 - wykonawca nagrywa w kilku gatunkach + dane agenta niezgodne z 2NF: Wykonawcy wykonawca gatunek agent data podpisania główny tel. agenta The Awkward Stage rock Jan Nieznany 10.09.2005 (777) 555-1234 NULL dodatkowy tel. agenta Girth metal Stefan Sześciopak 31.10.1997 (777) 555-6789 (777) 555-0000 Wasabi Peanuts country Jan Nieznany 01.01.2005 (777) 555-1234 NULL The Bobby Jenkins Band r&b Johnny Jenkins 15.01.1985 (777) 555-1111 NULL The Bobby Jenkins Band soul Johnny Jenkins 25.07.1987 (777) 555-1111 NULL Juices of Brazil latin jazz Joanna Nieznana 01.06.2001 (777) 555-1235 (777) 555-9999 Juices of Brazil world beat Joanna Nieznana 01.08.2003 (777) 555-1235 (777) 555-9999

2NF - druga postać normalna rozwiązanie 1 - wykonawca nagrywa w kilku gatunkach + dane agenta zgodne z 2NF: - rozwiązanie oryginalne Wykonawcy wykonawca gatunek data podpisania The Awkward Stage rock 10.09.2005 Girth metal 31.10.1997 Wasabi Peanuts country 01.01.2005 The Bobby Jenkins Band r&b 15.01.1985 The Bobby Jenkins Band soul 25.07.1987 Juices of Brazil latin jazz 01.06.2001 Juices of Brazil worldagent beat 01.08.2003 Agenci wykonawca główny tel. agenta Jan Nieznany The Awckward Stage (777) 555-1234 NULL dodatkowy tel. agenta Stefan Sześciopak Girth (777) 555-6789 (777) 555-0000 Johnny Jenkins The Bobby Jenkins Band (777) 555-1111 NULL Joanna Nieznana Juices of Brazil (777) 555-1235 (777) 555-9999

2NF - druga postać normalna rozwiązanie 1 - wykonawca nagrywa w kilku gatunkach + dane agenta zgodne z 2NF: - rozwiązanie moje Wykonawcy wykonawca agent data podpisania The Awkward Stage Jan Nieznany 10.09.2005 Girth Stefan Sześciopak 31.10.1997 Wasabi Peanuts Jan Nieznany 01.01.2005 The Bobby Jenkins Band Johnny Jenkins 15.01.1985 Juices of Brazil Joanna Nieznana 01.06.2001 Agenci agent główny tel. agenta dodatkowy tel. agenta Jan Nieznany (777) 555-1234 NULL Stefan Sześciopak (777) 555-6789 (777) 555-0000 Johnny Jenkins (777) 555-1111 NULL Joanna Nieznana (777) 555-1235 (777) 555-9999

3NF 3 POSTAĆ NORMALNA

3NF - trzecia postać normalna o 3 NF 2 NF + eliminacja zależności przejściowych = żadne atrybuty niekluczowe nie zależą od innych atrybutów niekluczowych

3NF - trzecia postać normalna 1 NF: istnieje klucz 2 NF: eliminacja zależności częściowych 3 NF: eliminacja zależności przejściowych Klucz, cały klucz i tylko klucz Tak mi dopomóź, Codd

3NF - trzecia postać normalna rozwiązanie 1 - wykonawca nagrywa w kilku gatunkach + dane agenta zgodne z 2NF i z 3NF: Wykonawcy wykonawca gatunek data podpisania The Awkward Stage rock 10.09.2005 Girth metal 31.10.1997 Wasabi Peanuts country 01.01.2005 The Bobby Jenkins Band r&b 15.01.1985 The Bobby Jenkins Band soul 25.07.1987 Juices of Brazil latin jazz 01.06.2001 Agenci Juices of Brazil worldagent beat 01.08.2003 wykonawca główny tel. agenta dodatkowy tel. agenta Jan Nieznany The Awckward Stage (777) 555-1234 NULL Stefan Sześciopak Girth (777) 555-6789 (777) 555-0000 Johnny Jenkins The Bobby Jenkins Band (777) 555-1111 NULL Joanna Nieznana Juices of Brazil (777) 555-1235 (777) 555-9999

przykład studio nagraniowe - dane o wykonawcach i albumach Johnson, Jones. Modelowanie danych w SQL Server 2005 i 2008 lepsze pomysły?...

Normalizacja danych czy każdy atrybut zależy całkowicie od klucza głównego? czy każdy atrybut zależy jedynie od klucza głównego? czy w encji istnieje tylko jeden kandydat na klucz główny? nie wydzielić encję

DENORMALIZACJA

DeNormalizacja danych o działania odwrotne do normalizacji usprawiedliwienia: duże bazy, dużo relacji, wiele zapytań aplikacje raportujące ostateczny krok identyfikacja postaci normalnych ewentualna denormalizacja

Przykład: MODEL SPRZEDAŻY

przykład: model sprzedaży Vieira klient dzwoni lub przychodzi do firmy i rozmawia z pracownikiem, który następnie przyjmuje zamówienie tabela Orders: Orders OrderNo OrderDate CustomerNo CustomerName CustomerAddress ItemsOrdered

przykład: model sprzedaży Vieira 1NF: eliminacja powtarzających się grup danych zagwarantowanie niepodzielności danych Orders OrderNo OrderDate CustomerNo CustomerName CustomerAddress ItemsOrdered

przykład: model sprzedaży Vieira 1NF: eliminacja powtarzających się grup danych zagwarantowanie niepodzielności danych Orders OrderNo OrderDate CustomerNo CustomerName CustomerAddress ItemsOrdered 100 01-01-1999 54545 ACME Co. 1234 1st St. 5-1A4536, Flange, 6lbs, $75; 4-OR2400, Injector, 0.5lbs, $108; 4-OR2403, Injector, 0.5lbs, $116; 1-4I5436, Head, 3lbs, $750 101 01-01-1999 12000 Sneed Corp. 555 Main Awe. 1-3X9567, Pump, 5lbs, $62,50 102 01-01-1999 66651 ZZZ * Corp. 4242 SW 2nd 7-8G9200, Fan, 3lbs, $84; 1-8G5437, Fan, 3lbs, $15; 1-3H6250, Control, 5lbs, $32 103 01-02-1999 54545 ACME Co. 1234 1st. St. 40-8G9200, Fan, 3lbs, $480; 1-2P5523, Housing, 1lbs, $165; 1-3X9567, Pump, 5lbs, $42

przykład: model sprzedaży Vieira 1NF: eliminacja powtarzających się grup danych zagwarantowanie niepodzielności danych Orders OrderNo OrderDate CustomerNo ItemsOrdered 100 01-01-1999 54545 5-1A4536, Flange, 6lbs, $75; 4-OR2400, Injector, 0.5lbs, $108; 4-OR2403, Injector, 0.5lbs, $116; 1-4I5436, Head, 3lbs, $750 101 01-01-1999 12000 1-3X9567, Pump, 5lbs, $62,50 102 01-01-1999 66651 7-8G9200, Fan, 3lbs, $84; 1-8G5437, Fan, 3lbs, $15; 1-3H6250, Control, 5lbs, $32 103 01-02-1999 54545 40-8G9200, Customers Fan, 3lbs, $480; 1-2P5523, CustomerNo Housing, 1lbs, $165; CustomerName CustomerAddress 1-3X9567, Pump, 54545 5lbs, $42 ACME Co. 1234 1st St. 12000 Sneed Corp. 555 Main Awe. 66651 ZZZ * Corp. 4242 SW 2nd 54545 ACME Co. 1234 1st. St.

przykład: model sprzedaży Vieira 1NF: eliminacja powtarzających się grup danych zagwarantowanie niepodzielności danych Orders OrderNo OrderDate CustomerNo ItemsOrdered 100 01-01-1999 54545 5-1A4536, Flange, 6lbs, $75; 4-OR2400, Injector, 0.5lbs, $108; 4-OR2403, Injector, 0.5lbs, $116; 1-4I5436, Head, 3lbs, $750 101 01-01-1999 12000 1-3X9567, Pump, 5lbs, $62,50 102 01-01-1999 66651 7-8G9200, Fan, 3lbs, $84; 1-8G5437, Fan, 3lbs, $15; 1-3H6250, Control, 5lbs, $32 103 01-02-1999 54545 40-8G9200, Fan, 3lbs, $480; 1-2P5523, Housing, 1lbs, $165; 1-3X9567, Pump, 5lbs, $42

przykład: model sprzedaży Vieira 1NF: eliminacja powtarzających się grup danych zagwarantowanie niepodzielności danych - rozdzielenie danych Orders OrderNo OrderDate CustomerNo PartNo Description Qty UnitPrice TotalPrice Weight 100 01-01-1999 54545 5-1A4536 Flange 5 15,0 75,0 6 100 01-01-1999 54545 4-OR2400 Injector 4 27,0 108,0 0,5 100 01-01-1999 54545 4-OR2403 Injector 4 29,0 116,0 0,5 100 01-01-1999 54545 1-4I5436 Head 1 750,0 750,0 3 101 01-01-1999 12000 1-3X9567 Pump 1 62,5 62,5 5 102 01-01-1999 66651 7-8G9200 Fan 7 12,0 84,0 3 102 01-01-1999 66651 1-8G5437 Fan 1 15,0 15,0 3 102 01-01-1999 66651 1-3H6250 Control 1 32,0 32,0 5 103 01-02-1999 54545 40-8G9200 Fan 40 12,0 480,0 3 103 01-02-1999 54545 1-2P5523 Housing 1 165,0 165,0 1 103 01-02-1999 54545 1-3X9567 Pump 1 42,0 42,0 5

przykład: model sprzedaży Vieira Orders OrderNo 1NF: eliminacja powtarzających się grup danych zagwarantowanie niepodzielności danych - rozdzielenie danych - poprawienie klucza głównego LineItem OrderDate CustomerNo PartNo Description Qty UnitPrice TotalPrice Weight 100 1 01-01-1999 54545 5-1A4536 Flange 5 15,0 75,0 6 100 2 01-01-1999 54545 4-OR2400 Injector 4 27,0 108,0 0,5 100 3 01-01-1999 54545 4-OR2403 Injector 4 29,0 116,0 0,5 100 4 01-01-1999 54545 1-4I5436 Head 1 750,0 750,0 3 101 1 01-01-1999 12000 1-3X9567 Pump 1 62,5 62,5 5 102 1 01-01-1999 66651 7-8G9200 Fan 7 12,0 84,0 3 102 2 01-01-1999 66651 1-8G5437 Fan 1 15,0 15,0 3 102 3 01-01-1999 66651 1-3H6250 Control 1 32,0 32,0 5 103 1 01-02-1999 54545 40-8G9200 Fan 40 12,0 480,0 3 103 2 01-02-1999 54545 1-2P5523 Housing 1 165,0 165,0 1 103 3 01-02-1999 54545 1-3X9567 Pump 1 42,0 42,0 5

przykład: model sprzedaży Vieira Orders OrderNo 1NF - OK eliminacja powtarzających się grup danych zagwarantowanie niepodzielności danych - rozdzielenie danych - poprawienie klucza głównego LineItem OrderDate CustomerNo PartNo Description Qty UnitPrice TotalPrice Weight 100 1 01-01-1999 54545 5-1A4536 Flange 5 15,0 75,0 6 100 2 01-01-1999 54545 4-OR2400 Injector 4 27,0 108,0 0,5 100 3 01-01-1999 54545 4-OR2403 Injector 4 29,0 116,0 0,5 100 4 01-01-1999 54545 1-4I5436 Head 1 750,0 750,0 3 101 1 01-01-1999 12000 1-3X9567 Pump 1 62,5 62,5 5 102 1 01-01-1999 66651 7-8G9200 Fan 7 12,0 84,0 3 102 2 01-01-1999 66651 1-8G5437 Customers Fan 1 15,0 15,0 3 102 3 01-01-1999 66651 1-3H6250 CustomerNo Control CustomerName 1 32,0 CustomerAddress 32,0 5 103 1 01-02-1999 54545 40-8G9200 Fan 54545ACME Co. 40 12,0 1234 1st 480,0 St. 3 103 2 01-02-1999 54545 1-2P5523 Housing 12000Sneed Corp. 1 165,0 555 Main 165,0 Awe. 1 103 3 01-02-1999 54545 1-3X9567 Pump 66651 ZZZ * Corp. 1 42,0 4242 SW 42,0 2nd 5 54545ACME Co. 1234 1st. St.

przykład: model sprzedaży Vieira 2NF: każda kolumna musi zależeć od całego klucza Orders OrderNo LineItem OrderDate CustomerNo PartNo Description Qty UnitPrice TotalPrice Weight 100 1 01-01-1999 54545 5-1A4536 Flange 5 15,0 75,0 6 100 2 01-01-1999 54545 4-OR2400 Injector 4 27,0 108,0 0,5 100 3 01-01-1999 54545 4-OR2403 Injector 4 29,0 116,0 0,5 100 4 01-01-1999 54545 1-4I5436 Head 1 750,0 750,0 3 101 1 01-01-1999 12000 1-3X9567 Pump 1 62,5 62,5 5 102 1 01-01-1999 66651 7-8G9200 Fan 7 12,0 84,0 3 102 2 01-01-1999 66651 1-8G5437 Fan 1 15,0 15,0 3 102 3 01-01-1999 66651 1-3H6250 Control 1 32,0 32,0 5 103 1 01-02-1999 54545 40-8G9200 Fan 40 12,0 480,0 3 103 2 01-02-1999 54545 1-2P5523 Housing 1 165,0 165,0 1 103 3 01-02-1999 54545 1-3X9567 Pump 1 42,0 42,0 5

przykład: model sprzedaży Vieira 2NF: OrdersDetails OrderNo LineItem każda kolumna musi zależeć od całego klucza PartNo Description Qty UnitPrice TotalPrice Weight 100 1 5-1A4536 Flange 5 15,0 75,0 6 100 2 4-OR2400 Injector 4 27,0 108,0 0,5 100 3 4-OR2403 Injector 4 29,0 116,0 0,5 100 4 1-4I5436 Head 1 750,0 750,0 3 101 1 1-3X9567 Pump 1 62,5 62,5 5 102 1 7-8G9200 Fan 7 12,0 84,0 3 102 2 1-8G5437 Fan 1 15,0 15,0 3 102 3 1-3H6250 Control 1 32,0 32,0 5 103 1 40-8G9200 Fan 40 12,0 480,0 3 103 2 1-2P5523 Housing 1 165,0 165,0 1 103 3 1-3X9567 Pump 1 42,0 42,0 5

przykład: model sprzedaży Vieira 2NF - OK OrdersDetails OrderNo LineItem każda kolumna musi zależeć od całego klucza PartNo Description Qty UnitPrice TotalPrice Weight 100 1 5-1A4536 Flange 5 15,0 75,0 6 100 2 4-OR2400 Injector 4 27,0 108,0 0,5 100 3 4-OR2403 Injector 4 29,0 116,0 0,5 100 4 1-4I5436 Head 1 750,0 750,0 3 101 1 1-3X9567 Pump 1 62,5 62,5 5 102 1 7-8G9200 Fan 7 12,0 84,0 3 102 2 1-8G5437 Fan 1 15,0 Orders 15,0 3 102 3 1-3H6250 Control 1 32,0 OrderNo 32,0 5 OrderDate CustomerNo 103 1 40-8G9200 Fan 40 12,0 480,0 3 103 2 1-2P5523 Housing 1 165,0 165,0 100 1 01-01-1999 54545 103 3 1-3X9567 Pump 1 42,0 101 42,0 5 01-01-1999 12000 102 01-01-1999 66651 103 01-02-1999 54545

przykład: model sprzedaży Vieira 3NF: OrdersDetails OrderNo LineItem żadna kolumna nie może zależeć od żadnej innej kolumny nie będącej kluczem tabela nie może zawierać wyliczonych danych PartNo Description Qty UnitPrice TotalPrice Weight 100 1 5-1A4536 Flange 5 15,0 75,0 6 100 2 4-OR2400 Injector 4 27,0 108,0 0,5 100 3 4-OR2403 Injector 4 29,0 116,0 0,5 100 4 1-4I5436 Head 1 750,0 750,0 3 101 1 1-3X9567 Pump 1 62,5 62,5 5 102 1 7-8G9200 Fan 7 12,0 84,0 3 102 2 1-8G5437 Fan 1 15,0 15,0 3 102 3 1-3H6250 Control 1 32,0 32,0 5 103 1 40-8G9200 Fan 40 12,0 480,0 3 103 2 1-2P5523 Housing 1 165,0 165,0 1 103 3 1-3X9567 Pump 1 42,0 42,0 5

przykład: model sprzedaży Vieira 3NF: żadna kolumna nie może zależeć od żadnej innej kolumny nie będącej kluczem tabela nie może zawierać wyliczonych danych OrdersDetails OrderNo LineItem PartNo Qty UnitPrice TotalPrice 100 1 5-1A4536 5 15,0 75,0 100 2 4-OR2400 4 27,0 108,0 100 3 4-OR2403 4 29,0 116,0 100 4 1-4I5436 1 750,0 750,0 101 1 1-3X9567 1 62,5 62,5 102 1 7-8G9200 7 12,0 84,0 102 2 1-8G5437 1 15,0 15,0 102 3 1-3H6250 1 32,0 32,0 103 1 40-8G9200 40 12,0 480,0 103 2 1-2P5523 1 165,0 165,0 103 3 1-3X9567 1 42,0 42,0 Products PartNo Description Weight 5-1A4536 Flange 6 4-OR2400 Injector 0,5 4-OR2403 Injector 0,5 1-4I5436 Head 3 1-3X9567 Pump 5 7-8G9200 Fan 3 1-8G5437 Fan 3 1-3H6250 Control 5 40-8G9200 Fan 3 1-2P5523 Housing 1 1-3X9567 Pump 5

przykład: model sprzedaży Vieira klient dzwoni lub przychodzi do firmy i rozmawia z pracownikiem, który następnie przyjmuje zamówienie 3NF: żadna kolumna nie może zależeć od żadnej innej kolumny nie będącej kluczem tabela nie może zawierać wyliczonych danych WHERE TotalPrice > $100 WHERE Qty*ListPrice > $100 OrdersDetails OrderNo LineItem PartNo Qty ListPrice TotalPrice 100 1 5-1A4536 5 13,5 67,5 100 2 4-OR2400 4 24,3 97,2 100 3 4-OR2403 4 26,1 104,4 100 4 1-4I5436 1 675,0 675,0 101 1 1-3X9567 1 56,3 56,3 102 1 7-8G9200 7 10,8 75,6 102 2 1-8G5437 1 13,5 13,5 102 3 1-3H6250 1 28,8 28,8 103 1 40-8G9200 40 10,8 432,0 103 2 1-2P5523 1 148,5 148,5