Integritatea bazelor de date

Termenul "integritate" este utilizat pentru a descrie exactitatea și corectitudinea (sau coerența) datelor stocate într-o bază de date.

Dacă termenul "securitate" înseamnă protecția datelor de acces neautorizat, atunci "integritate" înseamnă protecție împotriva accesului autorizat, i. integritatea apare atunci când utilizatorul are dreptul de a lucra cu baza de date, dar funcționează corect (nu introduce date care să conducă baza de date la poziția greșită).







Constrângerile de integritate pot fi orice grad de complexitate. În unele cazuri, alte constrângeri diferite sunt numite reguli de afaceri. Când vine vorba de constrângeri elementare, cuvântul cheie CHECK este utilizat aici (verificarea corectitudinii introducerii datelor, potrivirea acestor date cu altele ...), ele sunt numite elementare, ele sunt adesea codate cu greu. Regulile extinse pot include probleme de integritate între tabele individuale, de exemplu, "Fără copii fără părinți". Și regulile de afaceri se pot referi la sfere specifice de aplicare a bazelor de date (de exemplu, în baza de date contabilă a altor, la altele ...). În acest caz, restricțiile pot fi instalate pe server, pe client sau pe software intermediar (middleware).

A) Luați în considerare opțiunea "pe server", adică restricțiile sunt plasate sub forma unui cod pe server. În acest caz, datele în sine sunt protejate împotriva interferențelor și ștergerii accidentale, iar toți clienții respectă automat aceste restricții. Acest lucru conduce la faptul că aplicațiile clienților înșiși pot fi mai simple, deoarece nu mai au nevoie să stabilească limite. În al doilea rând, executarea restricțiilor pe server este mai rapidă, deoarece acestea nu trebuie să fie trimise la server, dar trebuie doar să trimiteți o eroare. Cu toate acestea, există anumite probleme legate de faptul că SQL nu este la fel de bun în comparație cu limba universală, și nu este atât de ușor de făcut restricții dificile. La restricțiile sale de bază stocate în tabelele bazei de date de sistem, acestea sunt, de obicei, fie generate automat sau nume generate de utilizatori (ultima opțiune este mai bine, pentru că dacă în mod automat, du-te la camere, care este greu de găsit limita din dreapta). În InterBase ele se numesc automat număr întreg. Dezavantajele includ, de asemenea incapacitatea aplicației client de a reacționa la anumite condiții de eroare (de exemplu, probleme de rețea).







B) Plasarea restricțiilor la nivelul fondurilor intermediare. Pentru instrumente intermediare includ sisteme, cum ar fi ODBC, GDBC, diferite API, care oferă acces unificat la bazele de date (OLE DB ...). Și aici există anumite argumente pro și contra. Contra sunt legate în primul rând de faptul că, în ciuda faptului că aceste API-ul a fost instrumente de dezvoltare destul de mult, dar puternic pentru a crea constrângeri este mică, și în al doilea rând, toate API-ul este de obicei legat de sistemul de operare (baze de date, de obicei, face acest lucru astfel încât aceștia pot lucra acolo și acolo, dar aceste instrumente intermediare sunt de obicei UNIX, Windows sau altceva).

Tipuri (tipuri) de condiții de integritate a datelor:

1. Legarea datelor - odată ce introduceți setul de date dintr-un câmp, până când introduceți date, sistemul nu va elibera sistemul de la dialer (NOT NULL).
2. verificarea validității - verificarea intervalului de valori (corectitudinea introducerii datei, dimensiunea numerelor)
3. Integritatea (integritatea entității) - corespondența dintre cheia externă și cheia primară
4. integritatea referentă - de regulă, acestea sunt verificate în două locuri: pe client, pe server.
5. Coerența (regulile de afaceri) - regulile de afaceri, depinde de SGBD specifice.

Implementarea regulilor de afaceri în programul de aplicații (pe partea clientului) are o serie de deficiențe:
- Duplicarea - dacă există restricții și mai multe aplicații, trebuie să vă amintiți să introduceți codul fiecărei aplicații și să faceți restricția corespunzătoare acolo.
- Coordonarea insuficientă - sistemele mari sunt scrise de diferiți programatori și pot implementa în mod diferit aceleași restricții, care, prin urmare, lucrează diferit (la viteze diferite etc.) nu sunt coordonate.
- dificultăți de urmărire - sistemele nu sunt statice, adesea completate și modificate în funcție de modificările externe, trebuie să intrați în codul programului și să faceți modificări.
- complexitate - un număr mare de reguli diferite de afaceri, deci orice, chiar și o actualizare simplă a tabelului, de exemplu, duce la un proces lung, deoarece trebuie să faceți o mulțime de controale.

În 1986, compania "spune firma de bază" a introdus conceptul de "declanșator", care a permis includerea (transferului) scrierii regulilor de afaceri pe server și, în consecință, reducerea numărului de programe de aplicații.

Dezavantaje ale declanșatorilor:
- complexitatea bazei de date, atunci când normele de afaceri devin parte a bazei de date;
- ascunderea regulilor - logica declanșatoarelor declanșatoare nu este întotdeauna ușor de înțeles, în special pentru programatorii care vin să modernizeze programul, adică Este necesar să înțelegeți programul și logica extraterestră, ceea ce este dificil. Aceasta este uneori numită reguli ascunse.

Sponsorul postului:
douăzeci de mii de ruble pentru noul an - o nouă competiție minunată. Fă-ți un cadou pentru anul nou, împrumuta doar locul al treilea în emiterea Yandex.







Articole similare

Trimiteți-le prietenilor: