pajautaa

SQL. putra.

« previous entry | next entry »
Jan. 6., 2006 | 01:35 am
posted by: phoenix in pajautaa

Esmu nesaprashanaa. Man Lu ir jaaveido SQL realizācija ar skatiem (view), trigeriem, sotred procedure. Es nesaprotu, kaa pasniedzeejs nochekos, ka esmu ko taadu izveidojusi. Proti, vai tad, ja es izveidoju kaadu view (un tas, kaa es saprotu, ir vienkaarshi nosaukts kautkaads selecta rezultaats), tas kaukaa saglabaajas manaa datubaazee?
Un trigeri, ja pareizi saprotu, ir taa fiicha, ka, ja gribu tabulaa izmainiit kaadu ierakstu, tad vispirms tiek izdaliits shis ieraksts, izmainiits un tad ievietots atpaklaj kopeejajaa tabulaa. Un trigeris ir taa pagaidu kopija?

Shkjiet, ka man nav skaidrs kautkas par shiem jeedzieniem: trigeris, view, proceduura, jo nesaprotu, kaa pasniedzeejs varees paarbaduiit, ka tieshaam esmu tos izveidojuis.

# | jā, ir doma! | Add to Memories


Comments {9}

ZXpower

from: [info]nfoworm
date: Jan. 6., 2006 - 01:47 am
#

Ja pareizi saprotu - tas vareetu buut LU FMF datorikjos vai programmeetaajos pie pasniedzeeja Straujuma... :) Ja taa - iesaku apskatiit http://datzb.intelectuals.net/, kur vareetu buut shis tas noderiigs par sho teemu.

Katraa zinjaa - views nav vienkaarshs selekts... Un ja tas ir pie Straujuma, tad tur ir jaaiesniedz beigaas smuka atskaite, kuraa tad arii viss ir mineets, ko tu esi sadariijusi. Savukaart, paarbaudiit vinjsh meedz klaatienee apskatot to visu - ar domu uz LU datoriem vai studenta personiigaa laptopa. Ja nav ne viens ne otrs - dabuusi rakstiit ar rocinju uz papiira visus briinumus ;)

Atbildēt | Diskusija


phoenix

from: [info]phoenix
date: Jan. 6., 2006 - 01:54 am
#

tas, kas mani nomoka ir: ok, uzrakstiishu to visu penteri, zipildiishu to savu view. aiznesiishu uz LU sho savu DB. Atnaaks pasneidzeejs. Un vinjsh varee sredzeet, ka es sho view esmu izveidojusi, ja?
Vnk nekad neesmu tos veidojusi, kaukaadu infu gan es atradiishu, bet man taa pamatidej anav skaidra.

tas nav pie pasniedzeeja Straujuma, bet pie Karniisha. Un es nebiju bijusi uz praktiskajaam nodarbiibaam, kuras, ka aizraadaas, gaajushas peec cita plaana nekaa lekcijas, taapeec sanaacis ir taa, ka sesijaa tikai saprotu, ka ir lietas, kuras nemaz neesmu apguvusi!

Atbildēt | Iepriekšējais | Diskusija


ZXpower

from: [info]nfoworm
date: Jan. 6., 2006 - 02:00 am
#

Hehh :) Karniitis ... nu labi labi :)

Vienu varu teikt droshi - vinjsh varees redzeet, ja gribees. Un, cik zinu, vinjsh gribees :)

To vai DB ir izveidots views, var diezgan vienkaarshi noteikt - tas protams ir atkariigs no konkreetaas DBVS razhotaaja, tachu nekas nav neiespeejams.

Atbildēt | Iepriekšējais


tas neizlasāmais jūzerneims

from: [info]bax55hqy8dlb
date: Jan. 6., 2006 - 02:24 am
#

view ir ~ tas pats, kas parasta tabulas paarluukoshana. vieniigi, kad taisi viewu, tu izveelies tieshi kuras kollonnas tu gribi, no kuraam tabulaam (var mieriigi no divaam tabulaam atlasiit datus, vajag tikai vinjas saistiit savaa starpaa ar WHERE t1.name = t2.name) + viewaa tu vari pati atgriezt datus sev tiikamaa formaataa, piemeeram no timestamp dabuut datumu sev tiikamaa formaataa un laiku kaa divas atseviskas kollonnas.. iisaak sakot view ir tabulas (tabulu) paarluukoshana peec kriteerijiem.
trigger f-jas vismaz es personiigi izmantoju lai dabuutu unikaalu ID tabulaa. mysql bij taada fiicha kaa `auto increasement`, pgsql taadas lietas nav, tapeec es uztaisu trigger f-ju, kas dabuun man naakamo ID. vot par proceduuru nezinu, kaa to sauc angliski?

Atbildēt | Diskusija


endrju

from: [info]endrju
date: Jan. 6., 2006 - 04:14 am
#

Pirmkāŗt, izlasi, ko zemāk rakstīju. Otrkārt, kas vainas "sequence" iekš PostgreSQL?

Atbildēt | Iepriekšējais | Diskusija


from: [info]mmk
date: Jan. 6., 2006 - 08:45 am
#

vēl ir lauka tips bigserial.

Atbildēt | Iepriekšējais | Diskusija


endrju

from: [info]endrju
date: Jan. 6., 2006 - 09:22 am
#

serial un bigserial tās pašas sequences vien ir.

Atbildēt | Iepriekšējais


endrju

from: [info]endrju
date: Jan. 6., 2006 - 04:07 am
#

Jā, visi šie trīs objekti saglabājās datubāzē un pēc tam tos vari apskatīties.

VIEW ir virtuāla tabula, kas ir jau izpildīts kverijs. VIEW parasti definē kā "SELECT ... WHERE ...". Atšķirība starp parasto SELECT un VIEW ir tāda, ka SELECT izpildās tajā brīdi, kad Tu veic pieprasījumu, bet VIEW (virtuāla tabula) automātiski tiek papildināta tiklīdz mainās tabulās dati, no kurām šis VIEW ir atkarīgs. Teiksim, ja ir kāds sarežģīts kverijs, kas izpildās ilgi, tad pataisi to kveriju par VIEW un vienkārši selektē datus turmpāk no tā VIEW un viss notiks momenta, jo kā jau aprakstīju, VIEW rezultāts tiek automātiski izmainīts, kā izmainās nepieciešamie dati.

TRIGGER ir procedūra, kas izpildās noteiktos brīžos (piemēram, kad tabulā dati tiek ievietoti, mainīti, vai dzēsti) un pēc noteiktiem noteikumiem. Tu piemēram vari aprakstīt kam ir jānotiek, ja kādā tabulā tiek ievototi dati ( pie tam Tu vari definēt kam ir jānotiek pirms dati tiek ielikti, un kam pēc tam, kad jau ielikti).

STORED PROCEDURE ir procedūra definēta datubāzes pusē, kura satur kodu, kam jāizpildās. Primitīvākais piemērs varētu būt, ka esi izveidojusi procedūru, kurai Tu padod kādus parametrus. Un šī procedūra attiecīgi ievieto vai dara ko citu ar šiem parametriem. Sanāk, ka nevis savas aplikācijas kodā Tu raksti, teiksim, "UPDATE ...", bet vienkārši izsauc datubāzē nodefinētu procedūru padodot tai parametrus, lai tā attiecīgi rīkojas Tavā vietā. Tādejādi aplikācijas kods ir tīrāks un nav atkarīgs no konkrēta un specifiska SQL, jo storētās procedūras var definēt gandrīz visām nopietnām DBVS. Eksistē arī funkcijas, kas principā ir tā pati procedūra, tikai atšķirība tāda, ka funkcijas atgriež rezultātu.

P.S. MySQL storētās procedūras un triggeri parādījās tikai apmēram no 5.0 versijas.

Iesaku aplūkot zemāk esošos linkus (tur ir arī piemēri):

MySQL -> create view, create trigger, create procedure.
PostgreSQL -> create view, create trigger, create function.

Atbildēt | Diskusija


phoenix

from: [info]phoenix
date: Jan. 6., 2006 - 01:17 pm
#

ha, taapeec tajaa mnauaalii, kas man maajaas meetaajas, neko neatradu, jo tas ir 4.0.5. Vvz, kas taa par vecu versiju un kad to esmu savaakusi.

aaa, un tralji valji, es pat uzinstaleejusi esmu 4. verisju. Tas ir kaukas shausmiigi aizveesturisks?

Atbildēt | Iepriekšējais