IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

MS SQL v príkladoch: Založenie databázy a testovacie dáta

Zakladacími skripty sa nebudeme zaoberať, pretože je za nás vygeneruje príslušný CASE nástroj, v ktorom sme databáze navrhovali. Ja som použil Enterprise Architect. Stiahnite si prosím zakladacia skripty, ktoré sú priložené na konci článku a databázu založte.

Hotovo? Dobre. Než začneme písať otázky, budeme potrebovať nejaká testovacie dáta. Poďme si ich do prázdnej databázy vložiť.

Najprv vložíme niekoľko testovacích používateľov:

INSERT INTO Uzivatel (Nick, Email, PasswordHash) VALUES
('Míša', '[email protected]', 'dGg#@$DetA53d'),
('David', '[email protected]', '$#fdfgfHBKBKS'),
('Denny', '[email protected]', 'Jmls_aSW2RFss'),
('Ema', '[email protected]', 'fw8QT32qmcsld');

Ďalej pridáme články ak nim priradíme používateľa ako autormi. Vzal som 3 články tu z itnetworku, ktoré som značne skrátil a zjednodušil. Otázka bude následujcící:

INSERT INTO Clanek (AutorID, Perex, PrettyURL, Keywords, Titulek, Obsah, Publikovano) VALUES
(1, 'Co je to algoritmus? Pokud to nevíte, přečtěte si tento článek.', 'co-je-to-algoritmus', 'algoritmus, co je to, vysvětlení', 'Algoritmus', 'Když se bavíme o algoritmech, pojďme se tedy shodnout na tom, co ten algoritmus vůbec je. Jednoduše řečeno, algoritmus je návod k řešení nějakého problému. Když se na to podíváme z lidského pohledu, algoritmus by mohl být třeba návod, jak ráno vstát. I když to zní jednoduše, je to docela problém. Počítače jsou totiž stroje a ty nemyslí. Musíme tedy dopodrobna popsat všechny kroky algoritmu. Tím se dostáváme k první vlastnosti algoritmu - musí být elementární (skládat se z konečného počtu jednoduchých a snadno srozumitelných kroků, tedy příkazů). "Vstaň z postele" určitě není algoritmus. "Otevři oči, sundej peřinu, posaň se, dej nohy na zem a stoupni si" - to už zní docela podrobně a jednalo by se tedy o pravý algoritmus. My se však budeme pohybovat v IT, takže budeme řešit problémy jako seřaď prvky podle velikosti nebo vyhledej prvek podle jeho obsahu. To jsou totiž 2 základní úlohy, které počítače dělají nejčastěji a které je potřeba dokonale promýšlet a optimalizovat, aby trvaly co nejkratší dobu. Z dalších příkladů algoritmů mě napadá třeba vyřeš kvadratickou rovnici nebo vyřeš sudoku.', '2012-3-21'),
(2, 'Bakterie jsou obdoba buněčného automatu v kombinaci s hrou.', 'bakterie-bunecny-automat', 'bakterie, automat, algoritmus', 'Bakterie', 'Bakterie jsou obdoba buněčného automatu, který vymyslel britský matematik John Horton Conway v roce 1970. Celou tuto hru řídí čtyři jednoduchá pravidla:/n/n
1. Živá bakterie s méně, než dvěma živými sousedy umírá./n
2. Živá bakterie s více, než třemi živými sousedy umírá na přemnožení./n
3. Živá bakterie s dvoumi nebo třemi sousedy přežívá beze změny do další generace./n
4. Mrtvá bakterie, s přesně třemi živými sousedy, opět ožívá./n
Tyto zdánlivě naprosto primitivní pravidla dokáží za správného počátečního rozmístění bakterií vytvořit pochodující skupinky, shluky "vystřelující" pochodující pětice, překvapivě složité souměrné exploze, oscilátory (periodicky kmitající skupinky), či nekonečnou podívanou na to, jak složité a dokonalé obrazce dokáží tyto dvě podmínky vytvořit. Celý program je koncipován jako hra, máte za úkol vytvořit co nejdéle žijící kolonii. <a href="soubory/bakterie.zip" ', '2012-2-14'),
(3, 'Cheese Mouse je oddechová plošinovka.', 'cheese-mouse-oddechova-plosinovka', 'myš, sýr, hra', 'Cheese Mouse', 'Cheese mouse je plošinovka s "horkou ostrovní atmosférou", kde ovládáte myš a musíte se dostat k sýru. V tom vám ale brání nejrůznější nástrahy a nepřatelé jako hadi, krysy, pirane, ale i roboti, mumie a nejrůznější havěť. Hru s několika petrobarevnými světy jsem dělal ještě na základní škole s Veisenem a může se pochlubit 2. místem v Bonusweb game competition, kde vyhrála 5.000 Kč. Vznikala v Game makeru o letních prázdninách, ještě v bezstarostném dětství, což značně ovlivnilo její grafickou stránku. Rád si ji občas zahraji na odreagování a zlepšní nálady. <a href="soubory/cheesemouse.zip" />', '2004-6-22'),
(2, 'Pacman je remake kultovní hry.', 'pacman-remake', 'pacman, remake, pampuch, hra, zdarma', 'Pacman', 'Jedná se o naprosto základní verzi této hry s editorem levelů, takže si můžete vytvořit svá vlastní kola. Postupem času ji hodlám ještě trochu upravit a přidat nějaké nové prvky, fullscreen a lepší grafiku. Engine hry bude také základem mého nového projektu Geckon man, který je zatím ve fázi psaní scénáře. <a href="soubory/pacman.zip" />', '2011-6-3');

Musíme samozrejme dodržiavať poradie, v ktorom tabuľky plníme. Aby sme mohli pridať článok, musí existovať užívateľ, ktorého zvolíme ako autora. To isté platí aj pri mazaní tabuliek, v opačnom prípade by nás zarazilo integritné obmedzenie cudzieho kľúča.

Pridajme sekcie článkov:

INSERT INTO Sekce (Nazev) VALUES
('Algoritmy'),
('Hry');

Vložme väzby do väzobnej tabuľky ClanekSekce, cez ktorú je realizovaná väzba M: N:

INSERT INTO ClanekSekce (ClanekID, SekceID) VALUES
(1, 1),
(2, 1),
(2, 2),
(3, 2),
(4, 2);

K článkom priložíme niekoľko komentárov:

INSERT INTO Komentar (UzivatelID, Obsah, Datum, ClanekID) VALUES
(4, 'Super článek!', '2012-4-6', 1),
(4, 'Jak je tedy přesně ta podmínka pro vznik bakterie?', '2011-1-28', 2),
(1, 'Zasekla jsem se v této hře, kde najdu klíč do 3. levelu?', '2011-9-30', 3),
(4, 'Jak rozjedu plošinu v 5. levelu?', '2010-8-1', 3),
(1, 'Umřel jsem a nemám hru uloženou, co mám dělat?', '2012-4-14', 4),
(3, 'Dobrá hra! Haf!', '2012-4-6', 4),
(3, 'Nerozumím tomu, haf!', '2011-4-6', 1),
(2, 'Super článek!', '2012-5-6', 1);

Teraz prejdime k časti s testami, vložíme si 3 jednoduché testy:

INSERT INTO Test (Titulek, Popis) VALUES ('GameMaker - 1. test', 'První test znalostí vývojového nástroje GameMaker'),
('GameMaker - 2. test', 'Druhý test znalostí vývojového nástroje GameMaker'),
('IT zkratky', 'Test znalostí zkratek z IT prostředí');

K nim testovacie otázky:

INSERT INTO Otazka (Obsah, Odpoved1, Odpoved2, Odpoved3, Odpoved4, TestID) VALUES ('Jak lze zamíchat prvky?', 'ds_list_shuffle', 'array_shuffle', 'random_shuffle', 'list_up', 1),
('Jaká funkce vrací celkový počet existujících instancí v roomu?', 'instance_count', 'instance_get_amount', 'instance_number', 'instance_get_number', 1),
('Jaká funkce vrací systémovou barvu ze zadaných RGB hodnot?', 'make_color_rgb', 'color_get_rgb', 'color_set_rgb', 'draw_set_rgb_color', 1),
('Ve kterém eventu by nemělo probíhat vykreslování do surfacu?', 'draw event', 'end step event', 'begin step event', 'destroy event', 1),
('Která funkce ověřuje existenci lokální proměnné?', 'variable_local_exists', 'variable_exists', 'variable_is_isset', 'variable_isset', 1),
('Co je to sprite?', 'Obrázek určený pro objekty s možností animace', 'Oblíbený sycený nápoj', 'Obrázek na pozadí', 'Složenina SPRead IT, označující síť pro distribuci ohotvých her', 1),
('Jaký je rozdíl mezi objektem a instancí?', 'Objekt je obecný vzor, který naprogramujeme a určuje vlastnosti a chování. Podle tohoto objektu může být v roomu vytvořeno více instancí.', 'Objekt a instance jsou synonyma.', 'Instance je cokoli v místnosti, tedy i pozadí nebo zvuk. Objekty jsou pouze ve složce Objects.', 'Instance se nazývá přeložená hra do EXE souboru, objekt je aktivní prvek ve hře.', 1),
('Co to je nebo jsou tiles?', 'Jedná se o zjednodušenou verzi objektů, které se jen vykreslují a neprovádějí žádný kód nebo kontrolu kolizí.', 'Tiles jsou stejné jako objekty, jen se jich může dávat více přes sebe.', 'Jedná se o techniku, která umožňuje spojovat několik zvukových efektů.', 'Jedná se o grafickou funkci v kreslícím editoru GM.', 1),
('Když se postava zasekává ve zdech, co je nejčastější chybou/příčinou?', 'Špatná kolizní maska nebo dokonce zapnutá precizní kolize.', 'Zeď je nastavena jako solid.', 'Jedná se o vnitřní chybu GameMakeru.', 'Postava není nastavena jako persistent.', 1),
('Jaká kolizní maska spritu v GameMakeru neexistuje?', 'Trojúhelník', 'Obdelník', 'Disk', 'Diamant', 1),
('Jaký je rozdíl mezi sprite a background?', 'Sprite může být animovaný a pozadí může být použito jako tiles.', 'Sprite má omezenou velikost obrázku, do background lze nahrát libovolně velký obrázek.', 'Pozadí může být použito jako zdroj tiles, sprite i pozadí mohou být animované.', 'Jedná se pouze o rozdělení z hlediska přehlednosti, není zde jinak žádný rozdíl.', 2),
('Vlastnost Persistent u objektů umožňuje:', 'Sdílet jednu instanci mezi více místnostmi.', 'Chápat objekt jako pevný, například při kolizích se chová jako zeď.', 'Zastavit animaci a pobyb objektu.', 'Ukládat stav instance na pevný disk.', 2),
('Vlastnost Solid u objektů umožňuje:', 'Chápat objekt jako pevný, například při kolizích se chová jako zeď.', 'Sdílet jednu instanci mezi více místnostmi.', 'Zastavit animaci a pobyb objektu.', 'Ukládat stav instance na pevný disk.', 2),
('Depth je:', 'Vzdálenost objektu od kamery.', 'Hloubka v trojrozměrném módu GM.', 'Efekt u zvuků, který simuluje, že je zvuk slyšet z hloubky.', 'Velikost bufferu pro cachování objektů.', 2),
('Akce Wrap Screen:', 'Způsobí, že při dosažení konce roomu objekt vyjede na druhé straně obrazovky, jako např. ve hře Pacman.', 'Otočí zrcadlově obrazovku.', 'Způsobí, že se obrazovka orotuje o definovaný počet stupňů, slouží tedy hlavně pro tvorbu efektů.', 'Používá se k simulaci nekonečného pozadí, například u vesmírných stříleček, kde se vesmír pod raketou stále opakuje.', 2),
('Plynulý pohyb objektu ve hře nelze běžně způsobit akcí:', 'Move to Contact', 'Jump to Position', 'Move Free', 'Speed Horizontal', 2),
('Jaký je rozdíl mezi akcemi Step Towards a Step Avoiding?', 'Step Towards se nedokáže vyhýbat překážkám.', 'Step Avoiding se nedokáže vyhýbat překážkám.', 'Step Avoiding se dokáže zastavit o překážky.', 'Step Towards se nedokáže zastavit o překážky.', 2),
('Co znamená parametr loop v akci Play sound?', 'Zda se má zvuk stále dokola opakovat.', 'Počet, kolikrát zasebou se má zvuk přehrát.', 'Je to zkratka Layer Oriented Object Play neboli přehrávání zvuku mezi vrstvami objektů.', 'Tato hodnota v akci není, akce bere pouze jeden parametr a to zvuk, který má přehrát.', 2),
('U mnoha akcí lze v Applies to zvolit možnost Other. Co to znamená?', 'Akce se aplikuje u instancí, se kterými je daná instance v kolizi.', 'Akce se aplikuje u všech instancí daného objektu, ze kterého je volána.', 'Akce se aplikuje u všech instancí zvoleného objektu.', 'Akce se neaplikuje, možnost other umožňuje akci dočasně zakázat, např. při ladění hry.', 2),
('U mnoha akcí lze v Applies to zvolit možnost Self. Co to znamená?', 'Akce se aplikuje pouze u té instance, ze kterého je volána.', 'Akce se aplikuje u instancí, se kterými je daná instance v kolizi.', 'Akce se aplikuje u všech instancí zvoleného objektu.', 'Akce se neaplikuje, možnost other umožňuje akci dočasně zakázat, např. při ladění hry.', 2),
('Jaké je plné znění zkratky SMTP:', 'Simple Mail Transfer Protocol', 'Semicolon Mirror Transfer Protocol', 'Spam Mail Transfer Protocol', 'Seriously Mirroring Transfer Protocol', 3),
('CPU je zkratka pro:', 'Central Processing Unit', 'Castrol Pilot Uno', 'Cesar Polius Ulichulus', 'Central Parachuting Unit', 3),
('Plné znění zkratky PHP je:', 'HypertextPreprocesor', 'PreHyproPolygon', 'PolyHydrogenPower', 'HypertextPolygon', 3),
('IT znamená?', 'Informační Technologie', 'Informační Telegrafie', 'Irony of Telescopes', 'Infraport Turbo', 3),
('Jakou fci plní DNS?', 'Překládá doménové jméno na IP adresu serveru', 'Provádí komunikaci mezi hardwarem a softwarem', 'Protokol pro přenos souborů', 'Telekomunikační protokol', 3),
('K čemu slouží FTP?', 'Je to protokol pro přenos souborů', 'Protokol sloužící k telefonické komunikaci', 'Tato zkratka neexistuje', 'Protokol pro přenos kabelové televize', 3),
('HTML', 'Hypertext Markup Language', 'Hypertext MakeUp Language', 'Hyper Tesco Market Land', 'Hydro Tele Mele Lelek', 3),
('Jaké je v překladu znění zkratky WWW?', 'Celosvětová síť', 'www.[islandsoft].cz', 'Wyťukávám Wám Web', 'Svět Warcraftu', 3),
('Plné znění zkratky URL:', 'Uniform Resource Locators', 'Ugly Resources Loader', 'Undefined Registration Location', 'Unknown Resistence Lupin', 3),
('HTTP hraje významnou roli pro:', 'Zobrazování webových stránek v prohlížeči', 'Připojení počítače k elektrické síti', 'Odesílání pošty', 'Aktualizace systémového jádra', 3);

A nakoniec nejaké výsledky:

INSERT INTO VysledekTestu (Datum, Skore, UzivatelID, TestID) VALUES
('2012-4-5', 100, 1, 1),
('2012-3-5', 15, 2, 1),
('2011-7-8', 65, 1, 2),
('2011-8-15', 23, 3, 2),
('2011-2-17', 99, 1, 3),
('2011-4-21', 87, 4, 2),
('2011-12-24', 33, 4, 3);

Všetko máme pripravené, nabudúce začneme s jednoduchými otázky.

V nasledujúcom kvíze, Kvíz - Odpojená ap., SQL otázky, Manag. Štúdio v C#-ADO.NET, si vyskúšame nadobudnuté skúsenosti z predchádzajúcich lekcií.


 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 953x (803 B)
Aplikácia je vrátane zdrojových kódov v jazyku C#

 

Predchádzajúci článok
Kvíz - Databáza v C# - ADO.NET
Všetky články v sekcii
Databázy v C # - ADO.NET
Preskočiť článok
(neodporúčame)
Kvíz - Odpojená ap., SQL otázky, Manag. Štúdio v C#-ADO.NET
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity