Dacă numai caseta Asigurarea de integritate a datelor, datele de ștergere domenii-cheie nu poate fi masa de primar. În cazul în care, împreună cu el inclus steaguri Cascade actualizare domenii conexe și în cascadă șterge înregistrări similare. apoi, sunt permise respectiv, editarea operațiunilor și a șterge datele din câmpul cheie al tabelului primar, dar automată însoțită de schimbări în tabelul de referință. [17]
Condiții de eliminare a înregistrărilor stabilite pentru domeniile principale de masă - obiect OS inventar. Când ștergeți înregistrările din tabelul principal sunt șterse automat intrările din tabelul subordonat - cascadă șterge. [18]
Dacă tabelul din care sunt șterse înregistrările, în legătură cu un alt tabel care conține informații care nu ar trebui să fie șterse, faceți clic dreapta pe link-ul, apoi faceți clic pe Modificare link comanda (Edit Relationship) din meniul contextual. Asigurați-vă că caseta Asigurarea integritatea datelor (Impunere referentiala Integritate) este evidențiată, iar caseta cascada șterge înregistrări aferente (cascadă șterge înregistrări similare) - nr. [19]
Prin setarea un astfel de declanșare, puteți fi șters dintr-un rând de tabel părinte, și, astfel, scoateți rândul corespunzător din cele două tabele copil. Rețineți, totuși, că, dacă există relații folosind chei străine, apoi în procesul de eliminare a problemelor în cascadă pot apărea între aceste tabele. În astfel de situații, SQL-server returnează un mesaj de eroare care vă informează că o încercare de a elimina o înregistrare părinte a fost făcută înaintea tuturor copiilor eliminate. În acest caz, probabil, cea mai bună soluție ar fi de a crea o procedură stocată care elimină primele intrări copil, atunci părintele. [20]
Pentru a aplica aceste reguli pentru o anumită comunicare, atunci când a fost creat pentru a fi setat caseta de validare pentru asigurarea integrității datelor. Dacă este bifată această casetă, atunci orice încercare de a efectua o acțiune care încalcă una dintre regulile de mai sus, va conduce la o concluzie pe ecranul de avertizare, iar acțiunea în sine nu va fi efectuată. Dacă indicatorul cascadă șterge domenii conexe. atunci când ștergeți o înregistrare din tabelul primar șterge toate înregistrările legate în podchinennoytablitse. [21]
Cu toate acestea, în practică, un tabel de baze de date, de regulă, legată, și prezența acestor legături în schema bazei de date trebuie să ia în considerare programul de acces atunci când încercați să ștergeți înregistrările unuia din tabelele aferente, după cum se menționează în capitolul 10, secțiunea Asigurarea nehtin Sâ date de ore de bază. Schimbarea link-uri este verificată în cascadă opțiunea de ștergere H. M [23]
Pentru a se asigura că relațiile dintre înregistrările din tabelele aferente sunt corecte, și că nu ștergeți accidental sau modifica datele referitoare, Access utilizează un sistem de reguli numit integritate referențială. Când caseta de selectare Actualizare în cascadă domenii conexe (actualizare în cascadă domenii conexe), o modificare a valorilor cheie primare din tabelul primar se va actualiza automat valoarea corespunzătoare în toate înregistrările aferente. Când caseta de selectare în cascadă șterge înregistrări asemănătoare (în cascadă șterge intrările asociate), ștergerea unei înregistrări din tabelul principal șterge toate înregistrările aferente dintr-un tabel legat. [24]
În primul rând, pentru a restabili înregistrările nu atât de ușor șterse. În al doilea rând, eliminarea poate fi mai extinsă decât vă doriți de fapt. Atunci când un tabel din care sunt șterse înregistrările, este conectat la o altă masă și este setat la cascadă șterge intrările asociate (cascadă șterge înregistrări asemănătoare), înregistrările în al doilea tabel va fi, de asemenea, eliminate. În unele cazuri, acest lucru este justificat, în altele - nr. De exemplu, cu greu pe care doriți să-l ștergeți înregistrările de vânzări anterioare doar pentru că doriți să eliminați produsele care sunt durere-shenetsprosa. Suschestvuyutdvasposobaresheniyaetoyproblemy: să păstreze o copie de rezervă a bazei de date înainte de ștergerea înregistrărilor, sau mutați înregistrările șterse într-un spațiu special creat în acest scop tabel. [25]
În primul rând, nu există nici o modalitate rapidă de a recupera înregistrările șterse. În al doilea rând, efectul solicitarea de eliminare poate fi mai complexă și de anvergură decât vă imaginați. Dacă tabelul în care sunt ștergerea înregistrărilor are o relație cu o altă masă, iar această conexiune este setată la Cascade Delete Records conexe (cascadă șterge înregistrări legate), înregistrările din al doilea tabel va fi ștearsă. [26]
După cum sa arătat mai sus, alegerea de comunicare pentru rezolvirovaniya în conexiunile coloanelor pot utiliza diferite funcții de evaluare euristică. În cazul rezolvirovaniya paralel trebuie să aleagă un set de relații care îndeplinesc anumite condiții. Este demn de remarcat faptul că alegerea de comunicare proasta poate duce la o creștere exponențială a numărului de clauze în soluționarea unor probleme complexe, care va face procedura de retragere este practic inutilizabil. În același timp, o bună selecție de comunicare poate crește foarte mult eficiența procedurii de retragere. De exemplu, o singură comunicare rezolvirovanie litere predicat în plumb disjuncție la apariția așa-numitelor clauze pure, care trebuie să fie eliminate. Scoaterea net disjuncție, la rândul său, poate duce la o cascadă șterge alte clauze și un efect de bulgăre de zăpadă. Ca rezultat, obligațiuni ale structurii graficului poate fi simplificată considerabil. [27]
Pagina: 1 2