Cele patru laturi de integritate
integritatea entitate
Integritatea entitate este implementată prin chei primare. Reguli pentru a asigura integritatea entității interzice chei primare au valori nedefinite, sau de a le primi ca urmare a orice manipulare a datelor. Aceste norme asigură disponibilitatea fiecărui rând de tabel atunci când căutați sau modifica date. Puteți găsi în fiecare rând din tabel, dacă setați valoarea cheii sale primare.
Modul standard pentru a asigura integritatea entității în mediul SQL Server este de a defini cheile primare pentru fiecare tabel. În acest scop, instrucțiunea CREATE TABLE sau ALTER TABLE este introdus precizări suplimentare, așa cum se arată în Listarea 1. În îndeplinirea acestei echipe SQL Server construiește un index unic pe cheia primară. Această abordare asigură punerea în aplicare a regulii care interzice să intre valori duplicat în coloana pe care indicele este unic.
integritatea referențială
integritatea referențială asigură faptul că valoarea într-un tabel se referă la valoarea care există în celălalt. regula de integritate referențială prevede că valoarea cheii externe trebuie să fie minciună în domeniu asociat cu cheia primară ea, sau poate fi nedefinită. Domeniul este setul de valori valide pentru coloana specificată.
chei străine, adică, coloanele care stabilesc legături de masă de referențiere, numit „maestru“, un tabel de referință numit „detaliu“, pune în aplicare un unu-la-mulți (1: N) între cele două tabele. O cheie externă (coloana din tabelul de referențiere) trebuie să aibă întotdeauna cheia primară corespunzătoare (coloana de același tip și lungimea de date într-un tabel de căutare). Domeniul cheie externă nu se poate extinde dincolo de limitele domeniului cheie primară să-l corespunzător. Aceste domenii trebuie să se potrivească, în caz contrar cheia externă poate fi nul.
Un declanșator este un anumit tip de proceduri stocate, care este invocată în mod automat atunci când efectuează anumite acțiuni cu tabelul, de exemplu, inserarea, ștergerea sau actualizarea rânduri. Înainte de acțiune va fi efectuată cu codul liniei (inserare sau ștergere) încorporate în declanșare verifică o condiție predeterminată. În funcție de rezultatele testelor efectuate una sau alta parte a codului de declanșare. Deoarece declanșatorul este codul, atunci este posibil să se stabilească algoritmi foarte sofisticate și reguli de validare. De exemplu, este posibil de a inspecta întreaga integritatea referențială în baza de date a scalei și de a efectua cascadă șterge toate rândurile din tabelul de referință asociat cu registrul special în tabelul de referențiere. Trigger declanșează numai după ce sunt îndeplinite toate controalele, membrii DSC. Deși DSC este mai rapid decât un declanșator, dar prevăzut cu posibilitatea de ceva mai puțin. Utilizarea și DSC, și declanșează pentru a verifica aceleași condiții este imposibilă, deoarece DSC este realizată înainte de declanșare de pornire, iar în cazul în care condiția este evaluată DSC dă un rezultat negativ, de declanșare și nu va porni. Listarea 3 ilustrează utilizarea declanșatori pentru verificarea integrității referențiale. Codul verifică disponibilitatea rândului corespunzător din tabelul de căutare la introducerea unui nou rând în tabelul de referențiere.
integritatea domeniului
integritatea domeniului asigură că toate valorile unei coloane fac parte din setul de valori valide. Fiecare coloană are un anumit set de valori, de exemplu, pentru un set de coloane Pubs..zip este format din toate numărul cinci cifre și pentru coloana Pubs..au_name - șiruri de caractere, și pentru coloana Sales..ord_date - toate datele. Dacă setați o limită privind valoarea unor elemente ale coloanei, în aceeași măsură vă asigura integritatea domeniului. Integritatea Domeniul Implementarea poate fi foarte simplu - trebuie doar să alegeți tipul potrivit pentru coloana, și lungimea datelor. Antetele tabel baza de date pub-uri pentru coloana Pubdate specificat tipul de date datetime, precum și interzicerea nuluri. Un astfel de creator tabel de alegere asigură faptul că valorile coloanelor care sunt date valide, de exemplu, 11/22/99. În acest fel, cu condiția ca integritatea domeniului.
În SQL-89 și SQL-92 ANSI standarde introduse operatorul de creare CREA domeniu DOMAIN, care Transact SQL (T-SQL) este tratată ca un tip de date definit de utilizator (UDT) cu controale și limitări. Domeniul ANSI SQL-89/92 se obține din tipurile de date existente, la fel ca în următorul pseudocod:
În T-SQL, puteți crea domenii de bază, bazându-se pe UDT de date de bază de tip SQL Server. În plus, puteți adăuga opțiunea UDT valori nule, așa cum se arată în exemplul de electronice pe T-SQL Ghid:
Când se folosește această UDT pentru a CREATE TABLE și ALTER TABLE necesare pentru a completa procesul de integritate verifica constrângerile de domeniu. Efectuat în timpul creării tabelului de verificare constrângerilor de integritate furnizează domeniu limitând setul de valori care pot fi plasate într-o coloană. Listarea 4 prezintă un exemplu de o astfel de restricție.
DSC este, de asemenea, una dintre integritatea domeniului formulare. La punerea în aplicare a 1: cheie domeniu extern M și domeniu corespunzător cheie primară trebuie să se potrivească. În exemplul din listingul 4 nu va putea să intre în valoarea pub_id coloană care nu este conținută în tabelul Publishers. Astfel, coloana domeniu title6.pub_id este limitată prin referire la cheia externă.
Urmând această logică, puteți crea tabele care sunt proiectate special pentru a limita valorile dintr-o coloană într-o altă masă, adică, pentru a asigura integritatea domeniului. În acest caz, o masă specială numită de referință sau link-ul. Acesta este legat de tabelul modificabilă 1: M, care se efectuează întotdeauna. De exemplu, în Listarea 5 coloană Pubs.type se referă la o coloană din TypeTable tabel. Listarea 5 conține o descriere a TypeTable tabel de referință structura și valorile eșantioanelor. Dacă încercați să introduceți un șir de caractere în tabelul Pubs.title7 și, în același timp, utilizați valoarea care nu se află în tabelul TypeTable, această operație va eșua. Termenii DSC înregistrate în Pubs.title7, utilizat împreună cu o listă de valori posibile în tabel furnizează integritatea domeniului TypeTable.
integritatea de afaceri
Integritatea de afaceri, de asemenea, numit de integritate a utilizatorului se asigură că baza de date îndeplinește toate regulile de business stabilite de către utilizator, instrucțiunile, directivele și procedurile. De obicei, integritatea de afaceri este implementat folosind proceduri și declanșatoare stocate. O procedură stocată este o cerere care este stocată pe un server de baze de date și este utilizat pentru manipularea siruri de caractere și returnează rezultatele. Declanșează menține integritatea datelor „din spatele scenei“, deoarece ei lucrează, astfel încât utilizatorul nu este nici măcar conștient de faptul că acestea au fost lansate. Listarea 7 prezintă un exemplu de cod de declanșare, pentru asigurarea continuității activității.
Integritatea datelor este vitală pentru orice bază de date. Dacă aceste valori sunt discutabile, apoi extrase din informația bazei de date va fi fie complet inutil sau afectata in mod semnificativ. Am examinat patru tipuri de integritate este un set de reguli care trebuie urmate atunci când se lucrează cu baza de date. Bine definite și aplicate, acestea acționează ca o echipă, asigurând acuratețea și coerența datelor în baza de date.