We wcześniejszym artykule na temat modelowania danych obiecaliśmy dać zestaw ćwiczeń do przećwiczenia znajdowania encji. Cóż, oto one. Miłej zabawy!
Problem 1:Szkoła językowa
Pan Trotter, właściciel szybko rozwijającej się szkoły językowej, chce wprowadzić w swojej firmie nowy system. Nie może już samodzielnie śledzić wszystkich informacji, dlatego poprosił nas o pomoc. Jest jednak trochę chaotyczny. Oto, co powiedział:
Przyjeżdżają tu dziesiątki nowych ludzi i już nie wiem, co robić! Na przykład w zeszłym tygodniu przyszła dziewczyna imieniem Hannah i chciała zostać studentką, ale nie mogłem znaleźć notesu, więc nie mogłem zapisać jej nazwiska. Potem zapytała, jakie kursy oferujemy i cóż… mamy ich bardzo dużo, więc pokazałam jej kalendarz, w którym spisuję wszystkie zajęcia. Wybrała chiński, a potem zapytała, kto go uczy. Cóż, powiedziałem, mamy tu wielu nauczycieli, więc zacząłem szukać w mojej skrzynce e-mailowej, aby zobaczyć, kogo napisałem o nauczaniu chińskiego w tym semestrze. Zajęło to dłużej niż się spodziewałem i Hannah wyszła. Szkoda!
Na podstawie opisu zaproponuj kilka podmiotów dla nowego systemu pana Trottera, aby mógł on skuteczniej prowadzić swoją szkołę.
Rozwiązanie:
Na początku pan Trotter podaje przykład Hannah, która chce zapisać się na kurs. W naszym systemie byłaby jedną z wielu instancji podmiotu Student
. Studenci w naszym systemie zapisują się na Course
, który jest kolejnym dobrym kandydatem na podmiot. Wreszcie dziewczyna pyta o Teacher
– oczywiście chcemy je również śledzić, więc stają się trzecim bytem.
↑ Kliknij logo, aby wyświetlić podgląd modelu w przeglądarce | Pobierz model jako plik png
Problem 2:Zajęty pisarz
Joanne L. Bowling pracuje dla różnych firm i pisze dla nich rzeczy. Jest bardzo zajęta i chciałaby mieć wygodną aplikację, która śledzi wszystko, co napisała. Ta aplikacja będzie miała formę portfolio. Tak opisała swoją pracę:
Jestem bardzo utalentowany i piszę mnóstwo różnych rzeczy. Na przykład w zeszłym tygodniu napisałem dla gazety artykuł o ostatnim kryzysie gospodarczym. Nie znam się na ekonomii, ale trochę poczytałem i udało mi się skomponować fajny artykuł. Z drugiej strony, miesiąc temu inna słynna gazeta opublikowała serial, który zrobiłem. Cóż, ten dotyczył historii sztuki w Holandii. Miałem już pewną wiedzę w tej dziedzinie, bo 5 lat temu napisałem książkę o Rembrandcie – która zresztą ukazała się w zeszłym roku. Prawie zawsze jest tak samo, gdy pracuję z gazetami; ich zadania są szybkie i łatwe. To już inna historia z wydawnictwami. Weryfikacja, edycja... jest tyle etapów i tyle terminów, o których muszę pamiętać!
Na podstawie opisu zasugeruj kilka ogólnych encji, których można użyć w aplikacji, aby Joanne mogła śledzić wszystko, co napisała. Zastanów się nad następującym pytaniem:jakie rzeczy napisała i gdzie je opublikowała?
Rozwiązanie:
Jak widać, Joanne pisze dwa rodzaje kompozycji. Pierwsze to krótsze artykuły publikowane w gazetach. Są to szybkie zadania i nie wymagają wielu informacji. Drugi rodzaj kompozycji jest dłuższy i bardziej skomplikowany – pisanie książek. Wydawane są przez wydawnictwa. Lepiej zachować je jako oddzielną całość. Podsumowując, mamy dwie główne kategorie rzeczy, które pisze Joanne:Article
i Book
. Mamy również dwie kategorie firm, które je publikują:Newspaper
i Publishing House
.
↑ Kliknij logo, aby wyświetlić podgląd modelu w przeglądarce | Pobierz model jako plik png
Problem 3:Sklep z herbatą
Mark Tee jest właścicielem małego sklepu przy bocznej uliczce średniej wielkości miasta. Miał tylko kilku klientów – aż pewnego dnia odkrył go podczas swoich podróży słynny bloger i opublikował o nim post. Powiedział, że sklep Marka jest najlepszym źródłem herbaty na świecie. Mark ma teraz tak wielu klientów, że nie wie już, co jest na stanie. Potrzebuje systemu, który pomoże mu uporządkować swoje produkty. Oto, co powiedział:
Ludzie kupują moje produkty przez cały dzień, a ja muszę śledzić, co mam na stanie. Sprzedaję różne rzeczy. Najważniejsza z nich jest oczywiście herbata. Jestem bardzo szczegółowy, jeśli chodzi o herbatę:potrzebuję informacji o gatunku, kolorze, pochodzeniu... Każda odmiana ma przynajmniej niektóre z tych właściwości.
Sprzedaję też dużo kawy, ale kawa jest inna i używa się różnych rzeczy do jej opisania. A potem są ziołowe rzeczy, takie jak rooibos czy yerba mate. Miłośnicy herbaty nazywają te tisane lub napary; tak naprawdę nie są „herbatą” i nie potrzebuję zbyt wielu dodatkowych informacji na ich temat w moim systemie.
Przeczytaj powyższy opis i zasugeruj kilka różnych podmiotów dla systemu zarządzania zapasami Marka.
Rozwiązanie:
Jak widać, w naszym systemie istnieją trzy rodzaje produktów, a zatem trzy podmioty:Tea
, Coffee
i Tisane
. (Nie traktujemy rooibos ani yerba mate oddzielnie, ponieważ Mark tak naprawdę ich nie rozróżnia).
↑ Kliknij logo, aby wyświetlić podgląd modelu w przeglądarce | Pobierz model jako plik png
Problem 4:Firma farmaceutyczna
Firma farmaceutyczna produkująca leki chciałaby mieć system, który pomoże w jej zarządzaniu. Oto opis przesłany do nas przez jednego z pracowników firmy:
W naszej firmie produktami są oczywiście różne leki o określonych właściwościach. Produkujemy środki przeciwbólowe, antybiotyki i inne leki. Produkowane są w różnych działach. W każdym dziale są pracownicy. Pracownicy posiadają kwalifikacje do wykonywania określonych rodzajów produkcji. W trakcie swojej pracy pracownicy korzystają ze specjalnych urządzeń do produkcji leków. Oczywiście bez odpowiednich komponentów niczego by nie wyprodukowali! Aha, a przy okazji produkcja podzielona jest na partie – grupy produktów wytwarzanych w jednej operacji. To wszystko jest niezbędne dla naszej firmy. Musimy przechowywać szczegółowe informacje o każdej jego części w naszym systemie.
Na podstawie powyższego opisu zaproponuj niektóre podmioty do wykorzystania w systemie firmy farmaceutycznej.
Rozwiązanie:
W powyższej firmie produkcja oparta jest na Batches
które składają się z Drugs
. Leki są wytwarzane z Components
. Istnieją również różne Departments
z określonymi Devices
i Employees
. Te sześć pogrubionych rzeczowników staje się naszymi bytami.
↑ Kliknij logo, aby wyświetlić podgląd modelu w przeglądarce | Pobierz model jako plik png
Problem 5:Baza danych filmów
John jest gorliwym studentem filmowym i chce stworzyć nową stronę internetową o filmach. Opisał ten pomysł w ten sposób:
W mojej bazie danych będą informacje o różnych rzeczach. Przede wszystkim będą filmy, różne ich rodzaje. W każdym filmie są aktorzy – też chcę o nich przechowywać informacje. Nie tylko dane zawodowe, takie jak filmy, w których grali, ale także zabawne rzeczy lub dane osobowe. Potem są dyrektorzy. Są bardzo ważne w filmach, dlatego też chcę o nich napisać. No i oczywiście studia filmowe! Niewiele stron internetowych o nich wspomina, ale są one również dla mnie ważne. Na koniec pojawią się recenzje wszystkich filmów.
W oparciu o powyższy opis, zasugeruj niektóre jednostki do bazy danych filmów Johna.
Rozwiązanie:
W opisie możemy jednoznacznie zidentyfikować 5 podmiotów:Movie
, Actor
, Director
, Studio
i Review
.
↑ Kliknij logo, aby wyświetlić podgląd modelu w przeglądarce | Pobierz model jako plik png