Zadání Seznam typů entit včetně jejich atributů, vyznačte klíče a cizí klíče Seznam typů vztahu určený svým názvem a entitami do něj vstupujícími ER-diagram (v základní formě a v podobě upravené pro ukládání datových operací) (vyznačte kardinalitu a povinnost členství) Datový slovník pro všechny typy entit obsahující (název atributu, datový typ, velikost, zda patří do klíče pro danou entitu, zda může být prázdný, zda má smysl podle něj indexovat, a další integritní omezení jakými jsou formáty dat a uvedení cizích klíčů.)
Klíč typu entity je vyznačen podtržením, cizí klíče mají šedý podklad (a značí se kroužkem).
Zadání 1) – SKP katalog firem Máme informační systém řešící databázi firem na internetu, obsahující seznam jimi nabízených produktů a seznam firemních poboček. Databáze obsahuje seznam firem s informacemi IČO, DIČ, Název, Adresa(ulice, město, PSČ), právní forma(firma nemusí mít DIČ). Každá firma je jednoznačně určena svým IČO. Dále máme seznam poboček, který obsahuje IČO firmy, které pobočka patří, číslo pobočky (číslováno od 1 dále pro každou firmu), název pobočky, adresu pobočky, počet zaměstnanců, který nemusí být vždy uveden. (firma nemusí mít žádnou pobočku, ale může mít více než jednu pobočku). Dále systém obsahuje číselník SKP (Standardní Klasifikace Produktů), kde je uvedeno klasifikační číslo produktu, název produktu, popis produktu. Jedná se o úplný seznam, takže ne všechny produkty musí být firmami nabízeny. Jedna firma může nabízet více produktů podle SKP,ale každá firma musí nabízel alespoň jeden produkt z SKP. Firma (ico, dic, nazev_firmy, ulice, mesto, psc, pravni_forma) Pobocka (ico, cislo_pobocky, nazev_pobocky, ulice, město, psc, zamestnanci) Skp (cislo_skp, nazev_skp, popis_skp) Produkce (ico,cislo_skp) FIRMA_MA_POBOCKU (Firma, Pobocka) FIRMA_MA_PRODUKT (Firma, Produkce) SKP_PRODUKTU (Produkt, SKP) ER – diagram 1 Pobocka
N
FIRMA MA POBOCKU
1
Firma
M
FIREMNI PRODUKTY
N
1
FIRMA MA RODUKT
N
Skp
ER – diagram 2 (Finální) Pobocka
N
Name Firma ico dic nazev_firmy ulice mesto psc pravni_forma Pobocka ico cislo_pobocky nazev pobocky ulice mesto psc zamestnanci Skp cislo_skp nazev_skp popis_skp Produkce ico cislo_skp
FIRMA MA POBOCKU
1
Firma
Produkce
N
SKP PRODUKTU
siz e
key
null
index
numeric char char char char numeric char
8.0 14 255 100 100 5 1
yes no no no no no no
no yes no no no no no
yes no yes no yes yes no
NNNNNNNN (přiděleno státem) NNN-NNNNNNNNNN
numeric numeric char char char numeric numeric
8.0 8.0 255 100 100 5 6.0
yes yes no no no no no
no no no no no no yes
yes yes yes no yes yes no
cizí klíč z Firma inkrementální číslo jako klíč
char char text
7 255 5kB
yes no no
no no no
yes yes no
ve tvaru CCC-NNN (třeba nebo jinak)
8.0 7
yes yes
no no
yes yes
cizí klíč z Firma cizí klíč z Skp
type
numeric char
IO
NNNNN F- fyzická, P - právnícká osoba
NNNNN
1
Skp
Zadání 2) – Půjčovna DVD Půjčovna DVD se rozhodla vybudovat informační systém o půjčených discích bez možnosti rezervace. U jednotlivých disků se evidovalo číslo titulu (jednoznačně v rámci půjčovny), jméno filmu česky, jméno filmu anglicky (nemusí existovat), délka v minutách, jazyk audio, jazyk titulky. Dále se evidovaly jednotlivé exempláře daného filmu, protože půjčovna mohla mít více disků od stejného titulu. U exemplářů se evidovalo pořadové číslo, datum pořízení, datum vyřazení( které bylo prázdné pokud se titul nevyřadil.). Mohla nastat situace, že k filmu nebyl žádný exemplář (poškozen, připravovaný titul, atd.). Dále se evidoval seznam členů videopůjčovny číslem člena (jednoznačné pro každého člena v rámci videopůjčovny), jméno, příjmení, adresa – město, ulice, PSČ, telefon. Stěžejní operací bylo ukládání informací o vypůjčených titulech, kde se ukládaly informace o půjčeném titulu, který člen si jej půjčil, datum půjčení a vrácení. Při půjčení se evidovalo, který exemplář si člen půjčil, tak aby se dalo následně sledovat kdo konkrétní exemplář titulu poškodil. Stejný exemplář si člen může půjčit víckrát. Člen si nemusí půjčit žádny exemplář a nový exemplář nemusí být dosud vypůjčen. Titul (cislo_titulu, jmeno_ang, jmeno_cz, delka, audio, titulky) Exemplar (poradove_cislo, cislo_titulu, datum_porizeni, datum_vyryzeni) Clen (cislo_clena, jmeno, prijmeni, ulice, mesto, psc, telefon) Vypujcka (cislo_titulu, poradove_cislo, cislo_clena, datum_pujceni, datum_vraceni) DISKY (Titul, Exemplar) PUJCENO_CLENEM (Clen, Vypujcka) PUJCEN_EXEMPLAR (Exemplar, Vypujcka) ER – diagram 1 Titul
1
N
DISKY
Exemplar
M
N
PUJCENO
Clen
ER – diagram 2 (Finální) Titul
1
Name Titul cislo_titulu jmeno_ang jmeno_cz delka audio titulky Exemplar poradove_cislo cislo_titulu datum_porizeni datum_vyrazeni Clen cislo_clena jmeno prijmeni mesto ulice psc telefon Vypujcka cislo_titulu poradove_cislo cislo_clena datum_pujceni datum_vraceni
DISKY
N
Exemplar
1
PUJCEN EXEMPLAR
N
Vypujcka
N
PUJCENO CLENEM
1
Clen
Type
size
key
null
index IO
numeric char char numeric char char
6.0 100 100 3.0 255 255
yes no no no no no
no yes no no no no
yes no yes no no no
generovaný klíč
numeric numeric date date
3.0 6.0 10 10
yes yes no no
no no no yes
yes yes no no
generované pořadí od 1 nahoru cizí klíč z Titul DD.MM.RRRR DD.MM.RRRR
numeric char char char char numeric text
6.0 30 30 100 100 5.0 20
yes no no no no no no
no no no no no no no
yes no yes yes no yes yes
generovaný klíč
numeric numeric numeric date date
6.0 3.0 6.0 10 10
yes yes yes no no
no no no no yes
yes yes yes no no
cizí klíč z Exemplar (ne Titul !!!) cizí klíč z Exemplar cizí klíč z Clen DD.MM.RRRR DD.MM.RRRR
délka v minutách seznam jazyků seznam jazyků
NNNNN (čísla a znaky +, - , /)
Zadání 3) - Zahrádkářství Zahradnická firma se rozhodla evidovat své pracovní aktivity a vytvořit informační systém pro sledování vytvořených zahrad. Sledovala informace o nabízených rostlinách, které uložila do katalogu. Zde bylo uvedeno jednoznačné katalogové číslo, název rostliny česky, název latinsky, popis rostliny (nemusí být vždy uveden) a cena. V katalogu mohly být i rostliny, které dosud nebyly nikde použity, naopak většina druhů rostlin byla často použita i víckrát. Dále byl sestaven seznam zákazníků, kde každý zákazník měl od firmy vytvořenu minimálně jednu zahradu a někteří i více. V seznamu zákazníků bylo číslo zákazníka, jméno a příjmení, adresa – ulice, město, PSČ, kontaktní telefon. Dále byl uveden seznam realizovaných zahrad, kde u každé zahrady byl uveden její vlastník (zákazník), adresa – ulice, město, PSČ. Adresa zahrady nemusí být totožná s adresou vlastníka, datum kdy se zahrada realizovala a číslo zahrady (udávající rok a pořadí zahrady v tomto roce realizované). Na každé zahradě byla použita minimálně jedna rostlina, v seznamu se evidovalo kolik rostlin a jakého druhu bylo na zahradu použito. Rostlina (katalogove_cislo, nazev_lat, nazev_cz, popis, cena) Zakaznik (cislo_zakaznika, jmeno, prijmeni, ulice, mesto, psc, telefon) Zahrada (cislo_zahrady, cislo_zakaznika, ulice, mesto, psc, datum_realizace) Vysadba (cislo_zahrady, cislo_rostliny, pocet_rostlin) VLASTNIK (Zakaznik, Zahrada) VYSADBA_ZAHRADY (Zahrada, Vysadba) ROSLTINY_VE_VYSADBE (Rostlina, Vysadba) ER – diagram 1 Zakaznik
1
VLASTNIK
N
Zahrada
M
ZASAZENO
N
Rostlina
ER – diagram 2 (Finální) Zakaznik
1
Name Rostlina katalogove_cislo nazev_lat nazev_cz popis cena Zakaznik cislo_zakaznika jmeno prijmeni mesto ulice psc telefon Zahrada cislo_zahrady cislo_zakaznika mesto ulice psc datum_realizace Vysadba cislo_zahrady cislo_rostliny pocet_rostlin
VLASTNIK
N
Zahrada
1
VYSADBA ZAHRADY
N
Vysadba
N
ROSTLINY VE VYSADBE
1
type
size
key
null
index IO
char char char char numeric
10 100 100 255 10.2
yes no no no no
no no no yes no
yes yes yes no no
katalogový unikátní klíč
numeric char char char char numeric text
10.0 30 30 100 100 5.0 20
yes no no no no no no
no no no no no no no
yes no yes yes no yes yes
generovaný klíč
numeric numeric char char numeric date
10.0 10.0 100 100 5.0 10
yes no no no no no
no no no no no no
yes yes yes no yes no
generovaný klíč rok+pořadí cizí klíč z Zákazník
numeric numeric numeric
10.0 10.0 5.0
yes yes no
no no no
yes yes no
cizí klíč z Zahrada cizí klíč z Rostlina
NNNNN (čísla a znaky +, - , /)
NNNNN DD.MM.RRRR
Rostlina
Zadání 4) – Kuchařka Skupina kuchařů se rozhodla vytvořit informační systém obsahující recepty. V kuchařce rozdělili jídla do kategorií (polévky, předkrmy, atd.), kde každá kategorie měla své jednoznačné označení, název, popis obsahu kategorie. V každé kategorii bylo jedno a více jídel a jedno jídlo nemohlo být ve více kategoriích. Pro jednotlivé pokrmy sestavili jejich seznam, kde bylo číslo pokrmu, kategorie do které pokrm patří, název pokrmu, odhadovaná cena nákladů, popis přípravy a popis servírování (který nemusel být uveden), země původu. Dále byl vytvořen seznam potravin opatřený číselníkem, názvem potraviny, druhem potraviny, popisem potraviny a dobou dostupnosti potraviny. Každá potravina v seznamu bylo použita minimálně v jednom, ale i ve více receptech. Pro jednotlivé pokrmy byl sestaven seznam požitých potravin, kde bylo uvedeno číslo potraviny, množství potřebné pro přípravu. Každý recept musel mít minimálně jednu potravinu obvykle však více než jednu potravinu. Kategorie (oznaceni_kategorie, nazev_kategorie, popis_kategorie) Pokrm (cislo_pokrmu, oznaceni_kategorie, nazev_pokrmu, cena, popis_priprava, popis_servirovani, zeme_puvodu) Potravina (cislo_potraviny, nazev_potraviny, druh_potraviny, popis_potraviny, doba_dostupnosti) Obsah_pokrmu (cislo_pokrmu, cislo_potraviny, mnozstvi) DRUHY_POKRMU(Kategorie, Pokrm) SUROVINY_POKRMU (Pokrm, Obsah_pokrmu) VYUZITI_POTRAVIN (Obsah_pokrmu, Potravina) ER – diagram 1 Kategorie
1
DRUH POKRMU
N
Pokrm
M
SUROVINY
N
Potravina
ER – diagram 2 (Finální) Kategorie
1
DRUH POKRMU
Name Kategorie oznacemi_kategorie nazev_kategorie popis_kategorie Pokrm cislo_pokrmu oznacemi_kategorie nazev_pokrmu cena popis_priprava popis_servirovani zeme_puvodu Potravina cislo_potraviny nazev_potraviny druh_potraviny popis_potraviny doba_dostupnosti Obsah_pokrmu cislo_pokrmu cislo_potraviny mnozstvi
N
Pokrm
1
SUROVINY POKRMU
N
Obsah_pokrmu
N
VYUZITI POTRAVIN
type
size
key
null
index IO
char char char
5 100 255
yes no no
no no no
yes yes no
generovaný klíč
numeric char char numeric char char char
6.0 5 150 7.2 255 255 100
yes no no no no no no
no no no no no yes no
yes yes yes no no no no
generovaný klíč cizí klíč z Kategorie
numeric char char char char
5.0 100 100 255 100
yes no no no no
no no no no no
yes yes no no no
generovaný klíč
numeric numeric numeric
5.0 6.0 7.3
yes yes no
no no no
yes yes no
cizí klíč z Potravina cizí klíč z Pokrm
1
Potravina
Zadání 5) – Cestovní agentura Cestovní agentura se rozhodla svou agendu realizovat pomocí informačního systému. Sledovala seznam jimi nabízených zájezdů, zemí do kterých tyto zájezdy jsou, seznam zákazníků a obsazení jednotlivých zájezdů. U zájezdů evidovali číslo zájezdu, cílovou zemi zájezdu, název zájezdu, datum odjezdu, počet dní, kapacita (počet osob), způsob dopravy, stravování. U zemí do kterých zájezdy směřovaly evidovali zkratku země (jednoznačné pro každou zemi př. CZ, SK, EN, AUT, AUS, ….), název země, popis země, další požadavky (zde se udávala například nutnost viza, ale tato položka nemusí být vyplněna.) Do určité země nemusel být dosud žádný zájezd a předpokládáme, že jeden zájezd je vždy do jedné země, ale do jedné země může být více různých zájezdů. U jednotlivých zákazníků sledovali rodné číslo, jméno, příjmení, adresa – město, ulice, psč, telefon. Dále bylo v systému zaneseno, který zákazník si objednal, které zájezdy, pro kolik osob, přičemž zákazník si musel objednat minimálně jeden zájezd, ale i více zájezdů. K jednomu zájezdu mohlo být přiděleno více zákazníků, kteří o tento zájezd projevili zájem. Pokud nebyl zájezd dosud prodáván, nemusel obsahovat žádné zákazníky. Zajezd (cislo_zajezdu, cislo_zeme, nazev_zajezdu, datum_odjezdu, pocet_dni, kapacita_osob, doprava, stravovani) Zeme (cislo_zeme, nazev_zeme, popis_zeme, dalsi_pozadavky) Zakaznik (rc, jmeno, prijmeni, mesto, ulice, psc, telefon) Objednavka (rc, cislo_zajezdu, pocet_osob) CIL_ZAJEZDU (Zajezd, Zeme) OBJEDNAL_ZAKAZNIK (Zakaznik, Objednavka) NAPLNENI_ZAJEZDU (Zajezd, Objednavka) ER – diagram 1 Zeme
1
CIL ZAJEZDU
N
Zajezd
M
OBJEDNANO
N
Zakaznik
ER – diagram 2 (Finální) Zeme
1
Name Zajezd cislo_zajezdu cislo_zeme nazev_zajezdu datum_odjezdu pocet_dni kapacita_osob doprava stravovani Zeme cislo_zeme nazev_zeme popis_zeme dalsi_pozadavky Zakaznik rc jmeno prijmeni mesto ulice psc telefon Objednavka rc cislo_zajezdu pocet_osob
CIL ZAJEZDU
N
Zajezd
1
NAPLNENI ZAJEZDU
N
type
size
key
null
numeric char char numeric numeric numeric char char
9.0 3 150 4.0 3.0 5.0 150 50
yes no no no no no no no
no no no no no no no no
yes yes yes no no no no no
char char char char
3 100 255 255
yes no no no
no no no yes
yes yes no no
numeric char char char char numeric text
10.0 30 30 100 100 5.0 20
yes no no no no no no
no no no no no no no
yes no yes yes no yes yes
numeric numeric numeric
10.0 9.0 3.0
yes yes no
no no no
yes yes no
Objednavka
N
OBJEDNAL ZAKAZNIK
index IO generovaný klíč cizí klíč z Zeme NNNN
NNNNN (čísla a znaky +, - , /) cií klíč z Zakaznik cií klíč z Zajezd
1
Zakaznik