Re: TECH: PRG: co nás čeká a nemine :-)


To <ucto-dev-l@pinknet.cz>
From "Ing. Ladislav Starý" <stary@ekodat.cz>
Date Wed, 18 Jul 2001 09:19:21 +0200


-----Původní zpráva-----
Od: Cirkl Stepan <cirkl@mssch.cz>
Komu: ucto-dev-l@pinknet.cz <ucto-dev-l@pinknet.cz>
Datum: 17. července 2001 17:04
Předmět: Re: TECH: PRG: co nás čeká a nemine :-)


>> Možná by chtělo nám laikům neznalých SQL vysvětlit, jak to vůbec
>> funguje. Co jsem se mohl setkat, většinou se zadal SQL dotaz, který
>> vrátil naráz celý číselník klientovi. To mě právě na tom děsí. Účetní
>> samozřejmě v jedné chvíli vidí jen to, co má na obrazovce, jde jen o
>> to, aby to dotahování jej také nebrzdilo. Například já pořád žiju v
>
>SQL serveru kladete dotazy. Ty muzou byt dvou typu. Muzete se
>pokouset upravit nebo vytvorit neaky objekt (tabulku, zaznam,..)
>nebo se podivat, co v databazi je ulozene. K tomu slouzi prikaz
>SELECT. A je nejpouzivanejsi.
>
>Mejme tabulku trzby, kde mame datum (datum), pokladnu
>(pokladna) a trzbu (trzba).
>
>Nejednodusi je ziskat cely obsah tabulky trzby.
>
> SELECT * FROM trzby;
>
>A server vrati celou tabulku trzby.
>* znamena, ze chci vsechny slupce v tabulce. Misto ni mohu
>vyjmenovat pouze nazvy poli, jenz mne zajmaji.
>
>  SELECT pokladna, datum FROM trzby;
>
>Vrati vsechny zaznamy (radky) a pouze sloupce pokladna a datum.
>
>Dale muzu k dotazu pridat podminku, a tim omezit mnozstvi
>vracenych zaznamu. (Vlastne nastavit filtr.)
>
> SELECT * FROM trzby WHERE pokladna=1;
>
>Vrati pouze zaznamy, jenz se tykaji pokladny 1.
>
>Misto vyjmenovani sloupcu, jenz mne zajmaji, mohu pouzit funkce.
>Napriklad kdyz budu chtit zjistit minimalni denni trzbu na pokladne
>jedna, polozim nasledujci dotaz.
>
>  SELECT min(trzba) FROM trzby WHERE pokladna=1;
>
>  SELECT count(*) FROM trzby;
>    vrati pocet zaznamu v tabulce trzby.
>
>Mezi funkcemi se nachazi take napriklad prumer, suma, sinus....
>
>Dale se nachaji pouzivat agregace, spojeni (relace) mezi tabulkami
>definovat razeni a spousta dalsiho. Vetsina SQL servru podporuje
>transakce, (MySQL ne).
>
>Takze pokud napriklad chcete zjistit celkove trzby podle
>jednotlivych pokladen, staci polozit nasledujci dotaz, a SQL server
>vrati tolik radku, kolik je pokladen.
>
> SELECT pokladna, sum(trba) FROM trzby GROUP BY pokladna;
>
>Jak vidite, tak z SQL servru se musi prenaset docela malo
>informaci, pokud se umite dobre zeptat, a nechate za sebe makat
>SQL.
>
>Akorat je potreba mit HW SQL servru dostatecne nadimenzovan,
>hlavne mu chutna pamet. Pro beznou malu az stredni firmu, bych
>se ale nebal, ze SQL nebude stihat. Takove uzaverky nebo
>podobne hromadne operace si ale neaky cas vyzadaji...
>
>Doufam ze to je dostatecne vysvetlene, aby jsgte si udelal
>predstavu. Pokud jsem se nekde vyjadril spatne, nebo ustrelil, at
>mi nekdo opravi. Asi pred dvouma az trema roky, vychazel v CHIPu
>delsi dobu serial o SQL, a bylo tam pekne vysvetlene.

Dík za vysvětlení. Většina věcí mi je z toho jasná. Je mi celkem jasné, že
ne vždy bude přenos dat trvat extrémně dlouho. Co mi však vrtá hlavou je
otázka, jestli když jako uživatel budu chtít vybrat nějakou firmu z
číselníku, očekávám, že mi bude muset vrátit SQL server celou tabulku. To si
nedovedu u číselníku s třeba 5000 zápisy představit jako dostatečně svižné.
Podobně třeba kontrolu, že zadaný účet je založen v účetní osnově, která má
délku třeba 1000 účtů. Takových SQL dotazů musí může chodit od jednoho
klienta i několik za sekundu a musí být provedeny okamžitě, jinak to bude tu
účetní zdržovat.

S pozdravem
Ladislav Starý


>
>
>
>Stepan Cirkl
>Spravce site, Webmaster
>Masarykova SS chemicka, Praha 1
>E-mail:cirkl@mssch.cz
>ICQ: 31789939
>-------------------------- ucto-dev-l@pinknet.cz ------------------------
>Konference o vyvoji ucetnictvi                 http://ucto.ferschmann.cz/

-------------------------- ucto-dev-l@pinknet.cz ------------------------
Konference o vyvoji ucetnictvi                       http://ucto.linux.cz/




Partial thread listing: