Popularea tabelelor. Testarea restricţiilor de integritate referenţială referat



După ce s-au creat tabelele se pot introduce date in acestea. Introducerea datelor, se poate realiza cu ajutorul unor formulare create pentru aceasta tabela, sau pur si simplu prin selectarea tabelei dorite şi apăsarea butonului Open (Deschidere) existent în partea de sus a ferestrei.
Pe ecranul monitorului, va apărea o fereastră ce permite introducerea datelor.



În această fereastră se vor introduce datele corespunzătoare. În partea de jos a ferestrei se află un mic meniu ce permite parcurgerea înregistrărilor tabelei şi care anunţă câte înregistrări conţine tabela respectivă.
Dacă se doreşte ştergerea sau modificarea anumitor date dintr-o tabela, va fi necesară deschiderea tabelei pe care se doreşte să se lucreze şi localizarea înregistrării pentru câmpul de modificat. Când s-a încheiat modificarea sau ştergerea anumitor informaţii, pentru salvarea acestora, se procedează la închiderea tabelei. MS Access va salva automat ceea ce s-a modificat. Pentru o mai mare siguranţă, însă, se poate apăsa butonul Save (Salvare), existent pe bara de instrumente a aplicaţiei, sau opţiunea cu acelaşi nume din meniul File.



Dacă se doreşte ştergerea anumitor înregistrări dintr-o tabelă, va trebui să se realizeze în prealabil o poziţionare pe înregistrarea dorită şi apoi să se aleagă opţiunea Delete Record (Ştergere înregistrare) din meniul contextual declanşat pe coloana cea mai din stânga a tabelei .
Se vor alege următoarele date pentru popularea tabelelor (în ordinea dată şi fără caracterele virgulă, care despart valori ale diferitelor câmpuri - aşanumite atribute sau prin analogie cu EXCEL: coloane):
JUDEŢE:
BC, Bacău, Moldova
IS, Iaşi, Moldova
CJ, Cluj, Transilvania
ADRESAPOSTALA:
400609, Cluj Napoca, CJ
607450, Podu Turcului, BC
700504, Iaşi, IS
700505, Iaşi, IS
700506, Iaşi, IS
ADRESAFIZICA:
adrf1, Bulevard Carol I nr.15, 700506
adrf2, StradA Ibrăileanu Garabet nr. 3, 700506
adrf3, Teiului, 607450
adrf4, Bulevard Carol I nr.42, 700504
adrf5, Alea Micle Veronica, 700505
adrf6, Alexandru Ioan nr.7, 400609
STUDENŢI:
ELZ04001, Barbu I Sorin, 1830210032456, Trunchi comun -Zi, 1, 1, adrf1
ELZ04010, Barbu I Vasile, 1851211042398, Trunchi comun -Zi, 1, 1, adrf1
ELZ04013, Barbosi V Ionela, 2851011794981, Trunchi comun -Zi, 1, 1, adrf6
ELZ04020, Ababei Y Minodora, 2801204371242, Contabilitate, 1, 2, adrf2
ELZ01012, Vasilescu D Ion, 1810210394563, Informatica Economica-Zi, 3, 1, adrf3
ELZ01014, Georgescu R Dudu Ion, 1811021039426, Informatica Economica - Zi, 3, 1, adrf4
ELZ01123, lonescu V Vasile, 2830312394536, Informatica Economica- Zi, 3,1, adrf5
DISCIPLINE:
AE1101, Microeconomia, 7, 42, 28
AE1201, Macroeconomia, 7,42, 28
AI1101, Bazele informaticii economice, 7, 42, 28
AI1201, Medii de programare, 6, 28, 28
AI3508, Baze de date I, 7, 28, 28
AI3614, Baze de date II, 7 ,28,28
EXAMENE:
ELZ04001, AE1101, 01/28/2005, 3
ELZ04010, AE1101, 01/28/2005, 7
ELZ04020, AE1101, 01/28/2005, 4
ELZ04001, AI1101, 02/01/2005, 8
ELZ04010, AI1101, 01/28/2005, 9
ELZ01012, AI3508, 01/24/2005, 7
ELZ01123, AI3508, 01/24/2005, 4
ELZ04001, AE1101, 02/11/2005, 4
ELZ04010, AE1101, 02/11/2005, 10
ELZ04020, AE1101, 02/11/2005, 6
ELZ01123, AI3508, 02/23/2005, 7
ELZ04001, AE1201, 06/02/2005, 8
ELZ04020, AE1201, 06/02/2005, 3
ELZ04010, AE1201, 06/02/2005, 7
ELZ04001, AI1201, 06/12/2005, 9
ELZ04020, AI1201, 06/12/2005, 4
ELZ04010, AI1201, 06/12/2005, 6
ELZ04001, AE1101, 07/04/2005, 9
ELZ04020, AE1201, 07/10/2005, 5

După realizarea populării cu date a tabelelor se vor testa restricţiile de integritate referenţială astfel:
- se va testa în tabela părinte Studenţi restricţia la modificare sau altfel spus se va proceda la modificarea valorii matricolului ELZ01012 în ELZ010120; rezultatul va însemna eşec datorită restricţionării modificării în tabela părinte Studenti (la definirea relaţiei dintre tabelele Studenti şi Examene opţiunea Cascade Update Related Fields nu a fost bifată);



- în aceeaşi tabelă, se va testa restricţia la ştergere încercând suprimarea înregistrării cu matricolul ELZ04020; rezultatul va presupune un alt eşec datorită restricţionării ştergerii în tabela părinte Studenti (la definirea relaţiei dintre tabelele Studenti şi Examene opţiunea Cascade Delete Related Records nu a fost bifată);



- în tabela AdresaPostala, se va testa modificarea în cascadă încercând de fapt corectarea înregistrării cu CodAdrP=607450 astfel: noul CodAdrP=607451 în timp ce noua Localitate=Bălăneşti; rezultatul va fi sesizabil şi la nivelul tabelei AdresaFizica datorită regulii de propagare a modificărilor în cascadă (opţiunea Cascade Update Related Fields a fost bifată);



- în tabela Judete, se va testa ştergerea în cascadă pentru înregistrarea cu indicativul de judeţ CJ; rezultatul va fi evident la nivelul tabelei AdresaPostală datorită regulii de propagare a ştergerii în cascadă (opţiunea Cascade Delete Related Records a fost bifată);


respectiv:



- în aceeaşi tabelă Judete, însă, ştergerea în cascadă se poate solda cu eşec; astfel, încercând ştergerea înregistrării cu indicativul de judeţ BC vom obţine un rezultat nefavorabil deşi opţiunea Cascade Delete Related Records a fost bifată;



Explicaţia este relativ simplă dacă privim relaţionările dintre tabele pentru ultimele două cazuri:



respectiv



Este mai mult decât evident că ultima ştergere intră în conflict cu restricţiile de integritate referenţială declarate între tabelele Studenti şi Examene, unde nu funcţionează ştergerea în cascadă ci restricţia la ştergere. Mai precis, în cascadă, se încearcă în cele din urmă ştergerea efectivă a unei înregistrări din tabela Examene şi anume:

.

La fel de evident, penultima ştergere nu presupune, în final, ştergerea vreunei înregistrări din tabela Examene.



Deci va fi permisă în condiţiile în care nu va intra în conflict cu restricţia la ştergere definită între tabelele Studenti şi Examene.

- restricţia la inserare în tabela copil se poate testa pe tabela Examene corelată cu tabela părinte Studenti, prin adăugarea unui matricol, în prima variantă, inexistent în tabela Studenţi - gjhgjhg;




- ulterior, restricţia la inserare în tabela copil Examene se va testa cu valori teoretic permise şi va funcţiona (matricolul ELZ01012, în cea
de-a doua variantă, se regăseşte în tabela părinte Studenti);