Pokušajte!
Baze podataka i veb aplikacije mogu dati velike poslovne prednosti. Dizajn baze podataka je od suštinske važnosti za postizivanje ciljeva, bilo da želite da upravljate informacijama o zaposlenima, da obezbeđujete sedmične izveštaje o podacima ili da pratite porudžbine klijenata. Ulaganje vremena u razumevanje dizajna baze podataka pomoći će vam da napravite baze podataka koje rade ispravno po prvi put i koje odgovaraju promenama.
Važno: Access veb aplikacije se razlikuju od baza podataka na radnoj površini. Ovaj članak ne govori o dizajnu veb aplikacije.
Koncepti i termini
Počnimo učenjem nekih osnovnih termina i koncepata. Da biste dizajnirajli korisnu bazu podataka, kreirajte tabele koje se fokusiraju na jednu temu. U tabelama hvatate sve podatke potrebne za tu temu u poljima koja sadrže najmanju moguću jedinicu podataka.
Relacione baze podataka |
Baza podataka u kojoj su podaci podeljeni u tabele, koje su poput unakrsnih tabela. Svaka tabela ima samo jednu temu, kao što su klijenti (jedna tabela) ili proizvodi (druga tabela). |
Zapisi i polja |
Skladište za diskretne podatke u tabeli. Redovi (ili zapisi) skladište svaku jedinstvenu tačku podataka, kao što je ime klijenta. Kolone (ili polja) izoluju informacije koje su uhvaćene o svakoj tački podataka u najmanju moguću jedinicu – ime može da bude jedna kolona, a prezime drugo. |
Primarni ključ |
Vrednost koja obezbeđuje da svaki zapis bude jedinstven. Na primer, možda postoje dva klijenta sa istim imenom Elizabet Andersen. Ali jedan od zapisa Elizabet Andersen ima broj 12 kao primarni ključ, a drugi ima primarni ključ od 58. |
Odnos nadređeno-podređeno |
Uobičajene relacije između tabela. Na primer, jedan klijent može da ima više porudžbina. Nadređene tabele imaju primarne ključeve. Podređene tabele imaju sporedne ključeve, a to su vrednosti iz primarnog ključa koje pokazuju kako su podređene tabele zapisi povezani sa nadređenom tabelom. Ovi tasteri su povezani relacijama. |
Šta je dobar dizajn baze podataka?
Dva principa su od suštinske značajnosti za dobar dizajn baze podataka:
-
Izbegavajte duplirane informacije (poznate i kao suvišni podaci). To traće prostor i povećava verovatnoće grešaka.
-
Uverite se da su podaci ispravni i dovršeni. Nepotpune ili greške informacije teku kroz upite i izveštaje i na kraju mogu dovesti do pogrešno uobličenih odluka.
Da biste pomogli u vezi sa ovim problemima:
-
Podelite informacije o bazi podataka u tabele zasnovane na temi sa užim fokusom. Izbegavajte dupliranje informacija u više tabela. (Na primer, imena klijenata bi trebalo da idu samo u jednoj tabeli.)
-
Spojite tabele pomoću tastera umesto dupliranja podataka.
-
Uključite procese koji podržavaju i obezbeđuju tačnost i integritet informacija o bazi podataka.
-
Dizajnirajte bazu podataka koristeći vaše potrebe za obradom podataka i izveštavanjem.
Da biste poboljšali dugoročno korisnost baza podataka, pratite ovih pet koraka za dizajn:
1. korak: Određivanje svrhe baze podataka
Pre nego što počnete, imajte cilj za bazu podataka.
Da biste dizajn držali fokusirani, rezimirajte svrhu baze podataka i često upućujte na rezime. Ako želite malu bazu podataka za preduzeće zasnovano na kući, možete napisati nešto jednostavno, na primer "Baza podataka klijenata čuva listu informacija o klijentima radi proizvodnje pošilja i izveštaja". Za bazu podataka preduzeća možda će vam biti potrebno više pasusa da biste opisali kada i kako će osobe u različitim ulogama koristiti bazu podataka i njene podatke. Create određenu i detaljnu izjavu o misiji na koju treba upućiti tokom procesa dizajniranja.
2. korak: Pronalaženje i organizovanje potrebnih informacija
Prikupite sve tipove informacija koje želite da snimite, kao što su imena proizvoda i brojevi porudžbina.
Počnite sa postojećim informacijama i metodima praćenja. Na primer, možda trenutno zapišite porudžbenice u glavnoj knjizi ili čuvate informacije o klijentima u papirnim obrascima. Koristite te izvore da biste nabrajali informacije koje trenutno hvatate (na primer, sva polja u obrascima). Kada trenutno ne uhvatite važne informacije, razmislite o tome koje su vam diskretne informacije potrebne. Svaki pojedinačni tip podataka postaje polje u bazi podataka.
Ne brinite o tome da prvu listu učinite savršenom – vremenom možete precizno da je podesite. Međutim, razmotrite sve osobe koje koriste ove informacije i zatražite njihove ideje.
Zatim razmislite o tome šta želite iz baze podataka i o tipovima izveštaja ili pošiljala koje želite da proizvedete. Zatim se uverite da hvatate informacije potrebne za ispunjavanje tih ciljeva. Na primer, ako želite izveštaj koji prikazuje prodaju po regionu, morate da zabeležite podatke o prodaji na regionalnom nivou. Pokušajte da skicirate izveštaj sa stvarnim informacijama koje želite da vidite. Zatim nanesite podatke koji su vam potrebni za kreiranje izveštaja. Uradite isto za pošiljale ili druge izlaze koje želite iz baze podataka.
Primer
Recimo da klijentima date mogućnost da daju saglasnost za periodične ispravke e-pošte (ili odbiju) i želite da odštampate listu onih koji su dali saglasnost. Potrebna vam je kolona "Pošalji e-poštu" u tabeli "Klijent" sa dozvoljenim vrednostima "Da" i "Ne".
Za one koji su spremni da primaju e-poruke potrebna vam je e-adresa, koja takođe zahteva polje. Ako želite da uključite odgovarajući oslovljavanje (kao što je gospodin, gđa ili gđa), uključite polje za oslovljavanje. Ako želite da se klijentima obratite po imenu u e-porukama, dodajte polje "Ime".
Savet: Ne zaboravite da svaku informaciju prelomite na najmanji koristan deo, kao što su ime i prezime za tabelu klijenta. Uopšte uzev, ako želite da sortirate, pretražite, izračunate ili izveštaje na osnovu stavke sa informacijama (kao što je prezime klijenta), trebalo bi da stavite tu stavku u njeno sopstveno polje.
3. korak: Deljenje informacija u tabele
Podelite stavke informacija u glavne entitete ili teme, kao što su proizvodi, klijenti i porudžbine. Svaka tema postaje tabela.
Kada imate listu potrebnih informacija, utvrdite glavne entitete (ili teme) koje treba da organizujete. Izbegavajte dupliranje podataka u entitetima. Na primer, preliminarna lista za bazu podataka prodaje proizvoda može da izgleda ovako:
Glavni entiteti su: klijenti, dobavljači, proizvodi i porudžbine. Počnite sa te četiri tabele: jedna za činjenice o klijentima, jedna za činjenice o dobavljačima i tako dalje. Ovo možda nije konačni dizajn, ali je dobra početna tačka.
Napomena: Najbolje baze podataka sadrže više tabela. Izbegnite iskušenje da biste sve informacije postavili u jednu tabelu. To daje duplirane informacije, veću veličinu baze podataka i povećane greške. Dizajnirajte da biste svaku činjenicu snimili samo jednom. Ako otkrijete da se informacije koje se ponavljaju, kao što je adresa dobavljača, restrukturiranje baze podataka da biste te informacije postavili u zasebnu tabelu.
Da biste razumeli zašto je više tabela bolje od manje, uzmite u obzir prikazanu tabelu:
Svaki red sadrži informacije o proizvodu i dobavljaču. Pošto možda imate mnogo proizvoda od istog dobavljača, informacije o imenu i adresi dobavljača moraju da se ponavljaju više puta. To troši prostor na disku. Umesto toga, snimite informacije o dobavljaču samo jednom u zasebnoj tabeli "Dobavljači", a zatim povežite tu tabelu sa tabelom "Proizvodi".
Drugi problem sa ovim dizajnom je evidentan kada treba da izmenite informacije o dobavljaču. Pretpostavimo da treba da promenite adresu dobavljača. Pošto se ona pojavljuje na više mesta, može se slučajno desiti da promenite adresu na jednom mestu, a da zaboravite da promenite na drugim mestima. Snimanje adrese dobavljača na samo jednom mestu rešava taj problem.
Na kraju, pretpostavimo da samo jedan proizvod obezbeđuje vinarija Koho i želite da izbrišete proizvod, ali da zadržite ime i adresu dobavljača. Sa ovim dizajnom, kako biste izbrisali zapis proizvoda a da ne izgubite informacije o dobavljaču? Nije moguće to uraditi. Pošto svaki zapis sadrži činjenice o proizvodu pored činjenica o dobavljaču, nije moguće izbrisati jedan bez brisanja drugog. Da bi ove činjenice bile odvojene, podelite ovu tabelu na dve: prvu za informacije o proizvodu, a drugu za informacije o dobavljaču. Zatim, kada izbrišete zapis proizvoda, brišete samo činjenice o proizvodu , a ne i činjenice o dobavljaču.
4. korak: Pretvaranje stavki informacija u kolone
Odlučite koje informacije treba da uskladištite u svakoj tabeli. Ovi diskretni delovi podataka postaju polja u tabeli. Na primer, tabela "Zaposleni" može da sadrži polja kao što su "Prezime", "Ime" i "Datum zapošljavanja".
Pošto ste odabrali temu za tabelu baze podataka, kolone u toj tabeli bi trebalo da skladište samo činjenice o toj temi. Na primer, tabela proizvoda bi trebalo da skladišti činjenice samo o proizvodima , a ne o dobavljačima.
Da biste odlučili koje informacije da pratite u tabeli, koristite listu koju ste ranije kreirali. Na primer, tabela "Klijenti" može da obuhvata: Ime, Prezime, Adresa, Slanje e-pošte, Oslovljavanje i E-adresa. Svaki zapis (klijent) u tabeli sadrži isti skup kolona, tako da skladištite potpuno iste informacije za svakog klijenta.
Create listu, a zatim je pregledajte i suzite. Ne zaboravite da razdeite informacije u najmanja moguća polja. Na primer, ako početna lista ima adresu kao polje, razdaberite ih u "Ulica i broj", "Grad", "Država" i "Poštanski broj" – ili, ako su klijenti globalni, u još više polja. Na taj način, na primer, možete slati poruke u odgovarajućem formatu ili izveštaje o porudžbinama po državi.
Kada suzite obim kolona podataka u svakoj tabeli, spremni ste da odaberete primarni ključ svake tabele.
5. korak: Navođenje primarnih ključeva
Odaberite primarni ključ svake tabele. Primarni ključ, kao što je ID proizvoda ili ID porudžbine, jedinstveno identifikuje svaki zapis. Ako nemate očigledan jedinstveni identifikator, koristite Access da biste kreirali neki za vas.
Potreban vam je način da jedinstveno identifikujete svaki red u svakoj tabeli. Sećate se prethodnog primera gde dva klijenta imaju isto ime? Pošto oni dele ime, potreban vam je način da zasebno identifikujete svako od njih.
Stoga svaka tabela treba da sadrži kolonu (ili skup kolona) koja jedinstveno identifikuje svaki red. Ovo se naziva primarni ključ i često je jedinstven broj, kao što je ID broj zaposlenog ili serijski broj. Access koristi primarne ključeve za brzo povezivanje podataka iz više tabela i objedinjavanje podataka za vas.
Ponekad se primarni ključ sastoji od dva ili više polja. Na primer, tabela sa detaljima porudžbine koja skladišti stavke reda za porudžbine može da koristi dve kolone u primarnom ključu: ID porudžbine i ID proizvoda. Kada primarni ključ koristi više kolona, zove se i složeni ključ.
Ako već imate jedinstveni identifikator za informacije u tabeli, kao što su brojevi proizvoda koji na jedinstven način identifikuju svaki proizvod u katalogu, koristite ga, ali samo ako vrednosti ispunjavaju ova pravila za primarne ključeve:
-
Identifikator će uvek biti drugačiji za svaki zapis. Duplirane vrednosti nisu dozvoljene u primarnom ključu.
-
Uvek postoji vrednost za stavku. Svaki zapis u tabeli mora da ima primarni ključ. Ako koristite više kolona da biste kreirali ključ (kao što su porodica i broj dela), obe vrednosti uvek moraju biti prisutne.
-
Primarni ključ je vrednost koja se ne menja. Budući da druge tabele upućuju na ključeve, svaka promena primarnog ključa u jednoj tabeli podrazumeva promenu na koju se na njega upućuje. Česte promene povećavaju rizik od grešaka.
Ako nemate očigledan identifikator, koristite proizvoljni, jedinstveni broj kao primarni ključ. Na primer, svakoj porudžbini možete da dodelite jedinstveni broj porudžbine za samo svrhu identifikovanja porudžbine.
Savet: Da biste kreirali jedinstveni broj kao primarni ključ, dodajte kolonu koristeći tip podataka "Automatsko numerisanje". Tip podataka "Automatsko numerisanje" automatski dodeljuje jedinstvenu numeričku vrednost svakom zapisu. Ovaj tip identifikatora ne sadrži činjenične informacije koje opisuju red koji predstavlja. Idealan je za korišćenje kao primarni ključ jer se brojevi ne menjaju – za razliku od primarnog ključa koji sadrži činjenice o redu, kao što su broj telefona ili ime klijenta.