background image

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 

background image

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: 

background image

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 

background image

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). 

background image

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: magisterskainżynierskalicencjacka

 

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) 

Student jednoznacznie identyfikowany jest przez numer albumu. 

Student musi napisad pracę dyplomową. 

Praca dyplomowa indywidualna jest napisana przez jednego studenta. 

Praca dyplomowa zespołowa jest napisana przez wielu studentów. 

Promotor może opiekowad się wieloma pracami.  

Pracą dyplomową opiekuje się dokładnie jeden promotor. 

Praca dyplomowa jest recenzowana przez co najmniej jednego recenzenta. 

Recenzent może recenzowad wiele prac dyplomowych. 

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) 

background image

 

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) 

background image

 

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.