IS Veřejná databáze filmů



Podobné dokumenty
Databázové a informační systémy Informační systém prodejny nábytku. Jakub Kamrla, KAM087

Informační systém webhostingu

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA

Informační systém pro nemocnici

Internetová filmová databáze IFDB

IS Autopůjčovna VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA INFORMAČNÍ SYSTÉMY A DATOVÉ SKLADY. (semestrální projekt) ZS

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

INFORMAČNÍ SYSTÉM PRODEJ LÍSTKŮ DO DIVADLA

Semestrální práce z DAS2 a WWW

Systém pro online rozhovory

Akceptační test. Úvod

Analýza Redakční systém blogu (ADA274, BYS037, RAB020, SIV021)

Databáze pro evidenci výrobků

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

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

Elektronická zdravotní karta

Informační systém pro e-learning manuál

Databázové systémy. Doc.Ing.Miloš Koch,CSc.

IS pro firmu vyrábějící potisky triček

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

Semestrální práce 2 znakový strom

Zápisování dat do databáze

Databázové a informační systémy. Dokumentace k projektu. Učební sklad

IS Akademie Klasické Homeopatie

INFORMAČNÍ SYSTÉM AUTOBAZARU S INZERČNÍM SYSTÉMEM A RECENZEMI AUTOMOBILŮ

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

Registr RENIS. Příručka pro uživatele. Institut biostatistiky a analýz. Lékařské a Přírodovědecké fakulty Masarykovy univerzity.

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

PTÁČEK - velkoobchod. eshop. ZÁKAZNICKÝ pracovní postup

Manuál. Omluvenky online

Uživatelská příručka pro respondenty

Microsoft. Word. Hromadná korespondence. Mgr. Jan Veverka Střední odborná škola sociální Evangelická akademie

Uživatelská příručka administrativního rozhraní Vědecké knihovny v Olomouci

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

Dodatek k manuálu service.cbf.cz - organizační pracovník klubu

Evidence požadavků uživatelů bytů a nebytových prostor

Jednoduchý uživatelský manuál k programu Cat s Paradise

Obrázek 1: Struktura programu z hlediska zapojení

Registr IKTA. Příručka pro uživatele. Institut biostatistiky a analýz. Lékařské a Přírodovědecké fakulty Masarykovy univerzity.

Uživatelský manuál: Modul Nové kontakty

Příručka pro editaci kontaktů na eagri

Maturitní témata Školní rok: 2015/2016

Jednoduchý návod k použití programu Vinotéka 2007, v 2.2.1

Athena Uživatelská dokumentace v

Uživatelská příručka

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

Příručka pro editaci kontaktů na eagri

SEMESTRÁLNÍ PRÁCE. z předmětu KIV/DB1

INFORMAČNÍ SYSTÉM PŮJČOVNY JÍZDNÍCH KOL

Manuál pro InspIS HELPDESK

Questionnaire příručka uživatele

Portál Značení tabáku Uživatelská příručka pro registrované uživatele

5.2 Controller zastupce

Základy informatiky. 08 Databázové systémy. Daniela Szturcová

E-NABÍDKA PARTNER.REDA.CZ

UŽIVATELSKÁ PŘÍRUČKA UČITEL

Školící dokumentace administrátorů IS KRIZKOM (úroveň ÚSÚ) role ( administrátor )

Analýza požadavků. 1. Funkční požadavky - popisují chování, funkce a operace uživatelů, které systém musí podporovat. 1.1 Operace uživatelů

Webové stránky fotbalového klubu

Use Case Model - Complete Report Grouped by Item Kind, Full Descriptions

Personální evidence zaměstnanců

Dokumentace pro správu zlínských DUM

Školící dokumentace administrátorů IS KRIZKOM (úroveň KRAJ) (role manager, administrátor )

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

Prohlížení a editace externích předmětů

APS Administrator.ST

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 10.4.

UŽIVATELSKÁ PŘÍRUČKA K HLÁŠENÍ STAVU VČELSTEV

PRO PRÁCI S APLIKACÍ SKV - VÝBĚR KVALITNÍCH VÝSLEDKŮ

REGISTRACE A PŘIHLÁŠENÍ UŽIVATELE 1. krok

Jednoduchý návod k použití programu Vinotéka 2006, v 2.0

SQL v14. 4D Developer konference. 4D Developer conference 2015 Prague, CZ Celebrating 30 years

Teorie zpracování dat

1. Webový server, instalace PHP a MySQL 13

Databázové a informační systémy Jana Šarmanová

Nápověda aplikace Patron-Pro

Grantové projekty. V současné době jsou zpracovány tyto části:

Postupy práce se šablonami IS MPP

UŽIVATELSKÁ PŘÍRUČKA K HLÁŠENÍ STAVU VČELSTEV

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

1 Úvod. 2 Registrace a přihlášení. Registrace). Zobrazí se stránka, kde budete mít na výběr ze dvou možností. Můžete vytvořit nové či.

26 Evidence pošty. Popis modulu. Záložka Evidence pošty

Stručný průvodce aplikací Sběr dat pro CEP a CEZ

Západočeská univerzita v Plzni Katedra informatiky a výpočetní techniky. 9. června krovacek@students.zcu.cz

7. Integrita a bezpečnost dat v DBS

7. Integrita a bezpečnost dat v DBS

Administrace Oracle. Práva a role, audit

Uživatelská příručka 6.A6. (obr.1.)

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

Roční periodická zpráva projektu

Manuál k e-learningovému vzdělávacímu modulu 1 MODUL HIGH-TECH POTRAVINY. Popularizace zdraví Po.Zdrav (CZ.1.07/3.1.00/ )

Outdoor Expert. Uživatelský manuál. Verze aplikace: OutdoorExpert_Manual.docx 1 /

Opravy a prodej. Uživatelská příručka. Milan Hradecký.

Nápověda pro Service Desk

Databázovéa informačnísystémy NÁVRH IMPLEMENTACE 1

Elektronický portál VAS UŽIVATELSKÁ PŘÍRUČKA

APS Web Panel. Rozšiřující webový modul pro APS Administrator. Webové rozhraní pro vybrané funkce programového balíku APS Administrator

Úvod do databázových systémů. Ing. Jan Šudřich

Transkript:

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA INFORMAČNÍ SYSTÉMY A DATOVÉ SKLADY IS Veřejná databáze filmů (semestrální projekt) ZS 2009-2010 Analýza Implementace Číslo skupiny: T6 T16 Členové skupiny: Příjmení, jméno, login 1. Fajfr, Stanislav, FAJ069 1. Bašniar, Václav, BAS064 2. Horák, Ondřej, HOR638 2. Šlahař, Jan, SLA395 3. Jeřábek, Tomáš, JER042 3. Akike, Daniel, AKI002 4. Dočkal, Martin, DOC068 4. Hromek, Martin, HRO088 5. Červeňák, Darek, CER439

1 Zadání (skupina autor, datum) (JEDNÁ SE O ZADÁNÍ OD ZADAVATELE!!! FORMA JEDNODUCHÉHO PSANÉHO TEXTU) Popis zadání úkolu. 1.1 Funkční požadavky (JEDNÁ SE O PŘEPIS ZADÁNÍ DO PŘEHLEDNĚJŠÍHO TVARU!!!) PROČ nový IS Úkolem je popsat okolnosti rozhodnutí o budování IS: popsat současný stav evidence, stručně vysvětlit, proč tento stav nevyhovuje, charakterizovat nové potřeby a představy o tom, jak má nový systém fungovat. K ČEMU má IS sloužit Co je hlavní prioritou pro funkci systému: vnitřní evidence, vnější reprezentace informací apod. KDO s IS bude pracovat Primární funkce systému budou sloužit hlavním uživatelům systému s nejčastějším přístupem. Případné další funkce mohou sloužit občasným uživatelům nebo i náhodným dotazům na informace z databáze. VSTUPY do systému Vstupy znamenají informace, které mají být v IS evidované. Je to seznam entit a jejich atributů. Jsou základem pro datovou analýzu, proto mají obsahovat skutečně podrobný výčet. Protože analytik nemusí být odborníkem v oblasti, pro niž je IS budován, jsou vhodné i komentáře vysvětlující odborné pojmy nebo zdůvodnění speciálních potřeb. VÝSTUPY ze systému Výstupy znamenají všechny výstupní sestavy, které budou uživatelé potřebovat. Stačí název sestav a seznam informací na nich, lepší jsou načrtnuté ukázky nebo existující sestavy. Nefunkční požadavky Další požadavky na IS.

2 Analýza (skupina autor, datum) 2.1 Analýza datová 2.1.1 Lineární zápis typů entit a typů vazeb 2.1.2 ER diagram 2.1.3 Datový slovník 2.2 Analýza funkční (skupina autor, datum) 2.2.1 DF diagramy 2.2.2 Minispecifikace 2.3 Analýza časová

3 Analýza datového skladu (T16 AKI002, BAS064, CER439, HRO088, SLA395, datum) 3.1 Úvod potřebujeme znát nejvyšší, nejnižší a průměrné hodnocení filmu v kategorii či podle žánru a státu potřebujeme znát nejvyšší, nejnižší a průměrnou délku filmu v kategorii či podle žánru a státu potřebujeme znát počet filmů v kategorii či podle žánru a státu

3.2 Rozdělení na dimenze a fakty Tabulka Filmy Filmy Filmy Filmy Filmy Filmy Filmy Staty Staty KategorieFi lmu KategorieFi lmu Zanry Zanry Por. Atribut popis + IO Potřebujeme do DS? D/F/A 1 objektid Automaticky generováno N x 2 puvodninazev Původní název filmu N x 3 ceskynazev Český název filmu N x 4 rokvzniku Datum vzniku filmu N x 5 kategorieid Cizí klíč A, klíč D 6 delkafilmu Délka filmu A, průměr délky... F 7 celkovehodnoceni Celkové hodnocení filmu A, hodnocení filmu F 1 statid Automaticky generováno A, klíč D 2 nazev Název státu A, popisný atribut A 1 kategorieid Automaticky generováno A, klíč D 2 nazev Název kategorie filmu A, popisný atribut A 1 zanrid Automaticky generováno A, klíč D 2 nazev Název žánru filmu A, popisný atribut A 3.2.1 Dimenze KategorieFilmu (kategorieid, nazev) Staty (statid, nazev) Zanry (zanrid, typ)

3.2.2 Fakty Název Zkratka Z tabulky Poznámka Hodnocení filmů hod_fil Filmy Délka filmů del_fil Filmy Počet filmů poc_fil Filmy 3.3 Aditivita atributů a omezení na dotazy Všechny atributy jsou semiaditivní. hod_fil del_fil poc_fil kategorie AVG, MIN, MAX AVG, MIN, MAX SUM zanry AVG, MIN, MAX AVG, MIN, MAX SUM staty AVG, MIN, MAX AVG, MIN, MAX SUM staty, zanry AVG, MIN, MAX AVG, MIN, MAX SUM staty, kategorie AVG, MIN, MAX AVG, MIN, MAX SUM kategorie, zanry AVG, MIN, MAX AVG, MIN, MAX SUM vše AVG, MIN, MAX AVG, MIN, MAX SUM

3.4 Graf DS 4 Návrh implementace 4.1 Změny provedené v analýze (T16 AKI002, BAS064, CER439, HRO088, SLA395, 11. prosince 2009) Fotky přidán atribut hlavni typu boolean, definuje jestli se jedná o hlavní fotografii reprezentující osobnost/film Přidána tabulka OBLIBENE, umožňuje uživateli označit jeho oblíbené filmy s atributy objektid a uzivatel ID, oba atributy jsou cizími klíči i části primárního klíče 4.2 Popis implementačního prostředí Implementace aplikace bude provedena v IDE MS Visual Studio 2008 a jazyce C#. Implementace databáze bude provedena pomocí SQL Server Manager Studia. 4.2.1 Požadavky na hardware a software Klient: Vzhledem k tomu, že se jedná o on-line aplikaci, jediný požadavek na klienta je mít webový browser podporující JavaScript. MS SQL Server 2008 Enterprise (32-bit): Microsoft Windows Installer 4.5 a vyšší Procesor: Pentium III kompatibilní a vyšší, 2.0 GHz a vyšší OS: Windows server 2003 a vyšší

Paměť: 2048 MB IIS 7.0: Procesor: 1,4 GHz OS: Windows Server 2008 Paměť: 512 MB 4.3 Odvozené atributy Jedinými odvozenými atributy je celkovehodnoceni typu int v tabulkách Osobnost a Film. Tento atribut vypočítáván z údajů v tabulce Hodnoceni pomocí triggerů CelkoveHodnoceniFilmuIU a CelkoveHodnoceniFilmuDel, více v Triggery a procedury. 4.4 Indexová analýza Uzivatele uzivatelid udržovaný Ano inkrement, automaticky setříděno, primární klíč Prameni udržovaný Ano hledání podle příjmení, výpisy datumregistrace dočasný Ano setřídění podle datumu registrace uživatele Role roleid udržovaný Ano inkrement, automaticky setříděno, primární klíč UzivateleVRole uzivatelid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč roleid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč Filmy objektid udržovaný Ano inkrement, automaticky setříděno, primární klíč

puvodninazev udržovaný Ano hledání podle původního názvu filmu, výpisy ceskynazev udržovaný Ano hledání podle českého názvu filmu, výpisy kategorieid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč celkovehodnoceni dočasný Ano setřídění podle celkového hodnocení filmu Staty statid udržovaný Ano inkrement, automaticky setříděno, primární klíč FilmyVeState Název typ index popis objektid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč statid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč KategorieFilmu Název typ index popis kategorieid udržovaný Ano inkrement, automaticky setříděno, primární klíč Zanry zanrid udržovaný Ano inkrement, automaticky setříděno, primární klíč ZanryFilmu objektid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč zanrid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč Zmeny

zmenaid udržovaný Ano inkrement, automaticky setříděno, primární klíč objektid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč typid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč uzivatelid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč Osobnosti objektid udržovaný Ano inkrement, automaticky setříděno, primární klíč prijmeni udržovaný Ano hledání podle příjmení osobnosti, výpisy celkovehodnoceni dočasný Ano setřídění podle celkového hodnocení osobnosti SeznamPostav objektid udržovaný Ano primární klíč, realizuje spojení s jinou tabulkou, cizí klíč osobnostid udržovaný Ano primární klíč, realizuje spojení s jinou tabulkou, cizí klíč SeznamOsob objektid udržovaný Ano primární klíč, realizuje spojení s jinou tabulkou, cizí klíč osobnostid udržovaný Ano primární klíč, realizuje spojení s jinou tabulkou, cizí klíč funkceid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč Fotogalerie fotoid udržovaný Ano inkrement, automaticky setříděno, primární klíč uzivatelid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč Fotky

objektid udržovaný Ano primární klíč, realizuje spojení s jinou tabulkou, cizí klíč fotoid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč typid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč Hodnoceni objektid udržovaný Ano primární klíč, realizuje spojení s jinou tabulkou, cizí klíč uzivatelid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč typid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč Zajimavosti zajimavostid udržovaný Ano inkrement, automaticky setříděno, primární klíč objektid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč uzivatelid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč typid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč Trailery trailerid udržovaný Ano inkrement, automaticky setříděno, primární klíč objektid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč Filmoteky uzivatelid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč objektid udržovaný Ano primární klíč, realizuje spojení s jinou tabulkou, cizí klíč mediumid udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč

Media mediumid udržovaný Ano inkrement, automaticky setříděno, primární klíč Zpravy zpravaid udržovaný Ano inkrement, automaticky setříděno, primární klíč odesilatel udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč-uzivatel prijemce udržovaný Ano realizuje spojení s jinou tabulkou, cizí klíč-uzivatel Funkce funkceid udržovaný Ano inkrement, automaticky setříděno, primární klíč TypObjektu typid udržovaný Ano inkrement, automaticky setříděno, primární klíč 4.5 Optimalizace přístupů k datům, analýza časové a prostorové složitosti algoritmů Funkce 2.3.1 - Vložení nového traileru 1. Zobraz seznam filmů (tabulka Filmy) LINQ - var listfilmy = from f in Filmy select f; sql SELECT * from Filmy; 7. Jestliže vstupy jako potenciální budoucí atributy tabulky Trailer odpovídají doménám z datového slovníku, popřípadně dalším integritním omezením, pak ulož data PFilmID, titulek, umisteni jako nový záznam do tabulky Trailer a vypiš informativní hlášku "Data se podařila úspěšně vložit. Jinak vypiš informativní hlášku "Data nejsou ve správném tvaru", popřípadě vypiš bližší upřesnění a pokračuj od kroku 4.

LINQ - var trailer = new Trailer{objektID = PfilmID, titulek = titulek, umisteni = umisteni}; Trailers.InsertOnSubmit(trailer); SubmitChanges(); sql INSERT into Trailer(objektID, titulek, umisteni) values (PFilmID, titulek, umisteni); Funkce 2.3.2 - Úprava traileru 1. Zobraz seznam trailerů (tabulka Trailer) LINQ - var listtrailer = from t in Trailer select t; sql SELECT * from Trailer; 7. Jestliže proběhla validace úspěšně, pak v tabulce Trailer změň atributy uživatelem vyplněnými vstupy (titulek, resp. umisteni), kde TraileryID = PTraileryID a vypiš informativní hlášení "Data se podařila úspěšně změnit". Jinak vypiš informativní hlášení "Data nejsou ve správném formátu" a pokračuj od kroku 4. LINQ - var trailer = (from t in Trailer where t.traileryid = PTraileryID select t).first(); trailer.objektid = PfilmID; trailer.titulek = titulek; trailer.umisteni = umisteni; sql UPDATE Trailer set objektid = PFilmID, titulek = titulek, umisteni = umisteni WHERE TraileryID = PTraileryID; Funkce 2.3.3 - Smazání traileru 4. Vymaž z tabulky Trailer záznam, kde TraileryID = PTraileryID. LINQ - var trailer = (from t in Trailer where t.traileryid = PTraileryID select t).first(); Trailers.DeleteOnSubmit(trailer); SubmitChanges(); sql DELETE from Trailer WHERE TraileryID = PTraileryID; Funkce 2.3.4 - Přiřazení traileru k filmu 1. Zobraz seznam trailerů (tabulka Trailer). Navíc zobraz u každého informace o filmu, k němuž je trailer aktuálně přidružen (tabulka Filmy). LINQ - var listfilmytrailer = from f in Filmy join t in Trailer on f.objektid equals t.objektid select new {titulek = t.titulek, umisteni = t.umisteni, puvodninazev = f.puvodninazev, ceskynazev = f.ceskynazev}; sql SELECT * FROM Filmy AS f INNER JOIN Trailer AS t ON f.objektid = t.objektid;

4. Zobraz formulář Přiřazení traileru k filmu s výběrovým vstupem pro uživatele (seznam dostupných filmů - tabulka Film). LINQ - var listfilmy = from f in Filmy select f; sql SELECT * from Filmy; 7. Změň v tabulce Trailer hodnotu ObjektID = PFilmID, kde TraileryID = PTraileryID. LINQ - var trailer = (from t in Trailer where t.traileryid = PTraileryID select t).first(); trailer.objektid = PfilmID; sql UPDATE Trailer set objektid = PFilmID WHERE TraileryID = PTraileryID; Funkce 2.1.1.4.4 - Přiřazení žánru k filmu 4. Zobraz formulář "Přiřazení žánru k filmu" pro přiřazení existujícího žánru jako dalšího žánru k filmu s požadovanými vstupy pro uživatele (seznam existujících žánrů - tabulka Zanry). LINQ - var listzanry = from z in Zanry select z; sql SELECT * from Zanry; 7. Vlož do tabulky (ZanryFilmu) nový záznam s hodnotami vybranými uživatelem (objetkid = PFilmID, zanrid = PZanrID). LINQ - var zanryfilmu = new Zanry{objektID = PFilmID, zanrid = PZanrID}; Zanrys.InsertOnSubmit(zanryfilmu); SubmitChanges(); sql INSERT into ZanryFilmu(objektID,zanrID) values (PFilmID, PZanrID); Funkce 2.1.1.4.5 - Přiřazení kategorie k filmu 7. Aktualizuj v tabulce Film hodnoty atributů a přišlusných hodnot (KategorieID = PKategorieID), kde objektid = PFilmID. LINQ - var film = (from f in Film where f.objektid = PfilmID select f).first(); film.objektid = PfilmID; sql UPDATE Film set KategorieID = PkategorieID WHERE objektid = PFilmID; Funkce 3.2 - Úprava zajímavosti 1. Vypiš seznam zajímavostí, které patří přihlášenému uživateli. LINQ - var listzajimavostiuzivatel = from z in Zajimavosti where uzivatelid = p.uzivatelid select z;

sql SELECT * FROM Zajimavosti WHERE uzivatelid = p.uzivatelid; 14. Změň údaje v tabulce Zajimavosti, přepiš obsah proměnnou text, kde klíč je id_zajimavost. LINQ - var zajimavost = (from z in Zajimavost where z.zajimavostid = p.zajimavostid select z).first(); zajimavost.obsah = text; sql UPDATE Zajimavosti set obsah = text WHERE zajimavostid = p.zajimavostid; 15. Vlož nový záznam do tabulky Zmeny(id_zmena, id_objekt, id_typ, id_uzivatel, datum, druh). LINQ - var zmeny = new Zmeny{objektID = id_objekt, typid = id_typ, uzivatelid = id_uzivatel, datumzmeny = datum, druhzmeny = druh}; Zmenys.InsertOnSubmit(zmeny); SubmitChanges(); sql INSERT into Zmeny(objektID, typid, uzivatelid, datumzmeny, druhzmeny) values (id_objekt, id_typ, id_uzivatel, datum, druh); Funkce 1.1.3 Smazat uživatele 2. JESTLIŽE existuje ID uživatele ke smazání 2.1. PAK načti uživatele s daným ID z tabulky Uzivatele a ulož do p.uzivatel. 2.2. JINAK zobraz seznam všech uživatelů z tabulky Uzivatele. 2.2.1. Uživatel administrátor vybere uživatele do p.uzivatel. LINQ - var listuzivatele = from u in Uzivatele where uzivatelid = p.uzivatelid select u; sql SELECT * FROM Uzivatele WHERE uzivatelid = p.uzivatelid; 5. Smaž hodnocení v tabulce Hodnoceni, kde uzivatelid = p.uzivatelid. LINQ - var hodnoceni = (from h in Hodnoceni where h.uzivatelid = p.uzivatelid select h).first(); Hodnocenis.DeleteOnSubmit(hodnoceni); SubmitChanges(); sql DELETE from Hodnoceni WHERE uzivatelid = p.uzivatelid; 6. Smaž soukromé zprávy v tabulce Zpravy, kde odesilatel nebo prijemce = p.uzivatelid. LINQ - var zprava = (from z in Zprava where z.odesilatelid = p.uzivatelid select h).first(); Zpravas.DeleteOnSubmit(zprava); SubmitChanges(); sql DELETE from Hodnoceni WHERE uzivatelid = p.uzivatelid;

Funkce 1.1.4 Změnit roli uživatele 2. JESTLIŽE existuje ID uživatele k editaci. 2.1. PAK načti uživatele s daným ID z tabulky Uzivatele a ulož do p.uzivatel. 2.2. JINAK zobraz seznam všech uživatelů z tabulky Uzivatele. 2.2.1. Uživatel administrátor vybere uživatele do p.uzivatel. LINQ - var listuzivatele = from u in Uzivatele where uzivatelid = p.uzivatelid select u; sql SELECT * FROM Uzivatele WHERE uzivatelid = p.uzivatelid; 3. Zobraz seznam všech rolí z tabulky Role. LINQ - var listrole = from r in Role select r; sql SELECT * FROM Role; 7. V tabulce UzivateleVRoli, kde uzivatelid = p.uzivatelid, nastav roleid na p.roleid. LINQ - var uzivatel = (from u in UzivateleVRoli where u.uzivatelid = p.uzivatelid select u).first(); uzivatel.roleid = p.roleid; sql UPDATE UzivateleVRoli set roleid = p.roleid WHERE uzivatelid = p.uzivatelid; Funkce 1.3.1 Odeslat zprávu 9. Vlož novou zprávu do tabulky Zprava s hodnotami predmet = p.predmet, odesilatel = p.odesilatel, prijemce = p.prijemce, datumodeslani = p.datum, precteno = false. LINQ var zprava = new Zprava{predmet = p.predmet, obsah = p.obsah, odesilatel = p.odesilatel, prijemce = p.prijemce, datumodeslani = p.datum, precteno = false}; Zpravas.InsertOnSubmit(zprava); SubmitChanges(); sql INSERT into Zprava(predmet, obsah, odesilatel, prijemce, datumodeslani, precteno) values (p.predmet, p.obsah, p.odesilatel, p.prijemce, p.datum, false); Funkce 2.1.1.4.3 - Přiřazení státu k filmu 4. Zobraz formulář "Přiřazení státu k filmu" pro přiřazení existujícího státu jako dalšího státu k filmu s požadovanými vstupy pro uživatele (seznam existujících států - tabulka Staty). LINQ - var liststaty = from s in Staty select s; sql SELECT * FROM Staty; 7. Vlož do tabulky (FilmyVeState) nový záznam s hodnotami vybranými uživatelem (FilmID = PFilmID, StatID = PStatID).

LINQ var filmystat = new FilmyVeState{objektID = PFilmID, StatID = PStatID}; FilmyVeStates.InsertOnSubmit(filmyStat); SubmitChanges(); sql INSERT into FilmyVeState(objektID, statid) values (PfilmID, StatID); Funkce 2.1.1.1 - Vložení nového filmu 6. Jestliže hodnoty vyplněných vstupů (PuvodniNazev, PCeskyNazev, PRokVzniku, PDelkaFilmu), resp. jejich domény, které odpovídají potencialním atributům (puvodninazev,ceskynazev, rokvzniku, delkafilmu) nového záznamu v tabulce Filmy, jsou v pořádku, pak vlož do tabulky Filmy nový záznam s hodnotami atributů puvodninazev = P PuvodniNazev, ceskynazev = PCeskyNazev, rokvzniku =PRokVzniku, delkafilmu=pdelkafilmu, kategorieid = PKategorieID) a vypiš informativní hlášení "Záznam se podařilo úspěšně vložit". Jinak vypiš chybové informativní hlášení "Data jsou ve špatném formátu" a pokračuj od kroku 1. LINQ var film = new Filmy{puvodniNazev = PPuvodniNazev, ceskynazev = PCeskyNazev, rokvzniku =PRokVzniku, delkafilmu = PDelkaFilmu, kategorieid = PKategorieID}; Filmy.InsertOnSubmit(film); SubmitChanges(); sql INSERT into FilmyVeState(puvodniNazev, ceskynazev, rokvzniku, delkafilmu, kategorieid) values (PPuvodniNazev, PceskyNazev, ProkVzniku, PdelkaFilmu, PKategorieID); Funkce 2.1.1.2 - Úprava existujícího filmu 8. Jestliže proběhla validace úspěšně, pak v tabulce Filmy změň atributy uživatelem vyplněnými vstupy (puvodninazev = PPuvodniNazev, ceskynazev = PCeskyNazev, rokvzniku =PRokVzniku, delkafilmu=pdelkafilmu, kategorieid = PKategorieID), kde FilmID = PFilmID a vypiš informativní hlášení "Data se podařila úspěšně změnit". Jinak vypiš informativní hlášení "Data nejsou ve správném formátu" a pokračuj od kroku 4. LINQ - var film = (from f in Filmy where t.filmid = PFilmID select t).first(); film.puvodninazev = PPuvodniNazev; film.ceskynazev = PceskyNazev; film.rokvzniku = PRokVzniku; film.delkafilmu = PDelkaFilmu; film.kategorieid = PKategorieID; sql UPDATE Trailer set puvodninazev = PPuvodniNazev, ceskynazev = PCeskyNazev, rokvzniku = ProkVzniku, delkafilmu = PDelkaFilmu, kategorieid = PKategorieID WHERE FilmID = PFilmID; 4.6 Transakční analýza Funkce 2.3.1 - Vložení nového traileru

LS(Film) 1. Zobraz seznam filmů (tabulka Film) UN(Film) 2. Uživatel - publicista vybere ze seznamu požadovaný objekt (film), k němuž chce aktuálně přidávaný trailer přidružit a stiskne odeslání. 3. Ulož hodnotu atributu FilmId vybraného objektu do proměnné PFilmID 4. Zobraz formulář Nový trailer se vstupy pro uživatele (titulek, umisteni) 5. Uživatel - publicista vyplní formulář a odešle do systému. 6. Validuj datové typy uživatelem odeslaných vstupů. BEGIN Transaction LX(Trailer) 7. Jestliže vstupy jako potenciální budoucí atributy tabulky Trailer odpovídají doménám z datového slovníku, popřípadně dalším integritním omezením, pak ulož data PFilmID, titulek, umisteni jako nový záznam do tabulky Trailer a vypiš informativní hlášku "Data se podařila úspěšně vložit. Jinak vypiš informativní hlášku "Data nejsou ve správném tvaru", popřípadě vypiš bližší upřesnění a pokračuj od kroku 4. UN(Trailer) END Transaction Funkce 2.3.2 - Úprava traileru LS(Trailer) 1. Zobraz seznam trailerů (tabulka Trailer) UN(Trailer) 2. Uživatel - publicista vybere ze seznamu požadovaný objekt (trailer), jehož data chce změnit a stiskne odeslání. 3. Ulož hodnotu TrailerID vybranéh objektu do proměnné PTrailerID. 4. Zobraz formulář "Změna traileru" se vstupy pro uživatele (titulek, umisteni). 5. Uživatel - publicista může vyplnit jeden nebo více těchto vstupů za účelem jejich změny a potvrdí odesláním na server. 6. Jestliže je vyplněn alespoň jeden vstup, pak validuj (jen) vyplněné vstupy podle domén z datového slovníku tabulky Trailer a vstupům odpovídajícím atributům (titulek, umisteni), jinak vypiš informativní hlášení "Nebyly vyplněny údaje pro změny" a pokračuj od kroku 4. BEGIN Transaction LX(Trailer) 7. Jestliže proběhla validace úspěšně, pak v tabulce Trailer změň atributy uživatelem vyplněnými vstupy (titulek, resp. umisteni), kde TrailerID = PTrailerID a vypiš informativní hlášení "Data se podařila úspěšně změnit". Jinak vypiš informativní hlášení "Data nejsou ve správném formátu" a pokračuj od kroku 4. UN(Trailer) END Transaction Funkce 2.3.3 - Smazání traileru LS(Trailer) 1. Zobraz seznam trailerů (tabulka Trailer) UN(Trailer)

2. Uživatel - publicista vybere ze seznamu požadovaný objekt (trailer), jenž chce z databáze odstranit a stiskne odeslání. 3. Ulož hodnotu TrailerID vybranéh objektu do proměnné PTrailerID. BEGIN Transaction LX(Trailer) 4. Vymaž z tabulky Trailer záznam, kde TrailerID = PTrailerID. UN(Trailer) END Transaction 5. Jestliže se podařilo záznam odstranit, pak vypiš informativní hlášení "Záznam se podařilo z databáze odstranit". Jinak vypiš informativní hlášení "Záznam se nepodařilo z databáze odstranit, kontaktujte prosím administrátora". Funkce 2.3.4 - Přiřazení traileru k filmu LS(Trailer) LS(Film) 1. Zobraz seznam trailerů (tabulka Trailer). Navíc zobraz u každého informace o filmu, k němuž je trailer aktuálně přidružen (tabulka Film) UN(Film) UN(Trailer) 2. Uživatel - publicista vybere ze seznamu požadovaný objekt (trailer), jenž chce přeřadit k jinému filmu a stiskne odeslání. 3. Ulož hodnotu atributu TrailerID vybraného traileru do proměnné PTrailerID. LS(Film) 4. Zobraz formulář Přiřazení traileru k filmu s výběrovým vstupem pro uživatele (seznam dostupných filmů - tabulka Film). UN(Film) 5. Jestliže počet filmů v databázi je větší nebo roven 1, pak uživatel - publicista vybere jednu z N položek jako objekt (film), ke kterému chce trailer přeřadit a stiskne odeslání. Jinak vypiš informativní hlášení "V současnosti nejsou zatím dostupné filmy, ke kterým by bylo možno trailer přiřadit, zkuste to prosím později". 6. Ulož hodnotu atributu FilmID zvoleného filmu ze seznamu uživatelem do proměnné PFilmID. BEGIN Transaction LX(Trailer) 7. Změň v tabulce Trailer hodnotu ObjektID = PFilmID, kde TrailerID = PTrailerID. UN(Trailer) END Transaction 8. Jestliže se podařilo záznam změnit, pak vypiš informativní hlášení "Záznam se podařilo úspěšně změnit". Jinak vypiš informativní hlášení "Záznam se nepodařilo změnit, kontaktujte prosím administrátora". Funkce 2.1.1.4.4 - Přiřazení žánru k filmu LS (Film)

1. Zobraz seznam existujících filmů (tabulka Film) UN (Film) 2. Uživatel - publicista vybere požadovaný objekt (film), ke kterému chce přiřadit další žánr a odešle stisknutím tlačítka (odeslat) na server. 3. Ulož hodnotu atributu FilmID uživatelem vybraného a odeslaného objektu (filmu) do proměnné PFilmID. LS (Zanr) 4. Zobraz formulář "Přiřazení žánru k filmu" pro přiřazení existujícího žánru jako dalšího žánru k filmu s požadovanými vstupy pro uživatele (seznam existujících žánrů - tabulka Zanr). UN (Zanr) 5. Uživatel - publicista vybere ze seznamu maximálně jeden objekt (žánr) a odešle stisknutím tlačítka (odeslat) na server. 6. jestliže uživatel nevybral žádný objekt, pak vypiš informativní chybové hlášení "Pro přiřazení objektu (žánru) k vybranému objektu (filmu) nebyl vybrán žádný záznam." a pokračuj od kroku 4. Jinak ulož hodnotu vybraného záznamu objektu (z tabulky Zanr) atributu ZanrID do proměnné PZanrID. LX (ZanrFilm) 7. Vlož do tabulky (ZanrFilm) nový záznam s hodnotami vybranými uživatelem (FilmID = PFilmID, ZanrID = ZanrID). UN (ZanrFilm) 8. Jestliže se podařilo záznam vložit do databáze, vypiš informativní hlášení "Záznam se podařilo úspěšně vložit". Jinak vypiš chybové hlášení "Záznam se nepodařilo vložit, kontaktujte prosím administrátora.". Funkce 2.1.1.4.5 - Přiřazení kategorie k filmu LS (Film) 1. Zobraz seznam existujících filmů (tabulka Film) UN (Film) 2. Uživatel - publicista vybere požadovaný objekt (film), ke kterému chce přiřadit kategorii a odešle stisknutím tlačítka (odeslat) na server. 3. Ulož hodnotu atributu FilmID uživatelem vybraného a odeslaného objektu (filmu) do proměnné PFilmID. 4. Zobraz formulář "Přiřazení kategorie k filmu" pro přiřazení existující kategorie jako další kategorie k filmu s požadovanými vstupy pro uživatele (seznam existujících kategorií - tabulka KategorieFilm). 5. Uživatel - publicista vybere ze seznamu právě jeden objekt (kategorii) a odešle stisknutím tlačítka (odeslat) na server. 6. jestliže uživatel nevybral žádný objekt, pak vypiš informativní chybové hlášení "Pro přiřazení objektu (kategorie) k vybranému objektu (filmu) nebyl vybrán žádný záznam." a pokračuj od kroku 4. Jinak ulož hodnotu vybraného záznamu objektu (z tabulky KategorieFilm) atributu KategorieID do proměnné PKategorieID. LX (Film záznam s FilmID) 7. Aktualizuj v tabulce Film hodnoty atributů a přišlusných hodnot (KategorieID = PKategorieID), kde FilmID = PFilmID. UN (Film záznam s FilmID) 8. Jestliže se podařilo záznam v databázi změnit,pak vypiš informativní hlášení "Záznam se podařilo úspěšně změnit". Jinak vypiš chybové hlášení "Záznam se nepodařilo změnit, kontaktujte prosím administrátora.". Funkce 3.1 - Nová zajímavost

LS (Film) 1. Zobraz film. UN (Film) 2. Publicista zvolí: Nová zajímavost. 3. Zobraz formulář pro novou zajímavost. 4. Uživatel vyplní text zajímavosti. 5. Ulož vyplněný text do proměnné obsah. 6. Zkontroluj, zda je délka řetězce obsah delší než 0 znaků. 7. Pokud je délka 0, vypiš: Text zajímavosti musí být delší než 0 znaků, jinak pokračuj na 8. 8. Vytvoř proměnnou datum, ulož do ní aktuální datum a čas. 9. Vytvoř proměnnou id_uzivatel, ulož do ní uzivatelid aktuálně přihlášeného uživatele. 10. Vytvoř proměnnou id_film, ulož do ní objektid vybraného filmu. LS (TypyObjektu) 11. Vyhledej v tabulce TypyObjektu objektid pro filmy a ulož do nové proměnné id_typ. UN (TypyObjektu) 12. Vytvoř proměnnou id_zajimavost (poslední záznam v tabulce Zajimavost + 1). LX (Zajimavosti) 13. Zapiš do tabulky Zajimavosti (id_zajimavost, id_film, id_uzivatel, id_typ, obsah, datum). UN (Zajimavosti) 14. Vypiš Zajímavost byla úspěšně vložena. Funkce 3.2 - Úprava zajímavosti LS (Zajimavosti) 1. Vypiš seznam zajímavostí, které patří přihlášenému uživateli. UN (Zajimavosti) 2. Publicista vybere zajímavost. 3. Ulož zajímavost do proměnné Zajimavost. 4. Ulož zajimavostid do proměnné id_zajimavost z Zajimavost. 5. Ulož typid do proměnné id_typ z Zajimavost. 6. Ulož uzivatelid aktuálně přihlášeného uživatele id_uzivatel. 7. Ulož objektid do id_objekt z Zajimavost. 8. Zobraz formulář pro úpravu zajímavosti. 9. Vyplň pole text hodnotou obsah. 10. Uživatel upraví zajímavost a potvrdí změnu. 11. Ulož hodnotu pole text do proměnné text. 12. Vytvoř proměnnou datum, ulož do ní aktuální datum a čas. 13. Do proměnné druh ulož EditaceZajimavosti. begin transaction LX (Zajimavosti záznam s id_zajimavosti) 14. Změň údaje v tabulce Zajimavosti, přepiš obsah proměnnou text, kde klíč je id_zajimavost. LX (Zmeny) UN (Zajimavosti záznam s id_zajimavosti)

15. Vlož nový záznam do tabulky Zmeny(id_zmena, id_objekt, id_typ, id_uzivatel, datum, druh). UN (Zmeny) end transaction 16. Vypiš Zajímavost byla úspěšně upravena. Funkce 1.1.3 Smazat uživatele 1. Zobraz formulář pro smazání uživatele. LS(Uzivatele) 2. JESTLIŽE existuje ID uživatele ke smazání 2.1. PAK načti uživatele s daným ID z tabulky Uzivatele a ulož do p.uzivatel. 2.2. JINAK zobraz seznam všech uživatelů z tabulky Uzivatele. 2.2.1. Uživatel administrátor vybere uživatele do p.uzivatel. UN(Uzivatele) 3. Zobraz hlášení Opravdu chcete smazat uživatele p.uzivatel? 4. POKUD uživatel zvolí ne, PAK krok 8 s hlášením Operace byla přerušena uživatelem.. BEGIN transaction LX(Hodnoceni) 5. Smaž hodnocení v tabulce Hodnoceni, kde uzivatelid = p.uzivatel.uzivatelid. UN(Hodnoceni) LX(Zpravy) 6. Smaž soukromé zprávy v tabulce Zpravy, kde odesilatel nebo prijemce = p.uzivatel.uzivatelid. UN(Zpravy) LX(Filmoteky) 7. Smaž filmotéku v tabulce Filmoteky, kde uzivatelid = p.uzivatel.uzivatelid. UN(Filmoteky) 8. JESTLIŽE je uživatel p.uzivatel publicista nebo administrátor, LX(Zmeny) 8.1. PAK Smaž změny v tabulce Zmeny, kde uzivatelid = p.uzivatel.uzivatelid. UN(Zmeny) LX(Zajimavosti) 8.1.1. Smaž zajímavosti v tabulce Zajimavosti, kde uzivatelid = p.uzivatel.uzivatelid. UN(Zajimavosti) LS(Fotogalerie) 8.1.2. PRO KAŽDOU fotografii p.foto v tabulce Fotogalerie, kde uzivatelid = p.uzivatel.uzivatelid DĚLEJ: LX(Fotky) 8.1.2.1. Smaž záznam v tabulce Fotky, kde fotoid = p.foto.fotoid. UN(Fotky) UN(Fotogalerie) LX(Fotogalerie)

8.1.3. Smaž fotografie v tabulce Fotogalerie, kde uzivatelid = p.uzivatel.uzivatelid. UN(Fotogalerie) END transaction 9. Zobraz informaci o stavu transakce. Funkce 1.1.4 Změnit roli uživatele 1. Zobraz formulář pro změnu role uživatele. LS(Uzivatele) 2. JESTLIŽE existuje ID uživatele k editaci. 2.1. PAK načti uživatele s daným ID z tabulky Uzivatele a ulož do p.uzivatel. 2.2. JINAK zobraz seznam všech uživatelů z tabulky Uzivatele. 2.2.1. Uživatel administrátor vybere uživatele do p.uzivatel. UN(Uzivatele) LS(Role) 3. Zobraz seznam všech rolí z tabulky Role. UN(Role) 4. Uživatel administrátor vybere roli do p.role. 5. Ověř, zdali je vybrán uživatel p.uzivatel. POKUD ne, PAK krok 2. 6. Ověř, zdali je vybrána role p.role, POKUD ne, PAK krok 3. BEGIN transaction LX(UzivateleVRoli) 7. V tabulce UzivateleVRoli, kde uzivatelid = p.uzivatel.uzivatelid, nastav roleid na p.role.roleid. UN(UzivateleVRoli) END transaction 8. Zobraz informaci o stavu transakce. Funkce 1.3.1 Odeslat zprávu 1. Zobraz formulář pro odeslání soukromé zprávy. LS(Uzivatele) 2. JESTLIŽE existuje ID přijemce1 2.1. PAK načti uživatele s daným ID z tabulky Uzivatele a ulož do p.prijemce. 2.2. JINAK zobraz seznam všech uživatelů z tabulky Uzivatele. 2.2.1. Registrovaný uživatel vybere příjemce do p.prijemce. UN(Uzivatele) 3. Registrovaný uživatel2 zadá předmět zprávy do p.predmet. 4. Registrovaný uživatel zadá obsah zprávy do p.obsah. 5. Ověř, zdali je vybrán příjemce p.prijemce. POKUD ne, pak krok 2. 6. Ulož ID aktuálního uživatele do p.odesilatel. 7. Ulož aktuální datum do p.datum. LS(Zpravy) 8. Ověř platnost zadaných údajů dle datového slovníku (tabulka Zpravy) toku Odesl_zpr. Pokud chyba, pak krok 9 s hlášením Předmět a obsah zprávy musí být vyplněn. UN(Zpravy)

BEGIN transaction LX(Zpravy) 9. Vlož novou zprávu do tabulky Zpravy s hodnotami predmet = p.predmet, odesilatel = p.odesilatel, prijemce = p.prijemce, datumodeslani = p.datum, precteno = false. UN(Zpravy) END transaction 10. Zobraz informaci o stavu transakce. Funkce 1.2.1 Přidat film do filmotéky 1. Zobraz formulář pro přidání filmu do filmotéky. LS(Filmy) 2. JESTLIŽE existuje ID filmu k přidání3, 2.1. PAK načti film s daným ID z tabulky Filmy a ulož do p.film. 2.2. JINAK zobraz seznam všech filmů z tabulky Filmy. 2.2.1. Registrovaný uživatel vybere film do p.film. UN(Filmy) LS(Media) 3. Zobraz seznam všech typů médií z tabulky Media. UN(Media) 4. Registrovaný uživatel2 vybere médium do p.medium. 5. Ulož ID aktuálního uživatele do p.uzivatelid. BEGIN transaction LX(Filmoteky) 6. Vlož nový záznam to tabulky Filmoteky s hodnotami uzivatelid = p.uzivatelid, objektid = p.film.objektid, mediumid = p.medium.mediumid. UN(Filmoteky) END transaction 7. Zobraz informaci o stavu transakce. Funkce 2.1.1.4.2 - Přiřazení postavy k filmu LS(Film) 1. Zobraz seznam existujících filmů (tabulka Film) UN(Film) 2. Uživatel - publicista vybere požadovaný objekt (film), ke kterému chce přiřadit další postavu a odešle stisknutím tlačítka (odeslat) na server. 3. Ulož hodnotu atributu FilmID uživatelem vybraného a odeslaného objektu (filmu) do proměnné PFilmID. LS(Osobnost) 4. Zobraz formulář "Vytvoření postavy ze seznamu k filmu" pro přiřazení existující osobnosti jako další postavy k filmu s požadovanými vstupy pro uživatele (seznam existujících osobností - tabulka Osobnost, vstup pro jméno - jmeno vstup pro prijmeni - prijmeni, vstup pro přezdívku - prezdivka, vstup pro popis - popis ). UN(Osobnost) 5. Uživatel - publicista vybere ze seznamu maximálně jeden objekt (osobnost), vyplní textové vstupy pro budoucí potenciální atributy nového záznamu tabulky SeznamPostav (jmeno, prijmeni, prezdivka, popis) a odešle stisknutím tlačítka (odeslat) na server.

6. jestliže uživatel nevybral žádný objekt, pak vypiš informativní chybové hlášeni "Pro přiřazení objektu (osobnosti) jako role postava k vybranému objektu (filmu) nebyl vybrán žádný zádný záznam." a pokračuj od kroku 4. Jinak ulož hodnotu vybraného záznamu objektu (z tabulky Osobnost) atributu OsobnostID do proměnné POsobnostID, a vstupy do proměnných: jmeno = PJmeno, prijmeni = PPrijmeni, prezdivka = PPrezdivka, popis = PPopis). 7. Validuj uživatelem vyplněné vstupy jako atributy (jmeno, prijmeni, prezdivka, popis) dle démén datového slovníku SeznamPostav a jejich ekvivalentních atributů. LX(SeznamPostav - OsobnostID) 8. Jestliže je vše v pořádku, pak vlož do tabulky (SeznamPostrav) nový záznam s hodnotami vybranými uživatelem (FilmID = PFilmID, OsobnostID = POsobnostID, Jmeno = PJmeno, Prijmeni = PPrijmeni, Prezdivka = PPrezdivka, Popis = PPopis). Jinak vypiš chybové hlášení "Vyplněná data nejsou ve správném formátu." a pokračuj od kroku 5. UN(SeznamPostav - OsobnostID) 9. Jestliže se podařilo záznam vložit do databáze, vypiš informativní hlášení "Záznam se podařilo úspěšně vložit". Jinak vypiš chybové hlášení "Záznam se nepodařilo vložit, kontaktujte prosím administrátora.". Funkce 2.1.1.4.3 - Přiřazení státu k filmu LS(Film) 1. Zobraz seznam existujících filmů (tabulka Film) UN(Film) 2. Uživatel - publicista vybere požadovaný objekt (film), ke kterému chce přiřadit další stát a odešle stisknutím tlačítka (odeslat) na server. 3. Ulož hodnotu atributu FilmID uživatelem vybraného a odeslaného objektu (filmu) do proměnné PFilmID. LS(Stat) 4. Zobraz formulář "Přiřazení státu k filmu" pro přiřazení existujícího státu jako dalšího státu k filmu s požadovanými vstupy pro uživatele (seznam existujících států - tabulka Stat). UN(Stat) 5. Uživatel - publicista vybere ze seznamu maximálně jeden objekt (stát) a odešle stisknutím tlačítka (odeslat) na server. 6. jestliže uživatel nevybral žádný objekt, pak vypiš informativní chybové hlášeni "Pro přiřazení objektu (stát) k vybranému objektu (filmu) nebyl vybrán žádný záznam." a pokračuj od kroku 4. Jinak ulož hodnotu vybraného záznamu objektu (z tabulky Osobnost) atributu OsobnostID do proměnné POsobnostID. LX(FilmStat - FilmID) 7. Vlož do tabulky (FilmStat) nový záznam s hodnotami vybranými uživatelem (FilmID = PFilmID, StatID = PStatID). UN(FilmStat - FilmID) 8. Jestliže se podařilo záznam vložit do databáze, vypiš informativní hlášení "Záznam se podařilo úspěšně vložit". Jinak vypiš chybové hlášení "Záznam se nepodařilo vložit, kontaktujte prosím administrátora.". Funkce 2.1.1.5.2 - Odebrání postavy k filmu LS(Film) 1.Zobraz seznam existujících filmů (tabulka Film)

UN(Film) 2. Uživatel - publicista vybere požadovaný objekt (film), ke kterému chce odebrat postavu a odešle stisknutím tlačítka (odeslat) na server. 3. Ulož hodnotu atributu FilmID uživatelem vybraného a odeslaného objektu (filmu) do proměnné PFilmID. 4. Jestliže P = 0, pak vypiš informativní hlášení "Požadovaný vybraný objekt (film) nemá žádné objekty (postavy) k odebrání." a pokračuj od kroku 1, kde P je počet postav (tabulka SeznamPostav, řádky kde filmid = PFilmID ) k užvatelem vybranému objektu (filmu). LS(Film - FilmID) 5. Zobraz formulář "Odebrání postavy k filmu" pro odebrání existující osobnosti jako postavy k filmu s požadovanými vstupy pro uživatele (seznam existujících postav k filmu - tabulka SeznamPostav, řádky kde FilmID = PFilmID). UN(Film - FilmID) 6. Uživatel - publicista vybere ze seznamu právě jeden objekt (osobnost) a odešle stisknutím tlačítka (odeslat) na server. 7. jestliže uživatel nevybral žádný objekt, pak vypiš informativní chybové hlášeni "Pro odebrání objektu (osobnosti) jako role postava k vybranému objektu (filmu) nebyl vybrán žádný záznam." a pokračuj od kroku 5. Jinak ulož hodnotu vybraného záznamu objektu (z tabulky Osobnost) atributu OsobnostID do proměnné POsobnostID. LX(SeznamPostav - OsobnostID) 8. Vymaž v tabulce (SeznamPostav) záznam, kde OsobnostID = POsobnostID. LX(SeznamPostav - OsobnostID) 9. Jestliže se podařilo záznam z databáze odstranit, vypiš informativní hlášení "Záznam se podařilo úspěšně odstranit". Jinak vypiš chybové hlášení "Záznam se nepodařilo odstranit, kontaktujte prosím administrátora.". Funkce 2.1.1.5.3 - Odebrání státu k filmu LS(Film) 1.Zobraz seznam existujících filmů (tabulka Film) UN(Film) 2. Uživatel - publicista vybere požadovaný objekt (film), ke kterému chce odebrat stát a odešle stisknutím tlačítka (odeslat) na server. 3. Ulož hodnotu atributu FilmID uživatelem vybraného a odeslaného objektu (filmu) do proměnné PFilmID. LS(FilmStat) 4. Zobraz formulář "Odebrání státu k filmu" pro odebrání existujícího státu k filmu s požadovanými vstupy pro uživatele (seznam existujících států k danému vybranému filmu- tabulka FilmStat, řádky kde FilmID = PFilmID). UN(FilmStat) 5. Uživatel - publicista vybere ze seznamu maximálně jeden objekt (stát) a odešle stisknutím tlačítka (odeslat) na server. 6. jestliže uživatel nevybral žádný objekt, pak vypiš informativní chybové hlášeni "Pro odebrání objektu (státu) k vybranému objektu (filmu) nebyl vybrán žádný záznam." a pokračuj od kroku 4. Jinak ulož hodnotu vybraného záznamu objektu (z tabulky FilmStat) atributu StatID do proměnné PStatID. LX(FilmStat - FilmID) 7. Vymaž z tabulky (FilmStat) záznam s hodnotami vybranými uživatelem (FilmID = PFilmID, StatID = PStatID). UN(FilmStat - FilmID)

8. Jestliže se podařilo záznam odstranit z databáze, vypiš informativní hlášení "Záznam se podařilo úspěšně odstranit". Jinak vypiš chybové hlášení "Záznam se nepodařilo odstranit, kontaktujte prosím administrátora.". 5 Popis implementace 5.1 Struktura databáze (T16 AKI002, BAS064, CER43, 11. prosince 2009) Struktura databáze je vytvořena pomocí SQL skriptu pro MS SQL Server. Skript je přiložen v textovém souboru sql_skript_t16.sql. 5.2 Analýza zálohování a archivování dat Žlutě jsou vyznačeny číselníky. Zálohování IS DB Filmů Archivace Zálohování pouze při změně. Role Nearchivujeme 1/2 roku denně ve 3:00h pak pouze při změně Osobnosti Nearchivujeme Zálohování 2x denně ve 12h a 24h. UzivateleVRoli Nearchivujeme 1/2 roku denně ve 3:00h pak pouze při změně SeznamPostav Nearchivujeme Zálohování 2x denně ve 12h a 24h. Fotky Nearchivujeme Zálohování 2x denně ve 12h a 24h. Fotografie Nearchivujeme Zálohování 2x denně ve 12h a 24h. Uzivatele Nearchivujeme Zálohování pouze při změně. TypObjektu Nearchivujeme Zálohování 2x denně ve 12h a 24h. Zmeny Nearchivujeme Zálohování 2x denně ve 12h a 24h. Zamavosti Nearchivujeme Zálohování 2x denně ve 12h a 24h. Hodnoceni Nearchivujeme Zálohování pouze při změně. Funkce Nearchivujeme 1/2 roku denně ve 3:00h pak pouze při změně SeznamOsob Nearchivujeme 1/2 roku denně ve 3:00h pak pouze při změně Filmy Nearchivujeme Zálohování pouze při změně. Staty Nearchivujeme 1/2 roku denně ve 3:00h pak pouze při změně FilmyVeState Nearchivujeme Zálohování pouze při změně. Zanry Nearchivujeme 1/2 roku denně ve 3:00h pak pouze při změně ZanryFilmu Nearchivujeme

Zálohování pouze při změně. KategorieFilmu Nearchivujeme Zálohování 2x denně ve 12h a 24h. Trailery Nearchivujeme Zálohujeme 1x týdně (vůbec) Zprávy Zálohování 2x denně ve 12h a 24h. Filmoteky Nearchivujeme Zálohování pouze při změně. Media Nearchivujeme Zprávy starší než rok a ve stavu přečteno, zprávy ve stavu smazáno. 1x za měsíc ve 3:00h 5.3 Triggery a procedury 5.3.1 Trigger CelkoveHodnoceniIU Trigger upraví atribut celkovehodnoceni. Spouští se po UPDATE a INSERT. CREATE TRIGGER CelkoveHodnoceniDel ON Hodnoceni AFTER UPDATE, INSERT AS UPDATE Filmy SET celkovehodnoceni=( SELECT AVG(h.hodnoceni) FROM Hodnoceni AS h INNER JOIN deleted AS d ON h.objektid=d.objektid ) FROM Filmy AS f INNER JOIN Hodnoceni AS h ON h.objektid=f.objektid; UPDATE Osobnosti SET celkovehodnoceni=( SELECT AVG(h.hodnoceni) FROM Hodnoceni AS h INNER JOIN deleted AS d ON h.objektid=d.objektid ) FROM Filmy AS f INNER JOIN Hodnoceni AS h ON h.objektid=f.objektid; 5.3.2 Trigger CelkoveHodnoceniDel Trigger upraví atribut celkovehodnoceni. Spouští se po DELETE. CREATE TRIGGER CelkoveHodnoceniDel ON Hodnoceni AFTER DELETE AS UPDATE Filmy SET celkovehodnoceni=( SELECT AVG(h.hodnoceni) FROM Hodnoceni AS h INNER JOIN inserted AS i ON h.objektid=i.objektid ) FROM Filmy AS f INNER JOIN Hodnoceni AS h ON h.objektid=f.objektid; UPDATE Osobnosti SET celkovehodnoceni=( SELECT AVG(h.hodnoceni) FROM Hodnoceni AS h INNER JOIN inserted AS i ON h.objektid=i.objektid ) FROM Filmy AS f INNER JOIN Hodnoceni AS h ON h.objektid=f.objektid;; 6 Programátorská příručka 6.1 Adresářová struktura Code\IS_vdf\ - obsahuje solution projektu WebSites\IS_vdf\ - osahuje Handler.aspx a web.config WebSites\IS_vdf\App_Code\ - obsahuje mapování LINQ to SQL (T16 BAS064, HRO088, SLA395, 13. prosince 2009)

WebSites\IS_vdf\App_Themes\SkinFile\ - obsahuje skinfile.skin WebSites\IS_vdf\CSSaJS\ - obsahuje kaskádové styly WebSites\IS_vdf\img\ - obsahuje obrázky aplikace WebSites\IS_vdf\Public\ - obsahuje veřejně přístupné stránky WebSites\IS_vdf\Publicist\ - obsahuje administrátorské stránky 7 Uživatelská příručka Uživatelská příručka je přiložena v dokumentu Uzivatelska_prirucka_T16.pdf. (T16 AKI002, 13. prosince 2009)