Înaintea începerii unui nou ciclu al cursului am pregătit un material autoral minor cu sfaturi importante privind construirea Bazei de Date. Sperăm că acest material va fi util pentru dumneavoastră.

Bazele de date sunt peste tot: de la cele mai simple bloguri și directorii la sisteme informaționale robuste și rețele sociale mari. Nu este atât de important dacă baza de date este simplă sau complexă, cât de esențial este să o proiectați corect. Când baza este proiectată fără a gândi și fără o înțelegere clară a scopului, nu este doar ineficientă, ci munca ulterioară cu baza va deveni o adevărată povară, o pădure de necuprins pentru utilizatori. Iată câteva sfaturi pentru construirea unei baze de date, care vor ajuta la crearea unui produs util și ușor de utilizat.
1. Stabiliți care este scopul tabelului și care este structura sa

Astăzi, metodele de dezvoltare precum Scrum sau RAD (dezvoltarea rapidă a aplicației) ajută echipele IT să dezvolte rapid baze de date. Cu toate acestea, în căutarea timpului, foarte mult seducători se aruncă imediat în construirea bazei, având o idee vagă despre care este scopul, care ar trebui să fie rezultatele finale.
Este ca și cum echipa ar fi orientată spre o muncă eficientă și rapidă, dar acesta este un miraj. Cu cât te înghiți mai adânc și mai repede în proiect, cu atât mai mult timp va fi nevoie pentru a identifica și a corecta erorile din proiectul bazei.
Prin urmare, primul lucru pe care trebuie să-l decideți este să stabiliți scopul bazei de date. Pentru ce tip de aplicație este dezvoltată baza? Utilizatorul va lucra doar cu înregistrările și trebuie să acordați atenție tranzacțiilor sau îl interesează mai mult analiza datelor? Unde ar trebui să fie desfășurată baza? Va urmări comportamentul clienților sau va gestiona pur și simplu relațiile dintre aceștia?
Cu cât echipa de proiectare răspunde mai devreme la aceste întrebări, cu atât mai lin și mai ușor va decurge procesul de proiectare a bazei de date.
2. Ce date să alegeți pentru stocare?

Planificați din timp. Gândiți-vă la ceea ce va face site-ul sau sistemul în viitor, pentru care se proiectează baza de date. Este important să depășiți cerințele simple ale caietului de sarcini. Doar vă rog, nu începeți să vă gândiți imediat la toate tipurile de date pe care utilizatorii le-ar putea stoca vreodată. Mai bine, gândiți-vă dacă utilizatorii vor putea scrie postări, încărca documente sau fotografii, sau face schimb de mesaje. Dacă da, atunci în baza de date trebuie rezervat spațiu pentru acestea.
Lucrați cu echipa, departamentul sau organizația care va susține în viitor baza proiectată. Comunicați cu persoane de diferite niveluri, de la specialiști în relațiile cu clienții până la șefii departamentelor. Astfel, prin feedback, veți obține o imagine clară a cerințelor companiei.
Inevitabil, nevoile utilizatorilor din cadrul chiar și unei singure departamente vor intra în conflict. Dacă vă confruntați cu acest lucru, nu ezitați să vă bazați pe propria experiență și să găsiți un compromis care să satisface toate părțile și să îndeplinească scopul final al bazei de date. Fiți siguri: în viitor veți primi +100500 în karmă și o grămadă de fursecuri.
3. Modelați datele cu grijă

