Databazy - programovanie/spravovanie

Re:Databazy - programovanie/spravovanie
« Odpověď #15 kdy: 16. 05. 2014, 13:52:28 »
cize chces povedat, ze clovek bez znalosti relacnej algebry, pracujuci s databazami, nemoze byt dobry? Urcite su taki a je ich veeeela a bez relacnej algebry zarabaju velke peniaze :)
Může mít dobrou mzdu a o teorii nemusíte vědět vůbec nic - ale také příště můžete být nezaměstnaný. Vědomosti vám dávají svobodu si vybírat práci, zaměstnavatele, ... Donedávna, kdo uměl zapnout počítač, tak si v IT našel místo. Jenomže dneska školy chrlí studenty, a z té masy se dají dohledat šikovní s teoretickými znalostmi, kteří na tom budou o dost lépe, než šikovní bez teoretických znalostí nebo než ti nešikovní. Relační databáze jsou dneska (a ještě 20 let budou) základ.


lobo

Re:Databazy - programovanie/spravovanie
« Odpověď #16 kdy: 16. 05. 2014, 13:57:19 »
pripadne aplikacia je od databazy tak 'daleko' ze cez tie vsetky layery na nu ani nedovidi :-)


JurijP

Re:Databazy - programovanie/spravovanie
« Odpověď #17 kdy: 16. 05. 2014, 13:57:33 »
cize chces povedat, ze clovek bez znalosti relacnej algebry, pracujuci s databazami, nemoze byt dobry? Urcite su taki a je ich veeeela a bez relacnej algebry zarabaju velke peniaze :)
Může mít dobrou mzdu a o teorii nemusíte vědět vůbec nic - ale také příště můžete být nezaměstnaný. Vědomosti vám dávají svobodu si vybírat práci, zaměstnavatele, ... Donedávna, kdo uměl zapnout počítač, tak si v IT našel místo. Jenomže dneska školy chrlí studenty, a z té masy se dají dohledat šikovní s teoretickými znalostmi, kteří na tom budou o dost lépe, než šikovní bez teoretických znalostí nebo než ti nešikovní. Relační databáze jsou dneska (a ještě 20 let budou) základ.

firma cloveka s teoretickymi znalostami nepotrebuje, ktory vie carovat s relacnou algebrou a jedine kde videl databazu, tak to bolo zo slajdov v skole. Firma potrebuje cloveka s praxou, ma prakticke znalosti, nie teoreticke znalosti. To mi pripomina, ze ked niekto ovlada teoreticku informatiku, tak je to nepostradatelny clovek.
Pochybujem, ze clovek, ktory pracuje niekde 10-20 rokov ako DB specialista, o teorii vie velke prt, ze sa musi obavat o to, ze bude nezamestnany.

student

Re:Databazy - programovanie/spravovanie
« Odpověď #18 kdy: 16. 05. 2014, 14:12:32 »
Chcem len vediet, ci sa v skole opat ucia uplne zbytocnosti, ktore sa v praxi nevyuzivaju.
Podla toho, ako to beries / pocitas. V skole sa uci vela - od jednoduchych selectov, cez navrh tabuliek, relacnu algebru az po spravu.

Ja som s SQL robil aj pred vyukou na skole a vsetko naucene v skole naviac boli len zbytocnosti. Takze v tomto zmysle su to zbytocnosti.
Na druhu stranu, ak sa niekto v zivote nestretol s SQL alebo si nenavrhol svoju mini DB, tomu sa toho moze vela hodit.

Pochybujem, ze clovek, ktory pracuje niekde 10-20 rokov ako DB specialista, o teorii vie velke prt, ze sa musi obavat o to, ze bude nezamestnany.
Ked clovek navrhne par tabuliek, tak ho podla mna musi napadnut, ako to robit spravne (dekompozicia atd). Teoria je potom uz len par pomenovani naviac + iny zapis toho, co uz pozna.

Kolemjdoucí

Re:Databazy - programovanie/spravovanie
« Odpověď #19 kdy: 16. 05. 2014, 14:13:16 »
takze napr. to co obsahuje tento dokument https://dip.felk.cvut.cz/browse/pdfcache/petrv1_2009dipl.pdf tu relacnu algebru, optimalizacia, resp. vypocet ceny sa v praxi az tak neuplatnuju?

Ne.
V praxi je na prvním místě vždy praktická znalost konkrétního SQL stroje.


Re:Databazy - programovanie/spravovanie
« Odpověď #20 kdy: 16. 05. 2014, 14:13:35 »
cize chces povedat, ze clovek bez znalosti relacnej algebry, pracujuci s databazami, nemoze byt dobry? Urcite su taki a je ich veeeela a bez relacnej algebry zarabaju velke peniaze :)
Může mít dobrou mzdu a o teorii nemusíte vědět vůbec nic - ale také příště můžete být nezaměstnaný. Vědomosti vám dávají svobodu si vybírat práci, zaměstnavatele, ... Donedávna, kdo uměl zapnout počítač, tak si v IT našel místo. Jenomže dneska školy chrlí studenty, a z té masy se dají dohledat šikovní s teoretickými znalostmi, kteří na tom budou o dost lépe, než šikovní bez teoretických znalostí nebo než ti nešikovní. Relační databáze jsou dneska (a ještě 20 let budou) základ.

firma cloveka s teoretickymi znalostami nepotrebuje, ktory vie carovat s relacnou algebrou a jedine kde videl databazu, tak to bolo zo slajdov v skole. Firma potrebuje cloveka s praxou, ma prakticke znalosti, nie teoreticke znalosti. To mi pripomina, ze ked niekto ovlada teoreticku informatiku, tak je to nepostradatelny clovek.
Pochybujem, ze clovek, ktory pracuje niekde 10-20 rokov ako DB specialista, o teorii vie velke prt, ze sa musi obavat o to, ze bude nezamestnany.

Pokud někdo pracuje 10-20 roků s databázemi a o teorii ví velké prt, tak to asi moc použitelný člověk nebude. Nehledě na to, že bez teoretických znalostí jeho znalosti budou čisté vúdú a při řešení problémů bude postupovat metodou Cargo efektu. Což může zafungovat, a také nemusí - jak už tak funguje cargo efekt. Samozřejmě, že čistá teorie je nepraktická - ale i v opačném případě bez znalosti (pochopení) teorie se člověk brzo stane klikačem bez pochopení toho, co a proč dělá. Prostě cargo efekt.

Re:Databazy - programovanie/spravovanie
« Odpověď #21 kdy: 16. 05. 2014, 14:17:39 »
cize chces povedat, ze clovek bez znalosti relacnej algebry, pracujuci s databazami, nemoze byt dobry? Urcite su taki a je ich veeeela a bez relacnej algebry zarabaju velke peniaze :)
Může mít dobrou mzdu a o teorii nemusíte vědět vůbec nic - ale také příště můžete být nezaměstnaný. Vědomosti vám dávají svobodu si vybírat práci, zaměstnavatele, ... Donedávna, kdo uměl zapnout počítač, tak si v IT našel místo. Jenomže dneska školy chrlí studenty, a z té masy se dají dohledat šikovní s teoretickými znalostmi, kteří na tom budou o dost lépe, než šikovní bez teoretických znalostí nebo než ti nešikovní. Relační databáze jsou dneska (a ještě 20 let budou) základ.

firma cloveka s teoretickymi znalostami nepotrebuje, ktory vie carovat s relacnou algebrou a jedine kde videl databazu, tak to bolo zo slajdov v skole. Firma potrebuje cloveka s praxou, ma prakticke znalosti, nie teoreticke znalosti. To mi pripomina, ze ked niekto ovlada teoreticku informatiku, tak je to nepostradatelny clovek.
Pochybujem, ze clovek, ktory pracuje niekde 10-20 rokov ako DB specialista, o teorii vie velke prt, ze sa musi obavat o to, ze bude nezamestnany.

Je to prostě rozdíl mezi zedníkem a inženýrem. Zedník postaví rodinný domek, ale na most už potřebujete inženýra.

Re:Databazy - programovanie/spravovanie
« Odpověď #22 kdy: 16. 05. 2014, 14:25:59 »
Ano, mnoho lidí tvrdí, že to co se naučili ve škole se v praxi tak dělat nedá. Je to asi jejich omluva pro to, aby to mohli nabastlit jak jim to od ruky upadne.

Co se týče optimalizace, dle mé praxe plyne, že je důležité zejména pochopit návrh db, tedy alepoň normální formy. Potom už to db engine zpracuje vyhovujici rychlosti. Když se použijí vhodné datové typy a funkce k nim, je to už skoro dokonalé. Další optimalizace už záleží na situaci.

Co z praxe považuji za horší je to, že v praxi vlastně nikdo neví (konkrétně zadavatel), co se do té DB bude dávat a co získávat. Neexistuje žádný model dat, před samotnou analýzou a všechno se bastlí za běhu. Takže i DB schémata, které na počátku mají hlavu a patu se po x iteracích změní na 40 záznamů typu VARCHAR (255), a to jen proto, že dodavatel dat v průběhu používání programu 80x změnil formát dat (zdravíme státní zprávu).

JurijP

Re:Databazy - programovanie/spravovanie
« Odpověď #23 kdy: 16. 05. 2014, 14:27:44 »
Chcem len vediet, ci sa v skole opat ucia uplne zbytocnosti, ktore sa v praxi nevyuzivaju.
Podla toho, ako to beries / pocitas. V skole sa uci vela - od jednoduchych selectov, cez navrh tabuliek, relacnu algebru az po spravu.

Ja som s SQL robil aj pred vyukou na skole a vsetko naucene v skole naviac boli len zbytocnosti. Takze v tomto zmysle su to zbytocnosti.
Na druhu stranu, ak sa niekto v zivote nestretol s SQL alebo si nenavrhol svoju mini DB, tomu sa toho moze vela hodit.

Pochybujem, ze clovek, ktory pracuje niekde 10-20 rokov ako DB specialista, o teorii vie velke prt, ze sa musi obavat o to, ze bude nezamestnany.
Ked clovek navrhne par tabuliek, tak ho podla mna musi napadnut, ako to robit spravne (dekompozicia atd). Teoria je potom uz len par pomenovani naviac + iny zapis toho, co uz pozna.

ja som sa na byvalej VS ucil, kde primarny kluc oznacovali napr. rodne cislo. Skutocnost je taka, ze za primarny kluc sa nedava nieco ako rodne cislo, ale umelo vytvoreny, nejake ID. Takze teoria je uplne niekde mimo realitu.
A myslim, ze pri navrhu DB si nebudem kreslit nejaku relacnu algebru.

To Pavel:
nemyslim, ze o teorii vie velke prt. urcite musi poznat zakladne veci DB, ale zrejme sa zaobide bez nejakej relacnej algebry, a urcite ho to nebude robit nepouzitelnym. A urcite, ak clovek po X rokoch nepouzivania nejakej relacnej algebry, si tazko spomenie nato, co to vobec je, resp. ako sa to zapisuje.
Ak je zakaznik a zamestnavatel spokojny, som spokojny aj ja, ked pritom este dostanem zaplatene.

