Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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í.

Databáze: Tvorba konceptuálního modelu z business zadání

Návrh databáze zpravidla začíná u business zadání. To je dokument, kde zákazník (nebo přímo vy :) ) shrnuje své požadavky na systém. Zadání často explicitně neříká, co má systém obsahovat, ale spíše to, co od něj klient očekává nebo jak by měl fungovat. Naším úkolem bude v zadání identifikovat tzv. základní entity. Jedná se o prvky, které jsou pro nás zajímavé a o kterých má z databázového hlediska smysl udržovat data. Model, ve kterém jsou vyobrazeny tyto entity a vztahy mezi nimi, se nazývá konceptuální.

Připravil jsem pro vás jednoduché zadání informačního systému, přečtěte si jej a poté z něj společně vytvoříme konceptuální model, ze kterého budeme dále při návrhu databáze vycházet.

Business zadání - vzdělávací projekt

Skupina studentů IT se zájmem o programování her se rozhodla napravit nepříznivou situaci ohledně materiálů k programování na českém internetu. Studenti vytvořili sérii článků a tutoriálů k různým vývojovým nástrojům a algoritmům, které následně publikovali na webu, který byl založen na redakčním systému WordPress.

Časem se ukázalo, že je o jejich tvorbu zájem, ale s přibývajícím obsahem webu se začaly projevovat nevýhody hotového řešení. Rozhodli se tedy, že si vytvoří redakční systém na míru. Nejprve přistoupili k tvorbě databázového modelu, jejich představa je následující:

Na webu jsou uloženy články, které náleží určitému uživateli a obsahují pod sebou komentáře. Článek může náležet do více sekcí a v jedné sekci může být více článků. Článek kromě svého obsahu (textu, který se následně převádí do HTML) obsahuje ještě perex, identifikátor do URI (ve tvaru titulek-clanku), titulek, klíčová slova do HTML hlavičky a datum publikace. U sekcí článků se uchovává pouze jejich název.

Uživatelé se registrují pomocí emailu a hesla, dalším atributem je přezdívka.

Komentář se váže na konkrétní článek a uživatele. Obsahuje pouze datum vložení a text.

Studenti se také rozhodli implementovat novou funkčnost a to znalostní testy z programovacích jazyků, na kterých si uživatelé budou moci testovat své znalosti. Samotný test obsahuje titulek a popis. Testovacích otázek může být libovolný počet a váží se vždy na jeden konkrétní test. Otázka obsahuje text a vždy čtyři možnosti (model ABCD), kdy první uložená otázka v DB bude vždy správná (program sám si je poté zamíchá a do HTML kódu přiřadí pod určité hashe). Výsledky testů jednotlivých uživatelů se samozřejmě ukládají a to i s datem odeslání testu.

Identifikace klíčových entit

Z článku vyčteme několik entit: Článek, Sekce, Uživatel, Komentář, Znalostní test a Otázka.

Nyní se zaměřme na vztahy mezi entitami. Máme zde několik vazeb 1:N (jedna ku několika), těmi jsou uživatel-článek, uživatel-komentář, článek-komentář, znalostní_test-otázka. Princip vazby 1:N je jednoduchý, uživatel má více článků, ale článek patří vždy jednomu uživateli.

Podobu výsledku testu zatím neznáme, proto naznačíme jen jednoduchou vazbu. Mezi sekcí a článkem máme vazbu M:N. Článek může náležet do více sekcí a v jedné sekci může být více článků. Na této úrovni modelu ji však nebudeme řešit, v dalších dílech tohoto seriálu se nám rozpadne na 2 vazby 1:N a vazební tabulku.

Konceptuální model

Entity zakreslíme do modelu a pomocí UML notace znázorníme vazby mezi nimi:

konceptuální model při návrhu databáze - Databáze v C# - ADO.NET

Model je pouze náčrt, časem např. zjistíme, že znalostní test bude mít nějaký výsledek a podobně. Tím se však budeme zabývat až příště.


 

Všechny články v sekci
Databáze v C# - ADO.NET
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
6 hlasů
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 se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity