Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: farigen 21. 12. 2010, 21:50:33

Název: Jak začít s programováním DB?
Přispěvatel: farigen 21. 12. 2010, 21:50:33
ahojte

chcem sa naucit programovat v sql ide mi o to ze neviem z cim zacat doteraz som s sql mal len tzv pasivne skusenosti ze som robil nejake selecty do db, presmerovar som to do rury nejak upravil a ulozil niekde do suboru.
chcem sa naucit vytvarat nejake tabulky trigre atd. neviem s cim mam zacat mysql, oracle sa mi zda v mojom pripade delo na vrabca , este viem ze sa pouziva postresql ...
chcem zacat najpv vo vydlach poradite mi nieco nejake vyvojove prostredie , a teda s cim zacat dakujem
Název: Re: Jak začít s programováním DB?
Přispěvatel: Lukas 22. 12. 2010, 00:57:12
Mno, nejsem nijak extra pokrocily, SQL netvori hlavni napln me prace, ale ze svych zkusenosti ti muzu doporucit MySQL nebo MS SQL.

K MySQL jsem nasel daleko vic clanku s tutorialy nez k MS SQL, Postgre. Navic se k nemu snaz hledaji free vyvojove nastroje na design tabulek atd. K nauceni designovani databazi, zjisteni k cemu sou triggers, procedury, views, clustering, indexy atd. mi to prijde jako nejlepsi volba. Pokud programujes pod linuxem tak muzes rovnou prestat cist dal protoze MS SQL tu hadam nejde =)

MS SQL ma na sve strane podobnou vyhodu v podobe dobre dokumentace na MSDN a slusneho mnozstvi prikladu, navic MS nabizi v ramci Express edic Visual studia i Express edici MS SQL a obsahuje knihovny pro praci s DB hned v zakladu, neni treba je shanet. Nicmene vetsina zajimavych nastroju je z pochopitelnych duvodu soucasti placenych verzi Visual Studia, takze tady nvm cim si ulehcit napriklad tvorbu ER diagramu atd.
Název: Re: Jak začít s programováním DB?
Přispěvatel: Pavel Stěhule 22. 12. 2010, 06:31:50
ahojte

chcem sa naucit programovat v sql ide mi o to ze neviem z cim zacat doteraz som s sql mal len tzv pasivne skusenosti ze som robil nejake selecty do db, presmerovar som to do rury nejak upravil a ulozil niekde do suboru.
chcem sa naucit vytvarat nejake tabulky trigre atd. neviem s cim mam zacat mysql, oracle sa mi zda v mojom pripade delo na vrabca , este viem ze sa pouziva postresql ...
chcem zacat najpv vo vydlach poradite mi nieco nejake vyvojove prostredie , a teda s cim zacat dakujem
Nejlepším vývojovým prostředím je tužka a papír - pokud se chcete něco naučit. Dokud jsem používal různé designery (tabulek a dotazů), tak jsem se SQL a db nenaučil. Chce to praxi, bez té to nejde - jeden nebo dva, možná deset projektů na úrovni junior a snažit se vyřešit problémy jak to jen jde nejlépe. Pokud chcete začínat s MySQL, tak bacha, přepněte si ji na ANSI SQL compatible režimu, a hromada dokumentace a různých rad, které najdete na netu mají zápornou informační hodnotu! Jinak je do jisté míry jedno, čím začnete. Oracle je opravdu kanón, kdy dá docela dost práce jen db nainstalovat, ale můžete začít např. Oraclem XE. Postgresem také nic nezkazíte.
Název: Re: Jak začít s programováním DB?
Přispěvatel: MalyTomi 22. 12. 2010, 06:41:53
Este by som odporucil Firebird, bezi to win/lin a pre win je su aj gui nastroje (napr. Ems IB manager, ktory ponukaju aj vo verzii free)
Název: Re: Jak začít s programováním DB?
Přispěvatel: Cpt.Nemo 22. 12. 2010, 08:36:10
Mno zacal bych free verzi MS SQL a k tomu si pribral PostgreSql. Tyhle dva servery jsou pomerne rozdilne, takze se naucite zit ve 2 rozdilnych DB svetech, coz berte jako pripravu na realny svet ;D. Mno a pak si prihodit z povinnosti mySQL. Dokumentace ke vsem serverum je velmi dobra, asi nejlepsi je k MS SQL. Ta je vyborna jak Off, tak On/line.
Název: Re: Jak začít s programováním DB?
Přispěvatel: Petr 22. 12. 2010, 09:56:39
Souhlasim, ze MS SQL ma velmi dobre zazemi co se tyce dokumentace a obavam se , ze MSDN se nemuze vubec rovnat dokumentaci k MySQL. Management Studio je pomerne kvalitni nastroj a dobre se v nem pracuje. Kdyz musim neco patlat v phpMyAdmin, tak bych brecel.
Oracle nedoporucuju ani XE, je to dost komplikovane a Oracle ma KB jenom pro ty, co zaplati - informaci zadarmo zase tolik neni. I kdyz perspektivne by to byla asi nejlepsi volba...
Název: Re: Jak začít s programováním DB?
Přispěvatel: Pavel Stěhule 22. 12. 2010, 10:34:11
Souhlasim, ze MS SQL ma velmi dobre zazemi co se tyce dokumentace a obavam se , ze MSDN se nemuze vubec rovnat dokumentaci k MySQL. Management Studio je pomerne kvalitni nastroj a dobre se v nem pracuje. Kdyz musim neco patlat v phpMyAdmin, tak bych brecel.
Oracle nedoporucuju ani XE, je to dost komplikovane a Oracle ma KB jenom pro ty, co zaplati - informaci zadarmo zase tolik neni. I kdyz perspektivne by to byla asi nejlepsi volba...
Dokumentace k Oracle je také - to co není k dispozici je něco na způsob knowleadge base, což se hodí spíš pro praxi, zvlášť u MS, rady proč něco nechodí ač by to chodit mělo, a v jakém a jak fixovat tuhle db jsou nedocenitelné. Začátečník je ale asi neocení. Hodně záleží jakým způsobem chce člověk databázi používat a k čemu inklinuje. Každá ze zmiňovaných db se používá trochu jinak, a asi si to chce vyzkoušet všechny. Ohledně dokumentace, tak vyjma Firebirdu lze najít free relativně kvalitní dokumentaci +/- s relativně silnými nebo slabými místy - např. o low level programování pro MS SQL se toho moc nedozvíte. Někde lze dohledat porovnání např. MSSQL a PostgreSQL - k tomu se nechci vracet. Já jsem třeba začínal na MSSQL  a Visual Basicu a z dokumentace a tutoriálů Microsoftu se SQL nenaučíte - neb priorita pro ně je tvorba GUI a spojení s vývojovými prostředky - místo toho, aby Vám pořádně vysvětlili LEFT JOIN tak se hodiny věnují query builderu a parametrizaci komponent. Takže záleží na přístupu.
Název: Re: Jak začít s programováním DB?
Přispěvatel: Tomáš 22. 12. 2010, 11:33:03
Taky lze zkusit
http://www.sybase.com/detail?id=1016644http://www.sybase.com/detail?id=1016644 (http://www.sybase.com/detail?id=1016644)

Sybase má celkem pokročilé věci kolem replikací, což je nyní v módě. Můžete si vytvořit databázi pro smartphone a replikovat jí s hlavní databází ve firmě apod. Samozřejmě, že toto je vyšší dívčí :-) Navíc, Sybase byla koupena SAPem, takže by se dalo říci (se zamhouřením všech očí, i kuřích), že její znalost Vás může katapultovat mezi nejlépe placené vývojáře.
Název: Re: Jak začít s programováním DB?
Přispěvatel: Franta Kučera 22. 12. 2010, 11:59:52
Začal bych obecnou teorií, P3A (princip tří architektur), kouknout na ERD a UML, přečíst si nějakou knížku, začít si čmárat na papír, přemýšlet o návrhu… A jestli zvolit tu nebo onu implementaci SŘBD bys měl řešit až úplně nakonec.

Je jasné, že to člověk moc dlouho nevydrží takhle nasucho a chce si vyzkoušet, co se naučil – v tom případě bych doporučoval MySQL (kvůli rozšířenosti, hlavně na webu) a PostgreSQL (kvůli lepším možnostem, funkcionalitě). Oboje jsou svobodný software, což kromě jiného znamená, že až se rozkoukáš a budeš chtít nad databází stavět něco většího a třeba i výdělečného, nemusíš řešit nějaké licenční poplatky (a vyhneš se nepříjemnému prozření, kdy ti najednou bezplatná verze nesvobodného DBMS přestane stačit a musíš platit – nebo se začít učit něco jiného a přepisovat systém).

P.S. a kdybys potřeboval ještě něco k SQL dotazům, udělám si reklamu: https://sql-vyuka.cz/d/node/18 :-)
Název: Re: Jak začít s programováním DB?
Přispěvatel: Logik 22. 12. 2010, 12:05:50
Ehm, doporučovat k učení MySQL? Proč? Kdo umí pořádnou databázi, nebude mít s peučením na MySQL problémy. Ale proč se kazit takovými "zvěrstvy" jako jeden trigger na tabulku, enginy, kde v každém funguje něco, ale není žádný, kde by fungovalo  všechno (fulltext, transakce)?
 
Název: Re: Jak začít s programováním DB?
Přispěvatel: mishino 22. 12. 2010, 15:00:36
Ja by som ti odporucil pozriet sa na oracle a venovat sa aj pl/sql, nielen SQL dotazom.
Název: Re: Jak začít s programováním DB?
Přispěvatel: Oliver 22. 12. 2010, 18:51:04
Z tohto sa to naucis velmi kvalitne za 1-2 dni... a zadarmo

http://www.sqlcourse.com/index.html
Název: Re: Jak začít s programováním DB?
Přispěvatel: mikrom 22. 12. 2010, 23:16:44
Dalsou alrenativou je DB2 Express-C:
http://www-01.ibm.com/software/data/db2/express/ (http://www-01.ibm.com/software/data/db2/express/)
Název: Re: Jak začít s programováním DB?
Přispěvatel: Logik 23. 12. 2010, 00:04:21
Za jeden až dva dny se naučí tak základy SQL. Naučit se alespoň trochu rozumně používat takový věci jako triggery, rekurzivní dotazy (with recursive () select), window funkce atd... che trochu víc času.

A naučit se správnej design databáze chce zároveň znát trochu teorii (alespň normální formy, nejlépe relační algebru) a nemálo praxe...
Název: Re: Jak začít s programováním DB?
Přispěvatel: Tomáš Vondra 23. 12. 2010, 14:31:19
IMHO je potřeba oddělit dvě roviny - teorii a její použití v praxi.

Teorii, zejména co se týká základů relační algebry a konceptů, to se ze žádného konkrétního produktu naučit nelze. Bohužel se to hodně podceňuje, spousta lidí rovnou skočí do nějakého produktu, nikdy si tuto díru ve znalostech neuvědomí a uniká jim část konceptů a principů - což následně vede k všelijakým prasárnám (dámy prominou). Bohužel na teorii moc knížek neseženeš, a když seženeš tak jsou to vesměs über-teoretické bichle. Výborná jsou skripta od Halašky z FELu - má to cca 100 stránek, pěkně to shrnuje teorii i nějaké praktické základy. Stávalo to pár korun, k dostání to bylo ve skriptárně v Dejvicích.

Co se týká praxe, pro úplné začátky použij to co je nejjednodušeji dostupné. Není tvým cílem tři hodiny instalovat DB, cílem je učit se SQL. Ale počítej s tím že každá databáze má svoje "specifika" - pověstná tím bývala MySQL ale v ANSI režimu to údajně není tak hrozné. Osobně mám k MySQL spoustu výhrad, ale pro účely učení to asi není až tak špatná volba.
Název: Re: Jak začít s programováním DB?
Přispěvatel: Logik 23. 12. 2010, 15:14:09
MySQL stačí tak na úplný základy SQL - tam totiž stačí cokoli.
Na triggery atd. už ne, tam už to má natolik "zprasený", že to jen učí blbejm návykům. Autentizaci alá mysql jsem taky nikdy nepřišel na chuťm ale dejme tomu. Check constraints co vím taky nefunguje. Atd.... Jediný plus mysql je vcelku snadná instalace, ale tu má už dneska postgresql nebo firebird taky.
Název: Re: Jak začít s programováním DB?
Přispěvatel: jk 23. 12. 2010, 15:31:43
IMHO je potřeba oddělit dvě roviny - teorii a její použití v praxi.

Teorii, zejména co se týká základů relační algebry a konceptů, to se ze žádného konkrétního produktu naučit nelze. Bohužel se to hodně podceňuje, spousta lidí rovnou skočí do nějakého produktu, nikdy si tuto díru ve znalostech neuvědomí a uniká jim část konceptů a principů - což následně vede k všelijakým prasárnám (dámy prominou).

mozna by se mel (nejen) OP nejdriv zamyslet nad tim, proc jste pouzil to spojeni spousta lidí . Proc jste nepouzil malokdo, vyjimecne ...
Název: Re: Jak začít s programováním DB?
Přispěvatel: anonym 23. 12. 2010, 16:13:47
Ja bych jen chtel rict, ze pojmem DB ci slovu databaze se nemusi jen skryvat relacni databaze...
Název: Re: Jak začít s programováním DB?
Přispěvatel: Logik 23. 12. 2010, 17:48:24
Jenže s jinýma databázema se IMHO neni moc co učit.... Pokud pominu různé objektové a xml databáze, které se prakticky nepoužívají, tak zbývají jen noSql databáze - a na nich v podstatě není co k učení :-). To je jen o málo chytřejší filesystém - a ještě jsem nikoho neslyšel říkat, naučte mě pracovat se soubory....
Název: Re: Jak začít s programováním DB?
Přispěvatel: eronlines 23. 12. 2010, 19:41:35
Dobrý den,

Řešim podobnou věc jako autor tématu. Mam nějaký zkušenosti s firebirdem v kombinaci s PHP. Dokumentace je imho dostatek (Kniha od Císaře, na google groups, IBPhoenix...). Takže nějakou tu terminologii znám, o architektuře SŘBD mam taky ponětí. V administračních nástrojích se orientuju. Používat jednodušší SQL dotazy umim. (SELECT, INSERT, UPDATE, JOIN, transakce, atp.)

Chci se naučit nějakou technologii víc do hloubky a následně ji využívat jak pro webové tak pro desktopové aplikace. Primární platforma je Windows, ale Linuxu se nebránim. Tušim že bych se měl učit: modelování a návrh DB, triggery, UDF.

Myslim že je FirebirdSQL super. Jenže má jednu velkou nevýhodu. A to je podpora na hostingách. MySQL se mi zdá jako krok zpět, o PostreSQL toho moc nevim, ale letem světem jsem se dočetl že neni moc výkonný.

Takže který systém je podle vás vhodnější kompromis, FirebirdSQL, nebo PostgreSQL?
Název: Re: Jak začít s programováním DB?
Přispěvatel: backup 23. 12. 2010, 20:11:48
.. modelovani, navrh ...

si vzdy vzpomenu na ten fantasticky film 'Bajecni muzi na letajicich strojich' a na tu scenku, kdy velitel predcita pred skupinou vojaku cisaruv rozkaz:

'narizuji, ze zavod Londyn - Pariz musi vyhrat rakousky dustojnik'

A vybrany distojnik se pta, jak se nauci letat.

'no prece z vojenske prirucky' ... zni odpoved.
Název: Re: Jak začít s programováním DB?
Přispěvatel: Pavel Stěhule 23. 12. 2010, 20:18:12
Dobrý den,

Řešim podobnou věc jako autor tématu. Mam nějaký zkušenosti s firebirdem v kombinaci s PHP. Dokumentace je imho dostatek (Kniha od Císaře, na google groups, IBPhoenix...). Takže nějakou tu terminologii znám, o architektuře SŘBD mam taky ponětí. V administračních nástrojích se orientuju. Používat jednodušší SQL dotazy umim. (SELECT, INSERT, UPDATE, JOIN, transakce, atp.)

Chci se naučit nějakou technologii víc do hloubky a následně ji využívat jak pro webové tak pro desktopové aplikace. Primární platforma je Windows, ale Linuxu se nebránim. Tušim že bych se měl učit: modelování a návrh DB, triggery, UDF.

Myslim že je FirebirdSQL super. Jenže má jednu velkou nevýhodu. A to je podpora na hostingách. MySQL se mi zdá jako krok zpět, o PostreSQL toho moc nevim, ale letem světem jsem se dočetl že neni moc výkonný.

Takže který systém je podle vás vhodnější kompromis, FirebirdSQL, nebo PostgreSQL?

Když jsem naposledy testoval Firebird a PostgreSQL tak mezi nimi byly minimální rozdíly - a není se co divit. Hrdlo je čtení a zápis na disk, které se projeví u jednodušších dotazů. U složitějších dotazů má PostgreSQL navrch. Co se týče rychlosti, tak hodně záleží na interface, které používáte. BDE komponenty jsou vyladěné pro Interbase, tudíž i Firebird a volně dostupné komponenty pro PostgreSQL jsou horší. Musí se použít nativní komponenty, které obchází BDE.

K Vaší otázce. musíte napsat pro co je ta či ona db vhodnější kompromis. Obě db se od sebe docela dost liší, a v něčem jsou si zase docela podobné. Firebird je docela dobrá db pro jednoduchá, podvojná účetnictví pro malé firmy. Nemusí se instalovat a běží s minimální režií. PostgreSQL se používá spíš na větší projekty - nabízí větší komfort a lepší výkon při velké zátěži. Kromě jiného PostgreSQL podstatně lépe pokrývá ANSI SQL 200x, nabízí větší komfort pro psaní uložených procedur, obejde se bez obslužných knihoven. Na druhou stranu nepodporuje COLLATEs a také třeba uložené procedury někdo nepoužívá. Takže vždy záleží na použití. Každá z těch db má dost odlišnou cílovou skupinu, která dost odlišně používá db.
Název: Re: Jak začít s programováním DB?
Přispěvatel: eronlines 23. 12. 2010, 21:53:37
Když vezmu v úvahu pouze technologie které znám teď, tak můžu využívat buďto firebirda přez nativní knihovnu v PHP (gds32.dll, nebo novější fbclient.dll), anebo z C# přez nativní Firebird ADO.NET Data Provider v.2.5.0.

Pro následující srovnání berme v úvahu firebird architekturu super server...
"lepší výkon při velké zátěži" takže dokáže obsloužit na stejném HW více požadavků ve stejném čase?

Množství diskových I/O operací má co nejvíc omezit cache (třeba pro často opakované jednoduché selecty). Je nějaký zásadní rozdíl v implementaci cache?

Firebird je poměrně nenáročný na RAM. Jak je na tom postgre?

Co máte přesně na mysli tou režií? Data "navíc" která se přenášejí mezi klientem a serverem? Postgre má podle vás režii větší?

No vypadá to že si o Postgre budu muset sehnat nějakou literaturu...
Název: Re: Jak začít s programováním DB?
Přispěvatel: Pavel Stěhule 23. 12. 2010, 22:35:01
No primárně PostgreSQL lépe pracuje se shared memory v SMP architektuře. Aktuálně Firebird v Super Server čeká na zámcích. Což by ovšem mělo být odstraněno v 2.5 Firebirdu, možná v budoucí 3.0. K tomu má pg několik triků - např. synchronizaci SQL dotazů. Takže na jedním čtením z disku, cache lze obsloužit více uživatelů.

Ohledně paměti - tam si asi vezme PostgreSQL víc, ale je potřeba oddělit paměť pro vlastní běh - zásobník, halda a pak paměť pro datové operace - work_mem a shared_buffers. Ta první paměť se pohybuje do stovek kb, work_mem a shared_buffers přesně jak nakonfigurujete - tudíž spíš v MB nebo GB. A tak nemá moc cenu řešit velikost zásobníku, neb work_mem a shared_buffers jsou řádově větší - tam jde o to, aby neprobíhal external sort. Případně aby se data držela co nejdéle v cache. Hodně záleží s jakými daty se pracuje. Mohu Pg nakonfigurovat a rozjet na stroji s 16MB paměti zrovna tak s 128GB. Ale takové minimum jako má Firebird pg nemá. Rozhodně se nepoužívá v mobilech nebo do tanku :).
Název: Re: Jak začít s programováním DB?
Přispěvatel: Tomáš Vondra 24. 12. 2010, 17:01:57
IMHO je potřeba oddělit dvě roviny - teorii a její použití v praxi.

Teorii, zejména co se týká základů relační algebry a konceptů, to se ze žádného konkrétního produktu naučit nelze. Bohužel se to hodně podceňuje, spousta lidí rovnou skočí do nějakého produktu, nikdy si tuto díru ve znalostech neuvědomí a uniká jim část konceptů a principů - což následně vede k všelijakým prasárnám (dámy prominou).

mozna by se mel (nejen) OP nejdriv zamyslet nad tim, proc jste pouzil to spojeni spousta lidí . Proc jste nepouzil malokdo, vyjimecne ...
Nejsem si jist jak mám váš komentář interpretovat, jestli jako souhlas nebo nesouhlas s tím mým :(

Každopádně můj názor je že je fajn si nejdříve ošahat základy technologie - a je úplně jedno jestli to je MySQL, SQLite nebo DB2, protože různé advanced vlastnosti v dané fázi dotyčný neocení, a pak se pustit do té teorie. IMHO je pak jednodušší za tou teorií vidět konkrétní význam. No a pak zase k nějakému tomu produktu a učit se složitější věci. Pochopitelně to není striktně oddělené, ty "fáze" se prolínají. Ale je to můj osobní názor, někomu zase může vyhovovat nejdřív našprtat teorii a až pak se pustit do praktických pokusů ...

Každopádně těch lidí kteří nejsou "postižení" znalostí teorie je skutečně hodně, často to vede například k tomu že za standard pokládají chování konkrétního produktu, bez ohledu na jeho nesmyslnost, atd. O tom že terminologii používají velmi volně raději ani nemluvě. A když takový člověk napíše knížku, je to vesměs velmi smutné čtení - před časem se mi například dostala do ruky kniha ve které autor zcela vážně tvrdil že označení "relační" znamená že databáze dokáže zachytit vztahy (anglicky "relations") mezi tabulkami. Takovou knihu doporučuji zabalit do igelitu aby nekontaminovala okolí a velkým obloukem zahodit.
Název: Re: Jak začít s programováním DB?
Přispěvatel: Tomáš Vondra 24. 12. 2010, 17:20:46
Chci se naučit nějakou technologii víc do hloubky a následně ji využívat jak pro webové tak pro desktopové aplikace. Primární platforma je Windows, ale Linuxu se nebránim. Tušim že bych se měl učit: modelování a návrh DB, triggery, UDF.
Budu se opakovat, ale zkuste si sehnat ta skripta od Halašky. Základy modelování (Entity-Relationship Diagramy apod.), normální formy, normalizace, denormalizace - to všechno je tam poměrně pěkně vysvětleno. Autor tomu rozumí a navíc je to česky, což je na začátku velká výhoda.

Myslim že je FirebirdSQL super. Jenže má jednu velkou nevýhodu. A to je podpora na hostingách. MySQL se mi zdá jako krok zpět, o PostreSQL toho moc nevim, ale letem světem jsem se dočetl že neni moc výkonný.
To s tím výkonem (že je PostgreSQL pomalý) je takový vousatý stereotyp. Kdysi dávno se říkalo že MySQL je rychlá ale nespolehlivá, PostgreSQL je spolehlivý ale pomalý. MySQL si netroufám komentovat, nepožívám ji intenzivně, nicméně u PostgreSQL se situace radikálně změnila. Dovolím si ocitovat tabulku uvedenou v nové knížce od Grega Smithe, kde srovnává verze od 8.0 do 8.4:

vezepeak (read-only) TPSnumber of clients (at peak)
8.0.2112564
8.1.17562014
8.2.13810918
8.3.71398422
8.4.11356922
z čehož je vidět že tam je řádový nárust výkonu. Ale uznávám že to je syntetický benchmark, v praktickém nasazení se to může lišit (a to na obě strany!).

Co se týká sdílených hostingů s PostgreSQL, v ČR je situace žalostná - vesměs jsou to hodně staré verze (např. 8.1), zhusta zcela nevytuněné. Takže jedinou možností je buď vlastní server (byť VPS), nebo zahraničí (ale pak to zase nebude v NIXu).

Takže který systém je podle vás vhodnější kompromis, FirebirdSQL, nebo PostgreSQL?
Bohužel neznám Firebirda dostatečně dobře abych na to dokázal odpovědět. Ale pokládám to za zajímavou alternativu o které bych se rád dozvěděl víc - i z tohoto důvodu jsme se s Jiřím Císařem domluvili že na letošním P2D2 bude mít o Firebirdu přednášku.
Název: Re: Jak začít s programováním DB?
Přispěvatel: jk 26. 12. 2010, 20:05:14
IMHO je potřeba oddělit dvě roviny - teorii a její použití v praxi.

Teorii, zejména co se týká základů relační algebry a konceptů, to se ze žádného konkrétního produktu naučit nelze. Bohužel se to hodně podceňuje, spousta lidí rovnou skočí do nějakého produktu, nikdy si tuto díru ve znalostech neuvědomí a uniká jim část konceptů a principů - což následně vede k všelijakým prasárnám (dámy prominou).

mozna by se mel (nejen) OP nejdriv zamyslet nad tim, proc jste pouzil to spojeni spousta lidí . Proc jste nepouzil malokdo, vyjimecne ...
Nejsem si jist jak mám váš komentář interpretovat, jestli jako souhlas nebo nesouhlas s tím mým :(

je to nesouhlas. Modelovani a navrh se nelze naucit, zrovna tak jako se neni mozne naucit zpivat jak Gott a nebo kreslit jako Picasso. Je to vyhrazeno jen male skupine populace a takovi lide by se urcite neptali, jak se naucit programovat DB, to uz davno nejak intuitivne vedi.

'Zprasene' navrhy nejsou podle me tedy vysledkem nezajmu o teorii, ale pouze vestavena vlastnost relacnich systemu. K tomu, aby optimalne ty systemy fungovaly je nutne, aby znacna cast pracovniku mela ty 'nadlidske' schopnosti. Protoze to v lidske spolecnosti nelze dosahnout, musite pak k tem 'nefunkcim' aplikacim prijit Vy, pan Stehule nebo par dalsich, kteri se s tim vyznaji a musite to opravit. To by vlastne pro ty schopne nebylo tak spatne, ale i pro ne ma den jen 24 hodin.

Název: Re: Jak začít s programováním DB?
Přispěvatel: Tomáš Vondra 26. 12. 2010, 21:30:26
je to nesouhlas. Modelovani a navrh se nelze naucit, zrovna tak jako se neni mozne naucit zpivat jak Gott a nebo kreslit jako Picasso. Je to vyhrazeno jen male skupine populace a takovi lide by se urcite neptali, jak se naucit programovat DB, to uz davno nejak intuitivne vedi.

'Zprasene' navrhy nejsou podle me tedy vysledkem nezajmu o teorii, ale pouze vestavena vlastnost relacnich systemu. K tomu, aby optimalne ty systemy fungovaly je nutne, aby znacna cast pracovniku mela ty 'nadlidske' schopnosti. Protoze to v lidske spolecnosti nelze dosahnout, musite pak k tem 'nefunkcim' aplikacim prijit Vy, pan Stehule nebo par dalsich, kteri se s tim vyznaji a musite to opravit. To by vlastne pro ty schopne nebylo tak spatne, ale i pro ne ma den jen 24 hodin.

S tím že by se modelování a návrh nešlo naučit nesouhlasím - netvrdím že každý je "natural born designer" ale na druhou stranu to není žádná raketová věda. Z větší části jsou to relativně jednoduchá pravidla která rychle "přechází do krve" ale samozřejmě je i pár oblastí kde je to tak asi není. Osobně si myslím že je to spíš o impulsech a vnitřní motivaci, nikoliv o tom že by to vývojáři nebyli schopni intelektuálně zvládnout.

Vemte si třeba normální formy - to je věc o které by měl mít ponětí každý DB vývojář. Ne, netvrdím že je nutné umět z hlavy přesnou definici jednotlivých normálních forem, ale vědět k čemu jejich porušení vede apod. Spousta vývojářů bohužel bere např. aktualizační anomálie jako nutné zlo, nenapadne je že vhodnou dekompozicí se jim lze vyhnout apod.

A nemohu mluvit za Pavla, ale pro mne opravování "zaprasených" návrhů představuje jednu z nejhorších forem mučení ...
Název: Re: Jak začít s programováním DB?
Přispěvatel: Pavel Stěhule 26. 12. 2010, 22:39:18
IMHO je potřeba oddělit dvě roviny - teorii a její použití v praxi.

Teorii, zejména co se týká základů relační algebry a konceptů, to se ze žádného konkrétního produktu naučit nelze. Bohužel se to hodně podceňuje, spousta lidí rovnou skočí do nějakého produktu, nikdy si tuto díru ve znalostech neuvědomí a uniká jim část konceptů a principů - což následně vede k všelijakým prasárnám (dámy prominou).

mozna by se mel (nejen) OP nejdriv zamyslet nad tim, proc jste pouzil to spojeni spousta lidí . Proc jste nepouzil malokdo, vyjimecne ...
Nejsem si jist jak mám váš komentář interpretovat, jestli jako souhlas nebo nesouhlas s tím mým :(

je to nesouhlas. Modelovani a navrh se nelze naucit, zrovna tak jako se neni mozne naucit zpivat jak Gott a nebo kreslit jako Picasso. Je to vyhrazeno jen male skupine populace a takovi lide by se urcite neptali, jak se naucit programovat DB, to uz davno nejak intuitivne vedi.

'Zprasene' navrhy nejsou podle me tedy vysledkem nezajmu o teorii, ale pouze vestavena vlastnost relacnich systemu. K tomu, aby optimalne ty systemy fungovaly je nutne, aby znacna cast pracovniku mela ty 'nadlidske' schopnosti. Protoze to v lidske spolecnosti nelze dosahnout, musite pak k tem 'nefunkcim' aplikacim prijit Vy, pan Stehule nebo par dalsich, kteri se s tim vyznaji a musite to opravit. To by vlastne pro ty schopne nebylo tak spatne, ale i pro ne ma den jen 24 hodin.


Zprasené návrhy jsou výsledkem nezkušenosti, neznalosti a "poddajnosti". Ono se to poddá, nebrání a ve většině případů na to nikdo nepřijde. Navíc, v reálném životě, když se něco nepovede, tak se to za nějaký čas předělá nebo po opotřebení zahodí. Což u sw neplatí. Akorát mizerně navržený sw otravuje život programátorům a někdy i uživatelům. Ale "prasení" není jen záležitost relačních db, prasí se domy, zákony, silnice, ... Technologie jsou v tom nevinně. Programování je řemeslo. Člověk se musí spálit, musí mít dobré učitele, musí chtít se učit, a musí mít příležitost se učit a musí chtít dělat věci dobře. No a pak můžete dělat dobrý věci. Je důležité, aby člověk věděl jak to funguje, aspoň zhruba, aby nějaká část pro něj nebyla černá skříňkaA pokud máte k tomu talent, tak můžete dělat lepší než dobré věci. Myslím si, že analytikem se člověk musí narodit - jeden z mých profesorů říkával, že člověk musí umět myslet za roh, vidět souvislosti, umět poznat, co je důležité a co není, umět to vykomunikovat, protože každý si myslí, to co dělá on je důležité, ... nicméně relační db se dají naučit - minimálně na úroveň "dobře", když je vůle.