- •Základní vlastnosti
- •Vysvětlit rozdíl mezi daty a informacemi
- •Vysvětlit pojmy redundance, konsistence, integrita a persistence dat
- •Vysvětlit úrovně abstrakce: konceptuální, logická a fyzická
- •Vysvětlit, co je účelový a zdrojový přístup při projektování databázového zpracování, co je funkční a co datová analýza
- •Výhody:
- •Vysvětlit, jak se rozdělují uživatelé systémů zpracování dat
- •Vysvětlit, co je e-r diagram
- •Obrázek 5.2-1 e-r diagram typů
- •Vysvětlit, co je výskytový diagram
- •Vysvětlit pojem povinné a nepovinné členství ve vztahu
- •Obrázek 7.2-8 Nepovinné členství determinantu ve vztahu
- •Vysvětlit typy vztahů mezi entitami (1:1, 1:n, n:m)
- •Vysvětlit, jak se dekomponuje vztah n:m Normalizace dat
- •Vysvětlit, co je normalizace, 1., 2. A 3. Normální forma
- •Relační model
- •Vysvětlit pojem primární a kandidátní klíč; sekundární klíč, jedinečný a nejednoznačný (pravidelný) klíč
- •Vysvětlit pojmy kartézský součin, relace, projekce, restrikce, spojení, atribut, tabulka
- •Jazyk sql
- •Vysvětlete rozdíl mezi inner join, left join a right join
- •Víceuživatelský přístup a bezpečnost dat
- •Výpadek napětí
- •Vysvětlete, co je transakční zpracování (begin transaction, rollback, transaction end – commit)
- •Vysvětlete hlavní problémy víceuživatelského zpracování a metody zamezení poškození dat kolizí uživatelů (organizační, programátorské, zamykání, detekce kolise)
- •C) Objektové programování Základní pojmy objektového programování
- •Objektová technologie V Pascalu
- •Vztah typu záznam a objekt
- •Virtuální metody
- •Praktické znalosti z Dephi
- •Vysvětlit vlastnosti komponent: caption, name, font, color, forecolor, backcolor, hint, showhint, visible, enable
- •Vysvětlit události: OnClick, OnDblClick, OnEnter, OnExit, FormActivate, OnClose
- •Vysvětlit metody: close, show, showmodal, showmessage
- •D) Technologie programování Uživatelské jednotky V tp - knihovny
- •6 Hlavních důvodů modularizace:
- •Principy tiskových programů
- •Lineární dynamické datové struktury
- •Nelineární dynamické datové struktury – Sítě a grafy
- •Implementace grafu zřetězeným seznamem vrcholů a hran neLineární dynamické datové struktury – Obecný strom
- •NeLineární dynamické datové struktury – binární vyhledávací strom
- •Tabulky
- •Vstupně-sekvenční tabulka (vložení, rušení, vyhledání, změna)
- •Vstupněsekvenční tabulka
- •Vložení do tabulky
- •Vyhledání V tabulce
- •Implementace rozptýlené tabulky
- •Inicializace tabulky
- •Vložení položky
- •Vyhledání položky
- •Základní datové struktury ve strojírensví - Data
- •Vazby kusovníku
- •Základní datové struktury ve strojírensví – rozpad kusovníku
- •Základní datové struktury ve strojírensví - Výpočty
- •Základní datové struktury ve strojírensví –technologický postup
- •Základní datové struktury ve strojírensví – Zakázka a plánování
- •Výpočet množství, termínů a dávkování
Vysvětlete, co je transakční zpracování (begin transaction, rollback, transaction end – commit)
Základní myšlenkou transakčního zpracování je rozdělit úlohu na malé úseky, které by měly buď proběhnout celé nebo by měla být data ve stavu, jako by zpracování úseku vůbec nebylo zahájeno.
Prakticky to probíhá tak, že při práci s daty se automaticky v dočasných souborech zapamatovává původní obsah měněných záznamů. Pokud vše proběhne dobře, původní obsah se v dočasných souborech smaže. Pokud dojde k přerušení programu, je po restartu automaticky z těchto změn obnoven stav před zahájením zpracování úseku.
V databázích je obvyklé označit zahájení transakce označit vhodným příkazem (např. BEGIN TRANSACTION). Dokončení transakce se oznámí databázovému systému jiným příkazem (téměř standardně COMMIT). Navíc dostává programátor do rukou nástroj, jak transakci programově přerušit a vrátit data do původního stavu (ROLLBACK).
Vysvětlete hlavní problémy víceuživatelského zpracování a metody zamezení poškození dat kolizí uživatelů (organizační, programátorské, zamykání, detekce kolise)
Organizační opatření
Většinou lze zajistit, aby si při víceuživatelském přístupu uživatelé rozdělili kompetence (jeden skladník vydává šrouby a druhý hřebíky). Toto řešení však sníží možnost kolizí, ale nemůže je zcela vyloučit (nemožnost rozdělení, chyba uživatele).
Zamykání záznamů
V okamžiku, kdy je proveden dotaz a očekává se změna dat, tak se všechny záznamy, které vstupují do dotazu zamknou. Další pokusy jiných uživatelů pracovat nad stejnými záznamy se buď odmítnou a těmto uživatelům se zobrazí zpráva, že data jsou uzamčená, nebo další uživatelé musí čekat na odemčení bez zprávy. Až je dokončeno zpracování pro uživatele, který data požadoval jako první, jsou příslušné datové záznamy odemčeny.
Zamykání záznamů může mít dva nepříjemné důsledky:
Uživatel si data zamkne, odejde od terminálu a tím zablokuje práci ostatních.
V horším případě uživatel X uzamkne část dat A později se pokusí o uzamčení části dat B. Uživatel Y nejdříve zamkne část dat B a později se pokusí zamknout část dat A. Ta je již uzamčena uživatelem X. Došlo tzv. zablokování (deadlock, deadly embrace). Moderní databáze umí tento problém řešit.
Obecně by se mělo provádět uzamčení jen na nezbytně dlouhou dobu. Ideální je pouze na provádění změny počítačem. V případě rezervace letenek např. po dobu, kdy zákazník hovoří s prodejcem.
Detekce kolize
V tomto případě se záznamy nezamykají. Každý záznam je interně označen tzv. časovým razítkem (může to být i čítač, kolikrát byl daný záznam změněn). V okamžiku, kdy se má zapisovat do databáze, program se pokusí celou databázi zamknout. Pokud se to nepodaří čeká (uzamčení trvá jen po dobu zápisu dat, typicky zlomky sekundy - není v něm zahrnuta doba, kdy uživatel si prohlíží databázi). Jakmile databázi zamkne, provede se opětné interní čtení a porovnává se, zda se nezměnilo časové razítko. Pokud ne, data se zapíší, jinak se vydá uživateli zpráva, že má kolizi s někým jiným a že musí svůj dialog zopakovat. Protože je velmi málo pravděpodobné, že dva uživatelé pracují nad stejnými záznamy, dochází ke kolizi jen velice zřídka, kolize se nepromítne do dat a mechanismus zabezpečení zaručuje integritu dat.
