Dizajn baze podataka. Najbolje prakse

U iščekivanju početka sljedećeg protoka po stopi "baza podataka" Pripremili smo mali autorski materijal sa važnim savjetima za dizajniranje baze podataka. Nadamo se da će vam ovaj materijal biti od koristi.

Dizajn baze podataka. Najbolje prakse

Baze podataka su posvuda: od najjednostavnijih blogova i direktorija do pouzdanih informacionih sistema i velikih društvenih mreža. Da li je baza podataka jednostavna ili složena nije toliko važno koliko je važno pravilno je dizajnirati. Kada se baza podataka dizajnira nepromišljeno i bez jasnog razumijevanja svrhe, ona ne samo da je neefikasna, već će dalji rad s bazom podataka biti prava muka, neprobojna šuma za korisnike. Evo nekoliko savjeta za dizajn baze podataka koji će vam pomoći da kreirate koristan proizvod koji je jednostavan za korištenje.

1. Odredite čemu služi tabela 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 potrazi za vremenom, iskušenje je veoma veliko da se direktno zaroni u izgradnju baze, nejasno zamišljajući šta je sam cilj, kakvi bi trebali biti konačni rezultati.
 
Kao da je tim fokusiran na efikasan, brz rad, ali ovo je fatamorgana. Što dalje i brže zaronite u dubinu projekta, to će više vremena biti potrebno da se identifikuju i izmijene greške u dizajnu baze podataka.

Dakle, prva stvar koju trebate odlučiti je definirati svrhu vaše baze podataka. Za koju vrstu aplikacije se razvija baza podataka? Hoće li korisnik raditi samo sa zapisima i treba li obratiti pažnju na transakcije ili ga više zanima analiza 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, proces dizajna baze podataka će biti glatkiji.

2. Koje podatke da odaberem za skladištenje?

Dizajn baze podataka. Najbolje prakse

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

Radite s timom, odjelom ili organizacijom za koje će se u budućnosti podržavati baza dizajna. Komunicirajte s ljudima na različitim nivoima, od stručnjaka za korisničku podršku do šefova odjela. Na ovaj način, uz pomoć povratnih informacija, dobićete jasnu predstavu o zahtevima kompanije. 

Neminovno će se sukobiti potrebe korisnika čak i unutar istog odjela. Ako naiđete na ovo, nemojte se bojati osloniti se na vlastito iskustvo i pronaći kompromis koji odgovara svim stranama i koji zadovoljava krajnji cilj baze podataka. Budite sigurni: 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 tačaka na koje treba obratiti pažnju prilikom modeliranja podataka. Kao što smo ranije rekli, svrha baze podataka određuje koje metode će se koristiti u modeliranju. Ako dizajniramo bazu podataka za online obradu zapisa (OLTP), drugim riječima za kreiranje, uređivanje i brisanje zapisa, koristimo modeliranje transakcija. Ako baza podataka mora biti relaciona, onda je najbolje koristiti višedimenzionalno modeliranje.

Tokom modeliranja grade se konceptualni (CDM), fizički (PDM) i logički (LDM) modeli podataka. 

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

Ako je entitet vrlo teško klasificirati u jednoj riječi ili frazi, onda je vrijeme da se koriste podtipovi (podređeni entiteti).

Ako entitet vodi svoj ž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 supertip (roditeljski 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 se implementiraju pomoću logičkih. Ovi modeli su poput mape puta za dizajn fizičke baze podataka. U logičkom modelu identifikuju se entiteti poslovnih podataka, određuju se tipovi podataka i određuje se status ključa pravila koji upravlja odnosima između podataka.

Zatim se logički model podataka upoređuje sa unaprijed odabranom DBMS (sistem za upravljanje bazom podataka) platformom i dobije se fizički model. Opisuje kako se podaci fizički pohranjuju.

4. Koristite prave tipove podataka

Dizajn baze podataka. Najbolje prakse

Korištenje pogrešnog tipa podataka može rezultirati manje preciznim podacima, poteškoćama u spajanju tabela, poteškoćama u sinkronizaciji atributa i prevelikim veličinama datoteka.
Da bi se osigurao integritet informacija, atribut mora sadržavati samo tipove podataka koji su za njega prihvatljivi. Ako je starost unesena u bazu podataka, uvjerite se da kolona pohranjuje cijele brojeve od najviše 3 znamenke.

Kreirajte minimum praznih kolona sa NULL vrijednošću. Ako kreirate sve kolone kao NULL, ovo je velika greška. Ako vam je potrebna prazna kolona za obavljanje određene poslovne funkcije, kada su podaci nepoznati ili još nemaju smisla, slobodno ih kreirajte. Uostalom, ne možemo unaprijed popuniti kolone „Datum smrti“ ili „Datum otpuštanja“, mi nismo prediktori koji upiru prstom u nebo :-).

Većina softvera za modeliranje (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) podaci vam omogućavaju da kreirate prototipove regiona podataka. Ovo osigurava ne samo ispravan tip podataka, logiku aplikacije i dobre performanse, već i da je vrijednost potrebna.

5. Budite prirodni

Dizajn baze podataka. Najbolje prakse

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

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

Osim ako je poslovni ključ jedinstven (ime, prezime, pozicija) i ako se ne ponavlja u različitim redovima tabele ili se mora promijeniti, tada generirani umjetni ključ treba označiti kao primarni ključ.

6. Normalizirajte umjereno

Dizajn baze podataka. Najbolje prakse

Da biste efikasno organizirali podatke u bazi podataka, morate slijediti skup smjernica i normalizirati bazu podataka. Postoji pet normalnih oblika koje treba pratiti.
Normalizacijom izbjegavate redundantnost i osiguravate integritet podataka koji se koriste u vašoj aplikaciji ili web-mjestu.

Kao i uvijek, sve bi trebalo biti umjereno, pa i normalizacija. Ako u bazi podataka ima previše tabela s istim jedinstvenim ključevima, onda ste se zanijeli i previše ste 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 treba da budu deo dizajna baze podataka.

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

Ovo je samo sedam savjeta koje možete koristiti za dizajniranje velike baze podataka o produktivnosti i efikasnosti. Ako ih se pridržavate, izbjeći ćete većinu glavobolja u budućnosti. Ovi savjeti su samo vrh ledenog brega u modeliranju baze podataka. Postoji ogroman broj životnih hakova. Koje vi koristite?

izvor: www.habr.com

Dodajte komentar