Există câteva aspecte cheie de care ar trebui să țineți cont atunci când modelați datele. Așa cum am menționat anterior, destinația bazei de date determină ce metode ar trebui utilizate în modelare. Dacă proiectăm o bază de date pentru procesarea operativă a înregistrărilor (OLTP), adică pentru crearea, editarea și ștergerea acestora, atunci folosim modelarea tranzacțiilor. Dacă, însă, baza de date trebuie să fie relațională, cel mai bine este să aplicăm modelarea multidimensională.
În timpul modelării se construiesc modele conceptuale (CDM), fizice (PDM) și logice (LDM).
Modelele conceptuale descriu entitățile și tipurile de date pe care le includ, precum și relațiile dintre ele. Împărțiți datele în bucăți logice - așa va fi mult mai simplu de gestionat.
Principalul - este echilibrul, nu exagerați.
Dacă o entitate este foarte greu de clasificat printr-un singur cuvânt sau expresie, atunci este timpul să folosiți subtipo-uri (entități copil).
Dacă entitatea își trăiește propria viață, are atribute care descriu comportamentul ei și aspectul ei, precum și relațiile cu alte obiecte, atunci se poate folosi cu încredere nu doar subtipul, ci și supertipul (entitatea părinte).
Dacă ignorați această regulă, alți dezvoltatori se vor pierde în modelul dumneavoastră și nu vor înțelege complet datele și regulile de adunare a acestora.
Modelele conceptuale sunt implementate prin modele logice. Aceste modele sunt ca o hartă rutieră pentru proiectarea unei baze de date fizice. În modelul logic, sunt evidențiate entitățile de date de afaceri, se definesc tipurile de date, starea cheii și regulile care reglează relațiile dintre date.
Apoi, modelul logic de date este asociat cu platforma SGBD (sistem de gestiune a bazelor de date) aleasă anterior și se obține modelul fizic. Acesta descrie modul de stocare fizică a datelor. gestiunea bazelor de date4. Utilizați tipuri de date adecvate
Utilizarea unui tip de date incorect poate duce la date mai puțin precise, dificultăți în îmbinarea tabelor, sincronizarea atributelor și creșterea dimensiunilor fișierelor.

Pentru a garanta integritatea informației, atributul trebuie să conțină doar tipurile de date acceptabile pentru acesta. Dacă se introduce vârsta în baza de date, asigurați-vă că în coloană sunt stocate numere întregi de maxim 3 cifre.
Creați un număr minim de coloane goale cu valoarea NULL. Dacă creați toate coloanele ca NULL, aceasta este o eroare gravă. Dacă aveți nevoie de o coloană goală pentru a executa o funcție de afaceri specifică, când datele nu sunt cunoscute sau nu au încă sens, atunci creați-o fără ezitare. Nu putem umple coloanele „Data decesului” sau „Data concedierii” din timp, nu suntem prezicători să aruncăm degetul în aer :-).
Majoritatea software-urilor de modelare (ER/Studio, MySQL Workbench, SQL DBM, Gliffy
com) permite crearea de prototipuri pentru domenii de date. Astfel, se garantează nu doar tipul de date corect, logica aplicației și o bună performanță, ci și obligatorie stabilire a valorii..5. Preferati natural
Dacă aveți nevoie de o coloană goală pentru a executa o funcție de afaceri specifică, atunci creați-o fără ezitare.

Când decideți ce coloană dintr-un tabel să alegeți ca cheie, este întotdeauna important să fiți atenți la ce câmpuri pot fi editate de utilizator. Nu le alegeți niciodată ca cheie — este o idee proastă. Se poate întâmpla orice, iar voi trebuie să garantați unicitatea.
Cel mai bine este să folosiți o cheie naturală sau de afaceri (natural key). Aceasta are o semnificație logică, astfel veți evita duplicarea în baza de date.
Dacă cheia de afaceri nu este unică (nume, prenume, funcție) și se repetă în diferite rânduri ale tabelului sau trebuie să fie modificată, atunci trebuie să desemnați ca și cheie primară o cheie generată artificială, surrogat (artificial key).
6. Normalizați cu moderare

Pentru a organiza eficient datele în baza de date, trebuie să urmați un set de recomandări și să normalizați baza de date. Există cinci forme normale căror trebuie să le respectați.
Prin normalizare veți evita redundanța și veți asigura integritatea datelor utilizate în aplicație sau pe site.
Ca întotdeauna, totul trebuie să fie cu măsură, inclusiv normalizarea. Dacă în baza de date există prea multe tabele cu aceleași chei unice, atunci v-ați lăsat dus de val și ați exagerat cu normalizarea bazei de date. Normalizarea excesivă afectează negativ performanța bazei de date.
7. Testați din timp, testați mai des

Planul de testare și testarea adecvată trebuie să fie parte din proiectarea bazei de date.
Cel mai bine este să testați baza de date prin integrarea continuă (Continuous Integration). Modelați scenariul „O zi din viața bazei de date” și verificați dacă toate cazurile limită sunt gestionate, ce interacțiuni ale utilizatorilor sunt probabile. Cu cât descoperiți mai devreme erorile, cu atât veți economisi mai mult timp și bani.
Acestea sunt doar șapte sfaturi cu ajutorul cărora puteți proiecta o bază de date excelentă în ceea ce privește performanța și eficiența. Dacă le veți urma, veți evita cele mai multe dureri de cap în viitor. Aceste sfaturi sunt doar vârful iceberg-ului în modelarea bazelor de date. Există o mulțime de trucuri. Pe care le folosiți voi?
Sursa: habr.com
