Podcast
Questions and Answers
Společnost StudyMates s.r.o. se specializuje na vývoj softwaru pro studenty a učitele.
Společnost StudyMates s.r.o. se specializuje na vývoj softwaru pro studenty a učitele.
False
Aplikace StudyMates umožňuje uživatelům nahrávat pouze PDF dokumenty.
Aplikace StudyMates umožňuje uživatelům nahrávat pouze PDF dokumenty.
False
Cílem StudyMates s.r.o. je usnadnit studentům archivaci a třídění studijních materiálů.
Cílem StudyMates s.r.o. je usnadnit studentům archivaci a třídění studijních materiálů.
True
V současné době má StudyMates s.r.o. přibližně 1000 aktivních uživatelů.
V současné době má StudyMates s.r.o. přibližně 1000 aktivních uživatelů.
Signup and view all the answers
Uživatelé mohou svojí aplikaci přizpůsobit změnou systémového nastavení.
Uživatelé mohou svojí aplikaci přizpůsobit změnou systémového nastavení.
Signup and view all the answers
Databáze aplikace StudyMates slouží pouze pro uchovávání materiálů a uživatelů.
Databáze aplikace StudyMates slouží pouze pro uchovávání materiálů a uživatelů.
Signup and view all the answers
Uživatel se registruje do aplikace tím, že vyplní své jméno, příjmení a datum narození.
Uživatel se registruje do aplikace tím, že vyplní své jméno, příjmení a datum narození.
Signup and view all the answers
Aplikace StudyMates provádí analýzu obsahu ihned po nahrání materiálu.
Aplikace StudyMates provádí analýzu obsahu ihned po nahrání materiálu.
Signup and view all the answers
Každý materiál může mít pouze jedno systémové nastavení.
Každý materiál může mít pouze jedno systémové nastavení.
Signup and view all the answers
Jeden uživatel může vytvořit více kvízů.
Jeden uživatel může vytvořit více kvízů.
Signup and view all the answers
Každý kvíz může mít více autorů.
Každý kvíz může mít více autorů.
Signup and view all the answers
Materiál může být přiřazen pouze k jedné kategorii.
Materiál může být přiřazen pouze k jedné kategorii.
Signup and view all the answers
Uživatelé mohou psát poznámky pouze k otázkám v kvízu.
Uživatelé mohou psát poznámky pouze k otázkám v kvízu.
Signup and view all the answers
Systémové nastavení může být změněno při každém přihlášení.
Systémové nastavení může být změněno při každém přihlášení.
Signup and view all the answers
Každý uživatel může mít více poznámek k jednomu materiálu.
Každý uživatel může mít více poznámek k jednomu materiálu.
Signup and view all the answers
Výsledky kvízů jsou nezávislé na uživatelských účtech.
Výsledky kvízů jsou nezávislé na uživatelských účtech.
Signup and view all the answers
Při mazání uživatele mohou být jeho materiály a kvízy odstraněny.
Při mazání uživatele mohou být jeho materiály a kvízy odstraněny.
Signup and view all the answers
Jeden uživatel může mít více výsledků kvízů.
Jeden uživatel může mít více výsledků kvízů.
Signup and view all the answers
Klíčové informace mohou být přiřazeny pouze k jedné otázce v kvízu.
Klíčové informace mohou být přiřazeny pouze k jedné otázce v kvízu.
Signup and view all the answers
Každý dokument musí být přiřazen jednomu uživateli.
Každý dokument musí být přiřazen jednomu uživateli.
Signup and view all the answers
Uživatel musí mít před registrací platný email.
Uživatel musí mít před registrací platný email.
Signup and view all the answers
Každý dokument může obsahovat více klíčových informací.
Každý dokument může obsahovat více klíčových informací.
Signup and view all the answers
Každý kvíz musí obsahovat alespoň jednu otázku.
Každý kvíz musí obsahovat alespoň jednu otázku.
Signup and view all the answers
Každá otázka může mít více než jednu odpověď.
Každá otázka může mít více než jednu odpověď.
Signup and view all the answers
Poznámka musí být přidělena ke každému dokumentu.
Poznámka musí být přidělena ke každému dokumentu.
Signup and view all the answers
Smyčky se v aktuálním konceptuálním schématu nevyskytují.
Smyčky se v aktuálním konceptuálním schématu nevyskytují.
Signup and view all the answers
Každá odpověď může existovat bez přiřazené otázky.
Každá odpověď může existovat bez přiřazené otázky.
Signup and view all the answers
Každá klíčová informace může být spojena s více dokumenty.
Každá klíčová informace může být spojena s více dokumenty.
Signup and view all the answers
Uživatel může mít uloženo více výsledků kvízů.
Uživatel může mít uloženo více výsledků kvízů.
Signup and view all the answers
Každá otázka musí mít typ.
Každá otázka musí mít typ.
Signup and view all the answers
Kategorie může obsahovat maximálně jeden dokument.
Kategorie může obsahovat maximálně jeden dokument.
Signup and view all the answers
Odpovědi mohou být přiřazeny více než jedné otázce.
Odpovědi mohou být přiřazeny více než jedné otázce.
Signup and view all the answers
Systémové nastavení může mít vliv na databázové schéma.
Systémové nastavení může mít vliv na databázové schéma.
Signup and view all the answers
Existence cyklu v databázovém schématu by mohla vést k datovým nekonzistencím.
Existence cyklu v databázovém schématu by mohla vést k datovým nekonzistencím.
Signup and view all the answers
Každý dokument může mít více poznámek, pokud si je student zadal.
Každý dokument může mít více poznámek, pokud si je student zadal.
Signup and view all the answers
Každá poznámka může být přiřazena více dokumentům.
Každá poznámka může být přiřazena více dokumentům.
Signup and view all the answers
Každý uživatel může mít své vlastní systémové nastavení.
Každý uživatel může mít své vlastní systémové nastavení.
Signup and view all the answers
Každé systémové nastavení může patřit více uživatelům.
Každé systémové nastavení může patřit více uživatelům.
Signup and view all the answers
V tabulce QUESTIONS může být atribut typeQuestion definován jako M nebo T.
V tabulce QUESTIONS může být atribut typeQuestion definován jako M nebo T.
Signup and view all the answers
Primární klíč v tabulce USERS je id_setting.
Primární klíč v tabulce USERS je id_setting.
Signup and view all the answers
Každý kvíz má jedinečné ID, název a datum vytvoření.
Každý kvíz má jedinečné ID, název a datum vytvoření.
Signup and view all the answers
Tabulka NOTES uchovává odpovědi patřící k otázkám.
Tabulka NOTES uchovává odpovědi patřící k otázkám.
Signup and view all the answers
Omezení CHECK na sloupci typeQuestion zajišťuje, že hodnoty nemohou být prázdné.
Omezení CHECK na sloupci typeQuestion zajišťuje, že hodnoty nemohou být prázdné.
Signup and view all the answers
V případě vztahů M:N byla vytvořena vazební tabulka CATEGORIES_DOCUMENTS.
V případě vztahů M:N byla vytvořena vazební tabulka CATEGORIES_DOCUMENTS.
Signup and view all the answers
V tabulce ANSWERS je cizí klíč QUESTIONS_id_question.
V tabulce ANSWERS je cizí klíč QUESTIONS_id_question.
Signup and view all the answers
Každá informace v tabulce KEY_INFORMATIONS je spojena s více dokumenty.
Každá informace v tabulce KEY_INFORMATIONS je spojena s více dokumenty.
Signup and view all the answers
Omezení UNIQUE u sloupce email v tabulce USERS zajišťuje unikátnost e-mailových adres.
Omezení UNIQUE u sloupce email v tabulce USERS zajišťuje unikátnost e-mailových adres.
Signup and view all the answers
V tabulce QUIZ_RESULTS se uchovávají pouze výsledky kvízů bez informací o uživateli.
V tabulce QUIZ_RESULTS se uchovávají pouze výsledky kvízů bez informací o uživateli.
Signup and view all the answers
Dotaz pro získání uživatelů, kteří nenahráli žádné dokumenty, používá LEFT JOIN.
Dotaz pro získání uživatelů, kteří nenahráli žádné dokumenty, používá LEFT JOIN.
Signup and view all the answers
V dotazu na zobrazení dokumentů zařazených do více než jedné kategorie se používá GROUP BY.
V dotazu na zobrazení dokumentů zařazených do více než jedné kategorie se používá GROUP BY.
Signup and view all the answers
Dotaz pomocí CROSS JOIN zobrazí pouze uživatele, kteří vyplnili kvízy.
Dotaz pomocí CROSS JOIN zobrazí pouze uživatele, kteří vyplnili kvízy.
Signup and view all the answers
Vnořený dotaz v klauzuli WHERE vybere uživatele, kteří nahráli dokument s názvem 'Biology Basics'.
Vnořený dotaz v klauzuli WHERE vybere uživatele, kteří nahráli dokument s názvem 'Biology Basics'.
Signup and view all the answers
Polozpojení (LEFT OUTER JOIN) ukazuje všechny výsledky kvízů pro všechny uživatele, včetně těch bez výsledků.
Polozpojení (LEFT OUTER JOIN) ukazuje všechny výsledky kvízů pro všechny uživatele, včetně těch bez výsledků.
Signup and view all the answers
FULL JOIN zaručuje, že zobrazí i nezařazené dokumenty a kategorie bez dokumentů.
FULL JOIN zaručuje, že zobrazí i nezařazené dokumenty a kategorie bez dokumentů.
Signup and view all the answers
Spojení pomocí JOIN ON vyžaduje přímo shodné sloupce z obou tabulek.
Spojení pomocí JOIN ON vyžaduje přímo shodné sloupce z obou tabulek.
Signup and view all the answers
Dotaz pro výběr průměrného skóre za jednotlivé kvízy obsahuje vnořený dotaz v klauzuli FROM.
Dotaz pro výběr průměrného skóre za jednotlivé kvízy obsahuje vnořený dotaz v klauzuli FROM.
Signup and view all the answers
Vztažený vnořený dotaz se používá k vybírání uživatelů, kteří mají alespoň jeden výsledek z kvízů.
Vztažený vnořený dotaz se používá k vybírání uživatelů, kteří mají alespoň jeden výsledek z kvízů.
Signup and view all the answers
NATURAL JOIN se používá pro automatické spojení tabulek na základě shodných názvů sloupců.
NATURAL JOIN se používá pro automatické spojení tabulek na základě shodných názvů sloupců.
Signup and view all the answers
V rámci dotazu na všechny názvy dokumentů a kvízů se používá MINUS.
V rámci dotazu na všechny názvy dokumentů a kvízů se používá MINUS.
Signup and view all the answers
Uživatelé, kteří vyplnili všechny dostupné kvízy, jsou vybráni pomocí EXISTS.
Uživatelé, kteří vyplnili všechny dostupné kvízy, jsou vybráni pomocí EXISTS.
Signup and view all the answers
Uživatelé a jejich systémová nastavení lze získat použitím JOIN USING.
Uživatelé a jejich systémová nastavení lze získat použitím JOIN USING.
Signup and view all the answers
Plemeny uživatelů a dokumentů jsou v šabloně CROSS JOIN zobrazeny ve sloupci s názvem FULL_NAME.
Plemeny uživatelů a dokumentů jsou v šabloně CROSS JOIN zobrazeny ve sloupci s názvem FULL_NAME.
Signup and view all the answers
UNIQUE omezení zaručuje, že v tabulce mohou být duplicitní e-maily.
UNIQUE omezení zaručuje, že v tabulce mohou být duplicitní e-maily.
Signup and view all the answers
Primární klíč zajišťuje jednoznačnost a většinou se pojí s indexem.
Primární klíč zajišťuje jednoznačnost a většinou se pojí s indexem.
Signup and view all the answers
CHECK omezení lze použít pouze na sloupec s jedním datovým typem.
CHECK omezení lze použít pouze na sloupec s jedním datovým typem.
Signup and view all the answers
Omezení NOT NULL znamená, že sloupec může obsahovat prázdné hodnoty.
Omezení NOT NULL znamená, že sloupec může obsahovat prázdné hodnoty.
Signup and view all the answers
Cizí klíče mohou způsobit, že se některé záznamy stanou osiřelými.
Cizí klíče mohou způsobit, že se některé záznamy stanou osiřelými.
Signup and view all the answers
Tabulku USERS je nutné naplnit před tabulkami, které obsahují cizí klíče.
Tabulku USERS je nutné naplnit před tabulkami, které obsahují cizí klíče.
Signup and view all the answers
Triggery nelze použít k zajištění referenční integrity v databázi.
Triggery nelze použít k zajištění referenční integrity v databázi.
Signup and view all the answers
Hodnota v sloupci typeQuestion může být jakákoliv, pokud je definována jako CHAR(1).
Hodnota v sloupci typeQuestion může být jakákoliv, pokud je definována jako CHAR(1).
Signup and view all the answers
Před naplněním tabulek je nutné nejprve zkontrolovat vazby mezi nimi.
Před naplněním tabulek je nutné nejprve zkontrolovat vazby mezi nimi.
Signup and view all the answers
Doplnkové CHECK omezení jsou řešením pro složité obchodní pravidla v databázi.
Doplnkové CHECK omezení jsou řešením pro složité obchodní pravidla v databázi.
Signup and view all the answers
Tabulka DOCUMENTS se naplní před tabulkami NOTES a KEY_INFORMATIONS.
Tabulka DOCUMENTS se naplní před tabulkami NOTES a KEY_INFORMATIONS.
Signup and view all the answers
Další IO pravidla se vždy implementují pomocí UNIQUE nebo NOT NULL omezení.
Další IO pravidla se vždy implementují pomocí UNIQUE nebo NOT NULL omezení.
Signup and view all the answers
Při naplňování tabulek je efektivní mít možnost manuálně nastavovat primární klíče.
Při naplňování tabulek je efektivní mít možnost manuálně nastavovat primární klíče.
Signup and view all the answers
Typ DOCUMENTTYPE může obsahovat hodnoty jako 'PDF', 'DOCX' a 'PPT'.
Typ DOCUMENTTYPE může obsahovat hodnoty jako 'PDF', 'DOCX' a 'PPT'.
Signup and view all the answers
V projektu jsou primární klíče ve většině tabulek definovány jako typ VARCHAR2.
V projektu jsou primární klíče ve většině tabulek definovány jako typ VARCHAR2.
Signup and view all the answers
Existuje unikátní omezení na sloupec EMAIL v tabulce USERS, které zakazuje duplicitní e-mailové adresy.
Existuje unikátní omezení na sloupec EMAIL v tabulce USERS, které zakazuje duplicitní e-mailové adresy.
Signup and view all the answers
Sekvence mohou být použity samostatně, bez triggery, k generování unikátních hodnot pro primární klíče.
Sekvence mohou být použity samostatně, bez triggery, k generování unikátních hodnot pro primární klíče.
Signup and view all the answers
Typ otázky v tabulce QUESTIONS může být označen pouze jako 'M' pro multiple-choice otázky.
Typ otázky v tabulce QUESTIONS může být označen pouze jako 'M' pro multiple-choice otázky.
Signup and view all the answers
Ve vážebních tabulkách pro M:N vztahy by byly použity potenciální cizí klíče (PFK).
Ve vážebních tabulkách pro M:N vztahy by byly použity potenciální cizí klíče (PFK).
Signup and view all the answers
Dotaz, který zobrazuje emaily uživatelů, převedené na malá písmena, používá funkci UPPER.
Dotaz, který zobrazuje emaily uživatelů, převedené na malá písmena, používá funkci UPPER.
Signup and view all the answers
Pro zobrazení průměrného skóre uživatelů ve všech kvízech se používá funkce SUM.
Pro zobrazení průměrného skóre uživatelů ve všech kvízech se používá funkce SUM.
Signup and view all the answers
Je možné mít vícero subtypů v tabulce QUESTIONS bez nutnosti synchronizace.
Je možné mít vícero subtypů v tabulce QUESTIONS bez nutnosti synchronizace.
Signup and view all the answers
Dotaz, který zobrazuje počet dnů od nahrání dokumentu, používá funkci TRUNC.
Dotaz, který zobrazuje počet dnů od nahrání dokumentu, používá funkci TRUNC.
Signup and view all the answers
V modelu byly přítomny slabé entity, které nejsou závislé na hlavních tabulkách.
V modelu byly přítomny slabé entity, které nejsou závislé na hlavních tabulkách.
Signup and view all the answers
Cizí klíče v tabulkách jsou použity pro zajištění integrity dat a referenční integrity.
Cizí klíče v tabulkách jsou použity pro zajištění integrity dat a referenční integrity.
Signup and view all the answers
Pohled USER_LAST_DOCUMENT zobrazuje jména uživatelů a všechny dokumenty, které nahráli.
Pohled USER_LAST_DOCUMENT zobrazuje jména uživatelů a všechny dokumenty, které nahráli.
Signup and view all the answers
Dotaz, který vybírá uživatele, kteří nahráli alespoň jeden dokument, používá klauzuli DELETE.
Dotaz, který vybírá uživatele, kteří nahráli alespoň jeden dokument, používá klauzuli DELETE.
Signup and view all the answers
Databáze automaticky vytváří indexy pouze pro sloupce s cizími klíči.
Databáze automaticky vytváří indexy pouze pro sloupce s cizími klíči.
Signup and view all the answers
Při implementaci M:N vazby se musí vytvořit samostatná vazební tabulka.
Při implementaci M:N vazby se musí vytvořit samostatná vazební tabulka.
Signup and view all the answers
V dotazu pro vytvoření pohledu USER_LAST_DOCUMENT se používá vnořený SELECT pro zjištění data posledního nahrání dokumentu.
V dotazu pro vytvoření pohledu USER_LAST_DOCUMENT se používá vnořený SELECT pro zjištění data posledního nahrání dokumentu.
Signup and view all the answers
Cizí klíče ve vazební tabulce mohou odkazovat na primární klíče více než jedné tabulky.
Cizí klíče ve vazební tabulce mohou odkazovat na primární klíče více než jedné tabulky.
Signup and view all the answers
Zobrazení průměrné velikosti dokumentů se provádí pomocí funkce COUNT v klauzuli HAVING.
Zobrazení průměrné velikosti dokumentů se provádí pomocí funkce COUNT v klauzuli HAVING.
Signup and view all the answers
Omezení CHECK se používá k zajištění, že v tabulce QUESTIONS může být sloupec TYPEQUESTION pouze 'M' nebo 'T'.
Omezení CHECK se používá k zajištění, že v tabulce QUESTIONS může být sloupec TYPEQUESTION pouze 'M' nebo 'T'.
Signup and view all the answers
V dotazu, který aktualizuje skóre uživatelů, se používá podmínka WHERE bez vnořeného SELECT.
V dotazu, který aktualizuje skóre uživatelů, se používá podmínka WHERE bez vnořeného SELECT.
Signup and view all the answers
V dotazu na výpis uživatelů, kteří nahráli dokument obsahující 'Biology', se používá klauzule LIKE.
V dotazu na výpis uživatelů, kteří nahráli dokument obsahující 'Biology', se používá klauzule LIKE.
Signup and view all the answers
Primární klíče v databázi mohou mít duplikátní hodnoty, pokud jsou manuálně plněny.
Primární klíče v databázi mohou mít duplikátní hodnoty, pokud jsou manuálně plněny.
Signup and view all the answers
Smazání výsledků kvízů je možné pomocí příkazu UPDATE.
Smazání výsledků kvízů je možné pomocí příkazu UPDATE.
Signup and view all the answers
Při výběru názvů dokumentů s velikostí větší než 1000 bajtů je možné využít jen jednu metodu SELECT.
Při výběru názvů dokumentů s velikostí větší než 1000 bajtů je možné využít jen jednu metodu SELECT.
Signup and view all the answers
Funkce ROUND se používá k zaokrouhlení velikosti souborů na celé kilobyty.
Funkce ROUND se používá k zaokrouhlení velikosti souborů na celé kilobyty.
Signup and view all the answers
Smazání výsledků kvízů pro uživatele, kteří nevyplnili žádný dokument, se provádí pomocí klauzule GROUP BY.
Smazání výsledků kvízů pro uživatele, kteří nevyplnili žádný dokument, se provádí pomocí klauzule GROUP BY.
Signup and view all the answers
Study Notes
Analýza projektu StudyMates
- Aplikace StudyMates je navržena pro studenty, aby nahrávali, organizovali a opakovali studijní materiály.
- Aplikace je dostupná na webu i na mobilních zařízeních.
- Má databázové řešení pro ukládání informací o uživatelích, materiálech, kvízech, kategoriích apod.
- Aplikace analyzuje nahrané materiály (PDF, Word, obrázky), z nichž automaticky generuje klíčové informace a otázky pro kvízy.
- Student si může vytvářet poznámky k materiálům a upravovat systémová nastavení.
- Systém sleduje interakce studentů (registrace, nahrávání materiálů, tvorba kvízů, psaní poznámek).
- Cílem je zvýšit počet aktivních uživatelů na nejméně dvojnásobek (zhruba 500).
Scénář a strukturální pravidla
- Uživatelé se registrují vyplněním e-mailu, jména a příjmení.
- Nahrané materiály jsou klasifikovány automaticky nebo manuálně do kategorií.
- Pro každý materiál jsou extrahovány klíčové informace pro generování kvízů.
- Po vyplnění kvízu se ukládá výsledek s dosaženým skóre.
- Systém umožňuje psaní poznámek k dokumentům a nastavení jazyka a vzhledu.
- Pravidlo 1:1 (jediný uživatel, jedno nastavení), 1:N (uživatel - dokumenty, kategorie - dokumenty)
- Pravidlo N:M (uživatel - kvíz, kvíz - výsledky odkazují na tabulku se záznamy N:M)
Relační model dat
- Entita USER (id_user, jméno, příjmení, e-mail, datum registrace, obor studia)
- Entita DOCUMENT (id_document, název, typ, datum nahrání, obsah, velikost, id_user)
- Entita CATEGORY (id_category, název, id_document)
- Entita KEY_INFORMATION (id_info, text informace, pozice v dokumentu, id_document)
- Entita QUIZ (id_quiz, název, datum vytvoření, id_user)
- Entita QUESTION (id_question, text, typ, id_quiz)
- Entita ANSWER (id_answer, text, správnost, id_question)
- Entita QUIZ_RESULT (id_result, datum dokončení, skóre, id_user, id_quiz)
- Entita NOTE (id_note, text, id_document)
- Entita SYSTEM_SETTING (id_setting, téma, jazyk, formát data, id_user)
Implementace databáze
- Použití sekvencí pro automatické generování primárních klíčů (ID).
- Omezení unique na e-mailovou adresu pro uživatele.
- Indexy pro optimalizované vyhledávání (např ID_USER, ID_DOCUMENT).
- Omezení NOT NULL pro povinné atributy.
- Omezení CHECK pro omezení tipo otázek (např. True/False nebo Multiple choice).
- Implementace vazební tabulky kategorie-dokument pro vztah M:N.
- Implementace vazebních tabulek kvízů a výsledků.
SQL dotazy
- D1-D22 poskytují příklady různých typů SQL dotazů:
- Vyhledávání informací z více tabulek (joins, inner joins, left joins, right joins, full outer joins).
- Agregační funkce (AVG, COUNT).
- Sub-dotazy.
- Vnější spojení v klauzuli WHERE (EXISTS, NOT EXISTS).
Pohled VIEW
- Tabulka USER_LAST_DOCUMENT ukazuje poslední nahraný dokument uživatele.
- Vybrané dotazů ilustrují práci s pohledem
Obecné závěry
- Návrh databáze StudyMates je robustní a umožňuje efektivní správu dat.
- V textu se diskutovala témata normalizace, omezení, indexů a optimalizace SQL dotazů.
- Studenti mohou zlepšit své dovednosti v práci s daty pomocí SQL dotazů a databázového návrhu.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Kvíz o aplikaci StudyMates, která slouží studentům a učitelům k archivaci studijních materiálů. Zjistěte, jak aplikace funguje, jaké systemové nastavení nabízí a jak mohou uživatelé spolupracovat na kvízech. Testujte svoje znalosti o klíčových funkcích této užitečné aplikace.