Dizajn baze podataka. Najbolje prakse

U iščekivanju početka sljedećeg protoka po stopi "Baza podataka" Pripremili smo mali autorski materijal s važnim savjetima za izradu baze podataka. Nadamo se da će vam ovaj materijal biti koristan.

Dizajn baze podataka. Najbolje prakse

Baze podataka su posvuda: od najjednostavnijih blogova i direktorija do pouzdanih informacijskih sustava i velikih društvenih mreža. Je li baza podataka jednostavna ili složena nije toliko važno koliko ju je važno ispravno dizajnirati. Kada je baza projektirana nepromišljeno i bez jasnog razumijevanja svrhe, ne samo da je neučinkovita, već će daljnji rad s bazom biti prava muka, neprohodna šuma za korisnike. Evo nekoliko savjeta za dizajn baze podataka koji će vam pomoći da stvorite koristan proizvod jednostavan za korištenje.

1. Odredite čemu služi tablica i kakva je njena struktura

Dizajn baze podataka. Najbolje prakse

Danas razvojne metode kao što su Scrum ili RAD (Rapid Application Development) pomažu IT timovima da brzo razviju baze podataka. Međutim, u jurnjavi za vremenom, velika je napast zaroniti ravno u izgradnju baze, nejasno zamišljajući što je sam cilj, kakvi bi trebali biti konačni rezultati.
 
Kao da je tim fokusiran na učinkovit, brz rad, ali to je fatamorgana. Što dalje i brže zaronite u dubinu projekta, to će vam više vremena trebati za prepoznavanje i promjenu pogrešaka u dizajnu baze podataka.

Dakle, prvo što trebate odlučiti je definirati svrhu vaše baze podataka. Za koju se vrstu aplikacije razvija baza podataka? Hoće li korisnik raditi samo s evidencijom i trebati paziti na transakcije ili ga više zanima analitika podataka? Gdje bi baza trebala biti raspoređena? Hoće li pratiti ponašanje kupaca ili jednostavno upravljati odnosima s kupcima? 

Što prije dizajnerski tim odgovori na ova pitanja, to će proces dizajniranja baze podataka biti lakši.

2. Koje podatke trebam odabrati za pohranu?

Dizajn baze podataka. Najbolje prakse

Planirati unaprijed. Razmišljanja o tome što će stranica ili sustav za koji se dizajnira baza podataka raditi u budućnosti. Važno je ići dalje od jednostavnih zahtjeva tehničkih specifikacija. Samo nemojte početi razmišljati o svim mogućim vrstama podataka koje će korisnik ikada pohraniti. Umjesto toga razmislite o tome hoće li korisnici moći pisati postove, postavljati dokumente ili fotografije ili razmjenjivati ​​poruke. Ako je to slučaj, morate im dodijeliti prostor u bazi podataka.

Radite s timom, odjelom ili organizacijom za koju će baza dizajna biti podržana u budućnosti. Komunicirajte s ljudima na različitim razinama, od stručnjaka za korisničku službu do voditelja odjela. Na taj način, uz pomoć povratnih informacija, dobit ćete jasnu sliku o zahtjevima tvrtke. 

Neizbježno će se sukobiti potrebe korisnika čak i unutar istog odjela. Ako naiđete na to, nemojte se bojati osloniti se na vlastito iskustvo i pronaći kompromis koji odgovara svim stranama i koji zadovoljava krajnji cilj baze podataka. Budite uvjereni: u budućnosti ćete dobiti +100500 karme i brdo kolačića.

3. Pažljivo modelirajte podatke

Dizajn baze podataka. Najbolje prakse

Postoji nekoliko ključnih točaka na koje treba obratiti pozornost prilikom modeliranja podataka. Kao što smo ranije rekli, svrha baze podataka određuje koje će se metode koristiti u modeliranju. Ako dizajniramo bazu podataka za online obradu zapisa (OLTP), odnosno za kreiranje, uređivanje i brisanje zapisa, koristimo transakcijsko modeliranje. Ako baza podataka mora biti relacijska, onda je najbolje koristiti višedimenzionalno modeliranje.

Tijekom modeliranja izgrađuju se konceptualni (CDM), fizički (PDM) i logički (LDM) modeli podataka. 

Konceptualni modeli opisuju entitete i vrste podataka koje oni uključuju, kao i odnose među njima. Podijelite svoje podatke u logične dijelove - to čini život mnogo lakšim.
Glavna stvar je umjerenost, nemojte pretjerivati.

Ako je entitet jako teško svrstati u jednu riječ ili frazu, onda je vrijeme da se koriste podtipovi (entiteti djeca).

Ako entitet vodi vlastiti život, ima atribute koji opisuju njegovo ponašanje i izgled, kao i odnose s drugim objektima, tada možete sigurno koristiti ne samo podtip, već i nadtip (nadređeni entitet). 

Ako zanemarite ovo pravilo, drugi programeri će se zbuniti u vašem modelu i neće u potpunosti razumjeti podatke i pravila za njihovo prikupljanje.

Konceptualni modeli implementirani su pomoću logičkih. Ovi modeli su poput plana za fizički dizajn baze podataka. U logičkom modelu identificiraju se entiteti poslovnih podataka, određuju tipovi podataka i status ključa pravila koji upravljaju odnosima između podataka.

Zatim se logički model podataka uspoređuje s unaprijed odabranom platformom DBMS (sustav za upravljanje bazom podataka) i dobiva se fizički model. Opisuje kako se podaci fizički pohranjuju.

4. Koristite prave vrste podataka

Dizajn baze podataka. Najbolje prakse

Korištenje pogrešne vrste podataka može rezultirati manje točnim podacima, poteškoćama u spajanju tablica, poteškoćama u sinkronizaciji atributa i napuhanim veličinama datoteka.
Kako bi se osigurao integritet informacija, atribut mora sadržavati samo tipove podataka koji su za njega prihvatljivi. Ako je dob unesena u bazu podataka, osigurajte da stupac pohranjuje cijele brojeve od najviše 3 znamenke.

Stvorite najmanje praznih stupaca s vrijednošću NULL. Ako kreirate sve stupce kao NULL, to je velika pogreška. Ako vam je potreban prazan stupac za obavljanje određene poslovne funkcije, a podaci su nepoznati ili još nemaju smisla, slobodno ga kreirajte. Uostalom, ne možemo unaprijed ispuniti rubrike “Datum smrti” ili “Datum otkaza”, nismo prognozeri koji upiru prstom u nebo :-).

Većina softvera za modeliranje (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) podaci vam omogućuju stvaranje prototipova podatkovnih regija. Ovo osigurava ne samo ispravan tip podataka, logiku aplikacije i dobru izvedbu, već i da je vrijednost potrebna.

5. Budite prirodni

Dizajn baze podataka. Najbolje prakse

Kada odlučujete koji ćete stupac u tablici koristiti kao ključ, uvijek uzmite u obzir koja polja korisnik može uređivati. Nikada ih ne birajte kao ključ - loša ideja. Sve se može dogoditi, ali morate osigurati da bude jedinstveno.

Najbolje je koristiti prirodni, odnosno poslovni ključ. Ima semantičko značenje, pa ćete izbjeći dupliciranje u bazi podataka. 

Osim ako je poslovni ključ jedinstven (ime, prezime, položaj) i ponavlja se u različitim redcima tablice ili se mora mijenjati, tada generirani umjetni ključ treba označiti kao primarni ključ.

6. Normalizirajte umjereno

Dizajn baze podataka. Najbolje prakse

Da biste učinkovito organizirali podatke u bazi podataka, trebate slijediti niz smjernica i normalizirati bazu podataka. Postoji pet normalnih oblika koje treba slijediti.
Normalizacijom izbjegavate redundanciju i osiguravate cjelovitost podataka koji se koriste u vašoj aplikaciji ili web-mjestu.

Kao i uvijek, sve treba biti umjereno, pa i normalizacija. Ako postoji previše tablica u bazi podataka s istim jedinstvenim ključevima, tada ste se zanijeli i previše normalizirali bazu podataka. Pretjerana normalizacija negativno utječe na performanse baze podataka.

7. Testirajte rano, testirajte često

Dizajn baze podataka. Najbolje prakse

Plan testiranja i pravilno testiranje trebali bi biti dio dizajna baze podataka.

Najbolji način testiranja vaše baze podataka je kontinuirana integracija. Simulirajte scenarij "dan u životu baze podataka" i provjerite jesu li obrađeni svi rubni slučajevi i koje su interakcije korisnika vjerojatne. Što prije pronađete greške, više ćete uštedjeti vremena i novca.

Ovo je samo sedam savjeta pomoću kojih možete dizajnirati izvrsnu bazu podataka o produktivnosti i učinkovitosti. Budete li ih slijedili, izbjeći ćete većinu glavobolja u budućnosti. Ovi savjeti samo su vrh ledenog brijega u modeliranju baze podataka. Postoji ogroman broj životnih hakova. Koje vi koristite?

Izvor: www.habr.com

Dodajte komentar