Isprobajte!
Baze podataka i web-aplikacije mogu donijeti velike poslovne prednosti. Dizajn baze podataka ključan je za postizanje vaših ciljeva, bez obzira na to želite li upravljati informacijama o zaposlenicima, pružati tjedna izvješća na temelju podataka ili pratiti narudžbe klijenata. Ulaganje vremena u razumijevanje dizajna baze podataka pomoći će vam da izgradite baze podataka koje ispravno funkcioniraju prvi put i koje odgovaraju svim potrebama.
Važno
Web-aplikacije programa Access razlikuju se od baza podataka za stolna računala. U ovom se članku ne razmatra dizajn web-aplikacija.
Koncepti i pojmovi
Počnimo s učenjem nekih osnovnih pojmova i koncepata. Da biste dizajnirali korisnu bazu podataka, stvorite tablice koje su usmjerene na jednu temu. U tablicama sve podatke koji su vam potrebni za taj predmet obuhvatite u polja u kojima se nalazi najmanja moguća jedinica podataka.
| Relacijske baze podataka | Baza podataka u kojoj su podaci podijeljeni u tablice koje su poput proračunskih tablica. Svaka tablica ima samo jedan predmet, kao što su Korisnici (jedna tablica) ili Proizvodi (druga tablica). |
|---|---|
| Zapisi i polja | Prostor za pohranu zasebnih podataka u tablici. U retke (ili zapise) pohranjuje se svaka jedinstvena podatkovna točka, primjerice ime kupca. Stupci (ili polja) izoliraju informacije koje se bilježe o svakoj točki podataka u najmanju moguću jedinicu – ime može biti jedan stupac, a prezime drugi. |
| Primarni ključ | Vrijednost koja jamči da je svaki zapis jedinstven. Na primjer, možda postoje dvije klijentice istog imena, Elizabeta Abrus. Ali jedan od zapisa Elizabeth Andersen ima broj 12 kao primarni ključ, a drugi ima primarni ključ 58. |
| Odnosi nadređenosti i podređenosti | Uobičajeni odnosi između tablica. Jedan kupac, primjerice, može imati više narudžbi. Nadređene tablice imaju primarne ključeve. Podređene tablice sadrže vanjske ključeve, tj. vrijednosti primarnog ključa koje pokazuju kako su zapisi podređene tablice povezani s nadređenom tablicom. Ti su ključevi povezani odnosom. |
Što je dobar dizajn baze podataka?
Dva su načela temeljna za dobar dizajn baze podataka:
- Izbjegavajte dupliciranje podataka (tzv. suvišne podatke). Troši prostor i povećava vjerojatnost pogrešaka.
- Provjerite jesu li podaci točni i potpuni. Nepotpuni ili pogrešni podaci pretječu iz upita i izvješća i u konačnici mogu dovesti do pogrešnih odluka.
Da biste riješili te poteškoće:
- Podjela podataka baze podataka u tematske tablice s uskim fokusom. Izbjegavajte dupliciranje informacija u više tablica. (Imena kupaca, primjerice, trebaju se nalaziti samo u jednoj tablici.)
- Spojite tablice pomoću ključeva umjesto dupliciranja podataka.
- Uvrstite procese koji podržavaju i osiguravaju točnost i integritet podataka baze podataka.
- Dizajnirajte bazu podataka imajući na umu potrebe za obradom podataka i izvješćivanjem.
Da biste poboljšali dugoročnu korisnost baza podataka, slijedite ovih pet koraka dizajna:
Prvi korak: utvrđivanje svrhe baze podataka
Prije početka imajte cilj za bazu podataka.
Dodatne pojedinosti
Da bi dizajn ostao fokusiran, sažmite svrhu baze podataka i često se referirajte na sažetak. Ako, primjerice, želite malu bazu podataka za kućnu tvrtku, možete napisati nešto jednostavno, na primjer: "Baza podataka s klijentima vodi popis podataka o klijentima radi izrade poruka e-pošte i izvješća". U poslovnoj bazi podataka možda će vam biti potrebno više odlomaka da biste opisali kada i kako će osobe na različitim ulogama koristiti bazu podataka i njezine podatke. Stvorite specifičnu i detaljnu izjavu o misiji na koju ćete se pozivati tijekom cijelog procesa dizajna.
Drugi korak: pronalaženje i organiziranje obaveznih informacija
Prikupite sve vrste podataka koje želite zabilježiti, kao što su nazivi proizvoda i brojevi narudžbi.
Dodatne pojedinosti
Započnite s postojećim informacijama i načinima praćenja. Možda, primjerice, trenutno bilježite narudžbenice u knjižnoj knjizi ili podatke o kupcima držite na papirnatim obrascima. Te izvore koristite za popis trenutno bilježenih podataka (primjerice, svih okvira u obrascima). Tamo gdje trenutno ne bilježite važne informacije, razmislite koje su vam zasebne informacije potrebne. Svaka pojedinačna vrsta podataka postaje polje u bazi podataka.
Ne brinite o tome hoćete li prvi popis učiniti savršenim – s vremenom ga možete dotjerati. Ali razmislite o tome sve ljude koji koriste te informacije i pitajte za njihove ideje.
Zatim razmislite što želite od baze podataka i koje vrste izvješća ili skupnih poruka želite proizvesti. Zatim provjerite prikupljate li informacije potrebne za ostvarivanje tih ciljeva. Ako, primjerice, želite izvješće s prikazom prodaje po regijama, morate snimiti podatke o prodaji na regionalnoj razini. Pokušajte skicirati izvješće sa stvarnim podacima onako kako biste ga željeli vidjeti. Zatim navedite podatke koji su vam potrebni za stvaranje izvješća. Isto učinite za poruke e-pošte i druge izlaze koje želite dobiti iz baze podataka.
Primjer
Pretpostavimo da korisnicima dajete mogućnost pristanka na primanje (ili isključivanje) periodičnih ažuriranja e-poštom i želite ispisati popis onih koji su pristali na to. Potreban vam je stupac Slanje e-pošte u tablici Klijent s dopuštenim vrijednostima Da i Ne.
Za one koji žele primati e-poštu potrebna vam je adresa e-pošte, za koju je također potrebno polje. Ako želite unijeti prikladan pozdrav (kao što su gospodin, gospođa ili gospođa), uključite polje Pozdrav. Ako se u porukama e-pošte klijentima želite obraćati imenom, dodajte polje Ime.
Savjet
Ne zaboravite razlomiti svaku informaciju na najmanji korisni dio, primjerice ime i prezime tablice klijenata. Općenito, ako želite sortirati, pretraživati, izračunavati ili izvješćivati na temelju stavke podataka (kao što je prezime klijenta), tu stavku stavite u zasebno polje.
Treći korak: podjela informacija u tablice
Podijelite stavke informacija na glavne entitete ili predmete, kao što su proizvodi, kupci i narudžbe. Svaki subjekt postaje tablica.
Dodatne pojedinosti
Kada imate popis obaveznih informacija, odredite glavne entitete (ili predmete) koji su vam potrebni za organiziranje podataka. Izbjegavajte dupliciranje podataka između entiteta. Preliminarni popis za bazu podataka o prodaji proizvoda, primjerice, može izgledati ovako:
Glavni entiteti su: kupci, dobavljači, proizvodi i narudžbe. Dakle, počnite s te četiri tablice: jedna za činjenice o kupcima, jedna za činjenice o dobavljačima i tako dalje. To možda nije vaš konačni dizajn, ali je dobra početna točka.
Napomena
Najbolje baze podataka sadrže više tablica. Izbjegnite iskušenje da sve podatke smjestite u jednu tablicu. Zbog toga se stvaraju duplicirani podaci, baza podataka je veća i više pogrešaka. Dizajnirajte tako da svaku činjenicu zabilježite samo jedanput. Ako shvatite da se ponavljaju informacije, na primjer adresa dobavljača, restrukturirajte bazu podataka tako da ih smjestite u zasebnu tablicu.
Da biste razumjeli zašto je više tablica bolje od manje, razmislite o tablici koja je prikazana ovdje:
Svaki redak sadrži podatke o proizvodu i njegovom dobavljaču. Budući da možda imate mnogo proizvoda istog dobavljača, podatke o imenu i adresi dobavljača potrebno je ponoviti više puta. Time se troši prostor na disku. Umjesto toga, podatke o dobavljaču zabilježite samo jedanput u zasebnu tablicu Dobavljači, a zatim tu tablicu povežite s tablicom Proizvodi.
Drugi problem s ovim dizajnom očit je kada trebate izmijeniti podatke o dobavljaču. Pretpostavimo da morate promijeniti adresu dobavljača. Budući da se adresa pojavljuje na mnogim mjestima, možda ćete je slučajno promijeniti na jednom mjestu, ali je zaboraviti promijeniti na drugom. Bilježenje adrese dobavljača samo na jednom mjestu rješava taj problem.
Naposljetku, pretpostavimo da vinarija Coho isporučuje samo jedan proizvod, a vi ga želite izbrisati, ali zadržati ime dobavljača i podatke o adresi. Kako biste uz taj dizajn izbrisali zapis o proizvodu, a da pritom ne izgubite i podatke o dobavljaču? Ne možete. Budući da svaki zapis uz činjenice o dobavljaču sadrži i činjenice o proizvodu, nije moguće izbrisati jednu, a da ne izbrišete drugu. Da bi te činjenice bile odvojene, podijelite ovu tablicu na dvije dijelove: prvu za informacije o proizvodu, a drugu za informacije o dobavljačima. Zatim, kada izbrišete zapis o proizvodu, brišete samo činjenice o proizvodu, a ne i činjenice o dobavljaču.
Četvrti korak: pretvaranje stavki informacija u stupce
Odlučite koje ćete podatke morati pohraniti u svaku tablicu. Ti samostalni dijelovi podataka postaju polja u tablici. Tablica Zaposlenici, primjerice, može sadržavati polja kao što su Prezime, Ime i Datum zapošljavanja.
Dodatne pojedinosti
Nakon odabira predmeta za tablicu baze podataka, stupci u toj tablici trebali bi pohraniti samo činjenice o tom jednom predmetu. U tablici proizvoda, primjerice, trebale bi se pohranjivati samo činjenice o proizvodima, a ne i o njihovim dobavljačima.
Da biste odlučili koje informacije želite pratiti u tablici, koristite popis koji ste prethodno stvorili. Tablica Kupci, primjerice, može sadržavati: ime, prezime, adresu, poruku e-pošte za slanje, pozdrav i adresu e-pošte. Svaki zapis (klijent) u tablici sadrži isti skup stupaca, pa za svakog klijenta pohranjujete potpuno iste podatke.
Stvorite prvi popis, a zatim ga pregledajte i suzite. Ne zaboravite razlomiti informacije u najmanja moguća polja. Ako početni popis, primjerice, sadrži polje Adresa, podijelite ga na polje Adresa, Grad, Državu i Poštanski broj – ili, ako su vaši klijenti globalni, na još više polja. Na taj način, primjerice, možete slati poštu u ispravnom obliku ili izvještavati o narudžbama po županiji.
Nakon sužavanja stupaca podataka u svakoj tablici spremni ste odabrati primarni ključ svake tablice.
5. korak: odredite primarne ključeve
Odaberite primarni ključ svake tablice. Primarni ključ, kao što su ID proizvoda ili ID narudžbe, jedinstveno identificira svaki zapis. Ako nemate očiti, jedinstveni identifikator, stvorite ga pomoću programa Access.
Dodatne pojedinosti
Potreban vam je način jedinstvene identifikacije svakog retka u svakoj tablici. Sjećate se prethodnog primjera u kojem dva klijenta imaju isto ime? Budući da imaju jedno ime, svaki od njih možete zasebno identificirati.
Stoga bi svaka tablica trebala sadržavati stupac (ili skup stupaca) koji utvrđuje jedinstveni identitet svakog retka. To se naziva primarnim ključem i često je riječ o jedinstvenom broju, npr. Access koristi primarne ključeve kako bi brzo povezao podatke iz nekoliko tablica te ih objedinio umjesto vas.
Ponekad se primarni ključ sastoji od dva ili više polja. Na primjer, tablica Detalji narudžbe u koju se spremaju reci sa stavkama narudžbe može u primarnom ključu koristiti dva stupca: ID narudžbe i ID proizvoda. Kada primarni ključ koristi više od jednog stupca, naziva se i složeni ključ.
Ako već imate jedinstveni identifikator za podatke u tablici, kao što su brojevi proizvoda koji jedinstveno označavaju svaki proizvod u vašem katalogu, koristite ga, no samo ako vrijednosti zadovoljavaju sljedeća pravila za primarne ključeve:
- Identifikator će uvijek biti različit za svaki zapis. U primarnom ključu nisu dopuštene duplicirane vrijednosti.
- Stavka uvijek ima vrijednost. Svaki zapis u tablici mora imati primarni ključ. Ako za stvaranje ključa koristite više stupaca (npr. Obitelj dijelova i Broj dijela), obje vrijednosti moraju uvijek biti prisutne.
- Primarni ključ je vrijednost koja se ne mijenja. Budući da se ključeve pozivaju druge tablice, svaka promjena primarnog ključa u jednoj tablici znači promjenu primarnog ključa svugdje gdje se referencira. Česte promjene povećavaju rizik od pogrešaka.
Ako nemate očit identifikator, kao primarni ključ koristite proizvoljni, jedinstveni broj. Na primjer, svakoj narudžbi možete dodijeliti jedinstveni broj narudžbe isključivo u svrhu identifikacije narudžbe.
Savjet
Da biste kao primarni ključ stvorili jedinstveni broj, dodajte stupac pomoću vrste podataka s automatskim numeriranjem. Vrsta podataka s automatskim numeriranjem automatski dodjeljuje jedinstvenu, brojčanu vrijednost svakom zapisu. Ta vrsta identifikatora ne sadrži činjenične informacije koje opisuju redak koji predstavlja. Idealan je za korištenje kao primarni ključ jer se brojevi ne mijenjaju – za razliku od primarnog ključa koji sadrži činjenice o retku, kao što su telefonski broj ili ime klijenta.