Tema 11: Asigurarea integritatea datelor în baze de date SQLite3
Bună ziua, ZametkiNaPolyah.ru vizitator site-ul. Vom continua să exploreze baza de date și familiarizăm cu biblioteca SQLite3 .Va trece la una dintre cele mai importante subiecte ale bazelor de date relaționale - pentru a asigura integritatea datelor în bazele de date. în această problemă ne vom uita la ceea ce caracteristici pentru a asigura integritatea datelor este, în baze de date relaționale exemplu SQLite. Trebuie spus că conceptul de integritate a datelor este strâns legată de normalizarea conceptului și noțiunea de relație între tabele. Această înregistrare, aceasta va ajuta să înțelegeți aceste conexiuni.
Asigurarea integrității datelor în baze de date SQLite3
Din această înregistrare, veți învăța în termeni generali cu privire la modul de a asigura integritatea datelor în baze de date, vom repeta anomaliile care există în baza de date relațională și a vedea ce facilități există în SQLite pentru a elimina anomaliile. Așa cum ne uităm la restricțiile care sunt la fel și sunt concepute pentru a asigura integritatea datelor. Constrângerile sunt împărțite în două tipuri: constrângeri la nivel de coloană și constrângerile la nivel de masă. Iar sfarsitul articolului vei învăța cum să se ocupe cu anomaliile folosind operațiile în cascadă.
Cum este integritatea datelor bazei de date în SQLite3
Mecanisme pentru menținerea integrității datelor în bazele de date de la orice bază de date sunt necesare pentru a evita tot felul de erori. legate de manipularea datelor. Aceste erori se numesc anomalii:
Cu anomaliile de baze de date poate fi combătută în mai multe moduri, de exemplu, baza de date pentru a determina forma normală a treia, sau pentru a profita de menținerea mecanismelor de integritate a datelor puse în aplicare în SGBD. De fapt, nici unul din baza de date din lume știe că o formă normală. Prin urmare, responsabil pentru normalizarea dezvoltator de baze de date.
SQLite, precum și alte baze de date, nu sunt conștienți de ceea ce o cheie externă și cheie primară. deoarece pentru toate bazele de date relaționale - nu-i chei sau atribute cheie și constrângeri care asigură integritatea datelor în bazele de date. Dacă găsiți mai ușor, această bază de date reguli, care niciodată nu se va rupe, și nu va permite nimănui să încalce nu s-ar fi întâmplat.
Când vom crea un tabel într-o bază de date folosind declarație CREATE. definim caracteristicile pentru fiecare coloană: tip de date. care vor fi stocate în coloana, putem spune SQLite, că coloana AUTOINCREMENT, iar apoi SQLite va asigura integritatea datelor coloanei pe cont propriu. adăugând în mod automat o nouă valoare în această coloană, atunci când adăugarea de noi rânduri într-un tabel.
Puteți asigura integritatea datelor și pentru a scăpa de problemele cu adăugarea datelor din tabelul comanda INSERT. Eu spun că coloana nu poate găsi o valoare NULL: în acest caz, dacă uitați să adăugați valoare în coloana pentru care nenul specificat, nu vor fi adăugate datele.
În general, pentru a menține și de a asigura integritatea datelor în bazele de date SQLite3 avem două mecanisme:
- Normalizarea relațiilor în baza de date.
- Normele interne și baza de date reglementări.
Aceste două mecanisme pentru menținerea și asigurarea integrității datelor în baze de date, de fapt, sunt foarte strâns legate, și înțelegem acest lucru ceva mai departe. Cine este de a spune că limitarea în SQLite, la fel ca în orice altă bază de date este împărțit în două niveluri: constrângerile la nivel de masă și limitările nivelul coloanei.
În primul rând pentru a asigura integritatea datelor în întreaga bază de date, acesta din urmă să asigure integritatea datelor din tabelul de baze de date.
baze de date coloană limitare nivel SQLite ca mijloc de asigurare a integrității datelor
baze de date la nivel de restricții pe coloană SQLite3 sunt necesare pentru a asigura integritatea datelor într-un singur tabel de baze de date, sau, mai degrabă, în coloana a tabelului. Anterior, suntem foarte adesea se confruntă cu limitările nivelului tabel atunci când se analizează diverse comenzi SQL. SQLite pentru constrângeri la nivel de coloană - acestea sunt reguli care trebuie îndeplinite pentru a menține și de a asigura integritatea datelor în baza de date. Să vedem cum SQLite asigură integritatea datelor la nivelul coloanei.
- Înțeles NOT NULL. O limitare a nivelului coloanei și asigură integritatea datelor datorită faptului că coloana, pe care ni sa spus NOT NULL nu poate stoca o valoare NULL în sine, atunci o comandă INSERT, dacă uitați să adăugați o valoare într-o coloană, SQLite vă va returna o eroare.
- Înțeles unică. Dacă specificați o coloană de obicei, un unic, SQLite apoi asigurați-vă că magazinele coloană numai valori unice, asigurând astfel integritatea coloanei de date.
- Valoarea de verificare a bazelor de date în baza de date SQLite definește o serie de valori, de exemplu, aveți un tabel de angajați și salariul, salariatul nu poate primi salarii sub salariul minim, astfel încât să asigure integritatea datelor CHECK.
- Valoarea DEFAULT vă permite să specificați valoarea implicită pentru coloană: SQLite va substitui o valoare implicită în cazul în care uitați să adăugați o valoare pentru coloana atunci când se adaugă un rând nou în tabel. Acesta este, de asemenea, un mecanism pentru asigurarea integrității datelor în datele de bază de date SQLite.
- tip coloană de date, sau mai degrabă, coloana de clasă de date. dar dacă vrem să fie complet corecte în contextul SQLite3, tipul de date rafinat al coloanei este o restricție și necesitatea de a menține și de a asigura integritatea datelor.
- Când ne-am uitat la datele comparative din SQLite. apoi am vorbit despre designul COLLATE care vă permite să setați comparații. La prima vedere, acest design nu se aplică pentru a asigura mecanisme de integritate a datelor. dar dacă te uiți la ea în acest fel: putem folosi filtrul WHERE prin eliminarea datelor dintr-un tabel DELETE de comandă. atunci când folosim UNDE, SQLite începe să se compare valorile pentru a decide dacă trebuie să-l ștergeți sau nu.
Încă o dată, că constrângerile la nivel de coloană asigură integritatea coloanelor din tabelele bazei de date.
baze de date la nivel de masă restricție SQLite3, ca o metodă de asigurare a integrității datelor în baza de date
restricții la nivel de masă sunt necesare pentru a asigura integritatea datelor întregii baze de date. creând o constrângere la nivel de coloană, vom crea o regulă care afectează funcționarea întregii baze de date. Să vedem cum se SQLite3 poate asigura integritatea datelor prin limitarea nivelului mesei:
- Cheia primară. Cheia primară în bazele de date SQLite poate fi un compozit sau convențional. Cheia primară în baze de date SQLite3 este tabelele de nivel de restricție pentru orice sistem de management al bazei de date este cheia primară a statului, care nu trebuie să fie încălcate, asigurându-se astfel integritatea datelor. Dacă vă amintiți, atributele cheie necesare pentru a doua formă normală.
- Limitarea CHECK. Pentru a fi sincer, eu nu determina ce nivel de restricție se aplică CHEK în SQLite. Pe de o parte: această limitare asigură integritatea datelor doar o singură coloană. Pe de altă parte, această restricție în bazele de date SQLite poate fi numit. CHECK limitează intervalul de valori care pot fi stocate în coloană.
- O constrângere cheie externă este nivelul mesei și asigură integritatea datelor în baza de date. mai degrabă, în tabelele aferente. Cu ajutorul unei relații cheie externă între tabele de baze de date diferite puse în aplicare. Folosind chei străine, noi conducem o normalizare a relațiilor.
Hai să facem o concluzie: constrângerile la nivel de tabel în SQLite sunt regulile pe care baza de date nu s-ar rupe și nu se va supara pe nimeni pentru a asigura integritatea datelor în baza de date.
Cascadă operațiunilor de manipulare a datelor pentru a asigura integritatea datelor în baze de date SQLite
Când vom crea un tabel și specificați cheile străine, facem o relație strânsă între tabele, aceste tabele sunt legate referă coloane. Când ne-am uitat la a doua formă normală, ea a dezvăluit relațiile funcționale între tabele, și apoi distrus o masă care se află în prima formă normală. mamă și filiala, care creează un director care elimină datele redundante din baza de date.
Când ne-am uitat la a treia formă normală, am creat, de asemenea, un tabel de referință, în scopul de a scăpa de dependențe tranzitive. Dacă am încercat să ștergeți datele din tabelul părinte din SQLite, ne-ar fi întors la greșeala de a spune că pentru a elimina din rândul tabelei părinte pentru a șterge un rând din tabelul de copil.
Da, ne asigura integritatea datelor în baza de date. dar complicat o manipulare a datelor de locuri de muncă. Dezvoltatorii SQLite luate designeri de baze de date de îngrijire care doresc să asigure integritatea datelor, punerea în aplicare a operațiunilor în cascadă de date. Bazele de date SQLite au două operații în cascadă de manipulare a datelor:
- Cascade operațiunea de ștergere pentru a șterge rânduri din rândul tabelă părinte și rândul său asociat în tabelul de copii. Cascade șterge rânduri asigură integritatea datelor și permite automatizarea procesului de ștergere a datelor din tabelele bazei de date.
- modificarea în cascadă de date oferă un mecanism în cascadă rânduri de actualizare într-un tabel și salvează dezvoltator de a avea pentru a verifica valorile din tabele aferente, la modificarea datelor. Această operațiune se asigură integritatea datelor la valorile de schimbare în rândurile.
În continuare, considerăm mai detaliat în cascadă de date operațiune de manipulare, precum și alte probleme legate de integritatea datelor ridicate în această intrare.