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 11;
• viens-pret-daudziem -1 : N vai 1 : vai 1;
• viens-pret-daudziem -1 : N vai 1 : vai 1;
• daudzi-pret-daudziem - N : N vai : vai .
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ā.
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.
Veicot šīs operācijas, uz ekrāna attēlojas logs Relationships ar izvēlētām tabulām un to laukiem.
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.
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).
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.
Ja saite ir izveidota, uz ekrāna tā attēlojas kā savienotājlīnija ar apzīmējumiem: 1 un .
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.
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.
Pēc saišu izveidošanas pirms primārās atslēgas lauka var parādīties kolonna, kurā atrodas krustiņi , 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 pirms 3. rindas. Atveras pakārtotā tabula, kas satur ierakstus no saistītās tabulas Klienti par klientiem, kuri brauks uz Vāciju.
Pakārtotā tabulā var ievadīt un rediģēt datus tāpat, kā parastā tabulā.
Atsauce:
ACCESS pamati. / Velta Mika – Rīga: Biznesa augstskola Turība, 2008. – 80 lpp.: il. – izmantotā literatūra: 24. - 26. lpp.