Tabulas relāciju rokasgrāmata

Tabulas relāciju rokasgrāmata

Viens no laba datu bāzes noformējuma mērķiem ir izslēgt datu redundanci (datu dublikātus). Lai to panāktu, dati, pamatojoties uz tēmām, ir jāiedala daudzās tabulās, lai katrs fakts būtu norādīts tikai vienu reizi. Pēc tam programmā Access norādiet veidu, kā atkal apvienot iedalīto informāciju — to var izdarīt, novietojot biežāk izmantotos laukus savstarpēji saistītās tabulās. Tomēr, lai to izdarītu pareizi, vispirms ir jāizprot starp tabulām pastāvošās relācijas, un pēc tam šīs relācijas ir jānorāda datu bāzē.

Tēmas šajā rakstā

Ievads

Tabulu relāciju veidi

Kādēļ ir jāveido tabulu relācijas?

Attiecinošā integritāte

Tabulas relācijas skatīšana

Ievads

Kad katrai datu bāzes tēmai ir izveidota tabula, programmai Access ir jānorāda veids, kā atkal apvienot šo informāciju, kad tas ir nepieciešams. To var izdarīt, novietojot biežāk izmantotos laukus tabulās, kas ir saistītas, un definējot tabulu relācijas. Pēc tam var izveidot vaicājumus, formas un pārskatus, kuros ir parādīta informācija no vairākām tabulām uzreiz. Piemēram, tālāk redzamajā formā ir iekļauta informācija no vairākām tabulām:

Pasūtījumu forma, kurā parādīta saistīta informācija no piecām tabulām uzreiz

1. Šajā formā iekļautā informācija iegūta no tabulas Klienti...

2. ...Pasūtījumi...

3. ...Produkti...

4. ...un Pasūtījumu informācija.

Lodziņā Maksātājs norādītais klienta vārds ir izgūts no tabulas Klienti; vērtības lodziņos Pasūtījuma ID un Pasūtījuma datums iegūtas no tabulas Pasūtījumi; Produkta nosaukums — no tabulas Produkti, bet vērtības lodziņos Vienības cena un Daudzums iegūtas no tabulas Pasūtījumu informācija. Šīs tabulas ir savstarpēji saistītas dažādos veidos, lai formā tiktu apkopota informācija no katras no šīm tabulām.

Iepriekšējā piemērā tabulu laukiem ir jābūt koordinētiem, lai tajos tiktu radīta informācija par vienu un to pašu pasūtījumu. Šo koordināciju var panākt, izmantojot tabulu relācijas. Tabulas relācija darbojas, saskaņojot galveno lauku datus  — bieži vien tas ir lauks ar vienādu nosaukumu abās tabulās. Vairumā gadījumi šie saskaņotie lauki ir primārā atslēga no vienas tabulas, kas nodrošina unikālu identifikatoru katram ierakstam, un ārējā atslēga citā tabulā. Piemēram, darbiniekus var sasaistīt ar pasūtījumiem, par kuriem tie ir atbildīgi, izveidojot tabulas relāciju starp EmployeeID laukiem darbinieku un pasūtījumu tabulās.

EmployeeID ir izmantots kā primārā atslēga tabulā Darbinieki un ārējā atslēga tabulā Pasūtījumi.

1. EmployeeID ir redzams abās tabulās  — kā primārā atslēga...

2. ...un kā ārējā atslēga.

Uz lapas sākumu

Tabulu relāciju veidi

Programmā Access pavisam ir trīs tabulu relāciju veidi.

  • Relācija viens pret daudziem

    Kā piemēru izmantosim pasūtījumu izsekošanas datu bāzi, kurā ietilpst tabula Klienti un Pasūtījumi. Klients var veikt neierobežotu pasūtījumu skaitu. Tātad jebkuram klientam, kas ir iekļauts tabulā Klienti, var būt daudzi pasūtījumi, kas iekļauti tabulā Pasūtījumi. Relācija starp tabulu Klienti un tabulu Pasūtījumi ir relācija viens pret daudziem.

    Lai datu bāzes noformējumā atspoguļotu relāciju viens pret daudziem, primāro atslēgtu, kas ir relācijas pusē “viens”, pievienojiet kā papildu lauku vai laukus tabulā relācijas pusē “daudzi”. Piemēram, šajā gadījumā, ir jāpievieno jauns lauks  — ID lauks no tabulas Klienti — tabulai Pasūtījumi, un tam jāpiešķir nosaukums Klienta ID. Pēc tam programma Access var izmantot tabulā Pasūtījumi norādīto klienta ID numuru, lai atrasto pareizo klientu katram pasūtījumam.

  • Relācija daudzi pret daudziem

    Tagad izskatīsim relāciju starp tabulu Produkti un tabulu Pasūtījumi. Vienā pasūtījumā var ietilpt vairāk nekā viens produkts. Taču viens atsevišķs produkts var parādīties vairākos pasūtījumos. Tādēļ katram ierakstam tabulā Pasūtījumi var būt daudzi ieraksti tabulā Produkti. Turklāt katram ierakstam tabulā Produkti var būt vairāki ieraksti tabulā Pasūtījumi. Šāda relācija tiek dēvēta par relāciju daudzi pret daudziem. Ņemiet vērā — lai noteiktu esošās relācijas daudzi pret daudziem starp savām tabulām, ir svarīgi ņemt vērā abas relācijas puses.

    Lai atspoguļotu relāciju daudzi pret daudziem, ir jāizveido trešā tabula, kas bieži tiek dēvēta par savienojuma tabulu, kurā relācijas daudzi pret daudziem ir sadalītas relācijās viens pret daudziem. Primārā atslēga no katras no šīm divām tabulām ir jāievieto trešajā tabulā. Rezultātā trešajā tabulā tiek ierakstīts katrs relācijas gadījums. Piemēram tabulā Pasūtījumi un tabulā Produkti ir relācija daudzi pret daudziem, kas ir definēta, izveidojot divas relācijas viens pret daudziem ar tabulu Pasūtījumu informācija. Vienā pasūtījumā var būt daudzi produkti, un katrs produkts var parādīties vairākos pasūtījumos.

  • Relācija viens pret vienu

    Relācijā viens pret vienu, katram ierakstam pirmajā tabulā var būt tikai viens atbilstošs ieraksts otrajā tabulā, bet katram ierakstam otrajā tabulā var būt tikai viens atbilstošs ieraksts pirmajā tabulā. Šāda relācija netiek bieži izmantota, jo parasti šādā veidā saistīta informācija tiek uzglabāta vienā tabulā. Relāciju viens pret vienu var izmantot, lai iedalītu tabulu ar daudziem laukiem, lai drošības labad izolētu tabulas daļu vai lai uzglabātu informāciju, kas attiecas tikai uz galvenās tabulas apakškopu. Ja tomēr identificējat šāda veida relāciju, abās tabulās ir jābūt kopīgam laukam.

Uz lapas sākumu

Kādēļ ir jāveido tabulu relācijas?

Tabulu relācijas var izveidot tieši, izmantojot logu Relācijas, vai arī velkot lauku no rūts Lauku saraksts. Programma Access izmanto tabulu relācijas, lai zinātu, kā apvienot tabulas, ja nepieciešams tās izmantot datu bāzes objektā. Ir vairāki iemesli, kādēļ ir jāizveido tabulu relācijas, pirms būs iespējams izveidot datu bāzes objektus, piemēram, formas, vaicājumus un pārskatus.

  • Tabulu relācijas sniedz informāciju vaicājumu noformējumiem

    Lai strādātu ar ierakstiem no vairākām tabulām, bieži vien ir jāizveido vaicājums, kas apvieno šīs tabulas. Šis vaicājums darbojas, saskaņojot pirmās tabulas primārās atslēgas lauka vērtības ar otro tabulu. Piemēram, lai atgrieztu rindas, kurās uzskaitīti katra klienta visi pasūtījumi, ir jāizveido vaicājums, kas savieno tabulu Klienti ar tabulu Pasūtījumi, pamatojoties uz lauku Klienta ID. Logā Relācijas varat manuāli norādīt savienojamos laukus. Bet, ja jums jau starp tabulām ir definēta relācija, Access nodrošina noklusējuma savienojumu, pamatojoties uz esošo tabulu relāciju. Turklāt, ja izmantojat vienu no vaicājuma vedņiem, programma Access izmanto no jau definētām tabulu relācijām savākto informāciju, lai parādītu iespējas un lai rekvizītu iestatījumus iepriekš aizpildītu ar atbilstošām noklusējuma vērtībām.

  • Tabulu relācijas sniedz informāciju formai un pārskatu noformējumiem

    Kad noformējat formu vai atskaiti, Access izmanto informāciju, ko savāc no jau definētām tabulu relācijām, lai iepazīstinātu ar iespējām un lai iepriekšēji aizpildītu rekvizītu iestatījumus ar atbilstošām noklusējuma vērtībām.

  • Tabulu relācijas ir pamats, ar kuru palīdzību varat ieviest attiecinošo integritāti, lai datu bāzē netiktu iekļauti pamesto elementu ieraksti. Pamestā elementa ieraksts ir ieraksts ar atsauci uz citu ierakstu, kurš nemaz nepastāv — piemēram, pasūtījuma ieraksts, kas veido atsauci uz neeksistējošu klienta ierakstu.

    Noformējot datu bāzi, informācija ir jāiedala tabulās, un katrā tabulā ir jābūt primārajai atslēgai. Pēc tam saistītajām tabulām tiek pievienota ārējā atslēga, lai veidotu atsauci uz šīm primārajām atslēgām. Šie savienojumi pārī starp primārajām un ārējām atslēgām ir tabulu relāciju un vairāktabulu vaicājumu pamats. Ir svarīgi, lai šīs atsauces starp ārējo un primāro atslēgu būtu sinhronizētas. Attiecinošā integritāte, kas ir atkarīga no tabulu relācijām, palīdz nodrošināt, lai atsauces būtu sinhronizētas.

Uz lapas sākumu

Attiecinošā integritāte

Noformējot datu bāzi, savas datu bāzes sadalāt daudzās tēmai atbilstošās tabulās, lai samazinātu datu redundanci. Pēc tam piešķirat programmai Access iespēju datus atkal apkopot, saistītajās tabulās ievietojot vispārējus laukus. Piemēram, lai parādītu relāciju viens pret daudziem, izmantojat primāro atslēgu no tabulas “viens” un pievienojat to kā papildu lauku tabulā “daudzi”. Lai datus atkal apkopotu, Access ņem vērtību no tabulas “daudzi” un uzmeklē atbilstošo vērtību tabulā “viens”. Tādējādi vērtības tabulā “daudzi” norāda atbilstošās vērtības tabulā “viens”.

Pieņemsim, ka esat izveidojis relāciju viens pret daudziem starp Ekspeditori un Pasūtījumi un vēlaties dzēst kādu ekspeditoru. Ja ekspeditoram, kuru vēlaties dzēst ir pasūtījumi tabulā Pasūtījumi, šie pasūtījumi kļūs par “pamestajiem elementiem”, kad izdzēsīsit ekspeditora ierakstu. Pasūtījumos joprojām būs norādīts ekspeditora ID, taču šis ID vairs nebūs derīgs, jo ieraksta, uz kuru tas veido atsauci, vairs nav.

Attiecinošās integritātes mērķis ir nepieļaut pamesto elementu veidošanos un uzturēt atsauču sinhronizāciju, lai šāda hipotētiska situācija nekad nerastos.

Attiecinošo integritāti var ieviest, iespējojot to tabulas relācijai (detalizētus norādījumus skatiet sadaļā Attiecinošās integritātes ieviešana). Pēc ieviešanas Access noraida visas operācijas, kas tabulas relācijā ir pretrunā ar attiecinošo integritāti. Tas nozīmē, ka Access noraidīs gan atjauninājumus, kas maina atsauces mērķi, gan dzēšanu, ar kuru tiek noņemts atsauces mērķis. Iespējams, ka jums var rasties pamatota nepieciešamība mainīt primāro atslēgu ekspeditoram, kuram ir pasūtījumi tabulā Pasūtījumi. Šādā gadījumā ir nepieciešams, lai Access Access automātiski atjaunotu visas ietekmētās rindas vienas darbības ietvaros. Tādējādi Access nodrošina, lai atjauninājums tiktu pilnībā pabeigts un datu bāzē nebūtu nekonsekvenču, kad dažas rindas ir atjauninātas, bet citas — nav. Tādēļ Access atbalsta opciju Kaskadēt ar atjaunināšanu saistītus laukus. Ja ieviešat attiecinošo integritāti un izvēlaties opciju Kaskadēt ar atjaunināšanu saistītus laukus un pēc tam atjaunināt primāro atslēgu, Access automātiski atjaunina visus laukus, kuros ir atsauce uz primāro atslēgu.

Iespējams, ka radīsies pamatota nepieciešamība dzēst kādu rindu un visus saistītos ierakstus — piemēram, ekspeditora ierakstu un visus ar šo ekspeditoru saistītos pasūtījumus. Šim nolūkam Access atbalsta opciju Kaskadēt ar dzēšanu saistītus ierakstus. Ja ieviešat attiecinošo integritāti un izvēlaties opciju Kaskadēt ar atjaunināšanu saistītus laukus un pēc tam dzēšat kādu ierakstu relācijas primārās atslēgas pusē, Access automātiski dzēš visus ierakstus, kuros ir atsauce uz šo primāro atslēgu.

Uz lapas sākumu

Tabulas relācijas skatīšana

Lai skatītu tabulu relācijas, cilnē Datu bāzes rīki noklikšķiniet uz Relācijas. Atveras logs Relācijas, un tajā ir parādītas visas esošās relācijas. Ja vēl nav definēta neviena tabulas relācija un atverat logu Relācijas pirmo reizi Access parāda uzvedni ar aicinājumu pievienot logam tabulu vai vaicājumu.

Relāciju loga atvēršana

  1. Noklikšķiniet uz Fails un pēc tam uz Atvērt.

  2. Atlasiet datu bāzi un atveriet to.

  3. Cilnes Datu bāzes rīki grupā Relācijas noklikšķiniet uz Relācijas.

    Ja datu bāzē ir relācijas, tiek parādīts logs Relācijas. Ja datu bāzē nav nevienas relācijas, un jūs pirmo reizi atverat logu Relācijas, tiek parādīts dialoglodziņš Tabulas rādīšana. Noklikšķiniet uz Aizvērt, lai aizvērtu šo dialoglodziņu.

  4. Cilnes Noformēšana grupā Relācijas noklikšķiniet uz Visas relācijas.

    Šādi tiek parādītas visas datu bāzē esošās relācijas. Ņemiet vērā, ka slēptās tabulas (tabulas, kurām tabulas dialoglodziņā Rekvizīti ir atzīmēta izvēles rūtiņa Slēpts) un to relācijas netiks parādītas, ja vien dialoglodziņā Navigācijas opcijas nav atzīmēta izvēles rūtiņa Rādīt slēptos objektus.

Tabulas relācija tiek parādīta ar relācijas rindu, kas ir novilkta starp tabulām logā Relācijas. Relācija, kurai nav ieviesta attiecinošā integritāte, tiek parādīta kā šaura līnija starp biežāk lietotajiem laukiem, kas atbalsta šo relāciju. Kad atlasāt relāciju, noklikšķinot uz tās līnijas, šī līnija kļūst biezāka, norādot, ka tā ir atlasīta. Ja šai relācijai ieviešat attiecinošo integritāti, šī līnija katrā galā ir biezāka. Turklāt virs šīs līnijas biezās daļas vienā relācijas pusē tiek parādīts cipars 1, bet virs līnijas biezās daļas otrā pusē tiek parādīts simbols ().

Kad relāciju logs ir aktīvs, lentē varat atlasīt vienu no šīm komandām:

cilnē Noformējums, kas atrodas grupā Rīki:

  • Rediģēt relācijas    Tiek atvērts dialoglodziņš Rediģēt relācijas. Ja atlasāt relāciju rindu, varat noklikšķināt uz Rediģēt relācijas, lai mainītu tabulas relāciju. Varat arī veikt dubultklikšķi uz relācijas rindas.

  • Notīrīt izkārtojumu    Visu tabulu un relāciju rādīšana logā Relācijas tiek noņemta. Ņemiet vērā — izmantojot šo komandu, tabulas un relācijas tiek tikai slēptas — tās netiek dzēstas.

  • Relāciju pārskats    Tiek izveidots pārskats, kurā ir parādītas datu bāzē esošās tabulas un relācijas. Šajā pārskatā tiek parādītas tikai tās tabulas un relācijas, kas nav slēptas logā Relācijas.

Grupas Relācijas cilnē Noformējums:

  • Rādīt tabulu    Tiek atvērts dialoglodziņš Tabulas rādīšana, lai jūs varētu atlasīt tabulas un vaicājumus, ko skatīt logā Relācijas.

  • Slēpt tabulu    Logā Relācijas tiek slēpta atlasītā tabula.

  • Tiešās relācijas    Logā Relācijas tiek parādītas visas atlasītās tabulas relācijas un saistītās tabulas, ja tās vēl nav parādītas.

  • Visas relācijas    Logā Relācijas tiek parādītas visas datu bāzē esošās relācijas un saistītās tabulas. Ņemiet vērā, ka slēptās tabulas (tās, kurām tabulas dialoglodziņā Rekvizīti ir atzīmēta izvēles rūtiņa Slēpts) un to relācijas netiks rādītas, ja vien dialoglodziņā Navigācijas opcijas nav atdimēta izvēles rūtiņa Rādīt slēptos objektus.

  • Aizvērt    Tiek aizvērts logs Relācijas. Ja logā Relācijas veicāt izkārtojuma izmaiņas, jums tiks jautāts, vai vēlaties saglabāt šīs izmaiņas.

Uz lapas sākumu

Paplašiniet savas Office prasmes
Iepazīties ar apmācību
Esiet pirmais, kas saņem jaunās iespējas
Pievienoties Office Insider programmai

Vai šī informācija bija noderīga?

Paldies par jūsu atsauksmēm!

Paldies par atsauksmēm! Šķiet, ka varētu būt noderīgi sazināties ar kādu no mūsu Office atbalsta aģentiem.

×