Administrarea și gestionarea bazelor de date în biblioteca sqlite, blog despre crearea site-urilor,

Subiectul 16: Administrarea și gestionarea bazelor de date în bibliotecile SQLite

Bună ziua, vizitator al site-ului ZametkiNaPolyah.ru. Continuăm rubrica bazelor de date relaționale și începem noua secțiune a bibliotecii SQLite. În această notă, vom vorbi despre posibilitățile de administrare și gestionare a bazelor de date. care sunt în biblioteca SQLite3. Observ că nu există multe astfel de posibilități, deoarece SQLite este un DBMS încorporat, care nu presupune prezența unei părți administrative. În multe DBMS mari și bine-cunoscute, administrarea și gestionarea utilizatorilor și a bazelor de date în sine sunt destul de extinse, deoarece aceste DBMS funcționează pe baza unui client-server. SQLite nu funcționează pe acest principiu.

Administrarea și gestionarea bazelor de date în biblioteca sqlite, blog despre crearea site-urilor,

Administrarea și gestionarea bazelor de date în bibliotecile SQLite

Deci, în această intrare, vom vorbi despre modul în care putem gestiona utilizatorii în bazele de date SQLite. Apoi a face cu procesul de creare a unei baze de date în SQLite (în SQLite nu este CREATE DATABASE din nou, acest lucru se datorează faptului că SQLite este o bază de date încorporată), va vorbi despre modul de conectare și deconectați baza de date într-o singură conexiune (există echipe speciale Atașați baza de date și dezactivați baza de date). Considerăm, de asemenea, comanda VACUUM SQL, care vă permite să reconstruiască baza de date (dacă pot spune așa, pentru a face o defragmentare a fișierului bazei de date). Iar la sfârșitul articolului vom vorbi despre importul unei baze de date în SQLite, capacitățile de backup de baze de date, precum și modul în care pentru a elimina (comanda DROP DATABASE în SQLite nu) de baze de date.

Gestionarea utilizatorilor în SQLite3 și drepturile lor de acces

Nu există multe caracteristici administrative și de gestionare a bazelor de date în SQLite. Vom începe cu gestionarea utilizatorilor de baze de date SQLite. care, apropo, nu. Prin urmare, SQLite nu are comenzi pentru a determina accesul la date. Permisiunile de accesare a bazelor de date sunt determinate de drepturile utilizatorilor în sistemul de operare sau de o aplicație în care SQLite este încorporată.

Deci, SQLite nu are capacitatea de a administra și gestiona utilizatorii de baze de date, cu excepția mediului în care rulează biblioteca SQLite3. Dar putem, de exemplu, să creăm VIEW în baza de date și să nu creăm pentru VIEW diferite declanșatoare care permit manipularea datelor în baza de date.

În acest fel, putem scrie codul programului astfel încât acesta să funcționeze numai cu vizualizări (în cazul în care vizualizările nu au INSTEAD de declanșatori, atunci este disponibilă numai comanda SELECT), astfel încât să limităm numărul de comenzi disponibile pentru utilizatori.

Crearea unei baze de date în SQLite

Aici vom descrie trei moduri de a crea o bază de date în SQLite. Rețineți că nu există nici o comandă CREATE DATABASE în SQLite3. Comanda CREATE din SQLite creează orice obiecte de bază de date, dar nu și baza de date în sine. Deci, ne amintim că atunci când rulați sqlite3.exe, putem trece numele bazei de date ca parametru. Prin urmare, primul mod de a crea o bază de date SQLite este să transmiteți un parametru comenzii care permite shell-ului să ruleze:

Administrarea și gestionarea bazelor de date în biblioteca sqlite, blog despre crearea site-urilor,

Crearea unei baze de date în SQLite

În acest caz, am creat o bază de date numită mydb și o extensie sqlite3. Putem verifica cu ușurință acest lucru folosind comanda .database dot:

Dacă deschideți dosarul de lucru, veți vedea că acesta va avea un fișier nou, în cazul nostru fișierul va fi numit testeavedb, iar extensia acestuia va fi. Exemplu. Rețineți că în SQLIte3 nu există nici o comandă CREATE DATABASE, bazele de date de aici nu sunt create utilizând limba de interogare SQL. În SQLite, le puteți crea doar cu capacitățile administrative ale bibliotecii.

Gestionarea bazelor de date în SQLite3

SQLite are capacitatea de a gestiona bazele de date prin intermediul limbajului de interogare SQL. Să analizăm capabilitățile de gestionare a bazelor de date în SQLite3

Conectarea la baza de date: implementarea comenzii SQL ATTACHE DATABASE

Deci, primul lucru despre care trebuie spus este că în SQLite există o comandă specială SQL ATTACH DATABASE. care vă permite să lucrați cu mai multe baze de date într-o singură conexiune. Să analizăm această funcție de administrare a bazelor de date. Avem trei fișiere baze de date create recent: testavedb.sample, mydatabase.db3 și mydb.sqlite3. În prezent, lucrăm cu fișierul testavedb.sample. Să folosim comanda SQL ATTACH DATABASE pentru a conecta cele două baze de date rămase:

SQLite va dezactiva toate bazele de date, cu excepția celor principale. Principalul este baza de date principală în SQLite și nu o putem dezactiva, chiar dacă nu am specificat în mod explicit fișierul bazei de date cu care vom lucra.

Merită să ne amintim că toate comenzile de manipulare a datelor (cu excepția comenzii SELECT) și toate comenzile de definiție a datelor funcționează în SQLite ca tranzacții. prin urmare, merită remarcat faptul că proprietatea atomică, atunci când lucrează cu mai multe baze de date într-o singură legătură, este păstrată.

Reasamblarea bazei de date: implementarea comenzii SQL VACUUM. Defragmentarea bazei de date în SQLite

În acest caz, termenul de defragmentare a unui fișier de bază de date nu este complet adecvat. cel puțin documentația SQLite nu utilizează termenul de defragmentare. Dar acest termen ne va ajuta să înțelegem ce face comanda SQL VACUUM cu o bază de date care rulează SQLite.

Știm cu toții că defragmentarea discului este procesul de optimizare a structurii sale logice pentru a crește viteza de acces la obiectele din sistemul de fișiere (foldere și fișiere). Aproximativ același lucru face comanda VACUUM cu bazele de date SQLite3. Să presupunem că avem un fișier de bază de date cu care lucrăm în mod constant: ștergeți liniile. modificați valorile din tabel. adăugați noi rânduri în tabel. Trebuie reținut faptul că orice SGBD este în primul rând o abstractizare asupra datelor fizice, ceea ce ne permite să lucrăm cu ei ca și în cazul tabelelor.

Deoarece aceasta este o abstracție, nu știm cum sunt stocate datele pe disc. De obicei, dacă baza de date este destul de veche, atunci o linie poate fi stocată într-o parte a fișierului, iar următoarea linie în alta. Din acest motiv, viteza de lucru cu bazele de date este redusă, deoarece datele stocate în baza de date sunt scrise în fișier nu în mod secvențial, ci sunt împrăștiate de diferitele sale părți.

Comanda VACUUM vă permite să remediați acest lucru. În SQLite, comanda VACUUM poate fi aplicată numai în baza de date principală. Această comandă plasează conținutul bazei de date principale în fișiere temporare și apoi colectează noul fișier de bază de date din fișierele temporare. în care datele sunt ordonate și scrise secvențial.

Trebuie remarcat faptul că comanda VACUUM poate viola indiciile interne ale tabelului din SQLite. Dacă în tabelul PRIMARY KEY nu există o constrângere cheie primară. Și atributul cheie al tabelului ar trebui să fie declarat drept INTEGER PRIMARY KEY (în acest caz coincide cu coloana ROWID).

Putem folosi comanda VACUUM în SQLite după cum urmează:







Articole similare

Trimiteți-le prietenilor: