Teorija

Saites starp tabulām
Teorētiski datu bāzē visu informāciju varētu uzglabāt vienā tabulā, taču bieži vien tabulas veidojas ļoti lielas. Šajās tabulās informācija dublējas, un tās apstrāde kļūst neefektīva.
 
Tāpēc parasti tiek veidotas vairākas tabulas un starp tām tiek definēta tabulu relācija jeb saistība (relation), kas norāda, ka abās tabulās saistītajos laukos ir vienādi dati.
 
Tikai tad, ja ir izveidotas tabulu saistības, ir iespējams veikt darbības ar informāciju, kas atrodas dažādās tabulās un ir loģiski saistīta. Tikai savstarpēji saistītas tabulas izveido efektīvu datu bāzi.
 
Saites var būt trejādas: viens-pret-daudziem (one-to-many), daudzi-pret-daudziem (many-to-many), viens-pret-vienu (one-to-one).
 
Saistību starp divām tabulām, kas norāda, ka tabulas ieraksts var būt saistīts ar vairākiem otras tabulas ierakstiem, bet otras tabulas ieraksts var būt saistīts vienīgi ar vienu ierakstu pirmajā tabulā, sauc par viendaudznozīmīgu  saistību (one-to-many).
 
Vienviennozīmīga (one-to-one) saistība starp divām tabulām nozīmē, ka tabulas ieraksts var būt saistīts vienīgi (tieši) ar vienu ierakstu otrā tabulā un otrādi.
 
Saites apzīmē šādi:
 
• viens-pret-vienu -1 : 1 vai 102.png1;
• viens-pret-daudziem -1 : N vai  1 :01.png vai  102.png01.png;
• daudzi-pret-daudziem - N : N vai  01.png:01.png vai  01.png02.png01.png.
 
Lai saistītu divas tabulas, tajās ir jābūt laukiem ar vienādu informāciju. Lauku nosaukumi var būt dažādi, bet tiem noteikti jābūt viena tipa laukiem.
 
Lai izveidotu saites atbilstoši datu bāzes projektam, izvēlamies komandas Database Tools un Relationships, kā redzams zīmējumā.
 
03.png
 
Pēc komandas Relationships izpildes uz ekrāna parādās dialoga logs Show Table, kurā jānorāda tabulas, uz kurām jāveido saites.
 
Logā Show Table secīgi izvēlas visas tabulas, izpildot dubultklikšķi uz tabulas nosaukuma vai atlasot tabulas nosaukumu un piespiežot pogu Add. Aizver logu Show Table, lietojot aizvēršanas pogu vai pogu Close.

04.png
 
Veicot šīs operācijas, uz ekrāna attēlojas logs Relationships ar izvēlētām tabulām un to laukiem.
 
05.png
 
Lai izveidotu saiti starp tabulu laukiem, jāsavieno šie lauki ar peles kursoru. Jāiezīmē lauks vienā tabulā, un, turot nospiestu kreiso peles pogu, jāpārvieto pele uz otras tabulas attiecīgo lauku. Piemēram, lai izveidotu saiti, kas savieno laukus Darbinieka ID tabulās Darbinieki un Maršruti, novieto peles rādītāju tabulas Darbinieki laukā Darbinieka ID un pārvelk to uz tabulas Maršruti lauku Darbinieka ID.
 
Kad lauki ir savienoti, uz ekrāna atveras logs Edit Relationships, kurā jānorāda saišu īpašības. Loga Edit Relationships augšpusē var apskatīt, kādas tabulas ir saistītas un ar kuriem laukiem, kā arī, kura tabula ir galvenā. Piemēram, zīmējumā var redzēt, ka tabula Darbinieki ir galvenā tabula, bet tabula Maršruti ir pakārtota.
 
06.png
 
Loga izvēles rūtiņa Enforce Referential Integrity nodrošina datu integritāti (saistību un veselumu) saistītās tabulās. Šeit jāieliek ķeksītis. Ieliksim ķeksīti arī izvēles rūtiņās Cascade Update Related Fields un Cascade Delete Related Records (saistītu lauku datu atjaunošana un dzēšana).
 
07.png
 
Enforce Referential Integrity - nodrošināt datu integritāti, kas nozīmē, ka datu bāzē tiks veikti drošības pasākumi attiecībā uz saistītajiem laukiem, piemēram, nav iespējams nejauši dzēst saistīto lauku.
 
Cascade Update Related Fields - režīms, kurā notiek datu sinhrona maiņa saistītās tabulās. Ja pirmajā tabulā maina kāda lauka vērtību, automātiski mainās arī attiecīgā lauka vērtība saistītajā tabulā.
 
Cascade Delete Related Records - režīms, kurā notiek datu sinhrona dzēšana saistītās tabulās. Ja pirmajā tabulā kāda lauka vērtību dzēš, tad automātiski tiek dzēsta arī attiecīgā lauka vērtība saistītajā tabulā.
 
Pēc saites nodefinēšanas spiežam pogu Create.
 
08.png
 
Ja saite ir izveidota, uz ekrāna tā attēlojas kā savienotājlīnija ar apzīmējumiem: 1 un 01.png.
 
Veidojot saites, ir ieteicams:
- mainīt tabulu lielumu tā, lai būtu redzami visi datu lauki;
- pārvietot tabulas tā, lai izveidotās saites būtu uzskatāmas, piemēram, nekrustotos.
 
Pēc augstāk minētā parauga izveidojam arī saiti, kas savieno laukus Maršruta ID tabulās Maršruti un Klienti.
 
09.png
 
 
Lai dzēstu saiti starp tabulām, rīkojas šādi:
 
- atlasa, noklikšķinot uz saites (saite kļūst biezāka);
- piespiež tastatūras taustiņu Delete.
 
Atveras brīdinājuma logs, kurā jāapstiprina dzēšana, piespiežot pogu Yes.
 
10.png
 
 
Pēc saišu izveidošanas pirms primārās atslēgas lauka var parādīties kolonna, kurā atrodas krustiņi 11.png, uz kuriem noklikšķinot atveras pakārtotā tabula (subdatasheet). Pakārtotā tabula ir saistītās tabulas daļa, kas saistās ar aktīvo ierakstu galvenajā jeb primārajā tabulā.
 
Piemēram, atveram tabulu Maršruti un noklikšķinām uz 11.png pirms 3. rindas. Atveras pakārtotā tabula, kas satur ierakstus no saistītās tabulas Klienti par klientiem, kuri brauks uz Vāciju.
 
12.png
 
Pakārtotā tabulā var ievadīt un rediģēt datus tāpat, kā parastā tabulā.
 
Atsauce:
Informātika vidusskolai. / Kārlis Veiss – Rīga: Apgāds Zvaigzne ABC, 2007. – 264 lpp.: il. – izmantotā literatūra: 154. - 156. lpp.
ACCESS pamati. / Velta Mika – Rīga: Biznesa augstskola Turība, 2008. – 80 lpp.: il. – izmantotā literatūra: 24. - 26. lpp.