5. TABULAS

5.5. Tabulu relācijas

Relāciju 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 (one-to-many) relāciju un to apzīmē šādi: 1 -vai 1 - n.

Datu bāzēs var izmantot vienviennozīmīgu (one-to-one) attiecību (saistību) starp divām tabulām, kas nozīmē, ka tabulas ieraksts var būt saistīts vienīgi (tieši) ar vienu ierakstu otrā tabulā un otrādi, un to apzīmē šādi: 1 -1.

4.5.1. Tabulu relāciju veidošana

Pieņemsim, ka ir atvērta datu bāze, kas sastāv no trīs tabulām Klienti, Marsruti un Marsruti_info, starp kurām jāizveido relācijas:

Lai izveidotu relācijas starp tabulām:

  • izmanto galvenā loga izvēlnes Tools komandu Relationships..., lai atvērtu relāciju noformēšanas logu Relation Design:

  • Pēc noklusējuma tiks atvērts tabulu pievienošanas dialoglodziņš Add Tables. Ja tas vēl nav izdarīts, izmanto standarta rīkjoslas pogu (Add Tables):

  • ievieto logā Relation Design tabulas, starp kurām jāveido relācija, dialoglodziņā Add Tables lietojot kādu no paņēmieniem:
    • lietojot dubultklikšķi uz tabulas nosaukuma:
    • katrai tabulai, kuru vēlas pievienot, izpildot šādas darbības:
    • izvēlamies tabulu no saraksta;
    • piespiež pogu ;
    • piespiež pogu .
  • veido atbilstošo relācijas tipu:
    • lai izveidotu vienviennozīmīgu (one-to-one) relāciju starp tabulām Marsruti un Marsruti_info (logā Relation Design jābūt ievietotām abām tabulām):
      • novieto peles rādītāju uz lauka, piemēram, Marsruta_ID tabulā Marsruti;
      • pārvelk lauku, turot piespiestu peles kreiso pogu, uz otras tabulas piesaistāmo lauku, piemēram, Marsruta_ID tabulā Marsruti_info:

      • atlaiž peles kreiso pogu. Tiek izveidota vienviennozīmīga relācija (ko norāda rakstzīme 1 saites abos galos pie katras tabulas attiecīgajiem laukiem, kuri veido relāciju):

      • izpildot dubultklikšķi uz relācijas saites, atveras dialoglodziņš Relations, kurā var apskatīt relācijas papildu parametrus. Šo dialoglodziņu var izsaukt arī no ievietošanas izvēlnes Insert komandas New Relation..., lai ievietotu jaunu relāciju:

    • lai izveidotu viendaudznozīmīgu (one-to-many) relāciju starp tabulām Marsruti un Klienti (logā Relation Design jābūt ievietotām abām tabulām):
      • novieto peles rādītāju uz lauka, piemēram, Marsruta_ID tabulā Marsruti;
      • pārvelk lauku, turot piespiestu peles kreiso pogu, uz otras tabulas piesaistāmo lauku, piemēram, Marsruta_ID tabulā Klienti:


    • atlaiž peles kreiso pogu un tiek izveidota viendaudznozīmīga relācija (ko norāda rakstzīmes 1 un n saites galos pie katras tabulas attiecīgajiem laukiem, kuri veido relāciju. Rakstzīme n apzīmē n-tos ierakstus, t.i., vairāk nekā vienu):

Jāpiebilst, ka Base datubāzēs automātiski tiek nodrošināta referentā integritāte. Tas nozīmē, ka datu bāzē tiks veikti drošības pasākumi attiecībā uz saistītajiem laukiem un, pievienojot vai izdzēšot vienas tabulas ierakstus, tiks ietekmēti saistītās tabulas ieraksti. Piemēram, nevarēs izdzēst maršrutu, kamēr uz to būs pieteicies kaut viens klients, kā arī nevarēs pievienot klientu neeksistējošam maršrutam.

Ja ir izveidotas abas norādītās relācijas, tad logs Relation Design izskatās šādi:

  • aizver logu Relation Design kādā no veidiem, piemēram:
    • darba lauka kreisajā augšējā stūrī piespiežot pogu (Close);
    • failu izvēlnē File izvēloties komandu Close.

Atveras brīdinājuma dialoglodziņš, kurā tiek jautāts, vai saglabāt relāciju izmaiņas:

  • piespiež brīdinājuma dialoglodziņā pogu .

4.5.2. Darbības ar relācijām

Lai veiktu darbības ar relācijām, atver logu Relation Design, izmantojot rīku izvēlnes Tools komandu Relationships....

Lai rediģētu relāciju, piemēram, mainītu relācijas uzvedību attiecībā uz ierakstu dzēšanu:

  • izpilda kādu no darbībām:
    • izpilda dubultklikšķi uz relācijas;
    • lieto komandu Edit relācijas konteksta izvēlnē:

  • dialoglodziņā Relations:
    • izmaina relācijas iedarbību ieraksta dzēšanas gadījumā (Delete Options) no bezdarbības (No Action) uz dzēšanu kaskādēti (Delete Cascade):

    • piespiež pogu .

Izdarītās izmaiņas šajā piemērā nozīmē, ka ieraksta (un līdz ar to identifikatora) dzēšanas gadījumā visi saistītie ieraksti otrajā tabulā tiks dzēsti, līdz ar to neatstājot tos saistītus ar neeksistējošu ierakstu.

Lai dzēstu relāciju starp tabulām:

  • izpilda kādu no darbībām, piemēram:
    • atlasa saiti, izpildot uz tās klikšķi (tā tiek iekrāsota pelēka) un piespiež taustiņu ;
    • lieto komandu Delete relācijas konteksta izvēlnē:

Jāņem vērā, ka jebkuri labojumi relācijās stājas spēkā tikai pēc to saglabāšanas, izmantojot loga Relation Design standarta rīkjoslas relāciju konfigurācijas saglabāšanas pogu (Save).