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

C# .NET Databáze 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

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ě.


 

  Aktivity (1)

Článek pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Jak se ti líbí článek?
Celkem (5 hlasů) :
55555


 



 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!