Návrh konceptuálního modelu (školní úloha) – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Návrh konceptuálního modelu (školní úloha) – MySQL – Fórum – Programujte.comNávrh konceptuálního modelu (školní úloha) – MySQL – Fórum – Programujte.com

 

Jakub
~ Anonymní uživatel
905 příspěvků
22. 12. 2017   #1
-
0
-

Dobrý den,
mohl bych se tady prosím zeptat ohledně MYSQL?
Ve škole jsme dostali přes vánoce úkol: vytvořte databázi a klientskou aplikaci v zadaném modelu reality.
To jak vytvořit klientskou aplikaci to jakž tak chápu, ale moc jsem nepochopil to zadání:
Sklad zboží - třída zboží, zboží má jen jednu třídu
Chápu to správně, že mám udělat dvě tabulky (entity) jednu s názvem Sklad a druhou s názvem Zbozi,
ale nechápu co autor zadání myslí s tou třídou?- zboží má jen jednu třídu? pochopil jsem to správně, že pak ty atributy si mám vymyslet (jako npř v tabulce Zbozi nazev_zb, datum_spotreby)?
Nepomohl by mi prosím někdo jen s tím konceptuálním modelem, jak by měl vypadat?
děkuji moc.

ps. vím že se tady asi nemají řešit školní úlohy, ale potřeboval bych pomoc jen s tím konceptuálním modelem zbytek už snad zvládnu sám.

Nahlásit jako SPAM
IP: 62.141.28.–
Jakub
~ Anonymní uživatel
905 příspěvků
22. 12. 2017   #2
-
0
-

Chápu to dobře, že třídou se myslí druh zboží, jako npř: šperky, potraviny, elektronika 
a teda pokud mám jen jednu třídu zboží, tak může ten konceptuální model vypadat, že mám N skladů a 1 třídu, takže vazba N:1?

Nahlásit jako SPAM
IP: 62.141.28.–
Jakub
~ Anonymní uživatel
905 příspěvků
22. 12. 2017   #3
-
0
-

Já jsem nepochopil to zadání: tam není specifikováno, jestli je to jeden sklad nebo N skladů co myslíte vy?

že teda třída zbozi je jen jedna tudiž tam vždy bude jen kardinalita 1

nicmene u toho skladu to můžu mít bud N skladů, nebo jeden sklad co myslíte vy prosím?

když je to napsáno v zadání v jednotném čísle tak bych to měl brát jako jeden sklad?

tudiž 1:1, nebo jako N skladů tudiž N:1 ?

děkuji moc

Nahlásit jako SPAM
IP: 62.141.28.–
Jerry
~ Anonymní uživatel
512 příspěvků
23. 12. 2017   #4
-
0
-

#1 Jakub
dej sem zadání ... tohle forum je určené na řešení jakýchkoliv a tedy i školních úloh...

druhem zboží bych asi rozuměl např ... elektronika, zahradnické potřeby, oblečení, stroje apod.

pokud děláš tabulku v SQL tak se to dělá tak, že každý konkrétní výrobek (např. máslo haná 5 procent tuku) dostane tzv. GUID identifikátor, ten si vygeneruješ funkcí v C# v podstatě je to jedinečný identifikátor  a současně je to náhodné číslo (a nikdy se neopakuje) pak jako další sloupec dáš řetězec znaků který reprezentuje kategorii např. jídlo (dostane číslo 1) další kategorie (ve stejném sloupci tabulky) bude oblečení a dostaně č. 2, ke každé kategorii bude podkategorie např. jídlo - mléčné výrobky. Tuhle tabulku si musíš vytvořit sám. Identifikátor druhu tedy bude vypadat např. takhle  11234657 takže je to řetězec (nikoliv číslo) 8 mi znaku první znak značí že je to jídlo další znak značí že je to mléčný výrobek atd.

samozřejmě si někde musíš schovat klíč k tomuhle kodování to znamená abys věděl co které číslo značí

je blbý že začínáte s SQL a nikdo vám předtim nevysvětlil co jsou to datové struktury a jak se to řeší, protože ne vše musí být nutně složité ... mluvíš o kardinalitě atd.. ale celé SQL vychází z poznatků předchůdce SQL a to byly systémy jako dBase z 80 a 90 let apod.

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:5950:...–
Jakub
~ Anonymní uživatel
905 příspěvků
23. 12. 2017   #5
-
0
-

#4 Jerry
v zadání jsem dostal jen tohle:

vytvořte databázi a klientskou aplikaci v zadaném modelu reality:

Modely reality:
Sklad zboží - třída zboží, zboží má jen jednu třídu

- použij na vhodném místě transakci

-vytvoř alespon tři dotazy výběr různých atributů (včetně join)

- vytvoř jedno view

tot celé zadání :(

ale tak potřeboval bych pomoc jen s tím konceptuálním modelem, jak asi tak bude vypadat, jelikož to zadání moc nechápu :(

ps. žádný GUID identifikátory jsme ve škole nikdy nedělali :D, jen to SQL a v c sharpu jsme měli jen takový ty základy jako cykly, metody, třídy a skončili jsme u dědičnosti

Nahlásit jako SPAM
IP: 62.141.28.–
Jerry
~ Anonymní uživatel
512 příspěvků
23. 12. 2017   #6
-
0
-

#5 Jakub
aha no tak to máš jednoduchý tak to znamená, že třída zboží je např. spotřební elektronika takže televize, rádia apod. takže uděláš jen nedu tabulku zboží a první sloupec bude číslo skladu, druhý sloupec bude identifikátor zboží (t.j. každé zboří musí dostat jedinečný identifikátor ID nebo GUID) atd...

potřebuješ na to počítač s Windows (asi 7 nebo 10), pak si stáhneš MS VS 2017 a SQL Server Management Studio (MSMS)  ( https://docs.microsoft.com/…-studio-ssms ) a nainstaluješ si to kompletně , to ti zabere podle rychlosti pc tak 4-5 hodin, u MS VS nezapomeneš nainstalovat vše pro vývoj s MS SQL. Stáhni si MSVS 2017 Profi verzi a jestli potřebuješ instalační kod tak ten se zadava až po instalaci ...  že :)

http://appnee.com/microsoft-visual-studio-all-versions-product-keys-collection/

pak spustíš (MSMS) a současně si založíš projekt v C# asi bych doporučoval starý .NET (WinForms) než nový .NET Core. v MSMS si založíš novou databázi včetně jména serveru a hesla a tabulku v ní a do tabulky vyplníš ručně v MSMS např. 30 různých položek zboží např. TV, rádia apod.

no a protože ti MSMS umožňuje vkládat SQL dotazy tak si vložíš např. dotaz Select s vhodnými parametry  aby se ti   zobrazilo vše co máš v tabulce. pak dopíšeš v C# kod na otevření existující databáze a dotaz a získání dat z databáze co si vytořil. mužeš to dělat formou konzolového okna nemusíš nutně vše řešit formou grafických prvků. takže jenom tvuj program v C# bude mít jedno hlavní okno formulář a v něm např 4 buttony a po zmáčknutí buttonu se do okna konzole (příkazem Console.WriteLine) vypíšou výsledky dotazu. Při práci musí být samozřejmě otevřený MSMS a MS VS současně  takže vidíš co se děje....

neni to nic těžkýho bohužel veškerá nápověda na internetu je v AJ, třeba tady .. jak otevřít onu databázi

https://msdn.microsoft.com/en-us/library/fksx3b4f.aspx

nezapomeneš tam dát jméno a heslo !!!! v příkladu to maj bez hesla ...

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:53d:1...–
Jakub
~ Anonymní uživatel
905 příspěvků
23. 12. 2017   #7
-
0
-

#6 Jerry
takže ta tabulka má být jen jedna?

já jen že ostatní spolužíci tam mají vazby 1:N

Nahlásit jako SPAM
IP: 62.141.28.–
Jerry
~ Anonymní uživatel
512 příspěvků
23. 12. 2017   #8
-
0
-

#7 Jakub
no ty si chtěl jen jednu třídu takže sem ti navrhl spotřební elektroniku, Nevim co myslíš vazbou 1:N ?? to je vazba typu jeden zaměstnanec (mám tabulku s více zaměstnanci) řeší N různých úkolů ( mám tabulku s názvy úklolů) ale ty si chtěl sklad zboží, budeš muset konkretizovat ...  to jako více skladníků ? pracuje ve skladu ? no tak to si budeš muset eště vytvořit tabulku skladníku ne ?? ale k čemu ti to bude když dotazy v zadání píšeš jenom na to zboží ???

v tý tabulce první sloupec bude primární klíč tedy ID a přiřazuje se automatickya je to celé číslo, druhý sloupec bych ti doporučoval identifikátor zboží (muže to být např celé šestimístné číslo .nebo již dříve uvedený GUID), další sloupec bych uvedl číslo skladu což v tvém případě bude vždy např..1 - první sklad, další sloupec bude pottřída spotřebního zboží takže si uděláš třeba 1. kuchyňská elektronika, 2 TV, 3 - rádia atd... další sloupec bude jméno takže např. Sony MHC-RG310, další sloupec bude cena atd... to už je na tobě co si uděláš ..

ale tu tabulku si musíš vyplnit ručně v tom MSMS , doporučoval bych tak 30 řádků, to ti zabere asi tak 20 minut. pak už jen vytvoříš SQL dotazy v MSMS a spusitíš je abys zjistil že je še OK, např. dotaz Select * FROM tbl_spotrebni:elektronika;  ti vypíše všech 30 řádků tvojí tabulky, která se menuje tbl_spotrebni:elektronika až budeš mít dotazy odzkoušený v MSMS tak je převedeš do C# to je vše .. nic těžkýho, v C# mužeš napsat kod, který ti vrátí data z SQL tabulky, kod SQL se do C# píše jako textový řetězec, nejprve zašleě dotaz  Select * FROM tbl_spotrebni:elektronika  a dalším příkazem SQL z C# si vyzvedneš data z běžícího SQL serveru to je všechno zas tak složitý to neni ale hodně se divi, že vám tohle nikdo nevysvětlil ... máte to mít v sešitě ... váš pan učitel asi bude pěknej trouba pokud vám to neřek 

tady máš příklad:

https://stackoverflow.com/questions/25739788/select-query-to-get-data-from-sql-server

přiznám se že ted nemám přístup k PC s MSVS mám je takovej "pc-tablet" z roku 2005 :) takže si to budeš muset naprogramovat sám. jo a v C# NEPOUZIVEJ klausuli USING !!!! místo ní dej normální try - catch - finally ... takže  sekvence  SqlDataReader reader = command.ExecuteReader()  bude v sekci try .. což je logický .. no a protože mám vánoce tak du slavit ...
 

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:c847:...–
Jakub
~ Anonymní uživatel
905 příspěvků
24. 12. 2017   #9
-
0
-

#8 Jerry
Takže chápu to správně, že jednu tabulku mám nazvat SKLAD a druhou tabulku MONITORY, které budou reprezentovat třídu zboží a bude mezi nimi vazba 1 : N (v jednom skladu může být více typů monitorů), díky?

Nahlásit jako SPAM
IP: 62.141.28.–
Jerry
~ Anonymní uživatel
512 příspěvků
24. 12. 2017   #10
-
0
-

no jestli to chceš mít takhle roztříštěný tak si to tak udělej ale v reálným světě se dělá jen jedna tabulka SKLAD a do ní de dá sloupec (typ řetězec) klasifikátor (např. 11234567) který sem ti popsal výše to je vše, ale podle zadání nemusíš mít 2 tabulky .. k čemu by ti byla ta druhá ??? pochop že v reálným světě to co cheš nedává smysl ... protože všechno zboží se dává do jedný tabulky a když potřebuješ tak si z ní vyjmeš (rozuměj uděláš kopii) jen data o monitorech a tomu se řiká VIEW a ten si uložíš do jiný nový tabulky ...........ale jestli chceš udělat nějakou druhou tak udělej tabulku typu klasifikátorů t.j. tabulka bude mít třeba 8 sloupců a první sloupec je ID (primární klíč) další sloupec čísla typu 11234567 (klasifikátor zboží) a další sloupce budou popis třídy k danému klasifikátoru, takže sloupec 3 bude spotřební elektrinika u všech řádků protože jinou třídu nemáš (nemáš např zahradní techniku), sloupec 4 bude u některých řádků monitory k PC a u jiných řádků monitory k TV (PAL/NTSC signal), atd... chápeš ??? nemuší nutně používat 8 čísel (11234567) možná ti stačí dvě nebo tři ... ale normálně třeba velkej internetovej obchod má obvykle klasifikátor dlouhý až 12 číslel....

to na co se ptáš to bude nejspíš ten VIEW protože tam bude kardinalita 1:N ale až když vyjmeš data z tabulky SKLAD a vložíš je do nově založený tabulky MONITORY. Pojem kardinalita se vztahuje na nějaký uskutečněný proce výběru (konkrétní prováděná operace s nějakým výsledkem  = je to vlastné název vazby v prováděném procesu zpracování dat který se má vykonat nebo vykonává nebo se již vykonal ), to nemá nic společnýho s nějakou jednou statickou tabulkou co je nahraná někde na serveru a ty se na ni jenom díváš....  kardinalitou popisujež způsob zpracování (obvykle výběru) dat v nějakém konkrétním procesu který vykonává SQL nebo který si naprogramuješ v C#

hele ty mě připadáš jako kdyby si vubec nechodil do školy ...  oni vám to tam neřekli ???? ten váš pan učitel asi musí bejt pěknej mamals co ?  kam že to chodíš ??? nějaká SŠ v praze ?

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:8528:...–
Jakub
~ Anonymní uživatel
905 příspěvků
24. 12. 2017   #11
-
0
-

#10 Jerry

Připojen obrázek.

Co myslíš šlo by to nějak takto?

že za třídu zboží jsem si zvolil monitory

Nahlásit jako SPAM
IP: 62.141.28.–
Jerry
~ Anonymní uživatel
512 příspěvků
25. 12. 2017   #12
-
0
-

#11 Jakub
no vidíš jak ti to de, máš to hezký, jen tak dál :)

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:35f3:...–
Jakub
~ Anonymní uživatel
905 příspěvků
25. 12. 2017   #13
-
0
-

#12 Jerry
dík, takže jsem to pochopil správně? :D

Nahlásit jako SPAM
IP: 62.141.28.–
Jerry
~ Anonymní uživatel
512 příspěvků
25. 12. 2017   #14
-
0
-

ano pochopil si to správně, je to jedna z možností jak danou ulohu vypracovat ....

akorát jak sem psal tak těch položek skladu budeš mustá ručně několik nacvakat ...

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:35f3:...–
Jakub
~ Anonymní uživatel
905 příspěvků
25. 12. 2017   #15
-
0
-

#14 Jerry
a měl bych tam přidat ještě do tabulky monitor nějaký ten klasifikátor  (číselný) a dát ho jako primary key, nebo to stačí jen takto? jj a ještě jsem se chtěl zeptat, jestli tohle schéma splnuje všechny 3 normální formy?

ps. ta škola se jmenuje ječná :D

Nahlásit jako SPAM
IP: 62.141.28.–
Jerry
~ Anonymní uživatel
512 příspěvků
25. 12. 2017   #16
-
0
-

tak podle pravidel 3NF mužeš ještě oddělit adresu skladu a vypelšit tu tabulky monitorů ale jinak to asi bude stačit

https://cs.wikipedia.org/wiki/T%C5%99et%C3%AD_norm%C3%A1ln%C3%AD_forma

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:3855:...–
Jakub
~ Anonymní uživatel
905 příspěvků
25. 12. 2017   #17
-
0
-

#16 Jerry
a tím vylepšit tabulku monitorů tím myslíš přidat tam ještě další sloupce npř: odezva?

Nahlásit jako SPAM
IP: 62.141.28.–
Jakub
~ Anonymní uživatel
905 příspěvků
25. 12. 2017   #18
-
0
-

#17 Jakub
Napadlo mě šlo by do tabulky monitor dát ještě sloupec obrazek, ve kterém by byl uložen obrázek konkretniho monitoru?

Nahlásit jako SPAM
IP: 62.141.28.–
Jakub
~ Anonymní uživatel
905 příspěvků
26. 12. 2017   #19
-
0
-
Nahlásit jako SPAM
IP: 62.141.28.–
Jerry
~ Anonymní uživatel
512 příspěvků
26. 12. 2017   #20
-
0
-

jo to de BMP do SQL batabáze resp. do tabulky dát mužeš

https://stackoverflow.com/questions/6341776/how-to-save-bitmap-in-database

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:f97f:...–
Jerry
~ Anonymní uživatel
512 příspěvků
26. 12. 2017   #21
-
0
-

ten obrázek v tabulce někdo to dělá a někdo ne, ale de to, někdo prostě jen uloží řetězec adresy kde je na serveru obrázek uloženej.

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:f97f:...–
Jakub
~ Anonymní uživatel
905 příspěvků
26. 12. 2017   #22
-
0
-

#20 Jerry
dík tak to pak zkusím, že koukám že ve workbenchi nějaký typ BLOB existuje a obrázek tak muzu nahrat, ale mám problém, nemáš nějaké zkušenosti se C# ?

že já mám knihovnu na mysql, ale vidím jí jen v konzolové aplikaci a já bych chtěl spíš udělat gui aplikaci, nevíš jak můžu tam do toho přidat tu knihovnu?

using MySql.Data.MySqlClient;

Nahlásit jako SPAM
IP: 62.141.28.–
Kit+15
Guru
26. 12. 2017   #23
-
0
-

#22 Jakub
Do databáze se zpravidla dává jen URL obrázku. Významně se tím sníží zátěž databáze i webserveru.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Jerry
~ Anonymní uživatel
512 příspěvků
27. 12. 2017   #24
-
0
-

#22 Jakub
ano GUI se dá udělat řikal sem to v první odpovědi nebo tak nějak, naistaluješ si MS ViusualStudio 2017 a založíš si nový projekt Windows C# .NET WinForms (mužeš i s GUI .NET WPF ale je to náročnější). Mužeš si založit i projekt Windows  C# .NET Core pro windows 10 a vyšší :), ale to je náročnější. Takže si založíš asi nejspíš Windows C# .NET WinForms a v nastavení projektu si dáš startovat do okna console, aby sis moch vypisovat výsledky.

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:cc19:...–
Jerry
~ Anonymní uživatel
512 příspěvků
27. 12. 2017   #25
-
0
-

https://msdn.microsoft.com/cs-cz/library/dd492132.aspx

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:69b2:...–
peter
~ Anonymní uživatel
4014 příspěvků
2. 1. 2018   #26
-
0
-

To zadani je nesrozumitelne. Vratit zadavateli, at napise lepsi verzi. a nebo s nim hodit rec, konkretni otazky.

Sklad je mozna mysleno to, ze resis budovu se skladem. Skladnik.

Skladnika zajima vyrobce, druh zbozi, kolik toho ma na sklade, ...
Eshop zajima totez, kolik mas na sklade, za jakou cenu, odkaz na obrazek, parametry, pripadne dalsi info.

Jednou tridou je mozna mysleno to, ze tam nebudou kategorie. Asi ze pro eshop to bude jedna velka excel tabulka. Kategorie asi bude jen text, jako 'monitory' a ne id.

Nahlásit jako SPAM
IP: 2001:718:2601:258:edab:22...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 16 hostů

Podobná vlákna

Opengl načtení modelu — založil ttt

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý