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

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

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

Normalizacja baz danych

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

Pierwsza postać normalna

Projektowanie Systemów Informacyjnych

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

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?

Cel normalizacji. Tadeusz Pankowski

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

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

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Normalizacja relacyjnych baz danych. Sebastian Ernst

Normalizacja. Pojęcie klucza. Cel normalizacji

Pojęcie zależności funkcyjnej

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

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

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

Bazy Danych i Usługi Sieciowe

Podzapytania. SELECT atrybut_1, atrybut_2,... FROM relacja WHERE atrybut_n operator (SELECT atrybut_1, FROM relacja WHERE warunek

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

Normalizacja schematów logicznych relacji

3. Podzapytania, łączenie tabel i zapytań

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

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

Technologie baz danych

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

PODZAPYTANIE (SUBSELECT)

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

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

1 Przygotował: mgr inż. Maciej Lasota

Bazy danych i usługi sieciowe

Pierwsza postać normalna

1 Wstęp do modelu relacyjnego

Bazy danych. Andrzej Łachwa, UJ, /15

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

Zależności funkcyjne pierwotne i wtórne

Bazy danych 3. Normalizacja baz danych

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

Normalizacja baz danych

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

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

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych w sterowaniu

Relacyjny model danych

Związki pomiędzy tabelami

Wykład XII. optymalizacja w relacyjnych bazach danych

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

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

Bazy danych. Plan wykładu. Zalenoci funkcyjne. Wykład 4: Relacyjny model danych - zalenoci funkcyjne. SQL - podzapytania A B

Normalizacja schematów relacji

SQL Structured Query Language

Wykład 8. SQL praca z tabelami 5

Konstruowanie Baz Danych Wprowadzenie do projektowania. Normalizacja

Wykład 7 Implementacja języka SQL w systemach baz danych Oracle sortowanie, funkcje agregujące i podzapytania.

PODSTAWY BAZ DANYCH 2009/ / Notatki do wykładu "Podstawy baz danych"

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

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

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

Projektowanie bazy danych przykład

Projektowanie baz danych

Relacyjne bazy danych. Podstawy SQL

Projektowanie relacyjnych baz danych

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

Bazy danych 6. Podzapytania i grupowanie. P. F. Góra

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Wprowadzenie do baz danych

Model relacyjny. Wykład II

Bazy Danych i Usługi Sieciowe

Model relacyjny. Wykład II

Postać normalna Boyce-Codd (BCNF)

Bazy Danych egzamin poprawkowy, 2012 rozwiazania

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

Autor: Joanna Karwowska

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

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

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Podzapytania. Podzapytania nieskorelowane i skorelowane

1: 2: 3: 4: 5: 6: 7: 8: 9: 10:

1. Zakłada się, że każda operacja (read, write) w harmonogramie obejmuje również blokowanie i odblokowanie jednostki. Czy następujący harmonogram

Relacyjne bazy danych. Podstawy SQL

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

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Baza danych. Baza danych to:

Podstawowe zapytania SELECT (na jednej tabeli)

Grupowanie i funkcje agregujące

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Optymalizacja w relacyjnych bazach danych - wybór wydajnej strategii obliczania wyrażenia relacyjnego.

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Bazy danych 8. Podzapytania i grupowanie. P. F. Góra

Oracle11g: Wprowadzenie do SQL

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

Plan wykładu. Elementy ERD BAZY DANYCH. Proces modelowania i implementacji bazy danych. Diagramy związków encji. SQL podzapytania

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Przestrzenne bazy danych Podstawy języka SQL

Transkrypt:

BAZY DANYCH WYKŁAD 5 Normalizacja relacji. Zapytania zagnieżdżone cd. Wady redundancji Konieczność utrzymania spójności kopii, Marnowanie miejsca, Anomalie. (Wybrane materiały) Dr inż. E. Busłowska Copyright 2014-2015 E. Busłowska. 1 Copyright 2014-2015 E. Busłowska. 2 Anomalie Związane z aktualizacją, Związane z istnieniem, Związane z wprowadzaniem, Związane z usuwaniem. Podział relacji Twierdzenie Jeżeli w relacji R={X, Y, Z} istnieją zależności funkcyjne X Y, to relacja R jest relacją rozkładalną, możemy więc zapisać: R=R1[X, Y]*R2[X, Z] Copyright 2014-2015 E. Busłowska. 3 Copyright 2014-2015 E. Busłowska. 4 Rozkład relacji i normalizacja redundancję usuwa się przez rozkład relacji, rozkład odwracalny: można odwrócić przez naturalne złączenie, rozkład relacji powinien doprowadzić do tzw. postaci normalnej, rozkład relacji nie powinien powodować utraty zależności istniejących w relacji pierwotnej. PROCES NORMALIZACJI RELACYJNEJ BAZY DANYCH Postać normalna pozwala minimalizować koszty przechowywania i aktualizowania oraz zwiększać wiarygodność danych. Wszystkie relacje znormalizowane i nieznormalizowane Relacja w 1NF wszystkie atrybuty mają wartości proste Relacja w 2NF nie ma zależności części klucza Relacja w 3NF nie ma zależność tranzytywnych Relacja w 4NF wiąże się z zależnościami wielowartościowymi Copyright 2014-2015 E. Busłowska. 5 Copyright 2014-2015 E. Busłowska. 6 1

Pierwsza postać normalna Relacja jest w 1NF gdy wszystkie atrybuty są atomowe (prostych typów). 1NF jest wymogiem dla rachunku relacyjnego, a więc i języków zapytań. Wady relacji w pierwszej postaci normalnej Dublowanie się danych prowadzi do niepotrzebnego zajmowania pamięci i przedłużania wykonywania operacji relacyjnych. Może również wystąpić niespójność danych problemy przy aktualizacji. Usuwając informacje możemy utracić dane. Copyright 2014-2015 E. Busłowska. 7 Copyright 2014-2015 E. Busłowska. 8 Druga postać normalna Dana relacja jest w drugiej postaci normalnej, jeśli każdy jej atrybut nie wchodzący w skład klucza potencjalnego jest w pełni funkcjonalnie zależny od wszystkich kluczy potencjalnych. Przyczyną braku 2NF jest błędne połączenie danych. Relacja ZAMÓWIENIA w 2PN 1. DOSTAWCA NA ZAMÓWIENIU <, Nr_ dostawcy, Nazwa_dostawcy, Adres_dostawcy> 2. CZĘŚCI W MAGAZYNIE <, Nazwa_części, Magazyn, Adres_magazynu> 3. DOSTAWY CZĘŚCI < Nr_ zamówienia, Nr_ części, Ilość> Copyright 2014-2015 E. Busłowska. 9 Copyright 2014-2015 E. Busłowska. 10 Pełna zależność funkcjonalna Definicja Atrybut Y relacji R jest w pełni funkcjonalnie zależny od zbioru atrybutów X tej relacji, jeśli jest funkcjonalnie zależny od niego, ale nie jest funkcjonalnie zależny od żadnego podzbioru zbioru X. Diagramy zależności funkcyjnych Nr_ dostawcy Nazwa_części Nazwa_dostawcy Adres_dostawcy Magazyn Adres_magazyny Ilość Copyright 2014-2015 E. Busłowska. 11 Copyright 2014-2015 E. Busłowska. 12 2

Relacja w 3PN Jeśli jest w 1PN, Każdy atrybut niekluczowy jest bezpośrednio zależny funkcyjnie od całego klucza głównego, 3PN jest zazwyczaj wystarczająca Każdą relację można doprowadzić do 3PN zachowując: zależności odwracalność rozkładu Zależności tranzytywne Jeśli A B, B C, oraz A nie jest funkcyjnie zależne od B lub C wtedy C jest zależny tranzytywnie od A. Zależność tranzytywna zawiera zależności funkcyjne pomiędzy atrybutami, które nie wszystkie są kluczami. Copyright 2014-2015 E. Busłowska. 13 Copyright 2014-2015 E. Busłowska. 14 Nr_ dostawcy Nazwa_dostawcy Adres_dostawcy Diagramy zależności funkcyjnych i przechodnich Ilość Nazwa_części Magazyn Adres_magazyny Copyright 2014-2015 E. Busłowska. 15 Czwarta postać normalna Schemat relacji R ze zbiorem zależności F jest w Czwartej postaci normalnej jeśli dla każdej zależności wielowartościowej (przy czym Y jest zbiorem niepustym lub podzbiorem X, a XY nie zawiera wszystkich atrybutów R), to X jest nadkluczem do R. Jeśli F nie zawiera zależności wielowartościowych to czwarta postać normalna pokrywa się z postacią normalną Boyce'a- Codda. Copyright 2014-2015 E. Busłowska. 16 Zależność wielowartościowa Oznacza, że mając wartość jednego atrybutu, można określić wartości zbioru innego atrybutu. Oznacza się: X ->>Y, i odczytuje jako: X określa wiele Y". Przykładowo: Znając numer wykładowcy, można określić listę prowadzonych przez niego przedmiotów, Nrwykładowcy ->> Przedmiot Znając numer dostawcy można określić części, które dostarcza, Nrdostawcy ->> Część. Postać normalna Boyce'a-Codda Mówimy, że schemat relacji R ze zbiorem zależności F jest w postaci normalnej Boyce'a-Codda, jeśli zawsze, gdy w R zachodzi zależność i atrybut A nie jest zawarty w X, to X jest nadkluczem do R; oznacza to, że X jest kluczem lub że zawiera klucz. Mówiąc inaczej, jest to postać normalna, która rzeczywiście usuwa wszystkie zależności przechodnie Związki między postaciami normalnymi 4NF => BCNF => 3NF => 2NF => 1NF Copyright 2014-2015 E. Busłowska. 17 Copyright 2014-2015 E. Busłowska. 18 3

Wielowartościowe operatory porównania IN - równy dowolnej wartości podawanej Not IN - różny od wszystkich wartości podawanych przez wewnętrzną instrukcję SELECT =ANY działa tak jak IN odpowiednik logicznego or > ANY, >= ANY większy bądź większy-równy dowolnej wartości podawanej < ANY, <= ANY - mniejszy bądź mniejszy-równy dowolnej wartości podawanej = ALL - równy wszystkich wartości podawanych przez wewnętrzną instrukcję SELECT > ALL, >= ALL - większy bądź większy-równy wszystkim wartościom podawanym < ALL, <= ALL - mniejszy bądź mniejszy-równy wszystkim wartościom podawanym Zapytania proste zwracające wiele wartości WHERE IdDealera In (Select IdDealera FROM Dealerzy WHERE miasto='warszawa'); Zapytanie zewnętrzne uruchamiane na końcu Wielowartościowy operator porównania Zapytanie wewnętrzne uruchamiane na początku Copyright 2014-2015 E. Busłowska. 19 Copyright 2014-2015 E. Busłowska. 20 Słowo kluczowe ANY WHERE CenaJednostkowa >ANY (SELECT CenaJednostkowa FROM SAMOCHODY S, DEALERZY D WHERE S.IdDealera=D.IdDealera AND NazwaFirmy= Honda ); Słowo kluczowe ALL WHERE CenaJednostkowa <ALL (SELECT CenaJednostkowa FROM SAMOCHODY S, DEALERZY D WHERE S.IdDealera=D.IdDealera AND NazwaFirmy= Honda ); Copyright 2014-2015 E. Busłowska. 21 Copyright 2014-2015 E. Busłowska. 22 Słowo kluczowe ALL w klauzuli HAVING SELECT Nazwisko, Count(*) liczba, Stanowisko FROM Pracownicy p, Umowy U WHERE P.IDpracownika = U.IDpracownika GROUP BY Nazwisko, Stanowisko HAVING Count(*) >= ALL (SELECT Count(*) FROM Pracownicy pr,umowy Um WHERE Pr.IDpracownika = Um.IDpracownika AND stanowisko= Przedstawiciel handlowy GROUP BY Pr.IdPracownika, Nazwisko); Copyright 2014-2015 E. Busłowska. 23 Zapytania wielokrotne SELECT Nazwisko, Count(*) Ile FROM Pracownicy P, Umowy U WHERE P.IDpracownika = U.IDpracownika GROUP BY P.Idpracownika, Nazwisko HAVING COUNT(*) >=ALL (SELECT Count(*) FROM Umowy WHERE idpracownika IN (SELECT IdPracownika FROM Pracownicy WHERE kraj = Francja ) GROUP BY idpracownika); Copyright 2014-2015 E. Busłowska. 24 4

Zapytania skorelowane (współzależne) SELECT Nazwisko, Imię, Stanowisko, Wynagrodzenie FROM Pracownicy P1 WHERE Wynagrodzenie >= (SELECT Avg(Wynagrodzenie) FROM Pracownicy P2 WHERE P2.Stanowisko=P1.Stanowisko) ORDER BY Stanowisko; Copyright 2014-2015 E. Busłowska. 25 Zapytania z predykatem EXISTS EXISTS czy zapytanie podrzędne przekazało chociażby jedną wartość NOT EXISTS czy zapytanie podrzędne nie przekazało żadnej wartość SELECT NazwaFirmy FROM Dealerzy D WHERE EXISTS (SELECT * S WHERE D.IdDealera =S.IdDealera AND PojSilnika=2500); Copyright 2014-2015 E. Busłowska. 26 Zapytania parametrycze SELECT Nazwisko FROM Klienci WHERE Kraj = &&KR AND Miasto = &MT ; && - przy ponownym uruchomieniu następuje podstawienie wcześniejszych wartości zmiennych & - nie zapamiętuje wcześniej podanych wartości Copyright 2014-2015 E. Busłowska. 27 5