Model E-R pozwala na duż± elastyczno¶ć przy tworzeniu schematu bazy danych. Projektuj±cy może wybrać spo¶ród następuj±cych alternatyw:
Fazy projektowania
Przykładowe projektowanie bazy danych obsługuj±cej bank:
a. Gromadzenie potrzebnych informacji:Wstępne specyfikacje powinny zostać ustalone na podstawie rozmów z przyszłymi użytkownikami systemu oraz jego pomysłodawcami.
Lista najważniejszych informacji dotycz±cych infrastruktury banku:
2. Redukcja schematu E-R do tablic:
Baza danych która odpowiada schematowi E-R może być przedstawiona przez zbiór tablic. Dla każdego zbioru elementów i relacji w bazie danych istnieje osobna tabela o nazwie nawi±zuj±cego zbioru. Każda tabela zawiera kolumny, każda z nich ma inn± nazwę.
Modele E-R oraz relacyjnej bazy danych s± abstrakcyjne, s± logicznymi reprezentacjami przedsiębiorstw realnego ¶wiata. Ponieważ te dwa modele kieruj± się podobnymi zasadami, możemy przetworzyć projekt E-R w relacyjny. Przetwarzaj±c reprezentację bazy danych z diagramu E-R w tabele, jest podstaw± wyprowadzania projektu relacyjnej bazy danych z diagramu E-R. Chociaż istniej± znaczne różnice pomiędzy relacj± i tablic±, nieformalnie, relacja może być uważana za tablicę warto¶ci.
Niech E będzie zbiorem silnie zwi±zanych elementów, a a1, a2, ..., an będ± atrybutami opisuj±cymi te elementy. Możemy przedstawić ten zbiór tabel± E zawieraj±c± n różnych kolumn, każda z nich nawi±zuje do jednego z atrybutów E. Każdy wiersz w tej tabeli nawi±zuje do jednego elementu ze zbioru elementów E.
Przykład:
Tabela “kredyt”
Numer kredytu |
Kwota |
L-17 |
1000 |
L-23 |
2000 |
L-15 |
1500 |
L-14 |
1500 |
L-93 |
500 |
L-11 |
900 |
L-16 |
1300 |
E – zbiór elementów typu “kredyt”
a1- atrybut “numer kredytu”
a2- atrybut “kwota”
Reprezentujemy ten zbiór przez tablicę o nazwie “kredyt”, z dwoma kolumnami. Wiersz: (L-17, 1000) w tablicy “kredyt” oznacza, że kredyt numer L-17 jest na kwote $1000. Możemy dodać nowy element do bazy danych przez wstawienie wiersza do tabeli. Możemy również skasować lub modyfikować wiersze.
Prykład II:
Tabela “klient”
Nazwisko klienta |
Numer pesel |
Ulica |
Miasto |
Rogoz |
321-12-3123 |
Main |
Harrrison |
Szczypta |
019-28-3746 |
North |
Rye |
Piekarz |
677-89-9011 |
Main |
Harrison |
Sendrowicz |
244-66-8800 |
North |
Rye |
Hara |
336-66-9999 |
Park |
Pittsfiled |
Kowalski |
182-73-6091 |
Putnam |
Stamford |
Nowak |
963-96-3963 |
Nassau |
Princeton |
Wolak |
335-57-7991 |
Spring |
Pittsfiled |
Smoleń |
192-83-7465 |
Alma |
Palo Alto |
Niech A będzie zbiorem silnie zwi±zanych elementów, a a
1, a2, ..., am będ± atrybutami opisuj±cymi te elementy. Niech B będzie zbiorem silnie zwi±zanych elementów od których A jest zależny. Niech klucz podstawowy zbioru B składa się z atrybutów b1, b2, ..., bn .Możemy przedsawić zbiór A tabel± tabel± A, w której jedna kolumna zawiera jeden atrybut ze zbioru:{a1, a2, ..., am} È {b1, b2, ..., bn}
Przykład: Tabela “rata”
Numer kredytu |
Numer wpłaty |
Data wpłaty |
Kwota wpłaty |
L-17 |
5 |
10.V.1996 |
50 |
L-23 |
11 |
17.V.1996 |
75 |
L-15 |
22 |
23.V.1996 |
300 |
L-14 |
69 |
28.V.1996 |
500 |
L-93 |
103 |
3.VI.1996 |
900 |
L-17 |
6 |
7.VI.1996 |
50 |
L-11 |
53 |
7.VI.1996 |
125 |
L-93 |
104 |
13.VI.1996 |
200 |
L-17 |
7 |
17.VI.1996 |
100 |
L-16 |
58 |
18VI.1996 |
135 |
A – zbiór elementów typu “rata”
a1- atrybut “numer wpłaty”
a2- atrybut “data wpłaty”
a3- atrybut “kwota wpłaty”
b1- atrybut “numer kredytu” - podstawowy klucz zbioru “kredyt” od którego zbiór
“rata” jest zależny.
Niech R będzie zbiorem relacji, niech a
1, a2, ..., am będ± zbiorem artybutów, który powstał z unii podstawowych kluczy zbiorów uczestnicz±cych w relacji R, i niech b1, b2, ..., bn będ± atrybutami opisuj±cymi relację R. Możemy przedsawić relację tabel± R, w której jedna kolumna zawiera jeden atrybut ze zbioru:{a1, a2, ..., am} È {b1, b2, ..., bn}
Przykład:
Tabela “kredytobiorca”
Numer pesel |
Numer kredytu |
321-12-3123 |
L-17 |
019-28-3746 |
L-23 |
677-89-9011 |
L-15 |
555-55-5555 |
L-14 |
244-66-8800 |
L-93 |
019-28-3746 |
L-11 |
963-96-3963 |
L-17 |
335-57-7991 |
L-16 |
R – zbiór relacji typu “kredytobiorca”
a1- atrybut “Numer pesel” – podstawowy klucz zbioru “klient”
a2- atrybut “Numer kredytu” – podstawowy klucz zbioru “kredyt”
Przypadek zbioru relacji ł±cz±cy zbiór elementów silnie zwi±zanych z nawi±zuj±cym do niego zbiorem elementów słabo zwi±zanych jest wyj±tkowy. Jak zauważyli¶my wcze¶niej, te relacje s± postaci “many to one” i nie maj± żadnych opisuj±cych t± relację atrybutów. Ponadto, podstawowy klucz zbioru słabo zwi±zanych elementów zawier
a podstawowy klucz zbioru silnie zwi±zanych elementów.Przykład:
Zbiór słabo zwi±zanych elementów “rata” jest zależny od zbioru silnie zwi±zanych elementów “kredyt” przez zbiór relacji “kredyt-rata”. Podstawowy klucz zbioru “rata” jest {numer kredytu, numer raty}, a zbioru “kredyt” jest {numer kredytu}. Relacja “kredyt-rata” nie ma dodatkowych atrybutów okre¶laj±cych t± relacje, więc tablica “kredyt-rata” będzie miała dwie kolumny “numer kredytu” i “numer raty”. Tabela dla zbioru “rata” ma cztery kolumny:
“numer kredytu”, “numer raty”, “data wpłaty” i “kwota wpłaty”. Więc tabela “kredyt-rata” jest redundantna.Podsumowuj±c, tabela dla zbioru relacji ł±cz±cych zbiór elementów silnie zwi±zanych z nawi±zuj±cym do niego zbiorem elementów słabo zwi±zanych jest redundantny i nie trzeba go przedsawiać w tablicowej reprezentacji diagramu E-R.
Rozwarzmy zbiór relacji “many to one” AB ze zbioru elementów A do zbioru elementów B. Używaj±c naszego schematu do tworzenia tablic, dostajemy trzy tablice: A, B i AB. Jednakże, jeżeli istnieje zależno¶ć A od B (dla każdego el. a z A, istnienie el. a zależy od istnienia niektórych el. zb. B), wtedy możemy połaczyć tabele A i AB, twoż±c w ten sposób jedn± tabelę zawieraj±ca unie kolumn z obu tablic.
Przykład:
Zbiór relacji “konto-filia” jest typu “many to one” z zbioru “konto” do zbioru “filia”. Podwujna linia oznacza uczestnictwo zbioru “konto” w zbiorze relacji “konto-filia” jest całkowite. Ponadto, “konto” nie może istnieć bez przynależno¶ci do poszczególnej “filii”. W tym wypadku potrzebujemy dwóch tablic:
Dla wielowarto¶ciowego atrybutu M, tworzymy tabelę T, zawieraj±c± kolumnę C, która nawi±zuje do M, oraz kolumny nawi±zuj±ce do podstawowego klucza zbioru elementów lub relacji, którego M jest atrybutem.
Przykład:
Dla wielowarto¶ciowego atrybutu “zależne nazwisko”, twożymy tablice o tej nazwie, z kolumnami “znazwisko”, odnosz±ce się do “zależne nazwisko”, będ±cego atrybutem “pracownika”, i z kolumn± “n
umer pesel pracownika”, reprezentuj±c± podstawowy klucz zbioru “pracownik”. Każdy klient zależny odpracownika jest przedstawiony w oddzielnym wierszu w tabeli.
Istniej± dwie oddzielne metody przetwarzania do tablicowej postaci diagramu E-R zawieraj±cego generalizacje.
Przykład:
- Jeżeli generalizacja jest rozł±czna i kompletna – żaden element nie jest członkiem dwóch zbiorów elementów niższego poziomu, natomiast należy do zbioru elementów wyższego poziomu, oraz jeżeli każdy element w zbiorze elementów wyższego poziomu jest również członkiem jednego ze zbioru elementów niższego poziomu – wtedy jest możliwa alternatywna reprezentacja. Nie twożymy żadnej tabeli dla zbioru elementów wyższego poziomu. Zamiast tego, Dla każdego zbioru elementów niższego poziomu, stworzyć tabele zawieraj±c± dla każdego z atrybutów z tego zbioru oraz ze zbioru elementów wyższego poziomu kolumnę.
Relacje “konta oszczędno¶ciowego” oraz “konta rozliczeniowo-oszczędno¶ciowego” nawi±zuj±ce do tych tablic maj± “stan” jako podstawowy klucz.
Jeżeli druga metoda została użyta do pokrycia generalizacji, jakie¶ warto¶ci, takie jak “stan” mog± być przechowywane dwa razy. Podobnie, jeżeli generalizacja była nikompletna – niektóre “konta” nie były ani rozliczeniowo ani rozliczeniowo-oszczędno¶ciowe wtedy takie “konto” nie mogło by być reprezentowane drugim sposobem.
Przekształcanie w tablicow± postać diagramu E-R zawieraj±cego agregację.
Tablica dla zbioru realacji “kredyt-urzędnik” zawiera dla każdego atrybutu w podstawowym kluczu ze zbioru “pracownik" i zbioru relacji “kredytobiorca” kolumnę. Ona zawiera równierz kolumnę dla atrybutów opisuj±cych, je¶li jakie¶ istniej±. Używaj±c tej samej procedury dla reszty, stworzymy następuj±ce tabele:
Podsumowanie: