Create conceptual model for ZOO according to following description:
There are animal Species in zoo database. Let us provide an ID to identify individual animal species. We register name of animal (mandatory) species (like elephant, tiger, giraffe, etc.) and a description (NotNull).
We want to register also such animal species whose exemplars are not in the zoo.
Animal in the zoo has ID, but this ID is unique only in his animal species (there may be elephant ID 1 name John, elephant ID 1 name Adam, camel ID 2 - John etc.). We register mandatory attributes name and dateOfBirth for each animal.
Each animal belongs to exactly one animal species. Each animal has uniquenickname.
There are Objects identified by object ID. We register address (mandatory) and description (not mandatory) for each object.
Animals are located in Objects. Each animal lives exactly in one object. There may be more animals in one object. We register empty objects as well.
An Employees take care about whole object. Each object has exactly one responsible employee. Employee takes care about one or more object. Employees without object are not allowed.
We register name (not null) and address (mandatory) and age for each employee. Let us provide a special ID to identify individual employees.
Řešení
FIT
Databáze zoo:
Navstevnik - je identifikován umělým atributem id_navstevnik, dále povinně evidujeme vek, a volitelně jmeno a prijmeni.
Sekce - je identifikována umělým atributem id_sekce, dále evidujeme nazev.
Vstupenka - je identifikačně závislá na Návštěvníkovi a Sekci. Dále evidujeme datum_platnosti a typ. Datum_platnosti vyjadřuje den, kdy je vstupenka platná.
Urednik - je identifikován atributem rodne_cislo, dále evidujeme jmeno, prijmeni a pozice.
Každou vstupenku vlastní právě jeden návštěvník. Návštěvník za svou historii může vlastnit více vstupenek.
Pro každou sekci má návštěvník jinou vstupenku, nicméně platí, že v daný den může konkrétní Návštěvník vlastnit pro danou Sekci Vstupenku jen jednu.
Vstupenky prodává úředník, platí že jeden úředník může prodat libovolné množství vstupenek. Vstupenku musel prodat jeden konkrétní úředník.
Dále evidujeme vztah sponzoruje. Návštěvník může sponzorovat libovolné množství Sekcí, Sekce může být sponzorována libovolným množstvím Návštěvníků.
Vazby nepopisujte (není třeba psát textový popis k vazbám).
Řešení
Transformace (4p)
UI
U→ tlačítko které podtrhne pro definování primárního klíče
( ER → RA schema )
Sample
Transform the conceptual schema in following figure into relational. Use either symbolic (RA-like, see following test page) or SQL notation. Do not forget to provide foreign keys!
Řešení
FIT
Řešení
RA - Query (10p)
UI
Sample test
Schema
Text
( Primary keys are underlined, foreign keys are described using RA )
CUSTID of customers who did their order at 21-DEC-2011.
{Order(Date='21-dec-2011')}[CUSTID]
Names and prices of products ordered by customer named ’John’.
{ {Customer * Order * Items * Product}(Cname='John')}[Pname, Price]
Products (all attributes) which had not been ordered yet.
// left anti-join variantProduct !<* Item
// differences variantProduct \ {Product<* Item}
Customers (all attributes) who applied any reclamation.
// variant with renamingCustomer <*Reclamation[Customer_ID -> Custid]
Vztah mezi ošetřovatelem a zvířetem (Zvire[id_kmotr]xxxOsetrovatel[id_osetrovatel]) nazývejme kmotrovství. Tedy ošetřovatel může dělat kmotra některému zvířeti. Tento vztah nesouvisí s krmením.
Vyberte jména zvířat, která byla již někdy nakrmena. (mají záznam o krmení)
{krmeni*>zvire}[jmeno_zvire]
Vyberte jméno a plat ošetřovatele (jmeno_osetrovatel,plat), kteří krmili všechny oposumy (druh zvířete je oposum)
Vyberte ošetřovatele (id_setrovatel, jmeno_osetrovatel, adresa, plat), kteří krmili opice (na jméně nezáleží) POUZE 1. dubna 2015 (v dotazu zadejte '1.4.2015')