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}

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