Maturitní témata z předmětu Programování a databázové systémy pro šk. rok 2012/2013 1. Základy - proměnné a datové typy a) Co je to proměnná, co znamená deklarace proměnné, a popište syntaxi deklarace proměnné. b) Vyjmenujte všechny datové typy, určete jejich velikost a uveďte příklad použití. c) Co jsou to hodnotové a referenční datové typy, jaký je mezi nimi rozdíl, uveďte příklad hodnotového a referenčního typu. d) K čemu slouží pole, jakým způsobem se provádí jeho deklarace. Znázorněte reprezentaci pole v operační paměti a popište příkazy ReDim a ReDim Preserve a co se stane v RAM. 2. Základy - řídící konstrukce, procedury a funkce a) Co je rozhodovací konstrukce, popište plnou syntaxi a využití. b) Co je cyklus, k čemu slouží, jaké druhy cyklů znáte. Popište syntaxi a rozdíly mezi jednotlivými druhy cyklů. c) Definujte proceduru a funkci, jaký je mezi nimi rozdíl. Popište syntaxi procedury a funkce a uveďte příklady využití. d) K čemu slouží parametry funkce, jakým způsobem je možné je předávat do procedury/funkce. Popište rozdíl a uveďte příklady využití. 3. Algoritmy teoretické základy a) Definujte pojem algoritmus, jak souvisí s programováním. b) Jakým způsobem je možné algoritmus vyjádřit, jednotlivé možnosti popište a uveďte jejich výhody a nevýhody. c) Jaké vlastnosti musí algoritmus splňovat. Každou vlastnost popište a uveďte příklad. d) Navrhněte a zapište algoritmus pro lineární vyhledávání prvku v poli. Dokažte, že daný algoritmus splňuje všechny vlastnosti. 4. Algoritmy řazení prvků a) Vysvětlete algoritmy BubbleSort a Selection Sort a jaká je jejich složitost. b) Popište princip algoritmu QuickSort a jaká je jeho složitost. c) Dokažte, že uvedené algoritmy splňují požadované vlastnosti. 5. Základy - Operátory a řetězce a) Jaké znáte druhy operátorů, k čemu slouží, uveďte příklad. Jaký je rozdíl mezi /, \ a Mod. b) Definujte pravdivostní tabulku logických operátorů. c) Popište datový typ String a Char, uveďte jejich velikost a jaký je mezi nimi vztah. Jak probíhá zřetězení dvou řetězců.
d) Vyjmenujte funkce pro práci s řetězci (např. pro rozdělení podle znaku, vyhledání podřetězce, ), jaký je operátor zřetězení. Popište komponentu StringBuilder, k čemu slouží a jaké je její typické využití. 6. Základy - soubory a) Vysvětlete pojem soubor a jeho úlohu v souborovém systému. Vyjmenujte druhy souborů a vysvětlete jejich použití. b) Vyjmenujte přístupové módy k souborům a vysvětlete jejich význam a použití. Co musíme udělat, aby bylo možné se souborem pracovat. c) Převeďte prostředky pro práci se soubory. Ukažte čtení a zápis s textovým souborem. d) Ukažte základní výjimky pro práci se soubory. 7. Základy - Práce se soubory a) Otevírání a zavírání souborů. Ošetření výjimek při čtení neexistujícího souboru. b) Zápis do souboru, rozdíl mezi Write a WriteLine. Otevření souboru v režimu zápisu a připojení (append). c) Čtení ze souboru. Napište typickou konstrukci pro načtení celého textového souboru do řetězcové proměnné/kolekce. Vysvětlete zkratku EOF a jak souvisí se čtením souboru. d) Popište formulářové komponenty OpenFileDialog a SaveFileDialog, jakým způsobem se používají. 8. Základy práce s čísly a jejich validace a) Vyjmenujte číselné datové typy a uveďte jaké je jejich členění. Uveďte velikost jednotlivých datových číselných typů. b) Vyjmenujte operátory pro práci s čísly a ukažte základní operace s číselnými proměnnými. c) Ukažte převod jednoho číselného datového typu na druhý. Ukažte převod řetězce na číslo a zpět. Jak můžeme čísla formátovat a jak používáme masku při formátování. d) Vysvětlete pojem přísné typová kontrola. Jak validujeme číselné hodnoty. Co ofenzivní a defenzivní způsob validace číselné hodnoty. Jaké výjimky mohou nastat při práci z čísly. 9. OOP třída, metoda, vlastnost a) Definujte pojmy třída a instance, jaký je mezi nimi vztah. b) Co je zapouzdření a skrytí implementace třídy. c) Co jsou vlastnosti a metody objektu, uveďte příklady a syntaktický zápis. Vysvětlete pojem accessor a jak souvisí s metodami. Jaké znáte druhy accessorů. d) Co je přetěžování metod a čemu slouží. e) Co je to konstruktor, k čemu slouží. Uveďte syntaxi a příklad. Jakým způsobem se konstruktor zavolá.
10. OOP dědičnost a) Vysvětlete pojem dědičnost objektů. Jakým způsobem se zapíše, k čemu se využívá. b) Co je to polymorfismus, uveďte příklady a využití. c) Co je překrývání metod a jaké znáte druhy. d) Ukažte jednoduchý příklad dědičnosti a použití klíčového slova MyBase a konstruktoru a v nějaké metodě. 11. OOP Abstraktní třídy a) Jakým způsobem se definuje abstraktní třída, k čemu se používá. b) Uveďte rozdíl mezi abstraktní a konkrétní třídou. Jaký je rozdíl mezi dědičností a přijímáním rozhraní c) Co je abstraktní metoda, čím je charakteristická, uveďte syntaxi a příklad. d) Jakým způsobem se provádí překrývání metod a co potřeba provést, aby metodu bylo možné překrýt. 12. OOP rozhraní a) Co je to rozhraní, jaká je syntaxe pro přijetí rozhraní. b) Popište vztah mezi abstraktní třídou a rozhraním. c) Jaký je rozdíl mezi dědičností a přijímáním rozhraní. Jakou výhodu skýtá rozhraní. d) Ukažte implementaci rozhraní na jednoduchém příkladu. 13. OOP sdílené metody a) Pojem sdílená proměnné, metody, vlastnosti. b) Co je to sdílená a nesdílená část instance třídy a jak jsou obě části realizovány v paměti. c) Jak sdílenou část instance třídy definujeme a k ní můžeme přistupovat. d) Ukažte jednoduchou implementaci třídy se sdílenou částí a porovnejte s obdobnou implementací bez sdílené části. 14. OOP struktury a) Vysvětlete pojem struktura a uveďte, do jaké kategorie datových typů patří. Uveďte, kdy a jak vzniká instance struktury. b) Co mají struktury společného s třídami a co je naopak odlišuje. c) Jakou mají ve strukturách úlohu metody, vlastnosti a konstruktor. d) Na jednoduchém příkladu ukažte implementaci struktury a porovnejte s obdobnou implementací pomocí třídy. 15. Grafické uživatelské rozhraní a) Jaké znáte základní komponenty grafického prostředí Windows Forms, vysvětlete základní vlastnosti a události a k čemu se používají. b) Popište komponenty Listbox a Combobox, jaký je mezi nimi rozdíl. Vysvětlete vlastnosti SelectedIndex a SelectedItem, jaký je rozdíl uveďte příklady využití.
c) Vysvětlete rozdíl mezi metodami Show a ShowDialog při otevírání formuláře. Jakým způsobem se rozlišuje návratová hodnota otevíraného formuláře (zavření tlačítkem OK, Storno, ). d) K čemu se používá validace dat, jaké způsoby validace znáte a uveďte příklad použití. Ukažte práci s komponentou ErrorProvider. 16. Komponenty DataGridView a DataTable a) K čemu slouží komponenta DataGridView, uveďte příklad použití. b) Vysvětlete použití třídy DataTable a propojení s DataGridView pomocí vlastnosti DataSource. c) Jakým způsobem se plní data do oddělené komponenty DataTable (definice sloupců, přidávání/editace/mazání/výběr dat). 17. GDI+ grafika a) Popište způsob kreslení grafických objektů (úsečka, obdélník, kruh). Uveďte syntaxi a vysvětlete parametry daných funkcí. b) Vysvětlete práci se souřadným systémem, kde je umístěn počátek souřadného systému. Uveďte funkce pro transformaci souřadného systému. c) K čemu slouží třídy Pen a Brush, k čemu se používají. d) Co je objekt Graphics, jak souvisí s objekty Panel/PictureBox, k čemu se používá a jaké má výhody. 18. Import dat - SSIS SERVICES a) Import a export dat mezi různými platformami (základní problémy, co je nutno hlídat). b) Základní nástroje pro importy data do SQL Serveru. c) SSIS Services popis pracovního prostředí; praktická demonstrace (SSIS_Priklad_1, SSIS_Priklad_2,. SSIS_Priklad_3). 19. SPRÁVA UŽIVATELŮ A ZABEZPEČENÍ a) Popište model zabezpečení SQL serveru. b) Vysvětlete pojmy principals, securables, permissions. c) Uveďte rozdíl mezi principals Windows, principals SQL Serveru, Principals databáze. d) Vytvořte Logina (l_prijmeni) a Usera (u_prijmeni) pro databázi dbnw a nastavte mu práva vkládat, mazat a vybírat záznamy z tabulky tbrozpisobjednavek. Zároveň mu zakažte v této tabulce měnit záznamy. e) Vysvětlete pojem zosobnění a uveďte jednoduchý příklad (předveďte prakticky).
20. SERVEROVÉ A DATABÁZOVÉ ROLE a) Vysvětlete, co jsou to role, k čemu slouží, jak se používají. Jaké znáte serverové role (vyhledejte v Management studiu); čím se liší od databázových rolí. b) Které serverové role jsou něčím zvláštní a v čem tato zvláštnost spočívá? c) Lze vytvořit novou serverovou roli? Pakliže ano, vytvořte ji (např. roli, která by neumožňovala provést shut down SQL serveru). d) Jaké znáte databázové role (vyhledejte v Management studiu), čím se liší od serverových rolí? e) Lze vytvořit novou databázovou roli? Pakliže ano, vytvořte ji (např. roli, která umožní insert, update, delete a select ze všech tabulek dbnw). /*mít připraveny loginy a usery pro případné zařazení do role*/ 21. ZRCADLENÍ (MIRRORING) DATABÁZE a) Co je to zrcadlení databáze - vysvětlete princip; uveďte, proč se používá. b) Popište možné režimy zrcadlení a vysvětlete, v čem jsou rozdílné. c) Nastavte zrcadlení databáze dbnw na režim vysoké dostupnosti. d) Uveďte příkazy, které používáme při správě a kontrole zrcadlení. 22. ZASÍLÁNÍ PROTOKOLU (LOG SHIPPING) a) Vysvětlete princip zasílání protokolu, popište jeho základní procesy přípravnou část. b) Uveďte, v jakých možných stavech se musí nalézat cílová databáze jaký je mezi nimi základní rozdíl. c) Nastavte zasílání protokolu databáze dbnw ze serveru Main do databáze dbnw na Server Mirror (použijte Management studio a vysvětlete jednotlivé kroky a možnosti). d) Popište postup obnovy databáze po havárii. e) Předveďte nástroje na monitorování zasílání protokolu. 23. ZÁLOHOVÁNÍ DATABÁZÍ (BACKUP) a) Vysvětlete, proč je nutné zálohovat data; popište fungování transakčního protokolu. b) Uveďte, jaké lze nastavit u zálohování databáze modely zotavení a jaké jsou mezi nimi rozdíly. Jaké znáte typy záloh? c) Vysvětlete princip zálohovacích sad a médií (v Management studiu - Backup_Priklad_1, Scriptem Backup_Priklad_2, Backup_Priklad_3) 24. OBNOVA DAT (RESTORE) a) Jak funguje proces obnovení databáze (uveďte 3 fáze); co je to bod zotaveni? b) Jaké jsou základní typy zotavení databáze; uveďte rozdíly. Co je to obnovení do časového bodu? c) Demonstrujte proces obnovení pomocí nástroje Management studio (Restore_Priklad_1) a pomocí jazyka T-SQL (Restore_Priklad_2 a Restore_Priklad_3).
25. AUDIT a) Vysvětlete princip auditování činností v SQL serveru. b) Jaké objekty musíte nastavit, chcete-li auditovat činnosti na úrovni serveru? c) Jaké objekty musíte nastavit, chcete-li auditovat činnosti na úrovni databáze? d) Uveďte, kam se data auditu zapisují. e) Pomocí nástroje Management studio popište možné konfigurace. f) Jakým způsobem lze číst data auditu? Jaká metadata popisují objekty auditu? 26. ŠIFROVÁNÍ a) Pohovořte o důvodech šifrováni. b) Popište model šifrování podle schématu v helpu - Encryption Hierarchy. c) Vysvětlete, co je to transparentní šifrování dat? Co je to šifrování bez klíčů? (Příklad 1 - zašifrování a rozšifrování pole poznámka. Příklad 2 - demonstrace šifrování bez klíčů). 27. DĚLENÍ DAT (PARTITIONING) a) Vysvětlete princip partitioningu (dělení dat); popište jeho možnosti a výhody. b) Vysvětlete pojmy dělicí schéma a dělicí funkce (Příklad 1 dělení podle roků, Příklad 2 dělení podle kategorií). c) Jaké operace lze s dělenou tabulkou provádět? 28. REPLIKACE DATABÁZÍ a) Vysvětlete podstatu replikací. b) Vysvětlete pojmy vydavatel pulisher, publikace publication, článek article, distributor, odběratel subscriber, odběr subscription. c) Jaké znáte typy replikací? d) Uveďte, jaké existují způsoby šíření replikovaných dat (Příklad 1 Replikace databáze Dbnw na jiný server). 29. METADATA a) Vysvětlete, co jsou to metadata, kde jsou uložena a jakým způsobem jsou přístupna (uveďte příklady databáze, tabulky, sloupce, pohledy, funkce Pk, Fk, indexy, procedury, triggery, a další objekty uveďte alespoň dalších pět příkladů). b) Předveďte příklady pro využití metadat při ověřování existence objektu před jeho vytvořením nebo odstraněním a pro využití metadat pro generování příkazů SQL (select pro všech výběr sloupců z tabulky, select pro deklaraci proměnných určených pro vkládání hodnot do všech sloupců tabulky).