Proiectarea bazei de date. Cele mai bune practici

În așteptarea începerii următorului flux la rata "Bază de date" a pregătit un mic material al autorului cu sfaturi importante despre proiectarea bazei de date. Sperăm că acest material vă va fi de folos.

Proiectarea bazei de date. Cele mai bune practici

Bazele de date sunt peste tot: de la cele mai simple bloguri și directoare până la sisteme informaționale de încredere și rețele sociale mari. Nu este atât de important dacă o bază de date este simplă sau complexă, cât de important este să o proiectezi corect. Atunci când baza de date este proiectată fără gânduri și fără o înțelegere clară a scopului, nu numai că este ineficientă, dar munca ulterioară cu baza de date va fi un adevărat chin, o pădure de nepătruns pentru utilizatori. Iată câteva sfaturi pentru proiectarea bazei de date pentru a vă ajuta să creați un produs util și ușor de utilizat.

1. Stabiliți pentru ce este tabelul și care este structura acestuia

Proiectarea bazei de date. Cele mai bune practici

Astăzi, practicile de dezvoltare precum Scrum sau RAD (Rapid Application Development) ajută echipele IT să dezvolte rapid baze de date. Totuși, în căutarea timpului, tentația este foarte mare de a te arunca imediat în construirea unei baze, imaginându-ți vag care este scopul în sine, care ar trebui să fie rezultatele finale.
 
De parcă echipa vizează munca eficientă, de mare viteză, dar acesta este un miraj. Cu cât vă scufundați mai departe și mai repede în proiect, cu atât va dura mai mult timp pentru a identifica și corecta erorile din proiectul de bază.

Prin urmare, primul lucru pe care trebuie să îl decideți este să determinați scopul bazei de date. Pentru ce tip de aplicație se dezvoltă baza? Utilizatorul va lucra doar cu înregistrări și va trebui să acorde atenție tranzacțiilor sau este mai interesat de analiza datelor? Unde ar trebui instalată baza? Va urmări comportamentul clienților sau va gestiona doar relația dintre ei? 

Cu cât echipa de proiectare răspunde mai devreme la aceste întrebări, cu atât procesul de proiectare a bazei de date va fi mai ușor.

2. Ce date ar trebui să aleg să stochez?

Proiectarea bazei de date. Cele mai bune practici

Planifica. Gânduri despre ceea ce va face în viitor site-ul sau sistemul pentru care este proiectată baza de date. Este important să depășim simplele cerințe ale termenilor de referință. Vă rugăm doar să nu începeți să vă gândiți la toate tipurile posibile de date pe care un utilizator le va stoca vreodată. În schimb, luați în considerare dacă utilizatorii vor putea posta, încărca documente sau fotografii sau vor putea schimba mesaje. Dacă da, atunci în baza de date trebuie să le alocați spațiu.

Lucrați cu echipa, departamentul sau organizația care va sprijini baza de proiectare în viitor. Comunicați cu oameni de diferite niveluri, de la manageri de cont până la șefi de departamente. Deci, cu ajutorul feedback-ului, vă veți obține o idee clară despre cerințele companiei. 

Inevitabil, nevoile utilizatorilor chiar și din cadrul aceluiași departament vor intra în conflict. Dacă întâmpinați acest lucru, nu vă fie teamă să vă bazați pe propria experiență și să găsiți un compromis care să se potrivească tuturor părților și să satisfacă scopul final al bazei de date. Fii sigur: în viitor vei primi +100500 în karma și un munte de cookie-uri.

3. Modelați datele cu grijă

Proiectarea bazei de date. Cele mai bune practici

Există câteva lucruri cheie de care trebuie să țineți cont atunci când modelați datele. După cum am spus mai devreme, scopul bazei de date determină ce metode să fie utilizate în modelare. Dacă proiectăm o bază de date pentru procesarea online a înregistrărilor (OLTP), cu alte cuvinte pentru crearea, editarea și ștergerea înregistrărilor, atunci folosim modelarea tranzacțională. Dacă baza de date trebuie să fie relațională, atunci cel mai bine este să utilizați modelarea multidimensională.

În timpul modelării, sunt construite modele de date 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-vă datele în bucăți logice - este mult mai ușor să trăiți așa.
Principalul lucru este măsura, nu exagerați.

Dacă o entitate este foarte greu de clasificat cu un singur cuvânt sau expresie, atunci este timpul să folosiți subtipuri (entități copil).

Dacă entitatea își duce propria viață, are atribute care descriu comportamentul și aspectul său, precum și relațiile cu alte obiecte, atunci puteți folosi în siguranță nu numai un subtip, ci și un supertip (entitate părinte). 

Dacă ignorați această regulă, alți dezvoltatori vor fi confuzi în modelul dvs. și nu vor înțelege pe deplin datele și regulile despre cum să le colecteze.

Modelele conceptuale sunt implementate cu ajutorul celor logice. Aceste modele sunt ca o foaie de parcurs pentru proiectarea unei baze de date fizice. În modelul logic, se disting entitățile de date de afaceri, se definesc tipurile de date, statutul cheii regulii care guvernează relația dintre date.

Apoi se compară modelul de date logic cu platforma DBMS (sistem de management al bazelor de date) preselectată și se obține modelul fizic. Descrie modul în care datele sunt stocate fizic.

4. Utilizați tipurile de date potrivite

Proiectarea bazei de date. Cele mai bune practici

Folosirea unui tip de date greșit poate avea ca rezultat date mai puțin precise, dificultăți de alăturare a tabelelor, sincronizarea atributelor și mărimea fișierelor.
Pentru a asigura integritatea informațiilor, un atribut trebuie să conțină numai tipuri de date pe care le acceptă. Dacă vârsta este introdusă în baza de date, atunci asigurați-vă că coloana stochează numere întregi cu maximum 3 cifre.

Creați un minim de coloane nule. Dacă creați toate coloanele ca NULL, aceasta este o gafă. Dacă aveți nevoie de o coloană goală pentru a îndeplini o anumită funcție de afaceri, atunci când datele sunt necunoscute sau încă nu au sens, atunci nu ezitați să le creați. La urma urmei, nu putem completa în avans coloanele „Data morții” sau „Data concedierii”, nu suntem predictori care arătăm cu degetul spre cer :-).

Cele mai multe software de modelare (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) data vă permite să prototipați regiuni de date. Acest lucru asigură nu numai tipul corect de date, logica aplicației și performanța bună, ci și specificația obligatorie a valorii.

5. Prefer naturale

Proiectarea bazei de date. Cele mai bune practici

Când decideți ce coloană dintr-un tabel să utilizați ca cheie, luați în considerare întotdeauna ce câmpuri le poate edita utilizatorul. Nu le alege niciodată ca cheie - o idee proastă. Se poate întâmpla orice și trebuie să garantezi unicitatea.

Cel mai bine este să folosiți o cheie naturală sau de afaceri (cheie naturală). Are semnificație semantică, așa că evitați duplicarea în baza de date. 

Dacă doar cheia de afaceri nu este unică (nume, prenume, poziție) și se repetă în diferite rânduri ale tabelului sau trebuie schimbată, atunci cheia surogat artificială generată (cheie artificială) ar trebui să fie atribuită ca cheie primară. .

6. Normalizează cu moderație

Proiectarea bazei de date. Cele mai bune practici

Pentru a organiza eficient datele într-o bază de date, trebuie urmat un set de bune practici și baza de date normalizată. Există cinci forme normale de urmat.
Prin normalizare, evitați redundanța și asigurați integritatea datelor utilizate într-o aplicație sau site web.

Ca întotdeauna, totul ar trebui să fie cu moderație, chiar și normalizare. Dacă există prea multe tabele în baza de date cu aceleași chei unice, atunci v-ați lăsat dus și ați supranormalizat baza de date. Normalizarea excesivă are un impact negativ asupra performanței bazei de date.

7. Testați devreme, testați des

Proiectarea bazei de date. Cele mai bune practici

Un plan de testare și testarea adecvată ar trebui să facă parte din proiectarea bazei de date.

Cel mai bun mod de a testa o bază de date este prin Integrare continuă. Simulați scenariul „O zi în viața unei baze de date” și verificați dacă toate cazurile marginale sunt gestionate, ce interacțiuni ale utilizatorilor sunt probabile. Cu cât găsiți mai repede erori, cu atât economisiți mai mult timp și bani.

Acestea sunt doar șapte sfaturi pentru a vă ajuta să proiectați o bază de date de performanță și eficiență excelentă. Dacă le urmezi, vei evita majoritatea durerilor de cap în viitor. Aceste sfaturi sunt doar vârful aisbergului în modelarea bazelor de date. Există un număr mare de hack-uri de viață. Pe care le folosești?

Sursa: www.habr.com

Adauga un comentariu