Baza danych "Biblioteka"

Podobne dokumenty
TEMAT: BIBLIOTEKA. ETAP I Cel i główne funkcje aplikacji. Schemat opisowy PRZYKŁADOWY PROJEKT - BIBLIOTEKA. Autorzy:... Grupa:...

Literatura. Bazy danych s.1-1

Model relacyjny bazy danych

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

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

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

Posługiwanie się tabelami

Bazy danych - wykład wstępny

1 Przygotował: mgr inż. Maciej Lasota

Baza danych. Modele danych

Technologia informacyjna

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

Technologie baz danych

WPROWADZENIE DO BAZ DANYCH

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

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

Wprowadzenie do baz danych

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

Normalizacja baz danych

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

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

Projektowanie Systemów Informacyjnych

Normalizacja relacyjnych baz danych. Sebastian Ernst

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Baza danych. Baza danych to:

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

Technologie baz danych

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

1 Wstęp do modelu relacyjnego

Wykład 2. Relacyjny model danych

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

PODSTAWOWE POJĘCIA BAZ DANYCH

Pojęcie zależności funkcyjnej

Model relacyjny. Wykład II

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

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

Co to są relacyjne bazy danych?

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

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

a. (20 pkt.) Aplikacja powinna zawierać następujące elementy: 2. Formularz edycji profilu użytkownika (2 pkt.).

Transformacja modelu EER do postaci relacyjnego modelu danych. Zbyszko Królikowski

Bazy danych. Algebra relacji

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

Bazy danych TERMINOLOGIA

Narysować diagram sekwencji pokazujący rejestrację wypożyczenia przez Jana Kowalskiego książki Potop

Projektowanie bazy danych przykład

Zintegrowany System Zarządzania Biblioteką SOWA2/MARC21 OBSŁUGA CZASOPISM

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

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

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


SIECI KOMPUTEROWE I BAZY DANYCH

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

Przykładowa baza danych BIBLIOTEKA

Przykłady normalizacji

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

Wprowadzenie do baz danych

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

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Transformacja modelu ER do modelu relacyjnego

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

Związki pomiędzy tabelami

Laboratorium nr 5. Bazy danych OpenOffice Base.

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

Bazy Danych i Usługi Sieciowe

Technologia Informacyjna

Normalizacja tabel POSTACIE NORMALNE TABEL

PRZEWODNIK PO PRZEDMIOCIE

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

Bazy danych. Dr inż. Paweł Kasprowski

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

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

RBD Relacyjne Bazy Danych

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

Bazy danych Algebra relacji Wykład dla studentów matematyki

Pierwsza postać normalna

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Normalizacja baz danych

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Rozmiar pola (długość danych)

Pierwsza postać normalna

Krakowska Akademia im. Andrzeja Frycza Modrzewskiego. Karta przedmiotu. obowiązuje studentów, którzy rozpoczęli studia w roku akademickim 2015/2016

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

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

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 ZAMAWIANIE I REZERWOWANIE

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

Plan wykładu: Operacje relacji: suma, przekrój, różnica, złączenia proste, iloczyn kartezjański, złączenia teta.

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

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

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Cel normalizacji. Tadeusz Pankowski

Uniwersytet im. Adama Mickiewicza w Poznaniu Wydział Matematyki i Informatyki. Projekt bazy danych <Moja baza>

TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO

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

Transkrypt:

Baza danych "Biblioteka" przeznaczenie i funkcje aplikacji schemat opisowy model danych implementacja funkcji analiza wybranych przykładów powiązań Bazy danych s.3-1

Przeznaczenie i funkcje aplikacji Przeznaczenie: Baza danych wspomaga funkcjonowanie biblioteki uczelnianej. Funkcje przeznaczone dla pracownika: Przechowuje dane książek będących na stanie biblioteki. Przechowuje niezbędne dane osobowe czytelników. Przechowuje informacje (aktualne i archiwalne) o wypożyczeniach książek. Umożliwia edycję zgromadzonych danych. Umożliwia przeszukiwanie zgromadzonych danych. Generuje zestawienia statystyki. Funkcje przeznaczone dla czytelnika: Umożliwia przeszukiwanie księgozbioru. Dostarcza informacje o dostępności wybranej pozycji. Pozwala zarezerwować wybraną książkę. Bazy danych s.3-2

Schemat opisowy dane Każda książka ma własną kartę z unikalnym numerem, listą autorów, tytułem, wydawnictwem, rokiem wydana i datą przyjęcia do ewidencji. Autorzy są jednoznacznie identyfikowani, możliwe jest więc rozróżnienie osób o tym samym imieniu i nazwisku. Książki mają przypisany zbiór słów kluczowych, które charakteryzują ich tematykę. Jedno słowo może być przypisane do kilku książek, a każda książka może być opisana za pomocą wielu słów. Każde słowo kluczowe posiada unikalną nazwę. Czytelnicy mają indywidualne karty, na których znajduje się unikalny numer, nazwisko, adres oraz data zapisu. Każda osoba jest przypisana do jednej kategorii (np. student, wykładowca), która wyznacza termin zwrotu oraz liczbę książek możliwych do wypożyczenia. Do jednej kategorii może należeć wielu czytelników. Biblioteka gromadzi informacje o wypożyczeniach książek, przechowywaną do czasu gdy dana pozycja zostanie usunięta z księgozbioru. W chwili przekazywania książki wypożyczającemu na jej karcie zapisywana jest data wypożyczenia i numer czytelnika, uzupełnianie datą zwrotu po zwrocie książki do biblioteki. Czytelnicy mają możliwość rezerwowania wybranych książek. Pracownicy prowadzą dodatkowy rejestr, w którym zapisują identyfikator czytelnika i książki, która została zarezerwowana. Rezerwacja wygasa po upływie trzech dni. Bazy danych s.3-3

Schemat opisowy funkcje Pracownicy biblioteki muszą mieć możliwość przeszukiwania zgromadzonych danych: księgozbioru na podstawie numeru książki, nazwiska autora i tytułu oraz czytelników na podstawie numeru i nazwiska. Należy umożliwić edycję wszystkich gromadzonych danych (modyfikacja i usuwanie). Aplikacja powinna generować zestawienia niezbędne w codziennej pracy: listę osób wypożyczających wybraną książkę, listę książek wypożyczanych w danym okresie, listę książek niewypożyczanych w określonym przedziale czasowym, listę czytelników, którzy nie korzystają z biblioteki, statystyki dotyczące wypożyczeń z danego okresu, listę wypożyczeń, które przekroczyły dozwolony termin (upomnienia). Czytelnicy powinni mieć dostęp do swoich danych (historia wypożyczeń) i pełnego katalogu książek z możliwością przeszukiwania po: tytule, autorze i słowach kluczowych. Należy dostarczyć pełne dane książek zawierające informacje o dostępności (dostępna, zarezerwowana, wypożyczona) i przewidywanym terminie zwrotu, jeżeli książka była wypożyczona. Podczas przeglądania katalogu czytelnik powinien mieć możliwość zarezerwowania wybranych pozycji, przeglądania listy zarezerwowanych książek i ewentualnego odwołania rezerwacji. Bazy danych s.3-4

Wykaz skrótów Książki Czytelnicy IDKS identyfikator książki IDCZ identyfikator czytelnika Tytuł tytuł książki NazCZ nazwisko czytelnika IDA identyfikator autora ImięCZ imię czytelnika NazA nazwisko autora Miasto, Kod miejsce zamieszkania ImieA imię autora Ulica, Nr adres czytelnika NazW nazwa wydawnictwa IDKT identyfikator kategorii RokW rok wydania NazKT nazwa kategorii DataE data przyjęcia do ewidencji Termin max. czas wypożyczenia IDSK identyfikator słowa kluczowego Ilość dozwolona liczba książek NazSK nazwa słowa kluczowego Wypożyczenia i rezerwacje Wydawnictwa DataW data wypożyczenia IDW identyfikator wydawnictwa DataZ data zwrotu (atrybut nie wynika bezpośrednio z analizy DataR data rezerwacji schematu opisowego pojawi się w ostatnim kroku procesu modelowania danych) Bazy danych s.3-5

Wstępny zestaw relacji Obiekty: Książki, Czytelnicy Powiązania: Czytelnik wypożycza Książkę, Czytelnik rezerwuje Książkę Książki(IDKS, Tytuł, IDA, NazA ImieA, NazW, RokW, DataE, IDSK,NazSK) Czytelnicy(IDCZ, NazCZ, ImięCZ, Miasto, Kod, Ulica, Nr, DKT, NazKT, Termin, Ilość) Wypożyczenia(IDCZ, IDKS, DataW, DataZ) DataW IDKS Rezerwacje(IDCZ, IDKS, DataR) IDA IDSK IDKS ImięA NazA NazSK Tytuł NazW RokW IDCZ NazKT IDKT Ilość NazCZ ImięCZ Miasto Kod Ulica Nr Termin IDCZ DataZ Wypożyczenia DataR IDKS IDCZ Książki DataE Czytelnicy Rezerwacje Bazy danych s.3-6

Normalizacja danych IFN Relacja jest w IFN, jeżeli wszystkie składniki są zależne funkcjonalnie od klucza. Książki(IDKS, Tytuł, IDA, NazA ImieA, NazW, RokW, DataE, IDSK, NazSK) Czytelnicy(IDCZ, NazCZ, ImięCZ, Miasto, Kod, Ulica, Nr, IDKT, NazKT, Termin, Ilość) Wypożyczenia(IDCZ, IDKS, DataW, DataZ) Rezerwacje(IDCZ, IDKS, DataR) Uwagi: 1. Książka może mieć kilku autorów, jedna osoba może być autorem kilku książek (Książka będzie powtórzona tyle razy ilu jest autorów). 2. Książka może mieć kilka słów kluczowych, jedno słowo może być przypisane do kilku Książek (dodatkowe powtórzenia dla każdego słowa kluczowego). 3. Identyfikator Czytelnika jednoznacznie identyfikuje krotkę relacji. 4. Czytelnik wypożycza i rezerwuje wiele książek, jedną może wypożyczyć lub zarezerwować wielokrotnie. Relacje przedstawione powyżej są w IFN, ponieważ ich wszystkie składniki zależą funkcjonalnie od przyjętych kluczy. Bazy danych s.3-7

Normalizacja danych IIFN Relacja jest w IIFN, jeżeli jest w IFN i wszystkie jej składniki są zależne funkcjonalnie elementarnie od klucza. W relacji Książki: 1. Tytuł, NazW, RokW, DataE zależą elementarnie od IDKS 2. NazA i ImięA zależą elementarnie od IDA 3. NazSK zależy elementarnie od IDSK 4. IDKS i IDSK łącznie są źródłem zależności elementarnej 5. IDKS i IDA łącznie są źródłem zależności elementarnej Składniki pozostałych relacji zależą elementarnie od przyjętych kluczy. Książki1(IDKS, Tytuł, NazW, RokW, DataE), Książki2(IDA, NazA, ImięA) Książki3(IDSK, NazSK), Książki4(IDKS, IDSK), Książki5(IDKS, IDA) Czytelnicy(IDCZ, NazCZ, ImięCZ, Miasto, Kod, Ulica, Nr, IDKT, NazKT, Termin, Ilość) Wypożyczenia(IDCZ, IDKS, DataW, DataZ) Rezerwacje(IDCZ, IDKS, DataR) Relacje przedstawione powyżej są w IIFN, ponieważ są w IFN i wszystkie ich składniki zależą funkcjonalnie elementarnie od przyjętych kluczy. Bazy danych s.3-8

Normalizacja danych IIIFN Relacja jest w IIIFN, jeżeli jest w IIFN i wszystkie jej składniki są zależne funkcjonalnie bezpośrednio od klucza. W relacji Czytelnicy NazKT, Termin i Ilość zależą bezpośrednio od IDKT Składniki pozostałych relacji zależą bezpośrednio od przyjętych kluczy. Książki1(IDKS, Tytuł, NazW, RokW, DataE), Książki2(IDA, NazA, ImięA) Książki3(IDSK, NazSK), Książki4(IDKS, IDSK), Książki5(IDKS, IDA) Czytelnicy1(IDCZ, NazCZ, ImięCZ, Miasto, Kod, Ulica, Nr, IDKT) Czytelnicy2(IDKT, NazKT, Termin, Ilość) Wypożyczenia(IDCZ, IDKS, DataW, DataZ) Rezerwacje(IDCZ, IDKS, DataR) Relacje przedstawione powyżej są w IIIFN, ponieważ są w IIFN i wszystkie ich składniki zależą funkcjonalnie bezpośrednio od przyjętych kluczy. Bazy danych s.3-9

Normalizacja danych ostateczny zestaw relacji Możliwe udoskonalenie: nazwy wydawnictw powtarzają się przy wielu książkach (lista wydawnictw jest ograniczona). Można wprowadzić relację: Wydawnictwa(IDW, NazW) Ostatecznie po zmianie nazw: Książki(IDKS, Tytuł, IDW, RokW, DataE) Autorzy(IDA, NazA, ImięA) Książki-Autorzy(IDKS, IDA) Wydawnictwa(IDW, NazW) SłowaKluczowe(IDSK, NazSK) Książki-SłowaKluczowe(IDKS, IDSK) Czytelnicy(IDCZ, NazCZ, ImięCZ, Miasto, Kod, Ulica, Nr, IDKT) Kategorie(IDKT, NazKT, Termin, Ilość) Wypożyczenia(IDCZ, IDKS, DataW, DataZ) Rezerwacje(IDCZ, IDKS, DataR) Bazy danych s.3-10

Przykładowe dane (1) Książki: Ullman Jeffrey D., Widom Jennifer, "Podstawowy wykład z systemów baz danych" wydawnictwo WNT 2001, przyjęta do ewidencji 2001.11.20, słowa kluczowe: Bazy danych, Informatyka Ullman Jeffrey D., Widom Jennifer, Garcia-Molina Hector, "Database Systems: The Complete Book", wydawnictwo Addison-Wesley 2008, przyjęta do ewidencji 2010.02.01, słowa kluczowe: Bazy danych, Informatyka, Anglojęzyczna Czytelnicy Student, Kowalski Jan, adres: 65-001 Zielona Góra, ul. Krótka 175 Wykładowca, Nowak Andrzej, adres: 66-100 Sulechów, ul. Długa 22 Historia wypożyczeń i rezerwacji 14.02.010 Kowalski - rezerwacja "Database Systems ", wypożyczenie 15.02, zwrot 5.03, 20.02.2010 Nowak - wypożyczenie "Podstawowy wykład ", zwrot 8.04, 7.03.2010 Nowak - rezerwacja "Database Systems ", wypożyczenie 9.03, brak zwrotu, 15.04.2010 Kowalski - wypożyczenie "Podstawowy wykład ", brak zwrotu Bazy danych s.3-11

Relacja Książki Przykładowe dane (2) IDKS Tytuł IDW RokW DataE 1 Podstawowy wykład z systemów baz danych 10 2001 2001.11.20 2 Database Systems: The Complete Book 20 2008 2010.02.01 Relacja Książki-Autorzy Relacja Wydawnictwa IDW NazW 10 WNT 20 Addison-Wesley IDKS IDA 1 1 1 2 2 1 2 2 2 3 Relacja Autorzy IDA NazA ImięA 1 Ullman Jeffrey D. 2 Widom Jennifer 3 Garcia-Molina Hector Relacja SłowaKluczowe IDSK NazSK 11 Bazy danych 12 Informatyka 13 Anglojęzyczne Relacja Książki-SłowaKluczowe IDKS IDA 1 11 1 12 2 11 2 12 2 13 Bazy danych s.3-12

Relacja Czytelnicy Przykładowe dane (3) IDCZ NazCZ ImięCZ Miasto Kod Ulica Nr IDKT 313 Kowalski Jan Zielona Góra 65-001 Krótka 175 1 385 Nowak Andrzej Sulechów 66-100 Długa 22 2 Relacja Kategorie IDKT NazKT Termin Ilość 1 Student 45 5 2 Wykładowca 100 10 Relacja Wypożyczenia IDCZ IDKS DataW DataZ 313 2 2010.02.15 2010.03.05 385 1 2010.02.20 2010.04.08 385 2 2010.03.09 313 1 2010.04.15 Relacja Rezerwacje IDCZ IDKS DataR 313 2 2010.02.14 385 2 2010.03.07 Bazy danych s.3-13

Lista czytelników z pełnymi danymi Funkcje aplikacji (1) Należy wykonać złączenie naturalne relacji Czytelnicy i Kategorie, a następnie rzutowanie w celu wyboru odpowiednich atrybutów. IDCZ,NazCZ,ImięCZ,Kod,Miasto,Ulica,Nr,NazKT (Czytelnicy Kategorie) Lista Książek z pełnymi danymi (bez słów kluczowych) Pełne dane książek znajdują się w relacjach: Książki, Wydawnictwa Autorzy oraz Książki-Autorzy. Należy wykonać złączenie naturalne wszystkich relacji i rzutowanie w celu wyboru odpowiednich atrybutów. IDKS,Tytuł,,ImieA,NazA ((Książki Wydawnictwa) Książki-Autorzy) Autorzy) Lista osób wypożyczających książkę o identyfikatorze ID Informacje znajdują się w relacjach: Wypożyczenia, Czytelnicy, Książki. Należy wykonać ich złączenie naturalne, rzutowanie w celu wyboru atrybutów wyniku i selekcję ograniczającą wynik do wierszy dotyczących książki o identyfikatorze ID. IDKS=ID IDCZ,NazCZ,ImięCZ ((Czytelnicy Wypożyczenia) Książki) Bazy danych s.3-14

Funkcje aplikacji (2) Lista wypożyczeń, które przekroczyły dozwolony termin (upomnienia) Niezbędne informacje znajdują się w tabelach: Wypożyczenia, Książki, czytelnicy i kategorie. Należy wykonać ich złączenie naturalne, rzutowanie (wybór atrybutów) oraz selekcję wierszy zawierających książki wypożyczone (pusta data zwrotu), których termin zwrotu minął (suma daty wypożyczenia i dozwolonego terminu z relacji Kategorie mniejsza od daty bieżącej). DataZ IS NULL AND DataW+Termin<Now() (((Wypoż. Książki) Czyt.) Kat.) Uwaga: elementy zapytania wykraczają poza algebrę relacji. Element NULL określa pustą wartość atrybutu, Now() jest funkcją zwracającą bieżącą datę i godzinę. Wypożyczenie i rezerwacja Książki, zwrot i odwołanie rezerwacji Książki Realizacja tych funkcji wymaga wykonania modyfikacji danych. Tego typu operacje nie są elementem algebry relacji i wymagają zastosowania rozszerzeń dostępnych w języku QBE (odpowiednio kwerend dodających, aktualizujących i usuwających dane). Bazy danych s.3-15

Modelowanie danych przykłady Prawidłowo skonstruowany relacyjny model danych zawiera zestaw relacji, które reprezentują obiekty występujące w modelowanym systemie oraz ich wzajemne powiązania. Relacje opisujące obiekty mają zazwyczaj prostą strukturę: pojedynczy klucz (często naturalny) i zestaw atrybutów, wynikających wprost z ich cech. Schemat relacji opisujących powiązania jest zależy od typu powiązania. Typy powiązań Powiązanie jeden-do-jeden każdej krotce z relacji pierwszej odpowiada dokładnie jedna krotka z relacji drugiej i każdej krotce z relacji drugiej odpowiada jedna krotka w relacji pierwszej. Cecha charakterystyczna: wspólny klucz. Powiązanie jeden-do-wielu każdej krotce z relacji pierwszej odpowiada wiele krotek z relacji drugiej, ale jednej krotce z relacji drugiej odpowiada jedna krotka w relacji pierwszej. Cecha charakterystyczna: dodatkowe źródło zależności elementarnej i/lub bezpośredniej, powtarzające się wartości atrybutu(ów). Powiązanie wiele-do-wielu każdej krotce z relacji pierwszej odpowiada wiele krotek z relacji drugiej i każdej krotce z relacji drugiej odpowiada wiele krotek w relacji pierwszej. Cecha charakterystyczna: zależność funkcjonalna generowana jednocześnie przez klucze co najmniej dwóch relacji. Bazy danych s.3-16

Powiązanie jeden-do-jeden Każdej krotce relacji R1 odpowiada dokładnie jedna krotka R2 i każdej krotce relacji R2 odpowiada dokładnie jedna krotka R1. R1(A, B, C, D) R2(A, E, F, G) R(A, B, C, D, E, F, G) B E B E A C A F C A F D G D G Powiązania jeden-do-jeden należy eliminować przez łączenie relacji. Tego typu powiązanie nieznacznie powiększa rozmiar bazy danych (powtórzone wartości klucza) i zwiększa złożoność zapytań (dodatkowe złączenie). Przykłady Czytelnicy1(IDCZ, NazCZ, ImięCZ), Czytelnicy2(IDCZ, Miasto, Kod, Ulica, Nr) Każdy czytelnik ma jednoznacznie przypisany adres zamieszkania, nie ma powodu utrzymywania dwóch relacji o tym samym kluczu. Pojazd1(NrRej, Marka, Model, Kolor), Pojazd2(NrRej, Właściciel, DataRejestracji) Każdy pojazd ma jednoznacznie przypisany numer rejestracyjny, relacje zawierają różne dane dotyczące tych samych pojazdów, można je połączyć. Bazy danych s.3-17

Powiązanie jeden-do-wielu W relacji R istnieje atrybut, który jest źródłem zależności funkcjonalnych elementarnych i/lub bezpośrednich dla podzbioru atrybutów R (relacja nie spełnia warunku IIIFN), lub wartości pewnych atrybutów powtarzają się wielokrotnie w R. R(A, B, C, D, E, F) R1(A, B, C, D) R2(C, E, F) B F B F A C A C C D E D E Relację należy podzielić wyodrębniając z niej składniki zależne. Atrybut, który jest źródłem dodatkowej zależności elementarnej pozostaje w relacji pierwotnej i dodatkowo zostaje kluczem nowoutworzonej relacji. Jeżeli w relacji istnieje atrybut (podzbiór atrybutów), którego wartości powtarzają się wielokrotnie w zbiorze danych (istnieje ograniczona liczba wartości przyjmowanych przez ten atrybut), można go wydzielić z relacji pierwotnej tworząc nową relację powiązaną zależnością jeden-do-wielu. W tym celu należy dodać atrybut, który będzie kluczem nowej relacji i zostanie umieszczony w relacji pierwotnej w miejsce atrybutu wydzielonego. Bazy danych s.3-18

Powiązanie jeden-do-wielu przykłady Czytelnicy(IDCZ, NazCZ, ImięCZ, IDKT, NazKT, Termin, Ilość) Każdy czytelnik ma jednoznacznie określoną kategorię, do jednej kategorii jest przypisanych wielu czytelników. Te same informacje są powtarzane wielokrotnie przy danych kolejnych czytelników. Ponieważ nazwa kategorii, termin oraz ilość zależą bezpośrednio od IDKT (IDK jest źródłem zależności bezpośredniej) informacje o kategoriach należy wydzielić do osobnej relacji z kluczem IDKT, pozostawiając ten atrybut również w relacji Czytelnicy, aby nie utracić powiązania. Książki(IDKS, Tytuł, NazW, RokW, DataE) Nazwa wydawnictwa (NazW) zawiera wartości, które powtarzają się wielokrotnie w zbiorze danych książek (jedno wydawnictwo może wydać wiele książek). Można zredukować rozmiar relacji i usprawnić wprowadzanie danych przez wydzielenie tych informacji do innej relacji. Nie istnieje atrybut, który jest źródłem zależności bezpośredniej dla NazW, należy więc stworzyć nowy atrybut (IDW), który będzie kluczem nowej relacji i zostanie umieszczony w relacji Książki w miejsce NazW, aby nie utracić powiązania. Podobne przypadki: kategorie produktów (sklep/hurtownia), marki, pojazdów (firma transportowa), lekarze prowadzący pacjentów (szpital), sposób zapłaty faktury/rachunku (sklep, hotel, restauracja, itp.). Bazy danych s.3-19

Powiązanie wiele-do-wielu Relacja R ma klucz złożony z kilku elementów i istnieją atrybuty zależne tylko od poszczególnych części klucza oraz atrybuty zależne od całości. E F R(A, B, C, D, E, F, G) R1(A, B, C) R2(D, E, F) R3(A, D, G) D A B C G Relację należy podzielić wyodrębniając atrybuty zależne od elementów klucza. Wyłączone składniki tworzą nowe relacje z kluczem będącym fragmentem klucza relacji pierwotnej. W relacji wyjściowej pozostają tylko atrybuty zależne od całości. W typowej sytuacji relacja pierwotna zawiera informacje o dwóch lub więcej obiektach oraz powiązaniach typu wiele-do-wielu. Nowoutworzone relacje opisują obiekty, zredukowana relacja (z kluczem wielokrotnym) tworzy powiązanie. W relacyjnym modelu danych powiązanie typu wiele-do-wielu reprezentowane jest przez relację, której atrybutami są klucze relacji opisujących połączone obiekty. Klucz relacji-powiązania zawsze jest kluczem wielokrotnym, zazwyczaj złożonym z kluczy powiązanych obiektów. A B C D E F D A G Bazy danych s.3-20

Powiązanie wiele-do-wielu przykłady (1) Książki(IDKS, Tytuł, NazW, RokW, DataE, IDSK, NazSK) Każda książka ma wiele słów kluczowych, jedno słowo kluczowe może być związane z wieloma książkami. Można wykazać, że tytuł, nazwa wydawnictwa (NazW) i rok wydania (RokW) zależą tylko od części klucza (IDKS), podobnie nazwa słowa kluczowego (NazSK) zależy tylko od jego identyfikatora (IDSK). Relacja zawiera więc informacje o obiektach typu Książki oraz Słowa Kluczowe (należy wyodrębnić odpowiednie atrybuty). W relacji pierwotnej pozostaje tylko podwójny klucz, który reprezentuje powiązanie pomiędzy tymi obiektami. Wypożyczenia(IDCZ, IDKS, DataW, DataZ) Relacja powstała na etapie analizy modelowanego systemu. Reprezentuje powiązanie pomiędzy obiektami typu Książki oraz Czytelnicy (zawiera klucze tych relacji). W tym przypadku klucz relacji-powiązania nie może składać się z atrybutów IDCZ, IDKS, ponieważ ten sam czytelnik może wypożyczyć tą samą książkę wielokrotnie (powtórzenie wartości atrybutów). Dwukrotne wypożyczenie tej samej książki w tym samym czasie nie jest możliwe stąd klucz IDKS, DataW. Relacja Rezerwacje analogicznie. Bazy danych s.3-21

Powiązanie wiele-do-wielu przykłady (2) Faktura/rachunek sprzedaży: Jedna faktura może dotyczyć wielu przedmiotów i zawiera wiele pozycji, każdy przedmiot może występować na wielu fakturach. Pomiędzy przedmiotami i fakturami występuje powiązanie typu wiele-do-wielu. Pierwotna relacja: Faktura(IDF, Płatnik, Adres, IDP, Nazwa, Cena, Ilość) powinna być podzielona na relacje opisujące obiekty (Faktury, Przedmioty) oraz relację opisującą powiązanie pomiędzy nimi: Faktury(IDF, Płatnik, Adres) Przedmioty(IDP, Nazwa, Cena) F-P(IDF, IDP, Ilość) Podobne przypadki: Rejestracja pacjentów do lekarza jeden pacjent może rejestrować się wielokrotnie (do różnych lekarzy), do jednego lekarza rejestruje się wielu pacjentów. Plan zajęć jeden student uczestniczy w wielu zajęciach, na każdy z przedmiotów uczęszcza wielu studentów. Aktorzy i filmy jeden aktor gra w wielu filmach w każdym filmie zatrudnionych jest wielu aktorów. Bazy danych s.3-22