Związki pomiędzy tabelami

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

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

Normalizacja baz danych

Normalizacja baz danych

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

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

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

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

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

Projektowanie Systemów Informacyjnych

Technologia informacyjna

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

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

Normalizacja relacyjnych baz danych. Sebastian Ernst

1 Przygotował: mgr inż. Maciej Lasota

Baza danych. Baza danych to:

Krzysztof Kadowski. PL-E3579, PL-EA0312,

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Cel normalizacji. Tadeusz Pankowski

Normalizacja. Pojęcie klucza. Cel normalizacji

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

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

SIECI KOMPUTEROWE I BAZY DANYCH

Pierwsza postać normalna

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

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

Bazy danych 3. Normalizacja baz danych

Przykłady normalizacji

Technologia Informacyjna

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Posługiwanie się tabelami

Pierwsza postać normalna

Autor: Joanna Karwowska

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

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Pojęcie zależności funkcyjnej

Bazy Danych i Usługi Sieciowe

Normalizacja tabel POSTACIE NORMALNE TABEL

Baza danych. Modele danych

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

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

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

Transformacja modelu ER do modelu relacyjnego

Bazy danych. Andrzej Łachwa, UJ, /15

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

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

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

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

SIECI KOMPUTEROWE I BAZY DANYCH

Normalizacja relacji

Normalizacja schematów logicznych relacji

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

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

Wykład 2. Relacyjny model danych

Hurtownie danych. 31 stycznia 2017

Program nauczania. Systemy baz danych. technik informatyk

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

OPRACOWANIE: SŁAWOMIR APANOWICZ

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

ZSE - Systemy baz danych 1 ZASADY PROJEKTOWANIA BAZ DANYCH

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

Podstawowe zagadnienia z zakresu baz danych

Model relacyjny bazy danych

Bazy danych TERMINOLOGIA

Wprowadzenie do baz danych

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

Projektowanie bazy danych przykład

MS Access Projektowanie c.d. i kwerendy

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

Bazy danych - wykład wstępny

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

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

Dr Michał Tanaś(

1 Wstęp do modelu relacyjnego

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

Autor: Joanna Karwowska

Autor: Joanna Karwowska

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

Bazy danych. Zasady konstrukcji baz danych

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

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

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

Wprowadzenie do baz danych

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

Projekt małej Bazy Danych.

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

PLAN WYKŁADU BAZY DANYCH GŁÓWNE ETAPY PROJEKTOWANIA BAZY MODELOWANIE LOGICZNE

Literatura. Bazy danych s.1-1

FUNKCJE SZBD. ZSE - Systemy baz danych 1

Bazy danych i usługi sieciowe

Relacyjny model danych

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

Systemy baz danych. Notatki z wykładu

Teoretyczne podstawy informatyki

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

2017/2018 WGGiOS AGH. LibreOffice Base

Zależności funkcyjne pierwotne i wtórne

Transkrypt:

Związki pomiędzy tabelami bazy danych. Stosowanie relacji jako nazwy połączenia miedzy tabelami jest tylko grą słów, którą można znaleźć w wielu podręcznikach ( fachowo powinno się używać związku). Związki pomiędzy tabelami Rozróżnia się trzy typy związków, jakie mogą zachodzić pomiędzy dwoma encjami: 1. Związek jeden-do-jeden oznacza, iż jeden rekord w pierwszej tabeli odpowiada dokładnie jednemu rekordowi w tabeli drugiej. W praktyce relację jeden-do-jeden stosuje się w przypadku tzw. tabel słownikowych (rysunek 4). Rysunek 4. Związek jeden-do-jeden. Związek ta ułatwia późniejszą modyfikację np. nazwy oceny tylko w jednym miejscu, zamiast przeglądania i zamieniania całości rekordów w encji Oceny_z_egzaminu. W klasycznej notacji ERD relację tę zapisuje się za pomocą symbolu przedstawionego na rysunku 5. Rysunek 5. Symbol związku jeden-do-jeden. A B Tabela A- tabela mocna (atrybuty często wykorzystywane) Tabela B- tabela słaba (jest całkowicie zależna od innej tabeli atrybuty rzadko wykorzystywane) Odwoływanie się do całej tabeli trwa dłużej. Jeśli rzadko korzystamy ze wszystkich atrybutów to dzielimy je na mniejsze. 2. Związek jeden-do-wielu oznacza, iż jeden rekord w pierwszej tabeli odpowiada wielu rekordom w tabeli drugiej i jest to relacja najczęściej stosowana. Jako przykład można użyć strukturę Wydziału 1

składającą się z wielu kierunków (rysunek 6). Rysunek 6. Związek jeden-dowielu. Na diagramach ERD związek jeden-do-wielu prezentowana jest za pomocą symbolu przedstawionego na rysunku 7. Rysunek 7. Symbol związku jeden-do-wielu. 3. Związek wiele-do-wielu oznacza, że kilka rekordów z pierwszej tabeli odpowiada wielu rekordom z tabeli drugiej. W praktyce stosowanie tejże relacji jest wielce niewskazane ze względu na redundancję danych, zatem rozwiązaniem tego problemu będzie utworzenie tzw. tabeli łącznikowej, scalającej obie tabele relacją jeden-do-wielu. Przykładowy związek wiele-do-wielu został zaprezentowany na rysunku 8, natomiast prawidłowa prezentacja za pomocą tabeli łącznikowej na rysunku 9. Rysunek 8. Związek wiele-do-wielu. Rysunek 9. Związek wiele-do-wielu zrealizowana za pomocą tabeli łącznikowej. 2

Związek wiele-do-wielu prezentowany jest za pomocą symbolu przedstawionego na rysunku 10. Rysunek 10. Symbol związku wiele-do-wielu. Do opisu powyższych relacji można dodatkowo wprowadzić parametry charakteryzujące opcjonalne bądź obligatoryjne wykorzystanie danego atrybutu. Opcjonalność zapisuje się, dodając puste koło obok symbolu relacji (rysunek 11). Rysunek 11. Symbol związku jeden do wielu z związkiem opcjonalności rekordów. 1 Indeksowanie (ang. indexing) proces tworzenia i utrzymywania indeksu umożliwiającego skrócenie czasu dostępu do danych. Indeksowanie oznacza przyśpieszenie wyszukiwania na poziomie fizycznym, na nasze żądanie po atrybucie. Szybkie wyszukiwanie po wielu atrybutach spowoduje spowolnienie aktualizacji, modyfikowania i usuwania danych. Cechy klucza głównego: 1. Id 2. NOT NULL 3. Krótki 4. Jest takim atrybutem, który jest niezmienny w czasie. Normalizowanie baz danych. 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 (w szczególności problemów anomalii). Istnieją sposoby ustalenia czy dany schemat bazy danych jest znormalizowany, a jeżeli jest to jak bardzo. Jednym ze sposobów jest przyrównanie danej bazy do schematów zwanych postaciami normalnymi (ang. normal forms lub NF). Normalizacja bazy danych do konkretnej postaci może wymagać rozbicia dużych tabel na mniejsze i przy każdym wykonywaniu zapytania do bazy danych ponownego ich łączenia. Zmniejsza to wydajność, więc w niektórych 1 https://msdn.microsoft.com/pl-pl/library/projektowanie-baz-danych--diagramy-erd-relacje-miedzy-tabelami-zwiazkirekordy.aspx 3

przypadkach świadoma denormalizacja (stan bez normalizacji) jest lepsza zwłaszcza w systemach niekorzystających z modelu relacyjnego (np. OLAP- OnLine Analytical Processing). Pierwsza postać normalna (1NF) Treść: Baza danych znajduje się w pierwszej postaci normalnej, gdy każda składowa krotki jest wartością atomową. Pierwsza zasada postaci normalnej bazy danych określa w sposób jednoznaczny, iż w tabelach mogą znajdować się wyłącznie informacje lub atrybuty, które z natury są niepodzielne. W tabeli 1 została przedstawiona przykładowa tabela łamiąca zasadę 1. Składa się ona z dwóch kolumn: Kobieta i Mężczyzna, i zawiera informacje o imieniu danej osoby. Dane składowane w ten sposób w kolumnie można określić jako kolekcję stringów (imion), dopasowanych do konkretnej płci. Nietrudno zauważyć, że takie operacje jak: wyszukiwanie, indeksowanie, porównywanie wzorców itp., stanowią w tym wypadku poważny problem. Najwłaściwszym rozwiązaniem jest przechowywanie imion w osobnych rekordach oraz przypisanie do nich identyfikatora płci (tabela 2). Na tej podstawie w kolumnach przechowywane będą informacje niepodzielne, wyłącznie jednego typu. Tab. 1. Tabela łamiąca zasadę pierwszej postaci normalnej. Kobieta Mężczyzna Joanna, Paulina, Lucyna Marcin, Krzysztof, Michał Tab. 2. Tabela zgodna z zasadą pierwszej postaci normalnej. Płeć Imię K Joanna K Paulina K Lucyna M Marcin M Krzysztof M Michał Druga postać normalna (2NF) Treść: Baza danych znajduje się w drugiej postaci normalnej, kiedy spełnia warunki pierwszej postaci normalnej, oraz gdy każda kolumna zależy funkcyjnie od całego klucza głównego. Załóżmy, iż projektujemy bazę danych uczelni wyższej. W jednej z tabel (tabela 3) składowane będą informacje o studentach. Jako klucz główny zostały wybrane kolumny: PESEL oraz Wydział. Tak zaprojektowana tabela łamie zasadę drugiej postaci normalnej, gdyż co prawda Jan Kowalski jest zależny od swojego numeru PESEL (wszędzie tam, gdzie pojawi się numer 123456, będzie identyfikowany Jan Kowalski i odwrotnie, nawet gdy zdarzą się powtórzenia w nazwisku), lecz Wydział pozostaje bez uzasadnionej relacji funkcyjnej ze studentem (tam, gdzie pojawi się student, powinien być dopasowany Wydział, ale odwrotnie już niekoniecznie). 4

Tab. 3. Tabela łamiąca zasadę drugiej postaci normalnej. [PK] PESEL [PK] Wydział Imię Nazwisko 123456 Informatyka Jan Kowalski 654321 Automatyka Michał Nowak Trzecia postać normalna (3NF) Treść: Baza danych znajduje się w trzeciej postaci normalnej, kiedy spełnia warunki drugiej postaci normalnej oraz gdy każda kolumna zależy funkcyjnie wyłącznie od klucza głównego. Treść trzeciej postaci normalnej wymaga usunięcia nadmiarowych informacji, które w żaden sposób nie są związane z kluczem głównym. W projekcie bazy danych dla uczelni chcielibyśmy przechowywać informacje na temat przyznawanego stypendium. Wysokość wypłaty zależy od rodzaju pomocy materialnej (naukowa, socjalna, motywacyjna, brak). Projektując tabelę jak w tabeli 4, można łatwo popaść w kłopoty, gdy rozporządzeniem rektora stawka np. stypendium naukowego wzrośnie o 10 zł. Należałoby wtedy przejrzeć wszystkie rekordy i dokonać odpowiednich korekt, co łatwo może spowodować błędy. Sprowadzenie tabeli zgodnej z trzecią formą normalną wiąże się z przeniesieniem wartości stypendium do osobnej tabeli oraz powiązanie jej z tabelą Studenci relacją klucza obcego (rysunek 1). Tab. 4. Tabela łamiąca zasadę trzeciej postaci normalnej. Imię Nazwisko Rodzaj stypendiumkwota Joanna Kowalska Naukowe 10 Lucyna Nowak Naukowe 10 Michał Kowalski-Nowak Socjalne 20 Justyna Nowak-Kowalska Naukowe 10 Mateusz Kowalski Brak 0 Ewa Nowakowska Socjalne 20 Rysunek 1. Tabele zgodne z zasadą trzeciej postaci normalnej. 5

Oprócz trzech podstawowych zasad omówionych powyżej, definiuje się dwie kolejne. Nie są one zbyt często stosowane w praktyce, lecz wykorzystanie ich na pewno wpłynie na jakość projektowanych baz danych. Tymi zasadami są: postać Boyce a-codda (czasami nazywana w literaturze jako postać czwarta) oraz piąta postać normalna. Postać Boyce a-codda (BCNF): Treść: Baza danych znajduje się w postaci normalnej BCNF, kiedy spełnia warunki trzeciej postaci normalnej oraz gdy zachodzi zależność: X A i atrybut A nie zawiera się w X, to X jest kluczem bądź zawiera klucz. Ogólnie rzecz ujmując, postać BCNF jest sumą pierwszej, drugiej i trzeciej postaci normalnej. W praktyce oznacza to, iż wartością klucza obcego może być NULL albo klucz główny z innej tabeli. Należy mieć na uwadze, iż postać BCNF nie daje gwarancji, że redundacje poza zależnościami funkcyjnymi nie wystąpią. Piąta postać normalna Treść: Baza danych znajduje się w piątej postaci normalnej, kiedy spełnia warunki postaci BCNF oraz usunięto z niej zależności funkcjonalne, które nie wynikają z zależności od atrybutów klucza. Zasada ta mówi o fakcie nie istnienia rozkładu odwracalnego na zbiór mniejszych tabel, czyli tabela została podzielona na najmniejsze możliwe kawałki w celu eliminacji redundacji. Do zapisania: Mówimy, że baza danych jest w: Pierwszej postaci normalnej (1NF), gdy każdy rekord dowolnej tabeli bazy przechowuje informacje o pojedynczym obiekcie, nie zawiera kolekcji, ma klucz główny, a jej komponenty są wartościami atomowymi (niepodzielnymi). Drugiej postaci normalnej (2NF), gdy każda tabela przechowuje dane dotyczące tylko jednej klasy obiektów, np. w tabeli o nazwie klienci wszystkie atrybuty opisujące jej elementy powinny dotyczyć klientów, a nie innych obiektów; atrybuty opisujące inne obiekty powinny znaleźć się w tabelach im poświęconych. Trzeciej postaci normalnej (3NF), gdy atrybuty wtórne (zależne od innych atrybutów) są zależne bezpośrednio i wyłącznie od klucza podstawowego tabeli, tzn. atrybuty wtórne nie mogą być zależne od innych atrybutów wtórnych. 6