Integritatea (din integritatea englezească - intactă, inviolabilitate, securitate, integritate) - este înțeleasă ca fiind corectitudinea datelor în orice moment.
integritatea DB nu garantează fiabilitatea informațiilor conținute în acesta, dar oferă cel puțin plauzibilitatea acestor informații, respingând valori incredibile în mod evident, imposibile. Astfel, nu trebuie să confundați integritatea bazei de date cu fiabilitatea bazei de date. Precizia (sau adevăr) este faptele relevante stocate în baza de date, lumea reală. Evident, pentru a determina fiabilitatea de date pe care doriți să aibă deplină cunoștință de modul în care conținutul în baza de date, și lumea reală. Pentru a determina integritatea bazei de date necesită doar să posede cunoștințe despre conținutul bazei de date și regulile definite pentru ea. Prin urmare, baza de date poate (și ar trebui) să verifice integritatea bazei de date, dar, în principiu, nu este în măsură să controleze acuratețea bazei de date. Controlul bazei de date de fiabilitate poate fi impusă numai asupra persoanei, și chiar și atunci într-o măsură limitată, deoarece, în unele cazuri, de asemenea, oamenii nu au cunoștințe complete despre lumea reală.
Deci, baza de date poate fi completă, dar nu este de încredere. Opusul este, de asemenea, posibil: baza de date poate fi fiabilă, dar nu completă. Aceasta din urmă are loc dacă regulile (constrângerile de integritate) sunt setate incorect. Sub integritatea bazei de date în cazul general se înțelege disponibilitatea sa de a lucra.
Integritatea bazei de date are multe aspecte:
- integritatea fizică. și anume securitatea informațiilor pe suporturi magnetice și corectitudinea formatelor de date;
- integritatea logică. ceea ce înseamnă coerența datelor din baza de date;
- relevanța datelor. și anume corespondența datelor cu starea reală a lucrurilor.
Pierderea integrității bazei de date poate rezulta din defecțiunile hardware ale calculatorului, erorile software, tehnologia incorectă de intrare și ajustare, fiabilitatea redusă a datelor în sine și așa mai departe. Prin urmare, este foarte dificil să se asigure integritatea bazei de date cu volum real. În același timp, pierderea integrității datelor duce la consecințele cele mai grave, până la supraîncărcarea completă a datelor bazei de date.
Integritatea datelor este asigurată de un set de oferte speciale numite constrângeri de integritate. Constrângerile de integritate sunt declarații despre valorile admisibile ale elementelor individuale de informație și despre relațiile dintre ele. Constrângerile de integritate se pot referi la diferite obiecte de informare: atribute, tupluri, relații, relații între ele și așa mai departe.
Pentru câmpurile (atributele), se folosesc următoarele tipuri de restricții: tipul și formatul câmpului; stabilirea unui interval de valori; inadmisibilitatea unui câmp gol; atribuirea domeniului; verificați unicitatea valorii unui câmp (evitați înregistrările duplicate). Limitările care sunt utilizate numai la verificarea admisibilității unei ajustări sunt numite constrângeri de tranziție.
Constrângerile legate de tuple: fie valoarea întregii restricției rând, considerat ca un întreg (o limitare naturală este cerința de unicitatea fiecărui rând din tabel), sau constrângeri asupra raporturi ale valorilor individuale ale câmpurilor într-un rând.
Există restricții care verifică relațiile dintre înregistrările aceleiași mese. Există constrângeri în legătură cu mai multe tabele interdependente, de exemplu, limitând integritatea de comunicare, care se exprimă în faptul că o valoare atribut care reflectă legătura dintre obiectele și o relație cheie străină să fie aceeași cu una din valorile atributelor, care este relațiile-cheie care descriu obiectul respectiv . Un fel de restricție este interzicerea actualizării. Se poate referi la un singur câmp, la întreaga înregistrare și la întreaga masă.
Constrângerile de constrângere sunt împărțite de momentul monitorizării respectării restricțiilor - într-o etapă și amânate. Restricțiile de integritate la întârziere nu pot fi îndeplinite în timpul executării oricărui grup de operațiuni, dar trebuie urmate atunci când acest grup de operațiuni este finalizat. Dacă niciuna dintre operațiunile de tranzacție nu este efectuată, toate operațiile efectuate anterior sunt anulate și datele sunt returnate statului în care au fost înregistrate înainte de începerea tranzacției.
Constrângerile de integritate sunt împărțite de metoda de atribuire - explicită și implicită. Restricțiile implicite sunt determinate de specificul modelului de date și sunt verificate automat de SGBD. Constrângerile implicite aparțin, de obicei, categoriei de restricții sintactice, spre deosebire de constrângerile de integritate semantică care sunt determinate de domeniul specific. Conceptul de integritate se poate referi și la informațiile oficiale.
Constrângerile de constrângere sunt clasificate în mai multe moduri: prin metode de implementare; la momentul verificării; cu privire la domeniul de aplicare al acțiunii.
Prin implementare se disting următoarele: suport declarativ pentru constrângerile de integritate - folosind limbajul de definiție a datelor (DDL); suportul procedural pentru constrângerile de integritate - prin declanșatoare și proceduri stocate.
În momentul verificării, restricțiile sunt împărțite în: restricții imediat verificabile; constrângeri cu verificare amânată.
Cu privire la domeniul de aplicare al restricțiilor sunt împărțite în: restricții de domeniu; restricții de atribut; restricții ale tuplei; restricționarea atitudinii; restricții baze de date.
Baza de date este într-o stare consecventă dacă toate constrângerile de integritate sunt îndeplinite pentru această stare.
O tranzacție este indivizibilă, în ceea ce privește impactul asupra DBMS-ului, o secvență de operații de manipulare a datelor, efectuată pe o bază "totală sau totală" și transferând baza de date dintr-o stare holistică într-o altă stare holistică. Tranzacția are patru proprietăți importante, cunoscute ca proprietăți ACID: (A) atomicity; (C) consistența; (Ii); (D) durabilitate.
Atomicitate (atomicitate) proprietate este reflectată în faptul că tranzacția trebuie să fie executate în totalitate sau nu efectuat deloc. coerență proprietății (Coerența) se asigură că după finalizarea tranzacției de mutare a datelor de la un stat la altul consecvent - tranzacția nu distruge coerența reciprocă a datelor. Izolarea proprietate (izolare) înseamnă că, în competiție pentru accesul la tranzacția de bază de date este prelucrată fizic secvențial, în mod izolat unul de celălalt, dar pentru utilizator se pare ca în cazul în care acestea sunt executate în paralel. Proprietate durabilitate (durabilitate) este interpretat după cum urmează: în cazul în care tranzacția este finalizată cu succes, atunci schimbările din datele care au fost făcute nu poate fi pierdut în nici un caz (chiar și în cazul unor erori ulterioare).
Există două opțiuni pentru finalizarea unei tranzacții. Dacă toți operatorii au succes și nu au loc defecțiuni software sau hardware în timpul tranzacției, tranzacția este angajată. O comitere a tranzacțiilor este o acțiune care permite bazei de date să scrie modificări în baza de date care au fost făcute în timpul tranzacției. Până când tranzacția este fixată, este permisă revocarea acestor modificări, restabilirea bazei de date la starea în care era în momentul tranzacției. Fixarea unei tranzacții înseamnă că toate rezultatele tranzacțiilor devin permanente. Acestea vor deveni vizibile pentru alte tranzacții numai după tranzacția în curs. Până atunci, toate datele afectate de tranzacție vor fi "vizibile" utilizatorului în starea de la începutul tranzacției curente. Dacă sa întâmplat ceva în timpul executării tranzacției, ceea ce face imposibilă finalizarea acesteia în mod normal, baza de date trebuie returnată în starea inițială. O revocare a tranzacției este o acțiune care asigură faptul că toate modificările aduse datelor care au fost făcute de instrucțiunile SQL din corpul tranzacției în așteptare sunt anulate. Fiecare operator dintr-o tranzacție își îndeplinește partea de serviciu, dar pentru a finaliza toată munca în ansamblul său, toți operatorii trebuie să fie reziliați necondiționat. Gruparea operatorilor într-o tranzacție indică DBMS-ului că întregul grup trebuie executat ca o singură unitate, iar această implementare trebuie suportată automat.
Conceptul unei tranzacții este necesar pentru a menține integritatea logică a bazei de date. Fiecare tranzacție începe cu o stare DB completă și lasă această stare completă după finalizarea acesteia.