De ce sa folosim MySQL

MySQL este un sistem de „client-server“

Acest lucru înseamnă că MySQL este unul SQL-Server, care suportă o varietate de funcții (de fapt, el face toate lucrările cu bazele de date), mai multe programe diferite de clienți (acestea oferă doar o interfață între utilizator și server), instrumente de administrare și mai mult interfete de programare. Clienții comunica cu serverul, folosind propriul protocol de rețea.







De ce sa folosim MySQL

Acest sistem permite unui număr mare de utilizatori simultan pentru a lucra cu serverul. Inclusiv co-procesarea aceleași date, fără a interfera unele cu altele. Această interacțiune va fi discutat în detaliu în capitolele următoare.

De obicei, clientul și serverul sunt utilizate pe computere diferite, dar își asume ambele părți realizare a instala pe același pachet de calculator. Chiar și într-un singur computer va utiliza în continuare rețeaua pentru a comunica client și server. De altfel, trebuie remarcat faptul că clientul și serverul poate rula pe sisteme de operare diferite, nu interferează cu nimic. MySQL este deja disponibil în mai mult de o duzină de sisteme de operare.

MySQL-este un sistem complet multi-threaded

Aceasta înseamnă că pachetul poate folosi cu ușurință mai multe procesoare, dacă este cazul. Multe sisteme de servere deja pus pe mai multe procesoare. In astfel de sisteme pot MySQL paralel strict pentru a efectua mai multe interogări la bazele de date (unul pentru fiecare procesor).

MySQL este o suită de open source

Aceasta înseamnă că pachetul poate fi ușor modificat pentru a se potrivi nevoilor dumneavoastră, orice persoană care este bine versat în programare. A scris un amendament important pentru pachetul, un tehnician poate trimite pachetul principal site-ul pentru o posibilă includere în versiunea următoare. Este mulțumită acestui sistem, dezvoltarea MySQL este în curs de dezvoltare foarte rapid și ținând cont de necesitățile utilizatorilor finali, precum și toate erorile sunt eliminate cât mai curând posibil. Această proprietate a fost, probabil, primul motiv pentru popularitatea ridicată a pachetului: cu calificare adecvată puteți ajusta pentru a se potrivi nevoilor dumneavoastră.

MySQL este gratuit în cele mai multe cazuri

MySQL este destinat utilizării non-comerciale. Dacă utilizați pachetul pentru organizarea forumului, sistemul guestbook sau blog-uri, nu ar trebui să plătească pentru orice licență. Pur și simplu descărcați pachetul de pe site-ul său și pune-l pe server. Dar, dacă aveți nevoie de suport tehnic, aici pentru că va trebui să plătească. Notă: placa a fost luată pentru suport tehnic, și nu pentru utilizarea programului. Această proprietate a oferit o mare parte din SGBD o astfel de mare popularitate.

Acum, să ia o privire mai atentă terminologie absolut necesar ca va fi necesară atunci când următoarea descriere, precum și principiile de bază ale bazelor de date, astfel încât să vă cel puțin în termeni generali, reprezintă, ceea ce face. La prima vedere, lista lunga de termeni, dar acestea sunt necesare.

Din moment ce toate datele sunt stocate sub formă de tabele, ar trebui să fie în mod clar determina tipul de tabele și terminologia corespunzătoare. Tabelul este format din celule. fiecare dintre care poate stoca unele date. În cazul în care celula este în prezent, nu există date nu deține, este numit gol.

Un tabel este format din coloane verticale și rânduri orizontale, în care sunt grupate celula. Tabel strict dreptunghiular. adică toate liniile de același număr de celule și, în toate coloanele același număr de rânduri.

Fiecare rând din tabel se numește o înregistrare. Fiecare celulă se numește o înregistrare câmp de înregistrare. Deoarece câmpul poate stoca o varietate de date pentru a simplifica lucrul cu noțiunea de tip. Fiecare celulă are propriul tip și poate stoca numai tipul corespunzător de date pe care trebuie să înțeleagă atunci când se lucrează cu sistemul.

În MySQL, se presupune că tipul de date este atribuit într-o coloană din tabel și se aplică tuturor celulelor din această coloană. Aceasta este, în cazul în care prima coloană este atribuit un anumit tip (de exemplu, char), acest lucru înseamnă că primul câmp de orice înregistrare în acest tabel va fi întotdeauna doar un char, și nici un alt.

Acest lucru este foarte important! De cele mai multe ori va lucra cu coloanele, deoarece acestea determină tipul de date și structura tabelului. Rândurile din tabel nu sunt numerotate, ele există numai pentru a facilita manipularea datelor. În cele mai multe cazuri, numărul de înregistrări din tabel pe care nu ar trebui să fie chiar interesat. date de locuri de muncă, iar structura lor este determinată de tipurile și ordinea coloanelor. Numărul de intrări este importantă numai pentru server.

O bază de date poate consta din mai multe tabele diferite. Numărul lor exact este limitata de memorie, în principal de calculator. Serverul poate stoca o mulțime de baze de date. Trebuie remarcat faptul că puteți amesteca tabelele de la diferite baze de date într-o singură interogare.

Tabelul are, de asemenea, un tip și atribute. Pe aceasta depinde gama de opțiuni care sunt disponibile atunci când se lucrează cu acest tabel, și logica de procesare a serverului. Acest lucru va fi discutat în detaliu mai târziu.

Acum hai sa vorbim despre datele din câmpurile. Pentru a face ceva cu unele date, care au nevoie pentru a găsi mai întâi. Pentru a face acest lucru, și de a folosi limbajul SQL. Pe ea sunt scrise cereri în timpul prelucrării care serverul scanează tabela bazei de date este specificat în cererea de criteriile necesare date și ceva de-a face cu ei (adică, depinde de interogare).

Datele pe care la intrările de căutare, denumite chei. Când înregistrați mai multe câmpuri, puteți găsi pe chei diferite, fiecare la câmpul său. Cheia care este cel mai probabil să fie căutate pentru intrările se numește o cheie primară (primaryKey). Cheia nu poate fi limitat la un singur câmp, ci la mai multe.







O cheie poate fi găsit una sau mai multe intrări. Dacă anumite cheie poate fi găsit doar o singură înregistrare special, o cheie unică numită (unic). Cheia este de a găsi un număr adecvat de diferite înregistrări în tabel, numit non-unice.

Aici și să vină la codurile de ajutor. Indicele este un fel de cuprins care listează ce înregistrări specifice găsit niște date. Acesta poate fi comparat cu căutare pe internet, în cazul în care motoarele de căutare magazin de date despre ceea ce sunt prezente pe anumite cuvinte pagini. Subindexuri în MySQL fac același lucru. este necesar să se creeze în mod specific un index, de la sine nu este construit (cum să-l creeze, vor fi discutate mai târziu).

Procesul de construire a unui index ia o lungă perioadă de timp, dar după crearea serverului nu mai scanează întregul tabel pentru datele: Se caută date pe index, în cazul în care fiecare apariție a valorilor din tabel indică ce celule specifice a tabelului puteți găsi datele dorite. Acest lucru accelerează foarte mult până munca (de zeci de ori).

Se pare că, pentru fiecare tabel ar trebui să aibă, uneori, mai mulți indici diferiți. În MySQL, puteți avea până la 32 de indici pe masă. Lungimea maximă a indicelui (adică lungimea fiecărei înregistrări în indice) este de până la 500 de octeți. Indicele poate include date de mai multe coloane simultan (în implementarea MySQL numărul curent maxim de coloane din fiecare indice este de 15).

Deoarece indexurile sunt construite în conformitate cu câmpurile de înregistrare, iar fiecare câmp poate fi considerat ca o cheie, spun indicele se bazează pe taste. Indicele, construit pe cheia primară pentru a fi utilizat atunci când caută cel mai probabil numit indicele primar.

Toate coloanele au valori implicite. Acest lucru înseamnă că, în cazul în care un anumit domeniu nu este setat în mod explicit, acesta va fi setat automat la o valoare, implicit, care este specific pentru fiecare tip de coloană. Setarea implicită poate fi modificată la crearea coloanei.

Fiecare coloană din tabel are un nume unic. Numele sunt, de asemenea, tabele și baze de date. În unele cazuri, care vor fi discutate mai jos, coloana trebuie să aibă câteva nume. În acest caz, numele este considerat a fi doar una care a primit coloana atunci când este creată, iar restul sunt numite alias-uri. Există, de asemenea, alias-uri pentru nume de tabelă.

Coloanele nu sunt neapărat împreună cu tabele. Tabelul poate fi modificat după cum este necesar, prin adăugarea sau ștergerea de coloane, schimbarea tipului lor. În declarațiile SQL, puteți accesa tabelele de la diferite baze de date cu sintaxa DB_Name. Acest lucru vă permite să specificați numele unei mese lungi și numit în mod unic un nume complet de masă.

Puteți consulta, de asemenea într-o coloană în orice tabel specificând sintaxa Imya_bazy_dannyh.Imya_tablitsy.Imya_stolbtsa. Acest design vă permite să identificați în mod unic coloana și se face referire la numele complet al coloanei.

Coloanele în afară de numele și tipul poate avea, de asemenea, atribute opționale. care determină modul în care serverul se ocupă de o anumită coloană, schimbați logica server care coloana. Atribuirea coloanei atribut este echivalentă cu atribuirea coloana corespunzătoare a câmpului atribut în fiecare înregistrare din tabel. Rețineți că coloanele de același tip, dar cu atribute diferite sunt tratate în moduri diferite.

În timpul lucrului cu baza de date orice bază de date este întotdeauna considerat a fi activ sau curent. În ea există unele de masă activă. Este o masă activă a tuturor acțiunilor vor fi efectuate în baza de date curentă, cu excepția cazului în care o specificați în mod explicit altfel.

Atunci când se referă la o coloană din tabel poate fi activ în loc de numele său complet (indicând baza de date și tabele) pentru a specifica doar numele coloanei. Acesta va fi completat automat cu un tabel de activ numele bazei de date curente, care accelerează foarte mult procesul de introducere. De asemenea, dacă vă referiți la o coloană într-un alt tabel din baza de date curentă, puteți specifica numele său ca Imya_tablitsy.Imya_stolbtsa. coborârea databaseName. va fi egală cu baza de date curentă.

În cele ce urmează, veți găsi termenii de curgere. Fluxul de acest ghid MySQL reprezintă conexiunea cu serverul de baze de date. Toate comenzile pe care le introduceți se aplică numai la acest flux. Vă rugăm să rețineți că, dacă ați creat mai mulți compuși diferiți cu aceeași bază de date (de exemplu, prin deschiderea mai multor copii client), fiecare conexiune este complet independent de flux, nimic dincolo de controlul altora. Aceasta este diferența majoră dintre utilizator și fluxul de un singur utilizator poate fi reprezentată de mai multe fluxuri independente. Mai târziu, vom arăta în ce capcane se poate face.

caractere Wildcard sau caractere wildcard sunt acele caractere care pot corespunde unui anumit număr de alte caractere. De exemplu, atunci când se lucrează în Windows, vă sunt susceptibile de a veni peste cu un asterisc (*), care reprezintă orice șir de caractere aleatoare. O astfel de metodă este utilizată pe scară largă atunci când se lucrează cu grupuri de fișiere. Acesta este wildcard.

Expresiile regulate sunt o anumită secvență de simboluri, o parte sau toate simbolurile care sunt substituție. De exemplu, atunci când se lucrează în Windows, probabil va veni peste un * .doc tip notație (îndeplinește toate fișierele doc din directorul curent) sau *. * (Definește toate fișierele dintr-un director). Aceasta este expresia regulată, dar în Windows acestea sunt numite în mod diferit. După cum puteți vedea, nimic complicat despre ele. În MySQL, nu doar întâlni cu astfel de expresii (deși Kuts mai complexe). Este cu criteriile lor stabilite de ajutor pentru căutarea de informații.

Acum, să ne gândim la o astfel de problemă complexă: serverul permite mai multor utilizatori să utilizeze una și aceeași bază de date (chiar și cu aceeași masă). Dar cum să se asigure integritatea datelor? Dacă un utilizator scrie aceleași date, iar celălalt, în același timp, încercând să schimbe aceste date, ele sparge întreaga bază de date. Cum de a evita acest lucru?

Există două moduri de a seta diviziunea și MySQL utilizează cele două, deși pe diferite tipuri de tabele. Primul este modelul tranzacțional. doua modificare atomica.

Tranzacție menționate unele operațiuni de bază de date care nu pot fi împărțite în mai multe operațiuni separate. Descrierea completa a celor două concepte de mai sus-menționate sunt foarte dificil, iar în această carte pare a fi de prisos, așa că le considerăm doar din punctul de vedere al utilizatorului.

Deci, se pare ca activitatea unei tranzacții? Serverul este aceasta: în primul rând, se constată că acesta este în tabel este schimbat, atunci o notă de faptul că aici aceste celule sunt modificate într-un fel, atunci de fapt să facă modificări și apoi plasate, un semn că modificarea este făcută. În același timp, pe o masă sau modificări returnează datele vechi, sau nu se întoarce nimic, dar în orice caz, nu permite doi utilizatori simultan să facă modificări la aceleași date. În primul rând, o primă modificare a capetelor, atunci cauza este luat următoarea.

Diferența dintre tranzacție și modificarea atomică, dacă ignorăm toate teoria științifică pentru utilizatorul final este că, în cazul unui model tranzacțional, utilizatorul atunci poate interoga care modifica unele date din tabel, pentru a decide modul în care el vrea să finalizeze tranzacția: ar trebui să dacă pentru a salva modificările (comite) sau aruncați (cauza rebobinarea, revocați), revenind astfel masa la starea pe care le avea înainte de cererea de apel. Trebuie remarcat faptul că există o setare pentru a salva automat toate modificările (AUTO_COMMIT). Modelul atomic al schimbării nu poate fi inversat: acestea sunt aduse la masa imediat. Efectuate la momentul unei tranzacții este denumită în continuare activă.

Dacă vorbim despre formatul sprijinit de masă, ar trebui să facă imediat clar pentru ce MySQL suporta mai multe formate diferite. Unii lucrează pe baza unor tranzacții, alte modificări la energia nucleară către utilizatorul final a fost întotdeauna o alegere a ceea ce de a utiliza. Trebuie remarcat faptul că modelul de tranzacție este mult mai dificil de implementat decât nucleare, și, prin urmare, suport pentru tranzacții în MySQL a apărut mult mai târziu. Formatul său MySQL (MyISAM și ISAM) folosit exact modificarea atomică, dar le pune în aplicare atât de bine că, în ceea ce privește fiabilitatea, ele sunt la fel de bune ca și modele de acces tranzacționale. Tabelul 1.1. prezintă tipurile acceptate tabel MySQL cu descrierile lor scurte.

Tabelul 1.1. scurte descrieri ale tipurilor acceptate de tabele MySQL.