Projektiranje Baze Podataka. Najbolje prakse

U iščekivanju početka novog kruga kursa «Baze podataka» pripremili smo mali autorski materijal s važnim savjetima za konstruiranje Baze podataka. Nadamo se da će vam ovaj materijal biti koristan.

Projektiranje Baze Podataka. Najbolje prakse

Baze podataka su posvuda: od najjednostavnijih blogova i direktorija do pouzdanih informatičkih sustava i velikih društvenih mreža. Nije toliko važno je li baza podataka jednostavna ili složena, koliko je bitno pravilno ju projektirati. Kada je baza projektirana bez promišljanja i jasnog razumijevanja cilja, ona ne samo da nije učinkovita, već će daljnji rad s bazom biti stvarno mučenje, neprohodna šuma za korisnike. Evo nekoliko savjeta za konstruiranje baze podataka koji će pomoći u stvaranju korisnog i jednostavnog proizvoda.

1. Odredite svrhu tablice i njezinu strukturu

Projektiranje Baze Podataka. Najbolje prakse

Danas takve metode razvoja kao što su Scrum ili RAD (brzi razvoj aplikacija) pomažu IT timovima da brzo razvijaju baze podataka. Međutim, u potrazi za vremenom, vrlo je velika kušnja upustiti se odmah u izgradnju baze, mutno zamišljajući koja je sama svrha, koje bi trebale biti konačne rezultate.
 
Kao da je tim usmjeren na učinkovito, brže rada, ali to je iluzija. Što dublje i brže uranjate u projekt, to će više vremena trebati za otkrivanje i ispravak grešaka u projektu baze.

Stoga, prvo što treba odlučiti je odrediti cilj za vašu bazu podataka. Za koju vrstu aplikacije se razvija baza? Hoće li korisnik samo raditi s unosima i trebate obratiti pažnju na transakcije ili ga više zanima analitika podataka? Gdje bi baza trebala biti postavljena? Hoće li pratiti ponašanje klijenata ili jednostavno upravljati odnosima među njima? 

Što ranije tim za projektiranje odgovori na ova pitanja, to će proces projektiranja baze podataka biti glatkiji i lakši.

2. Koje podatke odabrati za pohranu?

Projektiranje Baze Podataka. Najbolje prakse

Planirajte unaprijed. Razmislite o tome što će vaša web stranica ili sustav raditi u budućnosti kada projektirate bazu podataka. Važno je ići izvan jednostavnih zahtjeva tehničke specifikacije. Samo, molim vas, ne počnite odmah razmišljati o svim mogućim vrstama podataka koje bi korisnici mogli ikada pohraniti. Bolje je razmisliti mogu li korisnici pisati objave, učitavati dokumente ili fotografije ili razmjenjivati poruke. Ako je tako, potrebno je osigurati mjesto za njih u bazi.

Radite s timom, odjelom ili organizacijom za koju će se u budućnosti održavati projektirana baza. Komunicirajte s ljudima različitih razina, od stručnjaka za korisničku podršku do voditelja odjela. Na taj ćete način, uz povratne informacije, dobiti jasnu sliku o zahtjevima tvrtke. 

Neizbježno će potrebe korisnika čak i unutar jednog odjela biti u sukobu. Ako se suočite s tim, ne bojte se osloniti na vlastito iskustvo i pronaći kompromis koji će zadovoljiti sve strane i ispuniti konačni cilj baze podataka. Budite sigurni: u budućnosti ćete dobiti +100500 karma i brdo kolačića.

3. Pažljivo modelirajte podatke

Projektiranje Baze Podataka. Najbolje prakse

Postoji nekoliko ključnih točaka na koje treba obratiti pažnju prilikom modeliranja podataka. Kao što smo prije spomenuli, svrha baze podataka određuje koje metode koristiti prilikom modeliranja. Ako projektiramo bazu podataka za operativnu obradu zapisa (OLTP), drugim riječima za njihovo stvaranje, uređivanje i brisanje, koristimo modeliranje transakcija. Ako baza podataka treba biti relacijska, najbolje je primijeniti višedimenzionalno modeliranje.

Tijekom modeliranja razvijaju 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 na logične dijelove — tako će vam biti mnogo lakše.
Ključno je pronaći mjeru, nemojte pretjerivati.

Ako je entitet teško klasificirati jednom riječi ili izrazom, tada je vrijeme za korištenje podtipova (pod-entiteta).

Ako entitet vodi vlastiti život, ima atribute koji opisuju njegovo ponašanje i izgled, kao i odnose s drugim objektima, mogu se slobodno koristiti ne samo podtip, već i supertip (roditeljski entitet). 

Ako se ovo pravilo zanemari, drugi programeri će se zbuniti u vašem modelu i neće u potpunosti razumjeti podatke i pravila o tome kako ih prikupiti.

Konceptualni modeli se realiziraju putem logičkih. Ti modeli su poput mape za projektiranje fizičke baze podataka. U logičkom modelu se ističu entiteti poslovnih podataka, određuju se tipovi podataka, status klučnog pravila koje regulira odnose između podataka.

Zatim se logički model podataka usklađuje s unaprijed odabranom platformom DBMS (sustav upravljanja bazama podataka) i dobiva se fizički model. On opisuje način fizičkog pohranjivanja podataka.

4. Koristite odgovarajuće tipove podataka

Projektiranje Baze Podataka. Najbolje prakse

Upotreba neodgovarajućeg tipa podataka može dovesti do manje točnih podataka, poteškoća u spajanju tablica, usklađivanja atributa i povećanja veličine datoteka.
Kako bi se osigurala cjelovitost informacija, atribut mora sadržavati samo prihvatljive tipove podataka. Ako se u bazu podataka unosi dob, osigurajte da u stupcu budu pohranjeni cjelobrojni brojevi s maksimalno 3 znamenke.

Stvorite minimalno praznih stupaca s vrijednošću NULL. Ako sve stupce postavite kao NULL, to je velika pogreška. Međutim, ako vam je potreban prazan stupac za provedbu specifične poslovne funkcije, kada podaci nisu poznati ili još nemaju smisla, slobodno ga stvorite. Jer ne možemo unaprijed ispuniti stupce “Datum smrti” ili “Datum otkaza”, zar ne? :-).

Većina softvera za modeliranje (ER/Studio, MySQL Workbench, SQL DBM, gliffy.com) podataka omogućava stvaranje prototipova područja podataka. Tako je zajamčeno ne samo pravilan tip podataka, logika aplikacije i dobra izvedba, već i obavezno postavljanje vrijednosti.

5. Preferirajte prirodno

Projektiranje Baze Podataka. Najbolje prakse

Kada odlučujete koji stupac u tablici odabrati kao ključ, uvijek obratite pažnju na polja koja korisnik može uređivati. Nikada ih ne odabirete kao ključ — loša ideja. Može se dogoditi bilo što, a vi morate jamčiti jedinstvenost.

Najbolje je koristiti prirodni ili poslovni ključ (natural key). To ima smisleno značenje, tako da izbjegnete dupliciranje u bazi podataka. 

Samo ako poslovni ključ nije jedinstven (ime, prezime, pozicija) i ponavlja se u različitim redovima tablice ili se mora mijenjati, kao primarni ključ trebate odrediti generirani umjetni, surrogat ključ (artificial key).

6. Normalizirajte umjereno

Projektiranje Baze Podataka. Najbolje prakse

Kako biste učinkovito organizirali podatke u Bazi podataka, potrebno je slijediti skup preporuka i normalizirati bazu podataka. Postoji pet normalnih formi kojima treba slijediti.
Kroz normalizaciju izbjeći ćete višak i osigurati integritet podataka koji se koriste u aplikaciji ili na web stranici.

Kao i uvijek, svega treba biti umjereno, uključujući i normalizaciju. Ako u Bazi podataka ima previše tablica s istim jedinstvenim ključevima, onda ste pretjerali i previše normalizirali bazu podataka. Prekomjena normalizacije negativno utječe na performanse baze podataka.

7. Testirajte ranije, testirajte češće

Projektiranje Baze Podataka. Najbolje prakse

Testni plan i odgovarajuće testiranje trebaju biti dio dizajniranja baze podataka.

Najbolje je testirati bazu podataka putem Continuous Integration (neprekidne integracije). Modelirajte scenarij “Jedan dan u životu baze podataka” i provjerite obrađuju li se svi granični slučajevi, koja su moguća korisnička interakcija. Što ranije pronađete greške, to ćete više uštedjeti i vremena i novca.

To je samo sedam savjeta koji vam mogu pomoći da dizajnirate odličnu bazu podataka po performansama i učinkovitosti. Ako ih slijedite, izbjeći ćete većinu glavobolja u budućnosti. Ovi savjeti su samo vrh ledenog brijega u modeliranju baze podataka. Postoji mnogo savjeta. Kojih se vi pridržavate?

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster