Projekt – modelowanie danych
Zadanie:
Dla projektowanego systemu informacyjnego opisz krótko zasady działania tego systemu i jego cele
(wymagania funkcjonalne), przedstaw reguły biznesowe i za pomocą diagramów ER zamodeluj dane
dla tego systemu.
Przykładowe zadania – na podstawie reguł biznesowych zbuduj diagramy ER dla następujących
systemów:
1. Zadaniem tego systemu jest zarządzanie fakturami wystawianymi dla klientów firmy.
Klientami firmy są osoby fizyczne i prawne. Klient–osoba prawna jest opisany przez: nazwę,
NIP, adres, nazwisko i kontakt do osoby reprezentującej klienta. Klient–osoba fizyczna jest
opisany przez: imię, nazwisko, adres, telefon.
Klienci dokonują w firmie zakupów kosmetyków, z dwóch grup: popularnych i luksusowych.
W każdej z tych grup sprzedaje się perfumy, wody toaletowe, mydła, szampony i kremy.
Każdy kosmetyk jest dostarczany przez jednego producenta Klient zakupując kosmetyk
otrzymuje fakturę. Każda faktura składa się z pozycji określających kosmetyk, jego cenę i
liczbę sztuk.
2. Wypożyczalnia posiada w swojej ofercie książki, czasopisma i albumy. Wypożyczad mogą
tylko te osoby, które zapisały się do wypożyczalni.
Każdy czytelnik posiada unikalny numer karty. Dodatkowo, każdy czytelnik jest opisany
imieniem, nazwiskiem, adresem i numerem telefonu.
Jednorazowo czytelnik może wypożyczyd wiele pozycji. Każda pozycja, tj. książka, czasopismo
i album posiada swój tytuł, autora (autorów) i wydawnictwo. Fakt wypożyczenia jest
odnotowywany w bazie danych. Wypożyczając daną pozycję literaturową, pracownik
wypożyczalni odnotowuje datę wypożyczenia i okres wypożyczenia. Po oddaniu pozycji przez
czytelnika, pracownik odnotowuje datę jej oddania.
3. Zbuduj model potrzeb informatycznych w postaci diagramów związków encji dla systemu
medycznego opisanego następująco:
- dla każdego pacjenta chcemy pamiętad następujące informacje: nr. ubezpieczenia,
nazwisko, adres, wiek. Nr. ubezpieczenia jednoznacznie identyfikuje pacjenta
- dla każdego lekarza pamiętamy: nr. ubezpieczenia, nazwisko, specjalnośd, wysługa lat. Nr.
ubezpieczenia jednoznacznie identyfikuje lekarza
- każda firma farmaceutyczna jest opisana przez nazwę i telefon
- dla każdego leku chcemy pamiętad jego nazwę handlową oraz podstawową substancję
aktywną. Każdy lek jest sprzedawany przez firmę farmaceutyczną. Nazwa handlowa leku
jednoznacznie identyfikuje ten lek.
- każdy pacjent jest prowadzony przez jednego lekarza. Każdy lekarz ma co najmniej jednego
pacjenta.
- dla każdej apteki chcemy pamiętad jej nazwę, adres, numer telefonu
- każda apteka sprzedaje wiele leków. Każdy lek ma swoją cenę. Lek może byd sprzedawany
przez wiele aptek po różnych cenach
- lekarze przepisują leki pacjentom w postaci recept. Lekarz może przepisad pacjentowi
(wielu pacjentom) jeden lub więcej leków. Pacjent może przyjmowad leki przepisane przez
wielu lekarzy. Każda recepta ma datę i ilośd specyfiku (leku)
- firmy farmaceutyczne podpisują długoterminowe kontrakty z aptekami na sprzedaż leków.
Jedna firma może mied kontrakty z wieloma aptekami, podobnie apteki mogą mied kontrakty
z wieloma firmami. Dla każdego kontraktu chcemy pamiętad datę rozpoczęcia i datę
zakooczenia, oraz tekst kontraktu.
4. Zaproponuj schemat bazy dla Urzędu Stanu Cywilnego, w której będą przechowywane
podstawowe dane o obywatelach:
a. dane personalne
b. informacje o pokrewieostwie
c. informacje o miejscu zamieszkania
d. informacje o małżeostwach
Każdy obywatel może zawrzed wiele związków małżeoskich, oczywiście po ustaniu
poprzedniego. W bazie danych powinny byd przechowywane także informacje o osobach
zmarłych.
5. Stwórz bazę danych dla zakładu fryzjerskiego. Mają się w niej znaleźd informacje o:
a. standardowych usługach
b. stałych klientach
c. umówionych spotkaniach ze stałymi i niestałymi klientami
d. informacje o wykonanych usługach dla stałych klientów (potrzebne przy
przyznawaniu rabatu)
e. rabatach przyznanych stałym klientom na pewne ustalone usługi
f. rabatach przyznanych klientom na wszystkie usługi
g. rabatach stosowanych w przypadku kompleksowych usług
6. Pewna firma dokonuje tłumaczeo na zlecenie. Zlecane jest przetłumaczenie dokumentu
o zadanym tytule na podany język. Za tłumaczenie pobierana jest opłata. Dany dokument
może byd tłumaczony przez jednego lub kilku tłumaczy (dla każdego z tłumaczy określa się
procentowo jego udział). Tłumacza identyfikuje nazwisko i imię, poza tym należy zapamiętad
w bazie znane przez niego języki i jego adres. Zleceniodawcę identyfikuje nazwa. Należy
przechowad w bazie adres zleceniodawcy.
7. Firma “Ryzyk”, będąca pośrednikiem ubezpieczeniowym, zamówiła projekt bazy
przechowującej dane o jej działalności. Firma poprzez współpracujących z nią agentów
ubezpieczeniowych sprzedaje klientom produkty ubezpieczeniowe (PU) oferowane przez
towarzystwa ubezpieczeniowe (TU). Dany PU jest związany tylko z jednym TU. PU sprzedany
klientowi nazywany jest polisą. Za daną polisę klient może zapłacid jedną lub wiele składek.
Dla każdego PU należy przechowad jego kod i opis. Agenci mają uprawnienia do sprzedaży
określonych PU. Polisa poza danymi klienta i sprzedającego ją agenta zawiera nr, wysokośd
ubezpieczenia i datę wystawienia. Dla składek płaconych przez klienta należy przechowad nr
składki, kwotę wpłaty i datę wpłaty. Dla TU należy przechowad kod i nazwę, dla agenta jego
kod, nazwisko i adres.
8. Spółdzielnia lekarska „Szaman” zamówiła projekt bazy danych mającej usprawnid jej
działalnośd. Baza ma przechowywad dane o wizytach pacjentów – lekarza, datę wizyty,
rozpoznaną jednostkę chorobową (może byd kilka) oraz zaordynowane medykamenty wraz z
dawkami (jak często i ile). Dla pacjenta przechowad: nazwisko, imię i adres; dla lekarza:
numer, imię i nazwisko; dla lekarstwa: kod i nazwę; dla jednostki chorobowej: numer i krótki
opis.
9. Sied telewizyjna zamówiła projekt bazy danych przechowującej informacje o realizowanych
przez nią programach 'talkshow'. Dla programu należy przechowad jego identyfikator, nazwę
i czas trwania. 'Talkshow' jest przygotowywany i prowadzony przez wiele osób, z których
każda wykonuje określone funkcje. Dla funkcji zapamiętad jej nazwę i widełki stawki go-
dzinowej. W bazie należy przechowad stawkę godzinową i liczbę godzin, które dana osoba
przepracowała przy danym programie pełniąc podaną funkcję. Jedna osoba przy tym samym
programie może spełniad wiele funkcji. Na nagrania programów są zapraszani goście. Do
wygenerowania zaproszenia potrzebne są: nazwisko, imię i adres zapraszanej osoby. Należy
zapisad w bazie kto został zaproszony na dany program. Wyprodukowany program może byd
emitowany kilkukrotnie – należy zapamiętad nazwę kanału oraz datę i godzinę emisji.
10. Przedsiębiorstwo komunikacji autobusowej zamówiło projekt bazy, w której mają byd
przechowane informacje o kierowcach, autobusach oraz rozkładzie jazdy. Dla kierowcy
przechowad pesel, nazwisko i adres; dla autobusu markę, typ, numer autobusu i rejestrację.
Przedsiębiorstwo obsługuje wiele linii, których przebieg, wyznaczony przystankami (ich
kolejnośd jest istotna!), należy zapamiętad. Dany przystanek może należed do wielu linii. Dla
linii przechowad identyfikujący ją numer oraz rodzaj (normalna/przyśpieszona), a dla
przystanku nazwę, ulicę i miejscowośd. Na każdej linii jest wiele kursów. Dla danego kursu
należy zapamiętad identyfikator, rodzaj (roboczy/świąteczny), czy jest zawieszony w lipcu i
sierpniu oraz zaplanowane czasy odjazdów z poszczególnych przystanków. Należy również
zapamiętad informację o realizacji kursów: kierowca, autobus, data i czas wyjazdu z
pierwszego przystanku oraz czas przyjazdu na ostatni przystanek.
11. Warsztat samochodowy zamówił projekt bazy danych mającej usprawnid jego działalnośd w
zakresie wykonywanych napraw samochodów. W bazie należy przechowad dane klienta
(nazwisko, adres, pesel), oddawanego do naprawy samochodu (marka, model, nr silnika,
rejestracja) oraz informacje o wykonanej naprawie. Na naprawę może składad się wiele
różnych czynności (nazwa, opis, czas wykonania) wykonywanych przez różnych pracowników.
Niektóre czynności wykonywane są przez kilku pracowników. Wskazany pracownik jest odpo-
wiedzialny za przeprowadzenie naprawy. Dla naprawy przechowad kwotę zapłaty, datę
oddania samochodu do naprawy i datę odbioru samochodu. Dla pracownika przechowad
pesel, nazwisko, adres i datę zatrudnienia.
12.
Tematy innych projektów (szkice problemów):
1. Biblioteka
2. Hurtownia artykułów
3. Dziekanat
4. Rezerwacja zasobów
5. Administracja siecią komputerową
6. Komis
a. Stacjonarny
b. Internetowy
7. System aukcyjny
8. Kolekcje artystyczne
9. Wypożyczalnia kaset video i DVD
10. Ligi sportowe
11. Obsługa zawodów sportowych (np. lekkoatletycznych, jeździeckich)
12. Księgi hodowlane
13. Katalog książek, filmów i zdjęd
14. Książka telefoniczna
15. Katalog urzędów publicznych
16. Obsługa rekrutacji na studia
17. Zapis studentów na przedmioty
18. Biuro turystyczne
19. Agencja reklamowa
20. Szpital – przychodnia (rejestracja pacjentów do lekarzy)
21. Apteka
22. Inne wedle pomysłu wykonawcy w uzgodnieniu z prowadzącym
Przykładowy projekt
1 Tytuł projektu
Ewidencja prac dyplomowych
2 Cel projektu
Celem projektu jest opracowanie modelu danych dla projektowanego systemu ewidencji prac
dyplomowych składanych w Dziekanacie Uczelni.
2.1 Opis projektu
Zgodnie z wymaganiami klienta aplikacja ma za zadanie dostarczad informacji o pracach
dyplomowych (tytuł, rodzaj pracy dyplomowej, słowa kluczowe, data obrony, ocena, dołączone CD),
informacji o autorze pracy (imię, nazwisko studenta) oraz danych o promotorze i recenzencie lub
recenzentach pracy (imię, nazwisko i stopieo naukowy).
2.2 Określenie wymagań
(opis wymagao klienta wobec systemu, dla którego projektujemy model danych ->
zamiana celów klienta na konkretne wymagania zapewniające osiągnięcie tych celów)
2.2.1 Wymagania funkcjonalne
(wymagania funkcjonalne określają co system ma robid, bez podawania sposobu
wykonania; powinny dotyczyd wyłącznie zewnętrznych funkcji systemu.)
ewidencja i obsługa danych prac dyplomowych,
ewidencja i obsługa danych studentów,
ewidencja i obsługa danych pracowników naukowych na uczelni,
przeszukiwanie bazy danych,
edycja danych zawartych w bazie (dodawanie, usuwanie, modyfikacja).
2.2.2 Wymagania niefunkcjonalne
(wymagania niefunkcjonalne opisują ograniczenia, przy których system musi realizowad
swoje funkcje)
uprawnienia do obsługi systemu (użytkownik) ma tylko jedna osoba – sekretarka.
2.2.3 Użytkownicy
Użytkownikiem z pełnymi prawami do dodawania, modyfikacji i usuwania danych jest jedna osoba –
sekretarka. Do bazy ma również dostęp dziekan, który ma możliwośd kontrolowania pracy sekretarki i
może przeglądad dane, nie ma natomiast możliwości dodawania, modyfikacji i usuwania danych.
2.3 Model danych
2.3.1 Słownik pojęć
(słownik pojęd wynikający z opisu rzeczywistego obiegu informacji, )
Praca dyplomowa = pisemna praca napisana przez studenta (w przypadku pracy
indywidualnej) lub studentów (w przypadku pracy zbiorowej) i złożona w Dziekanacie w
określonym terminie w formie wydrukowanej i elektronicznej – na płycie CD. Praca określona
jest przez tytuł, autorów, promotora. Każda praca zawiera podaną listę słów kluczowych.
Promotor = pracownik naukowo-dydaktyczny Uczelni, opiekun pracy.
Rodzaje prac dyplomowych: magisterska, inżynierska, licencjacka.
Recenzent = pracownik naukowo-dydaktyczny Uczelni, ocenia dodatkowo pracę dyplomową.
Ocena recenzenta = ocena pracy wyrażona w następującej skali ocen: 2.0; 3.0; 3.5; 4.0; 4.5;
5.0
Ocena pracy = średnia arytmetyczna ocen wystawionych przez recenzentów.
…
2.3.2 Fakty (reguły biznesowe)
1
Student jednoznacznie identyfikowany jest przez numer albumu.
2
Student musi napisad pracę dyplomową.
3
Praca dyplomowa indywidualna jest napisana przez jednego studenta.
4
Praca dyplomowa zespołowa jest napisana przez wielu studentów.
5
Promotor może opiekowad się wieloma pracami.
6
Pracą dyplomową opiekuje się dokładnie jeden promotor.
7
Praca dyplomowa jest recenzowana przez co najmniej jednego recenzenta.
8
Recenzent może recenzowad wiele prac dyplomowych.
9
Praca dyplomowa charakteryzowana jest przez listę słów kluczowych.
10 Dane słowo kluczowe może charakteryzowad wiele prac.
11 Recenzent nie może byd promotorem.
12 Promotor nie może byd recenzentem.
13 …
2.3.3 Model logiczny danych
(diagram ER nieznormalizowany zawierający relacje wiele-do-wielu oraz tylko klucze
naturalne; identyfikacja i opis słowny encji oraz atrybutów, typy danych atrybutów,
weryfikacja, czy zamodelowane zależności zgadzają się z podanymi w poprzednim
punkcie faktami)
Opis encji i atrybutów oraz ich dziedzin
Autor
Imię – obowiązkowe, napis długości nie więcej niż 30 znaków
Nazwisko – obowiązkowe, napis długości nie więcej niż 30 znaków
Nr albumu – obowiązkowe, napis składający się wyłącznie z cyfr, długości nie większej niż 10
znaków
… i.t.d. dla pozostałych encji
Weryfikacja reguł
Fakty 2, 3, oraz 4 zamodelowane są przez zależnośd „Napisał” między encjami „Autor” i „Praca
dyplomowa”:
Każdy autor napisał jedną lub więcej prac dyplomowych
Każda praca dyplomowa jest napisana przez jednego lub więcej autorów.
… i.t.d.
2.3.4 Model fizyczny danych
(diagram ER znormalizowany, nie zawierający relacji wiele-do-wielu, określone klucze
główne i obce)
Komentarz:
Tabela „stopnie_naukowe” jest słownikowa i zawiera wpisy:
{ ”mgr”, ”mgr inż. ”, ”dr”, ”dr inż. ”, ”dr hab. ”, ”dr hab. inż. ”, ”prof. dr hab. ”, ”prof. dr hab. inż. ” }
Tabela „recenzje” wiąże pracę dyplomową z recenzentem. Ocena pracy obliczana będzie jako średnia
ocen recenzentów. Konieczne jest wprowadzenie wewnętrznych ograniczeo, aby promotor nie był
jednocześnie recenzentem.