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

Podobne dokumenty
Wykład 2. Relacyjny model danych

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

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

Cel normalizacji. Tadeusz Pankowski

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

Autor: Joanna Karwowska

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

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

Normalizacja baz danych

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

Normalizacja. Pojęcie klucza. Cel normalizacji

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

Krzysztof Kadowski. PL-E3579, PL-EA0312,

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

Technologia informacyjna

Bazy danych. Algebra relacji

Baza danych. Baza danych to:

Normalizacja relacji

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

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

Baza danych. Modele danych

Pierwsza postać normalna

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

WPROWADZENIE DO BAZ DANYCH

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

Transformacja modelu ER do modelu relacyjnego

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

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

Normalizacja tabel POSTACIE NORMALNE TABEL

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

Posługiwanie się tabelami

Relacyjny model danych

Przykłady normalizacji

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

Podstawowe zagadnienia z zakresu baz danych

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

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

Pierwsza postać normalna

Normalizacja baz danych

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

Program nauczania. Systemy baz danych. technik informatyk

Związki pomiędzy tabelami

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

Technologia Informacyjna

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

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

22. Podstawowe pojęcia baz danych. Baza Danych. Funkcje bazy danych. Właściwości bazy danych. Modele baz danych.

BAZY DANYCH Podstawowe pojęcia

2017/2018 WGGiOS AGH. LibreOffice Base

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

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

Pojęcie zależności funkcyjnej

Bazy danych TERMINOLOGIA

Co to są relacyjne bazy danych?

FUNKCJE SZBD. ZSE - Systemy baz danych 1

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

Przykładowa baza danych BIBLIOTEKA

1 Przygotował: mgr inż. Maciej Lasota

Projektowanie Systemów Informacyjnych

Model relacyjny. Wykład II

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. zadania

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

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

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

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Wprowadzenie do baz danych

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

Bazy danych. Zasady konstrukcji baz danych

Wprowadzenie do baz danych

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

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

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

Agnieszka Ptaszek Michał Chojecki

SIECI KOMPUTEROWE I BAZY DANYCH

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

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

Projektowanie bazy danych przykład

1 Wstęp do modelu relacyjnego

Relacyjny model danych

- Przedmiot kończy się egzaminem - Egzamin ma formę testu teoretycznego

WPROWADZENIE DO BAZ DANYCH

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

Transformacja modelu ER do modelu relacyjnego

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

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Plan. Formularz i jego typy. Tworzenie formularza. Co to jest formularz? Typy formularzy Tworzenie prostego formularza Budowa prostego formularza

Bazy danych - wykład wstępny

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

PODSTAWOWE POJĘCIA BAZ DANYCH

Transkrypt:

Relacyjne bazy danych. Normalizacja i problem nadmierności danych. Robert A. Kłopotek r.klopotek@uksw.edu.pl Wydział Matematyczno-Przyrodniczy. Szkoła Nauk Ścisłych, UKSW

Relacyjne bazy danych Stworzone przez E.F. Codd w 1970 i rozwijane przez ponad 20 lat Bazujące na matematycznej teorii precyzji mającej na celu: Zwiększenie produktywności wytwarzania oprogramowania Unikanie niejednoznaczności poprzez przygotowania precyzyjnych specyfikacji Zapewnienie zwiększonej niezależności pomiędzy programami oraz ich danymi

Baza danych (raz jeszcze) Definicja: zbiór struktur danych służący do organizacji i przechowywania danych Główna koncepcja relacja, jest zdefiniowana poprzez następujące cechy Każda relacja (tabela) posiada unikalną nazwę w ramach bazy danych Każda kolumna posiada unikalną nazwę w ramach relacji Wszystkie wartości w kolumnie są tego samego typu Porządek kolumn w tabeli nie jest istotny (chociaż w praktyce jest istotny podczas wstawiania implicite - implicit insert statement)

Relacja Pozostałe cechy relacji Każdy rekord w relacji musi być inny tzn. nie może być wielu takich samych rekordów Porządek rekordów nie jest istotny Dopuszczalne są tylko wartości atomowe dla każdej z kolumn. Nie dozwolone są zbiory wartości. Budynek Piętro Sala WOY/21 0 033 WOY/21 1 134 WOY/12 1 1221

Klucze główne Nie może być wielu powtórzeń tego samego rekordu => musi istnieć zbiór kolumn takich, ze ich wartości są unikalne dla całej tabeli Taki zbiór nazywamy kluczem głównym (PK primary key) Budynek Piętro Sala WOY/21 0 033 WOY/21 1 134 WOY/12 1 1221 klucz główny (PK primary key)

Klucze kandydujące Imię Nazwisko PESEL NIP Jan Kowalski 45012300561 521-125-33-12 Anna Nowak 75011202561 521-125-33-14 88122300561 521-125-01-22 klucz główny klucz kandydujący

Klucze złożone Klucz złożony klucz składający się z więcej niż jednej kolumny Ponieważ klucz musi identyfikować rekord w sposób jednoznaczny, więc wartości dla kolumn klucza muszą być określone W poprzednim przekładzie: PESEL i NIP nie mogą być puste Budynek Piętro Sala WOY/21 0 033 WOY/21 1 134 WOY/12 1 1221 złożony klucz główny

Wartość NULL Jest używana do określenia/anotowania wartości nieznanej (unknown) lub niedostępnej (NA not available) Przykład: data sprzedaży produktów, które nie zostały jeszcze sprzedane będzie ustawiona na NULL. Nie ma innej prawidłowej daty, którą można uzyc w tym kontekście. ALE: Uzycie wartości NULL zmienia logikę operacji na danych. Każde porównanie z wartością NULL zwróci fałsz.

NULL i porówaniania Wyobraźmy sobie następujący przykład Niech będzie 25 sprzedawców, którzy wygenerowali przychód w wysokości co najmniej 1000 zł Niech będzie 15 sprzedawców, którzy wygenerowali przychód w wysokości nie przekraczającej 1000 zł Co jeśli są sprzedawcy, którzy mają przychód równy NULL? Oni nie są uwzględnieni w żadnej z wcześniejszych grup! Nie możemy tu używać już logiki dwuwartościowej prawda/fałsz!

NULL - wskazówki NULL to nie jest puste pole np. 0 lub NULL nie powinien być używany kiedy wymagamy pustej wartości Kolumny nie powinny akceptować wartości NULL o ile nie ma dobrego uzasadnienia Imię Nazwisko PESEL NIP Jan Kowalski 45012300561 521-125-33-12 Anna Nowak 75011202561 521-125-33-14 88122300561 521-125-01-22 Wszystkie te kolumny nie powinny pozwalać na wprowadzanie wartości NULL

Projekt bazy danych Główne założenie systemy bazodanowe jak każdy inny system powinien być traktowany jako inwestycja. System komputerowy może generować przychód lub zmniejszać koszty poprzez Dostarczanie informacji dla bardziej efektywnych/skutecznych decyzji, tzn. generowanie większego przychodu lub minimalizacji kosztów Optymalizację procesów biznesowych, tzn. minimalizować koszty przeprowadzania tego procesu Wśród wyboru projektów (oraz metod uzasadnienia) ROI (Return on Investment) NPV (Net Present Value) metoda formalna obliczania przychodu wygenerowanego z projektu oprogramowania Powyższe czynniki grają główną rolę podczas ewaluacji zysków z projektu.

Koncepcja projektu bazy danych - krok 1 CEL: projekt relacji relacyjnego systemy bazodanowego dla analizowanego problemu KROK 1: Identyfikacja zakresu systemu oraz ograniczeń systemu Przykład: system dla zarządzania działem kadr nie zawarłaby listy środków trwałych w organizacji/firmie

Koncepcja projektu bazy danych - krok 1 WYNIK pisemny opis: Jaki jest cel systemu Co JEST zawarte w systemie Co NIE JEST zawarte w systemie Informacje o firmie Środki trwałe Wynagrodzenie System kadr Sprzedaż

Koncepcja projektu bazy danych - krok 2 KROK 2: Identyfikacja istotnego procesów biznesowych, który będzie wspierany przez system Pamiętaj: te procesy musza być zoptymalizowane przy użyciu oprogramowania Przykład: Proces generowania miesięcznych raportów sprzedaży Dzięki systemowi bazodanowemu: Nie jest potrzebne przygotowywanie ręczne (zredukowane koszty procesu) Informacja jest dostępna na bieżąco, więc mogą być podejmowane lepsze decyzje

Koncepcja projektu bazy danych - krok 3 KROK 3: Określenie zasad biznesowych oraz regulacji Przykład: Jakie informacje mają być drukowane na fakturach? Kto może zmieniać wynagrodzenia? Czy potrzebna jest podwójna autoryzacja?

Koncepcja projektu bazy danych - krok 4 KROK 4: Identyfikacja obiektów/encji w organizacji/firmie Porady i wskazówki Użyj podejść odgórnego (top-bottom approach) lub oddolnego (bottom-up approach) aby zidentyfikować encje takie jak: faktury, produkty, dokumenty magazynowe, itp. Używaj określeń z danej firmy (wspólny słownik pojęć), zidentyfikuj obiekty pracowników tzn. obiekty, które są znane pracownikom (przyszłym użytkownikom) takie jak: faktura, zamówienie, dokument zakupu, WYNIK: lista encji (możliwe późniejsze relacje znane jako tabele)

Koncepcja projektu bazy danych - krok 5 KROK 5 - normalizacja: Jest to proces projektowania relacji tak, aby Eliminować powtórzenia w tabelach Unikać możliwych anomalii podczas modyfikacji Przedefiniować encja oraz ich atrybuty Procedura normalizacji ma wpływ na atrybuty oraz ilość tabel

Normalizacja 1NF Pierwsza forma normalna - 1NF: Encja jest w pierwszej formie normalnej, jeśli jest relacją, czyli Nie ma powtórzeń atrybutów Nieatomowe wartości musza być wyeliminowane Muszą być obecne klucze główne oraz muszą być dobrze określone

Sale Procedura 1NF Budynek Piętro Sala Sale Budynek Piętro Wyposażenie Sala WOY/21 0 033 WOY/21 1 134 WOY/21 0 Krzesło Stolik 033 WOY/21 1 134 WOY/12 1 1221 Wyposażenie Budynek Zasób Sala WOY/12 1 1221 WOY/21 Krzesło 033 WOY/21 Stolik 033 klucz główny (PK primary key) klucz główny (PK primary key)

Normalizacja 2NF Druga forma normalna - 2NF: Encja jest w pierwszej formie normalnej, jeśli: Jest w 1NF Atrybuty, które nie są kluczem zależą od całego klucza głównego Kontrprzykład Tabela zamówień zawierająca: customer_id, order_id, customer_city, customer_country. Jeśli (customer_id, order_id) jest kluczem głównym (PK), to customer_city zależy tylko od części klucza głównego (customer_id).

Normalizacja 2NF Kontrprzykład dyskusja Jeśli zasada 2NF jest naruszona wtedy część każdego rekordu nie zależy tylko od wpisu. W tym przypadku zależy tylko od klienta, a nie zależy od zamówienia. Jako konsekwencja tego, wiele rekordów zawiera tą samą informację, np. adres danego klienta (nadmiar) Nadmiar może doprowadzić do niejednoznaczności co się stanie jak zrobimy aktualizację adresu klienta tylko w jednym rekordzie opisującym klienta?

Normalizacja 3NF Trzecia forma normalna - 3NF: Encja jest w 3 formie normalnej, jeśli: Jest w 2NF Atrybuty, które nie są kluczami, są niezależne od siebie. Zależą jedynie od klucza głównego. Kontrprzykład Tabela zamówień zawiera: customer_id, order_id, customer_city, customer_country, employee_id, employee_address. Podczas gdy employee_id zależy tylko od zamówienia to employee_address stwarza problem.

Normalizacja 3NF Kontrprzykład dyskusja Jeśli zasada 3NF jest naruszona wtedy część każdego rekordu nie zależy tylko i wyłącznie od wpisu. W tym przypadku employee_addres zależy raczej od pracownika niż od zamówienia. Jako konsekwencja tego, wiele rekordów zawiera tą samą informację, np. adres danego pracownika (nadmiar) Nadmiar może doprowadzić do niejednoznaczności co się stanie jak zrobimy aktualizację adresu pracownika tylko w jednym rekordzie opisującym zamówienie?

Normalizacja 4NF MVD (multivalued dependency) niezależność multiwatościowa, występuje gdy wartość atrybutu A jest zawsze powiązana z tym samym zbiorem wartości z atrybutu B Encja jest w 4NF, jeśli: Jest w 3NF Nie ma nakładających się na siebie kluczy kandydyjących, czyli klucze kandydujące nie zawierają atrybutów klucza głównego Nie ma niezależnych mulitwartościowo atrybutów w encji, np. atrybut A determinuje możliwe wartości atrybutu B, A determinuje możliwe wartości atrybutu C, ale atrybuty C i B są niezależne)