Re:Databazy - programovanie/spravovanie
« Odpověď #24 kdy: 16. 05. 2014, 14:38:00 »
To Pavel:
nemyslim, ze o teorii vie velke prt. urcite musi poznat zakladne veci DB, ale zrejme sa zaobide bez nejakej relacnej algebry, a urcite ho to nebude robit nepouzitelnym. A urcite, ak clovek po X rokoch nepouzivania nejakej relacnej algebry, si tazko spomenie nato, co to vobec je, resp. ako sa to zapisuje.
Ak je zakaznik a zamestnavatel spokojny, som spokojny aj ja, ked pritom este dostanem zaplatene.

Pro použití SQL nemusíte z hlavy dát všechny definice - to po letech taky po nikom nikdo nechce. Nicméně vědět, co to je relace, kartézský součin, podmnožina kartézského součinu, ... to je jeden ze základů,  a pokud někomu tato znalost chybí, tak např. vysvětlení nějakého problému může trvat půl dne místo pár minut. Pokud někdo netuší, co to je prováděcí plán, tak těžko mu budu vysvětlovat nějaký problém s dotazem. Bez základů statistiky se těžko bude hledat chyba v odhadech, ...

Samozřejmě, že můžete fungovat bez těchto znalostí - a můžete být spokojený, a můžete si i vydělávat. Ale, když to vezmu fotbalově, budete hrát přebor, a na 1 ligu se podíváte v televizi.

student

Re:Databazy - programovanie/spravovanie
« Odpověď #25 kdy: 16. 05. 2014, 14:45:11 »
ja som sa na byvalej VS ucil, kde primarny kluc oznacovali napr. rodne cislo. Skutocnost je taka, ze za primarny kluc sa nedava nieco ako rodne cislo, ale umelo vytvoreny, nejake ID. Takze teoria je uplne niekde mimo realitu.
Umely primarny kluc sa dava preto, lebo ostatne "unikatne identifikatory" sa mozu menit, aj ked tak nevyzeraju. Dnes sa da muz preoperovat na zenu, zajtra najdu 2 ludi s rovnakym rovnym cislom, inokedy sa niekto prestahuje do CR a je to. Vdaka tomu mam napriklad ja 2 rodne cisla (ceske a slovenske). A v Cesku ma niekde vedu pod starym slovenskym, lebo mi ho este pridelilo Ceskoslovensko, niekde pod novym ceskym...

V idealnom svete by sa mohlo pouzivat rodne cislo - akurat v praxi to jednoducho nejde.

V jednom programe pouzivam ako primarny kluc vyrobne cislo pristroja - to je z principu dane, ze sa menit nebude a ze je unikatne. Sef rypal, ze je treba dat umely kluc, lebo sa to tak robi - ale kedze sa mozem spolahnut na unikatnost a nemennost, tak som bol proti a zostalo po mojom.

A myslim, ze pri navrhu DB si nebudem kreslit nejaku relacnu algebru.
Relacna algebra, ako sme ju brali my, je len o zapise selectu. A to by poznat mal, aj ked tomu nepovie takym skaredym spojenim ;-).

Kolemjdoucí

Re:Databazy - programovanie/spravovanie
« Odpověď #26 kdy: 16. 05. 2014, 15:01:19 »
V jednom programe pouzivam ako primarny kluc vyrobne cislo pristroja - to je z principu dane, ze sa menit nebude a ze je unikatne. Sef rypal, ze je treba dat umely kluc, lebo sa to tak robi - ale kedze sa mozem spolahnut na unikatnost a nemennost, tak som bol proti a zostalo po mojom.

PK se za všech okolností používá celé číslo generované místním SQL strojem/clusterem. Opak je projevem nezkušenosti a nevyzrálosti.

Pro použití SQL nemusíte z hlavy dát všechny definice - to po letech taky po nikom nikdo nechce. Nicméně vědět, co to je relace, kartézský součin, podmnožina kartézského součinu, ... to je jeden ze základů,  a pokud někomu tato znalost chybí, tak např. vysvětlení nějakého problému může trvat půl dne místo pár minut. Pokud někdo netuší, co to je prováděcí plán, tak těžko mu budu vysvětlovat nějaký problém s dotazem. Bez základů statistiky se těžko bude hledat chyba v odhadech, ...

Na použití cross join nepotřebujete znalost kartézského součinu.
Na prováděcí plán nepotřebujete znalost relační algebry.

student

Re:Databazy - programovanie/spravovanie
« Odpověď #27 kdy: 16. 05. 2014, 15:11:41 »
Co se týče optimalizace, dle mé praxe plyne, že je důležité zejména pochopit návrh db, tedy alepoň normální formy.
Ja myslim, ze normalne formy kazdeho napadnu. Ja som tiez pred vyukou netusil, co to je, ale DB som navrhoval tak, aby sa mi s tym dobre robilo a nic sa nestracalo. A tak som vlastne niektore normalne formy splnal...

Potom už to db engine zpracuje vyhovujici rychlosti.
U mna je skusenost skor opacna - navrhol som tabulky, po naplneni to bolo pomale; tak sa to trochu denormalizovalo (fuj fuj) a tym sa to zrychlilo.

Když se použijí vhodné datové typy a funkce k nim, je to už skoro dokonalé. Další optimalizace už záleží na situaci.
Funkcie sa zase mne aspon u Oracle 11g velmi neosvedcili, ked islo o nieco viac ako obal tabulky za ucelom oddelenia opravneni. Kde funkcie pomahaju?

Hlavne treba pisat query tak, aby DB pochopila, co chcete a ako to chcete. Ak to nepochopi, tak typicky robi na disku nejake sialene JOINy a to je skoro isty zabijak vykonu. Zle su aj full scany, ale na joiny sa to nechyta.

Re:Databazy - programovanie/spravovanie
« Odpověď #28 kdy: 16. 05. 2014, 15:13:25 »
Umely primarny kluc sa dava preto, lebo ostatne "unikatne identifikatory" sa mozu menit, aj ked tak nevyzeraju. Dnes sa da muz preoperovat na zenu, zajtra najdu 2 ludi s rovnakym rovnym cislom, inokedy sa niekto prestahuje do CR a je to. Vdaka tomu mam napriklad ja 2 rodne cisla (ceske a slovenske). A v Cesku ma niekde vedu pod starym slovenskym, lebo mi ho este pridelilo Ceskoslovensko, niekde pod novym ceskym...

V idealnom svete by sa mohlo pouzivat rodne cislo - akurat v praxi to jednoducho nejde.
Navíc rodné číslo není (ani v rámci ČR) ani unikátní identifikátor. Protože se dříve při ručním přidělování rodných čísel občas někdo spletl. Ze stejného důvodu jsou vydaná i rodná čísla, která mají chybnou kontrolní číslici.

PK se za všech okolností používá celé číslo generované místním SQL strojem/clusterem. Opak je projevem nezkušenosti a nevyzrálosti.
Ale ve škole vás budou učit pravý opak.

student

Re:Databazy - programovanie/spravovanie
« Odpověď #29 kdy: 16. 05. 2014, 15:15:07 »
V jednom programe pouzivam ako primarny kluc vyrobne cislo pristroja - to je z principu dane, ze sa menit nebude a ze je unikatne. Sef rypal, ze je treba dat umely kluc, lebo sa to tak robi - ale kedze sa mozem spolahnut na unikatnost a nemennost, tak som bol proti a zostalo po mojom.

PK se za všech okolností používá celé číslo generované místním SQL strojem/clusterem. Opak je projevem nezkušenosti a nevyzrálosti.
Cele cislo to bolo - ale preco by malo byt vygenerovane SQL strojom / clusterom?

Opak je projevem nezkušenosti a nevyzrálosti.
Mne sa tiez dostalo, ze "to predsa kazdy vie". Ale uz sa mi nedostalo, preco je to tak.
Podla mna kazdy vie, ze extra data v DB, kvoli ktorym je casto treba dalsi JOIN, to je zlo.