Jest to w obrazkowej postaci (tzw. ERD - Entity Relationship Diagram, czyli Diagram Relacji Encji) przedstawienie tego wszystkiego, co ustaliliśmy wyżej - dwie tabele (CZYTELNIK i KSIĄŻKA) z konkretnymi polami (kolumnami), oraz łącząca je relacja (WYPOŻYCZENIE) z którą również związane są konkretne atrybuty.
Problem, który się tu pojawia polega na zapisaniu samej relacji „wiele do wielu” (zobrazowane jest to „kruczą nóżką” po obu stronach linii reprezentującej relację - do każdej książki możemy dopasować wielu czytelników, którzy ją wypożyczyli i odwrotnie - każdy czytelnik mógł pożyczyć wiele książek (niekoniecznie j ednocześnie - na razie tą kwestię pominiemy). Tabele maj ą określoną liczbę kolumn, więc można sobie wyobrazić, że dopiszemy np. do tabeli CZYTELNIK sygnaturę książki (i daty związane z wypożyczeniem) i po prostu będziemy dopisywać wielokrotnie tego samego czytelnika za każdym razem kiedy wypożyczy książkę. Chcemy jednak, aby jednemu czytelnikowi podobnie, jak jednej książce odpowiadał dokładnie jeden wiersz (rekord) - jeśli pan Kowalski się przeprowadzi wystarczy, że zmienimy wówczas to tylko w jednym miejscu, nie będzie trzeba przeszukiwać całej bazy danych! Nie możemy zatem zrobić tego w taki sposób.
Rozwiązaniem jest dodanie trzeciej tabeli - przekształcenie relacji WYPOŻYCZENIE w tabelę WYPOŻYCZENIE która powiązana będzie odpowiednimi relacjami z pozostałymi tabelami, jednak będą to już relacje „jeden do wielu”, co bez problemu umiemy już zapisać:
CuiWWtk |
* ID TułuT mrfor tydari* | |||
/u) |
_ |
VostaW</p TertuinZss 'Dała. 2 ^ 1 D-C |
V _ | |
1 rwie Miasto | ||||
ttodl ftAłti |
ID_K | |||
Rysunek 2: Biblioteczna baza danych, podejście 2
Każdy rekord (wiersz) w tabeli Wypożyczenie symbolizuje fakt wypożyczenia jednej książki przez jednego czytelnika. Książka jest identyfikowana przez sygnaturę, czytelnik przez jego ID. Daty były omawiane wyżej.
Pomińmy w tej chwili komputer. Wyobraźmy sobie, że mamy trzy tabele (np. na papierze) takie, jak przedstawiono wyżej. Zastanówmy się teraz, w jaki sposób możemy realizować podstawowe funkcj e biblioteki.
Przykład 1
Wypożyczenie konkretnej książki przez konkretnego czytelnika.
Dopisujemy na koniec tabeli Wypożyczenie jedną pozycję wpisując identyfikatory książki, czytelnika, datę wypożyczenia, oraz termin zwrotu. Datę zwrotu pozostawiamy pustą (wpiszemy ją kiedy odda książkę).
Przykład 2 Oddanie książki.
W tabeli Wypożyczenie odszukujemy pozycję w której występuje odpowiednie ID czytelnika i