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.
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.
from: nfoworm
date: Jan. 6., 2006 - 01:47 am
#
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
from: phoenix
date: Jan. 6., 2006 - 01:54 am
#
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
from: nfoworm
date: Jan. 6., 2006 - 02:00 am
#
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
from: bax55hqy8dlb
date: Jan. 6., 2006 - 02:24 am
#
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
from: endrju
date: Jan. 6., 2006 - 04:14 am
#
Atbildēt | Iepriekšējais | Diskusija
from: mmk
date: Jan. 6., 2006 - 08:45 am
#
Atbildēt | Iepriekšējais | Diskusija
from: endrju
date: Jan. 6., 2006 - 09:22 am
#
Atbildēt | Iepriekšējais
from: endrju
date: Jan. 6., 2006 - 04:07 am
#
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
from: phoenix
date: Jan. 6., 2006 - 01:17 pm
#
aaa, un tralji valji, es pat uzinstaleejusi esmu 4. verisju. Tas ir kaukas shausmiigi aizveesturisks?
Atbildēt | Iepriekšējais