# Zkouška 19.1.2011

<{ForumPost(poster="Drozi", timestamp=2011-01-19 20:17:19)}>
Dnešní skupina B:  
Supermarket - prodává zboží. To má název, cenu a patří do nějaké kategorie (pečivo, dogerie,...). Pracují tam prodavači - RČ, jméno, datum nástupu a výpovědi, plat. U každého prodeje si uchováváme datum a čas, počet kusů, cenu za kus a prodavače, který ho uskutečnil. Zboží nám dodávají dodavatelé - víme datum a čas dodání, počet kusů a nákupní cenu za kus. Dva dodavatelé můžou dodávat stejné zboží.  
  
SQL:  
Kolik oříškových čokolád máme na skladě?  
Průměrný plat z desedi prodavačů, kteří u nás stále pracují a prodali nejvíc věcí.  
Kterého pečiva se prodalo nejvíc?  
  
Transakce:  
T1   T2   T3   T4  
RA  
____RB  
____WA  
________WB  
___________WC  
___________ RB  
RC  
_____c  
c  
___________ c  
_______ c  
  
A implementace:  
B+ strom a kdy použít bitovou mapu.  
  
Případná kravinima nechť korigují kolegové :)
<{/ForumPost}>

<{ForumPost(poster="mrwep", timestamp=2011-01-20 15:58:39)}>
Ahoj,  
přidávám taky oddělení A, podle toho, co si pamatuju:  
  
Hudební festival  
1.1. Navrhněte ER pro hudební festival. Na festivalu vystupují skupiny nějakého žánru za předem danou provizi. Skupiny si mohou od organizátorů půjčit různé nástroje za daný poplatek (za daný nástroj). Skupiny hrají písničky podle programu, a pokud mají náladu a publikum si to vyžádá, zahrají přídavek(ky). Každý návštěvník festivalu musí mít lístek, a nárok na kabanos a pivo zdarma. Na festivalu je též ostraha, která může vyhodit problémové návštěvníky a vede si jejich evidenci.  
1.2. Převeďte do relační databáze...  
  
2. SQL dotazy:  
2.1. Které kapely neodehrály žádný přídavek?

    SELECT `jmeno` FROM `kapela` WHERE `kid` NOT IN
    (SELECT DISTINCT `kid` FROM odehrane WHERE `jak`='pridavek')

2.2. Které kapely si půjčily nejvíc nástrojů?

    SELECT `jmeno` FROM `kapela` WHERE `kid` IN
    (SELECT `kid`, COUNT(*) AS c FROM `vypujcky` GROUP BY `kid`
    HAVING c=(SELECT MAX(b) FROM (SELECT `kid`, COUNT(*) AS b FROM `vypujcky` GROUP BY `kid`)))

2.3. Kteří problémoví návštěvníci si nevyzvedli kabanos a pivo?

    SELECT `jmeno` FROM `navstevnik` NATURAL JOIN `pripad` WHERE `dostal_kabanos` = false

3. Transakce - pořád to samé dokola. Precedenční graf, konfliktová uspořadatelnost, zotavitelnost.  
  
4.1. Jaký je rozdíl při zápisu dat stejné nebo různé délky? (asi byl dotaz formulován jinak)  
4.2. Jak funguje buffer?
<{/ForumPost}>

<{ForumPost(poster="Drozi", timestamp=2011-01-20 20:37:12)}>
A nemáte někdo správné řešení pro to B? Moje neprošlo :(
<{/ForumPost}>

