Fakulta elektrotechniky a informatiky Databázové systémy 2. Leden 2010 souhrn. Červené dobře (nejspíš), modré možná

Podobné dokumenty
Text úlohy. Systémový katalog (DICTIONARY):

Databázové systémy. Datová integrita + základy relační algebry. 4.přednáška

2. blok část B Základní syntaxe příkazů SELECT, INSERT, UPDATE, DELETE

RELAČNÍ DATABÁZOVÉ SYSTÉMY

Jaký je rozdíl v definicicíh VARCHAR2(20 BYTE) a VARCHAR2(20 CHAR):

Úvod do databázových systémů

Databáze SQL SELECT. David Hoksza

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Úvod do databázových systémů

Databáze I. 5. přednáška. Helena Palovská

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Kapitola 6: Omezení integrity. Omezení domény

Informační systémy ve zdravotnictví. 6. cvičení

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Databázové systémy. - SQL * definice dat * aktualizace * pohledy. Tomáš Skopal

Databáze I. 1. přednáška. Helena Palovská

8.2 Používání a tvorba databází

Kurz Databáze. Obsah. Dotazy. Zpracování dat. Doc. Ing. Radim Farana, CSc.

Stored Procedures & Database Triggers, Tiskové sestavy v Oracle Reports

Primární klíč (Primary Key - PK) Je právě jedna množina atributů patřící jednomu z kandidátů primárního klíče.

SQL - trigger, Databázové modelování

Marketingová komunikace. 2. soustředění. Mgr. Pavel Vávra Kombinované studium Skupina N9KMK1aPH/N9KMK1bPH (um1a1ph/um1b1ph)

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

Databázové systémy Cvičení 5.2

Jazyk SQL databáze SQLite. připravil ing. petr polách

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

KIV/ZIS cvičení 6. Tomáš Potužák

SII - Informatika. 1. Atribut relace, jehož hodnota jednoznačně určuje prvek v jiné relaci, se nazývá:

Databáze II. 1. přednáška. Helena Palovská

Obsah. Kapitola 1. Kapitola 2. Kapitola 3. Kapitola 4. Úvod 11. Stručný úvod do relačních databází 13. Platforma 10g 23

Databázové systémy BIK-DBS

KIV/ZIS cvičení 5. Tomáš Potužák

Databázové systémy II. KIV/DB2 LS 2007/2008. Zadání semestrální práce

Databáze II. 2. přednáška. Helena Palovská

Marketingová komunikace. 2. a 3. soustředění. Mgr. Pavel Vávra 9103@mail.vsfs.cz. Kombinované studium Skupina N9KMK3PH (vm3aph)

Databáze I. Přednáška 4

2. přednáška. Databázový přístup k datům (SŘBD) Možnost počítání v dekadické aritmetice - potřeba přesných výpočtů, např.

Databázové systémy a SQL

Relační model dat (Codd 1970)

Základy databází. O autorech 17 PRVNÍ ČÁST. KAPITOLA 1 Začínáme 19

DUM 12 téma: Příkazy pro tvorbu databáze

PRŮBĚHOVÝ TEST Z PŘEDNÁŠEK

Obchodní akademie a Jazyková škola s právem státní jazykové zkoušky Jihlava

Databázové systémy Cvičení 5.3

4. Relační model dat. J. Zendulka: Databázové systémy 4 Relační model dat 1

Informační systémy 2008/2009. Radim Farana. Obsah. Dotazy přes více tabulek

J. Zendulka: Databázové systémy 4 Relační model dat 1

SQL. strukturovaný dotazovací jazyk. Structured Query Language (SQL)

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

Analýza a modelování dat 3. přednáška. Helena Palovská

Dotazování v relačním modelu a SQL

Stručný obsah. část III Aktualizace dat Kapitola 10: Aktualizace databáze 257 Kapitola 11: Integrita dat 275 Kapitola 12: Zpracování transakcí 307

B0M33BDT Technologie pro velká data. Supercvičení SQL, Python, Linux

InnoDB transakce, cizí klíče, neumí fulltext (a nebo už ano?) CSV v textovém souboru ve formátu hodnot oddělených čárkou

Databázové systémy Cvičení 5

Úvod do databázových systémů

Jazyk SQL 3 - DML, DDL, TCL, DCL

Databáze I. Přednáška 2

Otázka č. 1 (bodů za otázku: 4)

Návrh a tvorba WWW stránek 1/14. PHP a databáze

Obsah přednášky. Databázové systémy RDBMS. Fáze návrhu RDBMS. Coddových 12 pravidel. Coddových 12 pravidel

Úvod do databází. Modelování v řízení. Ing. Petr Kalčev

Databázové systémy. Cvičení 6: SQL

6. SQL složitější dotazy, QBE

Databáze. Logický model DB. David Hoksza

Ukázka knihy z internetového knihkupectví

Kapitola 4: SQL. Základní struktura

Databáze I. Přednáška 6

Práva a role. Martin Polák. NDBI013 Administrace Oracle

Obsah přednášky. Databázové systémy. Normalizace relací. Normalizace relací. Normalizace relací. Normalizace relací

Operátory ROLLUP a CUBE

Databáze 2013/2014. Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Úvod do databázových systémů 6. cvičení

Objektově relační databáze a ORACLE 8

Databáze 2011/2012 SQL DDL (CREATE/ALTER/DROP TABLE), DML (INSERT/UPDATE/DELETE) RNDr.David Hoksza, Ph.D.

B Organizace databáze na fyzické úrovni u serveru Oracle

Úvod do databázových systémů

2. blok Zabezpečení a ochrana dat

Administrace Oracle Práva a role, audit. Kukhar Maria

Inovace tohoto kurzu byla spolufinancována z Evropského sociálního fondu a státního rozpočtu České republiky.

Kapitola 3: Relační model. Základní struktura. Relační schéma. Instance relace

Administrace Oracle. Práva a role, audit

Informační systémy ve zdravotnictví. 10. cvičení

Databázové systémy I

RELAČNÍ DATABÁZE ACCESS

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Databázový systém označuje soubor programových prostředků, které umožňují přístup k datům uloženým v databázi.

Jazyk PL/SQL Úvod, blok

Tvorba informačních systémů

DJ2 rekurze v SQL. slajdy k přednášce NDBI001. Jaroslav Pokorný

Základní přehled SQL příkazů

Audit DB. Referát. Vypracoval: Zdeněk Doležal MFF UK Praha 11/5/06

SQL SQL-SELECT. Informační a znalostní systémy. Informační a znalostní systémy SQL- SELECT

Zápisování dat do databáze

1. Relační databázový model

- sloupcové integritní omezení

01. Kdy se začala formovat koncept relačních databází (Vznik relačního modelu, první definice SQL)? a) 1950 b) 1960 c) 1970 d) 1980

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

DATABÁZOVÉ A INFORMAČNÍ SYSTÉMY

Transkript:

ZKOUŠKOVÉ TESTY Leden 2010 souhrn Červené dobře (nejspíš), modré možná Pomocí kterého databázového objektu je implementován ATRIBUT z konceptuálního modelu? sloupec referenční omezení index tabulka Omezení NOT NULL: Jsou povinná ve sloupcích cizího klíče Jsou povinná ve sloupcích jedinečného identifikátoru Zabraňují ve vynechání povinného sloupce při vložení dat Zabraňují v zápisu hodnoty NULL do sloupce Co nepatří mezi integritní omezení? PRIMARY KEY FOREIGN KEY DISTINCT UNIQUE Restrikce znamená: výběr sloupců tabulky výběr určité věty z tabulky na základě stanovené podmínky výběr řádků tabulky propojení tabulek, které obsahují alespoň jednu stejnou položku Co označuje stupeň vztahu mezi tabulkami? počet účastníků vztahů počet nesvázaných tabulek počet spojených řádků v tabulkách tabulky svázané určitým vztahem Kolik má částí PL/SQL Blok? 4 části, z toho 2 povinné 2 části, obě povinné 4 části, z toho 1 povinná 3 části, z toho 1 povinná Která z deklarací proměnných v PL/SQL je špatná? v_promenna table.sloupec%type; v_promenna NUMBER(6); v_promenna NUMBER NOT NULL DEFAULT 6; v_promenna NUMBER = 77; http://fei.trtkal.net S t r a n a 1

Spojení na sebe sama v jazyce SQL: Pracuje se dvěma různými tabulkami Vytvoří vždy kartézský součin Je řešením rekurzivní relace Může být definováno jako vnitřní nebo vnější spojení Příkaz DELETE bez klauzule WHERE vede v jazyce SQL k: Chybové zprávě Odstranění všech řádků tabulky Odstranění celé tabulky Odstranění všech sloupců tabulky Co znamená příkaz: GRANT SELECT ON knihy TO public; přidělení práva čtení všem uživatelům odebraní práva ke čtení skupině několika jednotlivců nazvané public přidělení práva čtení skupině několika jednotlivců nazvané public přidělení práva čtení uživateli public Vlastnostmi transakce jsou: Zabraňuje vzniku uváznutí Je izolována od ostatních transakcí Musí být buďto celá zpracována, nebo se nesmí zpracovat žádná její část Převádí databázi z jednoho konzistentního stavu do jiného Označte příkazy pro řízení transakcí: ROLLBACK DROP SELECT COMMIT Mezi základní operace relační algebry patří spojení, dělení, rozdíl rozdíl, průnik, součin součin, rozdíl,projekce restrikce, projekce, sjednocení Nechť R je relace se schématem R(A,B), S relace se schématem S(A,D,E). Přirozené spojení R[*]S je stupně 5 6 3 4 http://fei.trtkal.net S t r a n a 2

A) select ruda from sachty join rudy on rudy.id=id_rudy where sachta= pod parezem ; B) select ruda from sachty,rudy where sachta= pod parezem and rudy.id=id_rudy; C) (sachty[id_rudy=rudy.id]rudy)(sachta= pod parezem )[ruda] Která z následujících tvrzení jsou pravdivá? výraz v relační algebře v bodě C) lze zapsat selectem v bodě B) výraz v relační algebře v bodě C) dá tytéž řádky výsledku jako select v bodě B) výraz v relační algebře v bodě C) nelze zapsat selectem v bodě A) výraz v relační algebře v bodě C) lze zapsat selectem v bodě A) A) (sachty x rudy)[(id_rudy=rudy.id) and (sachta= u potoka )][ruda] B) select ruda from sachty,rudy where sachta= pod parezem and rudy.id=id_rudy; Která z následujících tvrzení jsou pravdivá? A), B) nedávají jako výsledek tutéž relaci výraz v relační algebře v bodě A) lze zapsat selectem v bodě B) obsahuje konjunkci podmínek v rámci restrikce výraz v relační algebře v bodě A) nelze zapsat selectem v bodě B) A) (sachty x rudy)[(id_rudy=rudy.id) and (sachta= u potoka )][ruda] B) select ruda from sachty,rudy where sachta= u potoka and rudy.id=id_rudy; Která z následujících tvrzení jsou pravdivá? výraz v relační algebře v bodě A) nelze zapsat selectem v bodě B) A), B) nedávají jako výsledek tutéž relaci výraz v relační algebře v bodě A) lze zapsat selectem v bodě B) obsahuje konjunkci podmínek v rámci restrikce Referenční omezení: zajišťuje, že hodnota cizího klíče dceřiné tabulky odkazuje vždy na existující hodnotu primárního klíče rodičovské tabulky zabraňuje vzniku "sirotků" mezi hodnotami cizího klíče v rodičovské tabulce zajišťuje, že primární klíč nemá v tabulce duplicitní hodnoty definuje mezi 2 tabulkami relaci 1:N Jak lze definovat unární vztahy? tabulky jsou spojeny pouze jedním řádkem tabulky jsou spojeny pouze jedním sloupcem tabulka je spojena sama se sebou tabulky jsou svázané pouze vnitřním spojením Parcialita vztahu? znamená, kolik řádků jedné tabulky může vstoupit do vztahu s kolika řádky druhé tabulky označuje, zda k záznamu v jedné tabulce musí existovat odpovídající záznam v druhé tabulce vyžaduje, že jednomu řádku z první tabulky odpovídá vždy právě jeden řádek z tabulky druhé vyjadřuje pouze částečné naplnění tabulek, jež vstupují do vztahu http://fei.trtkal.net S t r a n a 3

Jestliže jedna objednávka může obsahovat mnoho výrobků a jeden výrobek se může vyskytovat na mnoha objednávkách, hovoříme o relaci typu: M:N 1:1 N:1 1:N Příkaz RAISE znamená: deklaraci proměnné spuštění procedury vyvolání výjimky ošetření výjimky Sloupec ve výsledné množině databázového dotazu může být tvořen: Sloupcem tabulky či pohledu Výpočtem Konstantou Sloupcem cizího klíče Agregační funkce v databázovém dotazu (group by) Spojuje data z několika řádků Spojuje data z několika sloupců Nesmí být aplikována na sloupce obsahující výpočty Definuje způsob spojení tabulek Příkaz UPDATE, ve kterém vynecháme označení tabulky vede v jazyce SQL k: Aktualizaci naposledy použité tabulky Chybové zprávě Aktualizaci všech tabulek Kartézskému součinu Objektová oprávnění v databázi Platí pro konkrétní databázový objekt Přidělujeme příkazem ALTER Patří mezi standardy jazyka SQL, a proto jsou u nich mezi různými výrobci minimální rozdíly Odebíráme příkazem DROP Objektová přístupová práva: nastavuje je vlastník objektu nebo správce poskytují uživateli možnost provádět databázové operace s určitými objekty si nastavuje každý sám lze nastavit pouze u tabulek Systémová oprávnění v databázi Přidělujeme příkazem GRANT Odebíráme příkazem ALTER jazyka SQL Automaticky umožňují oprávněnému přidělovat oprávnění dalším uživatelům Platí pro konkrétní databázový objekt http://fei.trtkal.net S t r a n a 4

Jsou dány relace: uci(id_studenta,id_ucitele, predmet) ucitel(id,prijmeni). Fakulta elektrotechniky a informatiky Požadavek ucitel[id]\uci[id_ucitele] dává jména učitelů, kteří nevyučují žádný předmět id učitelů, kteří nevyučují žádný předmět id učitelů, kteří vyučují alespoň jeden předmět Mezi odvozené operace relační algebry patří: spojení průnik součin dělení Omezení primárního klíče musí se odvolávat na jeden nebo více sloupců primárního klíče a na jeden nebo více sloupců cizího klíče zaručuje, že žádné 2 řádky v tabulce nemají stejnou hodnotu primárního klíče musí se odvolávat na jeden nebo více sloupců v jediné tabulce musí být definováno pro každou tabulku v databázi Kardinalita vztahu znamená? kolik řádků jedné tabulky může vstoupit do vztahu s kolika řádky druhé tabulky je takový vztah, kde k jednomu výskytu entity nemusí existovat výskyt druhé entity tabulky svázané pouze vnitřním spojením jednomu řádku z jedné tabulky odpovídá vždy jeden řádek ze všech ostatních tabulek v databázi Jaké atributy jsou k dispozici pro testování stavu kurzoru? %ISSELECT %ROWCOUNT %ISCLOSED %ROWID Výraz n-ticového relačního kalkulu {t R(t) (S(t))} vyjadřuje následující operaci relační algebry rozdíl R \ S sjednocení R U S průnik R S součin R x S Následující požadavek v relační algebře (sachty[id_rudy=rudy.id]rudy)[sachta= u potoka ][ruda] lze zapsat jako: select ruda from sachty join rudy on id_rudy=rudy.id where sachta= u potoka ; obsahuje ve svém zápisu projekci i restrikci nelze zapsat jako (sachty x rudy)[(id_rudy=rudy.id) and (sachta= u potoka )] lze zapsat jako (sachty x rudy)[(id_rudy=rudy.id) and (sachta= u potoka )] http://fei.trtkal.net S t r a n a 5

Který z uvedených příkladů je nesprávný pro volání funkce pocet_deti(id_osoby)? SELECT pocet_deti(id) from lide; execute pocet_deti(7); begin pocet_deti(7); end; SELECT pocet_deti(7) from dual; Pokud chceme v rámci triggeru pracovat s hodnotami :new a/nebo :old Musí být trigger vytvořen s klauzulí ENABLE OLD AND NEW Musí být trigger vytvořen s klauzulí FOR EACH ROW Hodnoty :new a :old mohou být použity pouze pro sloupce s typem NUMBER Nesmí jít o trigger vytvořený nad pohledem Jsou-li R, S relace se schématy R(A,B,C,D), S(E,F). Z následujících relací má nejmenší stupeň relace S[E < B]R R[B*E]S R[B=E]S R[B < E]S Kterým výrazem relační algebry jsou dána Id a jména učitelů, kteří vyučují předmět s názvem 'IDAS2'? (((Uci[predmet='IDAS2'])[id_ucitele]) x ucitel)[id_ucitele=id][id,jmeno] Uci[id_ucitele=id]Ucitel[predmet='IDAS2'])[id_ucitele,jmeno]) (((Uci[predmet='IDAS2'])[id_ucitele]) x ucitel)[id_ucitele=id][id] Uci[id_ucitele>id]Ucitel[predmet='IDAS2'])[id,jmeno]) Kterým výrazem relační algebry jsou dána Id a jména učitelů, kteří vyučují předmět s názvem 'IDAS2'? Uci[id_ucitele>id]Ucitel[predmet='IDAS2'])[id,jmeno]) Uci[id_ucitele=id]Ucitel[predmet='IDAS2'])[id_ucitele,jmeno]) (((Uci[predmet='IDAS2'])[id_ucitele]) x ucitel)[id_ucitele=id][id,jmeno] (((Uci[predmet='IDAS2'])[id_ucitele]) x ucitel)[id_ucitele=id][id] Systémový katalog obsahuje pohledy začínající na "DBT_" obsahuje informace o uživatelích, rolích, právech, databázových objektech obsahuje pohledy začínající na "ALL_" obsahuje pohledy začínající na "USER_" Pomocí kterého databázového objektu je implementována ENTITNÍ MNOŽINA z konceptuálního modelu? index pohled tabulka sloupec Vyberte správný příkaz pro spuštění procedury s nazvem Vypis RAISE Vypis(); EXEC Vypis; EXECUTE Vypis; EXEC Vypis(); http://fei.trtkal.net S t r a n a 6

Operace spojení tabulek bez klauzule WHERE vede v jazyce SQL k: Prázdné výsledné množině (nevrátí se žádné řádky) Vnitřnímu spojení Kartézskému součinu Chybové zprávě Databázové role: Nemohou existovat před vznikem uživatelských účtů Můžeme přiřadit libovolnému počtu uživatelů Při odstranění uživatelů se automaticky odstraní také Mohou obsahovat libovolný počet objektových oprávnění Příkaz COMMIT v databazi ORACLE: Ukončuje transakci Před provedením příkazu DML se provádí automaticky Před provedením příkazu DDL se provádí automaticky Zahajuje novou transakci Nechť relace R je stupně n a relace S je stupně m. Součin R x S je relace stupně n x m n + m n + m - 1 n + m + 1 Jsou-li R, S relace se schématy R(A,B,C), S(E,F). Relace S[E<B]R má stupeň 5 větší než relace R[B*E]S menší než relace R[B*E]S 4 Následující požadavek v relační algebře (sachty[id_rudy=rudy.id]rudy)(sachta= u potoka )[ruda] obsahuje ve svém zápisu spojení relací sachty, rudy, které lze zapsat i pomocí kartézského součinu sachty x rudy spojení relací podle predikátu přirozené spojení relací spojení relací sachty, rudy, které nelze zapsat pomocí kartézského součinu sachty x rudy Omezení typu CHECK: Mohou vynutit shodu sloupce s hodnotou jiného sloupce ve stejném řádku Mohou implementovat relaci 1:N Mohou vynutit shodu sloupce se seznamem hodnot Mohou zajistit, že číselný sloupec bude obsahovat pouze kladné hodnoty Jestliže databázový dotaz neobsahuje žádné řazení výsledků, pak řádky ve výsledcích dotazu seřadí podle: Vzestupně podle prvního sloupce výsledků dotazu Pořadí hodnot primárního klíče Pořadí, v jakém byly do tabulky přidávány Nejsou v žádném konkrétním pořadí http://fei.trtkal.net S t r a n a 7

Pomocí kterého databázového objektu je implementována ENTITA z konceptuálního modelu? pohled tabulka index sloupec Pomocí kterého databázového objektu je implementována ENTITA z konceptuálního modelu? sloupec tabulka referenční omezení index Mezi základní operace relační algebry nepatří rozdíl spojení restrikce průnik Výraz relační algebry Ucitel[id] \ ((Uci[predmet='IDAS2'])[id_ucitele]) určí id_ucitelů, kteří nevyučují předmět s názvem 'IDAS2' id_ucitelů, kteří vyučují pouze předmět s názvem 'IDAS2' id_ucitelů, kteří vyučují alespoň předmět s názvem 'IDAS2' id_studentů, kteří studují předmět s názvem 'IDAS2' Co znamená příkaz: GRANT SELECT, INSERT, UPDATE, DELETE ON trpaslik TO SNEHURKA; vlastník tabulky, která je nazvána trpaslik, přiděluje pouze práva pro čtení, vkládání, změnu a mazaní práva jsou přidělována uživateli snehurka vlastník tabulky, která je nazvána trpaslik, přiděluje úplně všechna práva vlastník jménem trpaslik přiděluje práva uživateli snehurka Nechť R je relace se schematem R(A,B,C). Požadavek R[(A>C) Λ (B='c')][C] v relační algebře obsahuje operaci spojení restrikce průnik projekce Triggery je možné použít: pro logování přístupu uživatelů pro DML operace pro vyvolání operace ROLLBACK pro DDL operace http://fei.trtkal.net S t r a n a 8

Který z uvedených výrazů je formálně správně pro volání procedury vlastnosti_trpaslika(id_trpaslika)?: SELECT vlastnosti_trpaslika(7) from dual; begin vlastnosti_trpaslika(1); end; run vlastnosti_trpaslika(2); execute vlastnosti_trpaslika(3); http://fei.trtkal.net S t r a n a 9