DS

Z OI wiki

Přejít na: navigace, hledání

Obsah

1. semestr 2. semestr 3. semestr 4. semestr 5. semestr 6. semestr
Povinné předměty DMA ¤ LAG
PR1 ¤ RPH
ALG ¤ BP1 ¤ LGR
MA2 ¤ PR2
JAG ¤ PSI ¤ SPS APO ¤ BP2 ¤ FYZ OPT SZZ - LS 2012
Inf. a poč. vědy NUM ¤ OSS DS ¤ FLP ¤ ZUI RPZ
Počítačové syst. EAM ¤ EM DSP ¤ OSD PKS ¤PSR ¤NVS
Softwarové syst. OSS ¤ SI ASS ¤ DS ¤ TUR WA1
Volitelné předměty ACM ¤ EPD ¤ ET1 ¤ FI1 ¤ HI1 ¤ HSD ¤ HT1 ¤ IA+AZK ¤ MME ¤ MMP ¤ MPS ¤ PAP ¤ PPR ¤ PRS ¤ RET ¤ SOJ ¤ UFI
Grafický minor

PGR ¤ MVR ¤ KMA ¤ MGA ¤ GRT

Info o předmětu

  • Cvičící: Ing. Petr Křemen; Ing. Lenka Nováková, Ph.D.; Ing. Marek Šmíd


Pravidla předmětu

Pravidla předmětu na hlavní stránce předmětu


Studijní materiály

Stránka předmětu na CourseWare


Zkoušky

Zkouška 26.5.2011

1. [30b] Namalovat konceptuální a logický model databáze zadané slovně. Pozor na to, že v logickém modelu nejsou notace, ale šípky viz přednášky. Slo o e-shop (zakaznik, objednavka, zasilka, dodaci list, reklamace), mohlo se to zdat tezky, ale nakonec to slo udelat se 6-7 entitama a asi 5 vazebnima tabulkama (vztah N:M).

2. [30b] Zadané 3 tabulky, napište SELECT. Pozor, šlo o dost "pěknej" SELECT, kde bylo potřeba použít UNION a GROUP BY pro 3 tabulky.

-nemusel se pouzit UNION, stacilo tabulky JOINout (Ondra J.)

3. [15b] Zadanej JPA model dvou entit s OneToMany vztahem. Úkolem bylo namalovat logickej model. Pozor, bylo potřeba namalovat také vazební tabulku (anotace JoinColums v JPA). Byl to presne slajd 36 v prvni prednasce o JPA.

Opravovalo se to za jízdy. Takže jste si sebrali písemku a on ji před vámi opravil. Stíhal tak 8 lidí za hodinu. Bodování moc nebylo, spíš styl "Tohle se mi nelíbí.. tohle je dost špatné. No tak vám dám.. polovinu bodů". (Za předpokladu, že máte dost bodů ze cvičení.)

Podle mého názoru tuto zkoušku není problém dát. Avšak zda budete spokojeni se známkou je jiná věc. Honza
doplneno --Ondra "Kofolák" Jelínek 26. 5. 2011, 15:31 (UTC)

Zkouška 9.6.2011

1. Opět konceptuální model, tentokrát letiště.

2. Select z tabulek:

OSOBA(*rc, id_porodnice, datum_narozeni, jmeno, prijmeni)
PORODNICE(*id_porodnice, id_mesta)
MESTO(*id_mesta, id_kraje)
KRAJ(*id_kraje)
HEJTMAN(rc, id_kraje, datum_od, datum_do)

Udělat žebříček hatemanů podle toho, kolik se za jejich funkční období (HEJTMAN.datum_od - HEJTMAN.datum_do) narodilo osob. Hateman může být zvolen vícekrát (jiné období, i jiné kraje), součet jde přes všechna období působení jednoho hatemana. Do hitparády nezahrnovat ty hatemany, kteří mají na kontě méně než 1000 děcek.

3. JPA - Zadaná obousměrná anotace ManyToMany, ale špatně. Mělo se opravit. Na obou stranách nebyly vázané entity v kolekcích:

Entita1 data1; --> Collection<Entita1> data1;

a na inversní straně bylo potřeba doplnit zdroj

@ManyToMany --> @ManyToMany(mappedBy="data1")

a potom k tomu nakreslit logický model

--Milicmar 9. 6. 2011, 15:27 (UTC)

Zkouška 15.5.2012

1. (20 b) Rekurzivní vztah. Byla zadána tabulka jako konceptuální schéma, vypadalo to cca takhle:

         ----------
         V        | 
------------      | Ma matku
| Osoba    |------|
------------
| rodne_c  |
| jmeno    |
| prijmeni |
------------

Úkolem bylo z toho udělat schéma logické. V podstatě se akorát k atributům doplnil cizí klíč "rodne_c_matky" a atribut "rodne_c" označit jako primární klíč. Pozor musí být nullovatelné, jinak by do tabulky nešlo vůbec vložit první záznam.

Dál se měl napsat SELECT co vybere jména a příjmení matek, které mají tři a více dětí. Dělalo se to tak, že se najoinovala ta samá tabulka, musela se aliasovat, s tím že ON bylo potom dite.rodne_c_matky=osoba.rodne_c a tohle se sgrupovalo podle rodne_c_matky a přes HAVING se z toho vybraly jen ty matky co mají dost dětí.

SELECT matka.jmeno, matka.prijmeni, COUNT(*) AS pocet_deti
FROM osoba AS matka
JOIN osoba AS dite ON (matka.rc = dite.rc_matky)
GROUP BY matka.rc, matka.jmeno, matka.prijmeni
HAVING COUNT(*)>=3


2.) (30 b) Úkolem bylo nakreslit konceptuální schéma pro informační systém sítě multikin. Evidovaly se zvlášť kina, sály, řady, sedačky, lístky, rezervace... Docela náročné z toho pohledu aby se něco nepřehlídlo, jinak principiálně pohoda. Nebylo nutné vymýšlet žádné atributy, stačilo mít dobře dekomponované věci na entity a hlavně dobře relace. M:N se nerozkládala, notaci jsem použil klasicky Crowe's Foot a byl s tím spokojený.

3.) (15 b) Příklad na JPA. Byla zadána notace v UML a měl se napsat JAVA kód s anotacema. Příklad zcela převzatý přednášek:

Soubor:zk_ds_3.png


4.) (10 b) Vysvětlit, co to znamená "dirty read" -> viz přednášky o transakcích.

Zkouška celkem pohodová, ale Koubovo bodování je dost na nic. Když se mu to líbí, tak vám body dá i když tam je chybka (jestli si jí všimne je druhá věc..), když se mu to nelíbí, strhává hodně... Měl jsem detailní chybu v tom SELECTu a nedal mi za něj ani bod, i když jsem mu řekl že jsem se spletl a že vím jak to udělat. Neukecáte ho a pokud budete vyloženě chtít ústní o body, připravte se, že se pěkně zapotíte i kdyby to bylo o bod jen jeden.

Events Upcoming
More »