Fórum Root.cz
Práce => Studium a uplatnění => Téma založeno: nobody 16. 01. 2016, 17:28:34
-
Ahoj dobří lidé,
existuje spousta projektů, na učení se programování na "reálných" / "rozumných" úkolech (codeacademy, code.org a dalsi). Znáte něco na SQL? Když v práci/ve škole dostanu nějaký data a otázku, kde řešení je napsat na to SQL dotaz. Problém je, že otázka bývá docela složitá a pak sqlko docela dlouhý. Nejde o to, že neumím group by nebo heaving ale když ten problém je dlouhej a komplikovanej, tak nemám úplně zkušenosti jako problém dekomponovat, a řešit.
-
Nejlépe si nainstalovat vlastní DB server, spustit si konzoli a zkoušet, co všechno to snese. Po každém dotazu dostaneš ihned odpověď, takže hned vidíš, co bylo a co nebylo správně.
-
rozdíl mezi project euler a nainstalovat si server a zkouset to je v tom, ze u eulera jedu od nejlehciho po nejslozitejsi a mam nad sebou vedei. kdezdo druhy zpusob vyzaduje sehnat rozumna data, nalit je do db (zatim v pohode) ale pak vymejslet rozumne otazky a psat na ne sql. a trening / uceni chapu jako moznost zobrazit si spravne reseni, nebo optimalni reseni - taky bych se chtel vypracovat k psani rychleho a efektivniho sql
-
Budu tady mozna ukamenovan, ale ono to nejde zkouset primo v praci na skutecnych problemech? I za cenu toho, ze holt pujdes domu pozdeji a zkusis si to zadarmo pres cas?
-
Nejlepší to má v bance. Tam rovnou může projíždět, kolik kdo bere a určitě budou všichni nadšení :D Nevím, jestli jsi myslel, že pracuje ve startupu, kde je MySQL na PC šéfa a na tom jede všechno, ale normálně to zase tak jednoduché není.
-
Nejlepší to má v bance. Tam rovnou může projíždět, kolik kdo bere a určitě budou všichni nadšení :D Nevím, jestli jsi myslel, že pracuje ve startupu, kde je MySQL na PC šéfa a na tom jede všechno, ale normálně to zase tak jednoduché není.
V bance zase máš několik dalších databází pro takové experimenty. Nemůžeš chtít po vývojáři, aby si své aplikace neměl na čem řádně otestovat a rovnou ji nasadil naostro.
-
Znáte něco na SQL? Když v práci/ve škole dostanu nějaký data a otázku, kde řešení je napsat na to SQL dotaz.
Vůbec ses nezmínil, které SQL, tedy konkrétně kterou databázi máš na mysli. Každá má totiž jiné rozšíření proti základu SQL a mnohé z nich ho ani nesplňují celý.
-
http://sqlzoo.net/wiki/SQL_Tutorial (jakmile zvladnete z hlavy ty pokrocile priklady uvedene dole, tak si muzete bez ostychu zacit rikat SQL guru; ja osobne jsem nejeden z nich nedal a musel jsem se nechat inspirovat jejich resenim :().
Off topic: Na tech pokrocilych prikladech je krasne videt, ze SQL standard je velice nepodareny (a implementace od implementace se vyrazne lisi, takze jiz i pro stredne komplexni programy nelze psat ciste SQL a musi se "ifdefit") a samotne SQL je dost spatne navrzeny koncept (ma hrozne moc der a ani zdaleka nesplnuje dnesni pozadavky). Ani plne relacni databaze (napr. http://shark.armchair.mb.ca/~erwin/) nejsou vselek (v cem vsem je SQL slabe/nepouzitelne a jako to pripadne resit vcetne diskuze o plne relacnich jazycich lze nalezt v diskuzich pod ruzne zanorenymi odkazy na http://c2.com/cgi/wiki?StructuredQueryLanguage), a tak osobne sazim na Datalog-based databaze (napr. http://docs.datomic.com/query.html nebo FLOSS in-memory varianta https://github.com/tonsky/datascript), ktere resi snad vsechny stavajici technicke problemy databazi a zadne nove problemy mi nejsou zname.
-
http://sqlzoo.net/wiki/SQL_Tutorial (jakmile zvladnete z hlavy ty pokrocile priklady uvedene dole, tak si muzete bez ostychu zacit rikat SQL guru; ja osobne jsem nejeden z nich nedal a musel jsem se nechat inspirovat jejich resenim :().
Off topic: Na tech pokrocilych prikladech je krasne videt, ze SQL standard je velice nepodareny (a implementace od implementace se vyrazne lisi, takze jiz i pro stredne komplexni programy nelze psat ciste SQL a musi se "ifdefit") a samotne SQL je dost spatne navrzeny koncept (ma hrozne moc der a ani zdaleka nesplnuje dnesni pozadavky). Ani plne relacni databaze (napr. http://shark.armchair.mb.ca/~erwin/) nejsou vselek (v cem vsem je SQL slabe/nepouzitelne a jako to pripadne resit vcetne diskuze o plne relacnich jazycich lze nalezt v diskuzich pod ruzne zanorenymi odkazy na http://c2.com/cgi/wiki?StructuredQueryLanguage), a tak osobne sazim na Datalog-based databaze (napr. http://docs.datomic.com/query.html nebo FLOSS in-memory varianta https://github.com/tonsky/datascript), ktere resi snad vsechny stavajici technicke problemy databazi a zadne nove problemy mi nejsou zname.
Datalog je mnohem snazší na pochopení, ale SQL je na některé úlohy lepší.
-
Datalog je mnohem snazší na pochopení, ale SQL je na některé úlohy lepší.
Zatim jsem se s zadnou takovou ulohou nesetkal a ani me teoreticky zadna takova nenapada :( Docela by me to zajimalo (castecne strkam nos do vyzkumu o databazich) - mate nejake priklady uloh, kde je SQL lepsi?
Jinak ohledne pochopeni SQL myslim, ze ciste relacni usporadani a algebra je vyrazne snazsi na pochopeni nez Datalog (jeste aby ne, vyjadrovaci schopnost Datalogu je silnejsi nez relacni algebry), ale SQL ma tolik vyjimek a divnych konstrukci apod., ze s vami mohu souhlasit, ze Datalog je z hlediska nauceni se (nikoliv pochopeni "co a proc se deje na pozadi") snazsi nez SQL. To jen tak pro uplnost, protoze co me zajima jsou ty ulohy, pro ktere je SQL "lepsi" (tedy neporovnavame samotne jazyky Datalog a SQL, nybrz jejich pouziti v praxi).
-
Na úplné základy jsem napsal tohle: https://demo-1.sql-vyuka.cz/
Ale pro další studium už potřebuješ mnohem víc dat a pořádné zadání. Jak už tu někdo psal, nejvíc se toho naučíš v práci, kde budeš řešit reálné úlohy. Ale chce to firmu, která na databázích hodně staví – ideálně nějakou banku – ne firmu, kde lepí weby nad databází o pěti tabulkách, tam se toho moc nenaučíš. Nemusíš se bát, že bys něco rozbil – v bance tě na ostrou databází hned nepustí – mají dost testovacích prostředí, na kterých můžeš vyvíjet a při tom se učit.
Abys měl nutné teoretické základy je dobré absolvovat nějaký kurz – např. na VŠE je to 4IT218 (https://isis.vse.cz/katalog/syllabus.pl?predmet=110753). Případně si to přečíst v knížce, ale na kurzu ti to učitel systematicky vyloží.
Mezitím čti – studuj, jak to dělají ostatní – najdi si nějaký svobodný software, který hodně staví na SQL databázi, a čti si SELECTy, které se v něm používají. Před tím si prohlédni datový model a snaž se ho pochopit. Taky koukni na http://postgres.cz/wiki/PostgreSQL – je tam pár zajímavých návodů a příkladů. Další věci najdeš v článcích o SQL tady na Rootu.
-
Nejlepší to má v bance. Tam rovnou může projíždět, kolik kdo bere a určitě budou všichni nadšení :D Nevím, jestli jsi myslel, že pracuje ve startupu, kde je MySQL na PC šéfa a na tom jede všechno, ale normálně to zase tak jednoduché není.
tu sa hodi to meme..that's not how it works
-
Datalog je mnohem snazší na pochopení, ale SQL je na některé úlohy lepší.
Zatim jsem se s zadnou takovou ulohou nesetkal a ani me teoreticky zadna takova nenapada :( Docela by me to zajimalo (castecne strkam nos do vyzkumu o databazich) - mate nejake priklady uloh, kde je SQL lepsi?
Jinak ohledne pochopeni SQL myslim, ze ciste relacni usporadani a algebra je vyrazne snazsi na pochopeni nez Datalog (jeste aby ne, vyjadrovaci schopnost Datalogu je silnejsi nez relacni algebry), ale SQL ma tolik vyjimek a divnych konstrukci apod., ze s vami mohu souhlasit, ze Datalog je z hlediska nauceni se (nikoliv pochopeni "co a proc se deje na pozadi") snazsi nez SQL. To jen tak pro uplnost, protoze co me zajima jsou ty ulohy, pro ktere je SQL "lepsi" (tedy neporovnavame samotne jazyky Datalog a SQL, nybrz jejich pouziti v praxi).
Datalog je syntakticky osekaný prastarý Prolog, ale s SLG rezolucí nebo něčím ekvivalentním pro inferenci. Hodí se tedy na různé ontologie a sémantické blbinky, ale ne na analýzu číselných dat hrubou silou. Numerické úlohy okolo "big data" by řešil obtížněji nebo přinejmenším pomaleji.
-
Budu tady mozna ukamenovan, ale ono to nejde zkouset primo v praci na skutecnych problemech? I za cenu toho, ze holt pujdes domu pozdeji a zkusis si to zadarmo pres cas?
urcite nebudes :) tohle je ta posledni moznost, kterou zvolit, pokud nenajdu co hledam. vzhledem k tomu, ze ale existuji reseni po kterych se ptam, tak ta cesta bude jednodussi :)