Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Recenzije
  • Dizajn baze podataka. Definiranje polja s jedinstvenim vrijednostima u svakom zapisu

Dizajn baze podataka. Definiranje polja s jedinstvenim vrijednostima u svakom zapisu

1.1. Vrste tablica;
1.2. Vrste imenika;
1.3. Vrste ligamenata;
2. Generalizacija klasifikacije;
2.1. Klasifikacija u tabličnom obliku;
2.2. Klasifikacija u shematskom obliku;
3. Neki komentari na primjenu klasifikacije;
3.1. Primjena klasifikacije pri normalizaciji tablica;
Zaključak.

Obrazloženje članka i neki ključni pojmovi

Vrlo često pohađao obuku iz discipline "Baze podataka". Jednom sam učio sam ... Nekako sam čak morao voditi cijeli tečaj za prijatelje i poznanike. Tijekom treninga primijetio sam da se poteškoće javljaju već u fazi razumijevanja tablica i načina njihovog korištenja. Mnogi jednostavno nisu mogli i ne mogu razviti najjednostavnije baze podataka. Nakon detaljnijeg pogleda na koncept tablica i male klasifikacije, poteškoće percipiranja tablica u relacijskim bazama podataka gotovo uvijek nestaju. Tako!

Ovaj članak će razmotriti malu klasifikaciju tablica na temelju integriteta i redundantnosti. Što to znači? To znači da će se dati primjeri koji opisuju kakvu strukturu tablice možete učiniti kako bi se spriječila (pokušala spriječiti) redundantnost i postigao integritet u relacijskim bazama podataka.

Za razumijevanje hajde kratke definicije integritet podataka i redundantnost:

Integritet podataka- ovo je svojstvo sposobnosti vraćanja drugih iz jednog podatka, a da se pritom ne izgubi semantičko jedinstvo tih podataka i odnos između njih (između podataka).

Redundantnost podataka- Ovo je stanje baze podataka u kojoj postoje dodatni podaci u tablicama.

Integritet podataka može biti ugrožen kao rezultat operacija izmjene podataka. Ako su operacije brisanja i ažuriranja zabranjene u bazi podataka, tada se integritet može narušiti samo kao rezultat operacije dodavanja, kao i pogrešno napisane skripte za prikaz podataka.

1.1. Vrste tablica

Idemo malo dublje u malu klasifikaciju tablica prema vrstama njihove strukture. Podijelite stolove na dva opći pogled. Prva vrsta će biti tablice pretraživanja, a druga će biti tablice veza.

Slika 1. Imenici i paketi

Podaci u tablicama mogu se podijeliti u dvije vrste. Informacije koje opisuju objekte (subjekte), odnose i informacije koje opisuju radnje, procese, događaje itd.

Priručnici sadrže informacije o objektima i subjektima, odnosima. Veze sadrže informacije o radnjama, procesima, događajima itd.

Veze pohranjuju podatke preuzete iz preglednih tablica. Budući da je neisplativo ponavljati iste podatke pri opisivanju objekata (subjekata) i pri opisu njihove interakcije, podaci o objektima (subjektima) unose se u priručnike, a podaci o objektima (subjektima) se ne pohranjuju u povezne tablice u čistom obliku, ali samo veze na njih (strani ključ). Dakle, veze pohranjuju podatke o interakciji objekata (subjekata) i poveznice na same objekte (subjekata) (strani ključ). Ove "veze" su primarni ključevi u tablicama pretraživanja. Ali više o tome kasnije...

Razlika između referentne knjige i poveznice je u tome što tablice pretraživanja mogu biti neovisne i neovisne (to jest, kada čitate podatke nekih direktorija, općenito možete razumjeti semantiku), a tablice poveznica gotovo nikad.

Priručnici se mogu podijeliti u nekoliko vrsta. To su statički, statičko-dinamički i dinamički imenici. Naravno, teško je imenovati apsolutno statičnu referentnu knjigu, jer se sve na ovom svijetu može promijeniti. Ili gotovo sve.

Statički imenik– imenik, podaci o objektima, subjektima, poveznicama u kojima se ili nikada ne mijenjaju nakon početne izmjene, ili su tako rijetko modificirani da se mogu zanemariti.

Primjer takvih imenika je popis mjeseci s imenima i brojevima, popis dana u tjednu, popis godišnjih doba, popis oceana i tako dalje ...

Tablica 1. Primjer statičkih imenika

– imenik, koji pohranjuje podatke o poveznicama, ako su veze referentne prirode. Takav imenik može sadržavati strane ključeve.

Najviše dobar primjer bit će tablica s medicinskim podacima kao što je težina. Popis osoba kojima se mjeri težina ne mijenja se tako često. No, podaci o njihovoj težini mogu se mijenjati svaki dan. Statičko-dinamički imenici jedini su imenici u kojima možete svjesno ponavljati bilo koju informaciju. Drugi primjer bi bio vodič za plaću po poziciji (po šifri pozicije).

Tablica 2. Primjer statičko-dinamičkih imenika

Dinamički imenici- to su tablice, podaci o objektima, subjektima, odnosima u kojima se često mijenjaju i koriste se u drugim tablicama. Od statičkih imenika razlikuju se samo po učestalosti izmjene podataka u njima.

Primjer takvih tablica bili bi popisi projekata. Naime, podaci o otvaranju ili zatvaranju projekata mogu se nalaziti u samom imeniku projekta, što je u većini slučajeva netočno i narušava integritet. S druge strane, ako pohranite povijest promjena za otvaranje i zatvaranje (suspendiranje) projekata, možete dobiti redundantnost podataka. Integritet podataka i redundantnost dugo će se boriti jedno protiv drugog, baš kao zimi i ljeto.

Tablica 3. Primjer dinamičkih imenika


Slika 2. Vrste imenika

Tablice veza mogu se podijeliti u dvije vrste.

Ovaj priručnik(odmah ćemo pojasniti da referenca-link nije referenca, već je tako imenovana jer u njoj postoje polja koja čine referencu, ali se ne mogu odabrati u referenci). Tablica koja pohranjuje strane ključeve, podatke koji nisu referenca i polja koja sadrže podatke koji čine pretragu, ali se ne mogu odvojiti u zasebnu tablicu pretraživanja.

Primjer referentne veze bit će tablica platnih transakcija. Ili tablicu s podacima o nogometnoj utakmici.

Tablica 4. Primjer reference veze

I paket(da, samo hrpa). Ovo je tablica koja pohranjuje samo strane ključeve i podatke koji se ne mogu klasificirati kao reference, kao što su datum ili vrijednosti logičkih polja.

Primjer veze bit će automatska tablica zapisivanja terminala za obradu podataka.
Usput, lako je pretpostaviti da se ligamenti gotovo nikad ne koriste, jer najčešće postoje podaci koji se mogu upisati u bazu podataka, ali nisu sadržani u imenicima, pa ih je nemoguće uskladiti sa stranim ključem.


Tablica 5. Primjer vezanja

Potrebno je objasniti koja su polja koja čine lookup, ali se ne mogu odvojiti u zasebnu tablicu pretraživanja. Primjer takvih polja su polja "komentar", "pritužba", "opis", "prijedlog". Jednom riječju, da damo popularan primjer, onda polje "poruka" u tablici baze podataka bilo koje društvene mreže ...


Slika 3. Vrste ligamenata

2. Generalizacija klasifikacije

2.1. Klasifikacija u tabličnom obliku

Prikaz tablice Opis Primjeri Prednosti (+) minus (-)
Statički imenik Stol. Podaci iz njega uzimaju se za druge tablice. Iz imenika u drugim tablicama možete koristiti samo primarni ključ. Statički imenik trebao bi sadržavati informacije koje se ili uopće ne mijenjaju ili se mijenjaju tako rijetko da se mogu zanemariti. Statički imenik se poziva (strani ključ) kada trebate dobiti nazive, oznake, norme, kvantitativne ili kvalitativne pokazatelje. Ostalo. Imenik (imena i brojevi) mjeseci.
Referentna knjiga skladišta i trgovina poduzeća.
Priručnik pravila igre.
Ponekad zamjenjuje funkcije sustava DBMS vam omogućuje fleksibilniji rad s nekim podacima. Ako se rijetko mijenjane informacije mijenjaju, to upozorava na ozbiljne posljedice. Korištenje tablice s bilo kojom strukturom može usporiti stvari ako tablica zamijeni pohranu sustava.
moram napisati dodatne funkcije i obrada za danu tablicu koja nije uvijek pravilno optimizirana. U nekim slučajevima nije moguće optimizirati.
Statičko-dinamički imenik Stol. Podaci iz njega uzimaju se za druge tablice. Ne možete koristiti strani ključ ovog imenika iz imenika u drugim tablicama, ali možete koristiti primarni ključ. Priručnik o plaćama po pozicijama. Imenik (veličine cipela, težina, visina, veličina glave) fizioloških parametara. Imenik (menadžeri, tvrtke) koji sadrži tvrtke i menadžere kojima te tvrtke služe i za koje se obračunavaju. Direktorij odvojen od direktorija veza ne ide nikamo i nema nikakvu relacijsku vezu koja bi mu omogućila da se pretvori u statički ili dinamički direktorij. To znači da je uvijek suvišno.
Dinamički imenik Stol. Podaci iz njega često se uzimaju za druge tablice. Iz imenika u drugim tablicama možete koristiti samo primarni ključ. Dinamički imenik trebao bi sadržavati informacije koje se često mijenjaju. Imenik klijenata. Imenik dobavljača. Imenik izvođača radova. Imenik menadžera poduzeća. Imenik radnika. Priručnik učenika. Omogućuje vam pohranjivanje dinamičkih podataka, a istovremeno omogućuje jedinstveno upućivanje na njih. Najčešće, vrsta pohrane nije djeljiva, što stvara određenu redundanciju.
Priručnik Stol. Podaci iz njega ne mogu biti sadržani u drugim tablicama, ali se na temelju njih mogu kreirati podaci u drugim tablicama. Platne transakcije. Prodajni. Međufaktorski pokreti. Raspored prijevoza. Omogućuje fleksibilnu normalizaciju prema shemi "Reference-link" = "Link" + "Static-dynamic reference". Referentna veza nakon normalizacije pretvara se u vezu i redundantnost podataka smanjuje na minimum bez utjecaja na integritet, međutim, nije djeljiva i ne može se optimizirati prilikom arhiviranja u trenutnoj tablici.
Paket Stol. Podaci iz njega ne mogu biti sadržani u drugim tablicama, ali se na temelju njih mogu kreirati podaci u drugim tablicama. Tablica ne može sadržavati tuple čije su vrijednosti atributa nedjeljive i nisu jedinstvene. Automatski zapis grešaka u programu. Dnevnik zahtjeva poslužitelja. pratiti rezultate. Izvješća o istovaru i utovaru komponenti. Automatska sigurnosna izvješća. Uvezivanje minimizira redundantnost podataka bez utjecaja na integritet. Akumulirajući, je nedjeljiva tablica. Teško je optimizirati.

Tablica 6. Klasifikacija

2.2. Klasifikacija u shematskom obliku



Slika 4. Klasifikacijska shema za tablice u relacijskim bazama podataka na temelju integriteta podataka i redundancije

3. Neki komentari na primjenu klasifikacije

3.1. Primjena klasifikacije pri normalizaciji tablica

Proces normalizacije, ako ne uzmete u obzir neke faze (Ali uzmite u obzir rezultate tih faza!) je uobičajeno "cijepanje" tablica na manje tablice uz stvaranje relacijskog odnosa između njih izravno ili putem međusobne tablice (odnos mnogo-prema-više). Relacijski odnos ne mora uvijek značiti relacijski odnos!

Transformacija dinamičkog ili statičkog direktorija u statički-dinamički direktorij, i link-reference u vezu, kao i statičko-dinamičke reference u vezu-referencu, nije ništa drugo do dijeljenje tablica. Odnosno, transformacija jedne vrste tablice u drugu kroz gore prikazanu klasifikaciju kako bi se izbjegla redundantnost podataka - tako se može definirati normalizacija (jedna od opcija definicije).

Na primjer. Neka postoji baza podataka u kojoj je jedina operacija izmjene podataka dodavanje. U ovom slučaju, postaje neučinkovit svaki put kada promijenite bilo koji pojedinačni atribut entiteta, "kopirajte" preostale vrijednosti atributa u drugu torbu. U ovom slučaju se koristi NULL ili stvaranje statičko-dinamičkog direktorija, koji opisuje niz atributa iste semantike ili jedan atribut, a samo se strani ključ s primarnim ključem niza duplicira. Ista metoda može se koristiti u tradicionalnoj shemi izmjene podataka s ažuriranjem i brisanjem podataka.

Zaključak

Ovu klasifikaciju sam kreirao na temelju zapažanja u dizajnu baza podataka, kao i na temelju teorije koju sam pročitao o projektiranju u relacijskom DBMS-u. Mojim prijateljima i poznanicima koji proučavaju disciplinu "baze podataka" i bave se dizajnom baza podataka, a meni je ova klasifikacija prilično ozbiljno pojednostavila "život" i omogućila u mnogim situacijama unaprijed odabrati najprikladniju i, kako se ispostavilo, kasnije, prava vrsta tablice za pohranjivanje određenih podataka u njega.

Klasifikacija se može proširiti podjelom postojeće vrste u njemu u podvrste (možda čak i dodavanjem novih vrsta). Također, ova je klasifikacija pokazala da je u nekim situacijama bolje ne koristiti jednu ili drugu vrstu tablice. Neke vrste tablica iz ove klasifikacije bolje je koristiti rjeđe (dinamički imenici). I pokušajte neke zamijeniti drugima (referentne veze za poveznice).

Nadam se da će ova klasifikacija još nekome pomoći pri savladavanju discipline "Baze podataka" i pri projektiranju baza podataka u relacijskom DBMS-u.

Prije stvaranja s pomoć od Microsofta Pristupni stolovi, obrasce i druge objekte koji čine bazu podataka, vrijeme se mora potrošiti na korake dizajna baze podataka.

Glavne faze dizajna baze podataka su:

Određivanje svrhe izrade baze podataka;

definicija tablica koje baza podataka treba sadržavati;

Definicija obaveznih polja u tablici;

definicija polja sa jedinstvene vrijednosti u svakom unosu;

Određivanje odnosa između tablica.

Određivanje svrhe izrade baze podataka

Prvi korak u dizajnu baze podataka je odrediti svrhu baze podataka, kako će se koristiti i koje informacije treba sadržavati. Znajući to, možete odrediti koje će informacije biti pohranjene u tablicama i u poljima tablica. Baza podataka mora zadovoljiti zahtjeve onih koji će s njom izravno raditi. Da biste to učinili, morate odrediti teme koje bi baza podataka trebala pokrivati, izvješća koja bi trebala izdavati, analizirati dokumente koji trenutno koristi se za snimanje podataka, usporedbu baza koja se stvara podataka s dobro osmišljenom bazom podataka kao što je ona. Svrha ove baze podataka je dobiti što više podataka o klijentu, odnosno prezime, ime, patronime, adresu, broj telefona, kao i uslugu koju je potrebno obaviti za ovog klijenta.

Određivanje tablica koje baza podataka treba sadržavati

Određivanje potrebnih tablica u bazi podataka može biti najteži korak u procesu dizajna baze podataka, jer rezultati koje baza treba proizvesti – izvješća, obrasci i tako dalje. -- ne daju uvijek potpunu sliku strukture tablica na kojima su kreirane. Ne morate koristiti Microsoft Access za dizajn tablica. Najbolje je prvo razviti strukturu na papiru. Prilikom izrade tablica preporuča se voditi se sljedećim osnovnim načelima: 1) Informacije se ne smiju umnožavati u tablici ili između tablica. S tim u vezi, tablice u relacijske baze podataka podaci se razlikuju od tablica u aplikacijama koje rade s tablicama u tekstualni format kao što su urednici proračunske tablice. Podaci pohranjeni u samo jednoj tablici ažuriraju se samo u toj tablici. To je učinkovitije i također eliminira mogućnost dupliranja zapisa koji sadrže različite informacije. Na primjer, adresa i telefonski broj svakog klijenta moraju biti pohranjeni samo jednom, u jednoj tablici.2) Svaka tablica treba sadržavati informacije samo o jednoj temi. Kada svaka tablica sadrži informacije samo o jednoj temi, možete raditi s informacijama o svakoj temi neovisno o drugim temama. Na primjer, adresa kupca se čuva odvojeno od narudžbi tog kupca, što vam omogućuje brisanje jednog zahtjeva uz zadržavanje podataka o kupcu. Ova baza podataka sadrži sedam tablica: stambena organizacija, stambena zgrada, stan, stanovnici, podaci o stanarima, usluga, podaci o izvršenoj usluzi.

Određivanje potrebnih polja u tablici

Svaka tablica sadrži informacije o određenoj temi, a svako polje u tablici sadrži određenu činjenicu o temi tablice. Na primjer, tablica "Stanovnici" sadrži polja prezime, ime, patronim, a specifična činjenica je specijalna osoba, na primjer, Ivanov Ivan Ivanovič.

Prilikom sastavljanja polja za svaku tablicu treba uzeti u obzir sljedeća osnovna načela:

· Svako polje mora biti povezano s temom tablice;

Tablica mora sadržavati sve potrebne informacije;

· Podatke treba raščlaniti na najmanje logičke jedinice.

Definiranje polja s jedinstvenim vrijednostima u svakom zapisu

Za povezivanje u Microsoft Accessu na informacije pohranjene u različite tablice- na primjer, za povezivanje službenika za putovnice sa svim njezinim klijentima - svaka tablica baze podataka mora sadržavati polja ili skup polja koja jedinstveno identificiraju svaki unos. Takvo polje ili skup polja naziva se primarni ključ. Na primjer, tablica "Stambena zgrada" povezana je s tablicom "Stambena zgrada" odnosom jedan prema više, stoga tablica "Stambena zgrada" ima sekundarni ključ "Organizacijski broj" i primarni ključ "Kućni broj". ".

Definiranje odnosa između tablica

Nakon što podijelite informacije u tablice i identificirate ključna polja, morate odabrati kako će Microsoft Access rekombinirati povezane informacije. Da biste to učinili, morate definirati odnose između tablica baze podataka. Microsoftovi podaci pristup. Postoje veze: jedan-prema-više, mnogo-prema-više (rjeđe se koristi).

Ovo poglavlje bavi se tablicom podataka koja stvara niz kao rezultat funkcije stol(ova funkcija se ne može ručno unijeti u ćelije). Podatkovna tablica brz je i jednostavan način za izvođenje analize što-ako za složene, međusobno povezane izračune temeljene na formuli. Ova vam značajka omogućuje promjenu jednog ili dva unosa formule i prikaz rezultata. Poglavlja i već su dali primjere tablica podataka koje su korištene zajedno s funkcijama baze podataka.

Preuzmite bilješku u ili formatu, primjere u formatu

Analiza "što ako" na temelju jedne tablice varijabli

Na sl. 21.1 u ćeliji B6 koristi se funkcija PMT, koja neizravno ovisi o vrijednosti ćelije B2. Ako promijenite godišnju stopu, funkcija PMT ažurirat će vrijednost u ćeliji B6. Cilj je istovremeno vidjeti kako će se mijenjati mjesečna uplata po pet različitih godišnjih stopa. Iako se to može učiniti pisanjem formule, funkcija tablice može biti korisna iz dva razloga:

  • Tablice s podacima su brže od rješenja temeljenih na drugim formulama.
  • Tablice s podacima jednostavnije su za korištenje, a vrijeme izrade formule je smanjeno.

Za izradu tablice podataka:

  1. Napravite naslove A9:B9. U ćeliju B10 unesite formulu =B6. U ćelije A11:A15 unesite godišnju stopu za analizu. Označite raspon A10:B15.
  2. Prođite kroz izbornik PODACI –> Što ako analiza –> tablica podataka za otvaranje dijaloga tablica podataka, ili pritiskom i držanjem Alt tipka, pritisnite Y, E, T uzastopno (nakon pritiska Alt, savjeti će se pojaviti u izborniku).
  3. Budući da analizirate učinak godišnje stope, navedite vezu do nje u polju Zamijenite vrijednost po retku u(slika 21.2). Ti govoris tablica podataka, zamijenite vrijednost iz ćelije B2 u procesu izračuna PMT i umjesto toga zamijenite vrijednosti iz raspona A11:A15 u formulu.
  4. Kliknite OK.

Riža. 21.2. Dijaloški prozor tablica podataka

Ako odaberete raspon B11:B15 i pogledate u traku formule, vidjet ćete tablicu formule polja s referencom na ćeliju B2. U funkciju tablice nije moguće unijeti s tipkovnice; automatski se kreira kada se koristi dijaloški okvir tablica podataka.

Riža. 21.3. Funkcija Tablica može se unijeti samo pomoću dijaloškog okvira tablica podataka

Na sl. 21.4 ćelije u rasponu E3:I3 sadrže različite formule koje se izravno ili neizravno odnose na broj prodanih komada (u ćeliji B3). Korištenje List s podacima možete izvesti što-ako analizu za pet formula. Štoviše, svi se temelje na istoj varijabli koja se nalazi u rasponu D4:D12.

Riža. 21.4. Jedna varijabla tablice podataka može raditi na nekoliko formula; za povećanje slike kliknite na nju desni klik miša i odaberite Otvorite sliku u novoj kartici

Dvije varijable u podatkovnoj tablici

U sljedećem primjeru zadatak je pronaći minimalnu vrijednost po dva kriterija. Za to se koristi tablica podataka na temelju dvije varijable (slika 21.5). Stavite formulu s lijeve strane gornji kut tablice podataka(u našem primjeru, u ćeliji F8) i unesite configure u dijaloški okvir tablica podataka, kao što je prikazano na sl. 21.5.

Riža. 21.5. tablica podataka s dvije varijable

Već ste vidjeli drugi primjer (slika 21.6) u . Koristio je formulu niza. Na primjer, u ćeliji F9: =INDEX($C$2:$C$15;MACH($E9&F$8;$A$2:$A$15&$B$2:$B$15;0)). Na temelju rješenja tablice podataka lakše i brže.

Riža. 21.6. Korištenje tablice podataka, kao alternativa VLOOKUP-u u dva parametra

Još jedna završna napomena o tablice podataka: postoji postavka koja vam omogućuje da onemogućite automatsko ažuriranje tablice podataka, dok će se ostale formule automatski preračunavati. Ako vaša datoteka "uspori", prođite kroz izbornik DATOTEKA –> Parametri, idite na karticu Formule i odaberite opciju automatski, osim tablica podataka(slika 21.7). Kada želite ažurirati izračune u tablica podataka, pritisnite F9.

Riža. 21.7. Onemogućavanje automatskog izračuna tablice podataka

Ovaj članak sadrži upute za dizajniranje baze podataka. Korisnik će naučiti kako odlučiti koje su informacije potrebne, kako organizirati podatke u tablice i stupce i kako su tablice povezane. Prije nego što izradite bazu podataka ili počnete raditi s ozbiljnim bazama podataka, trebali biste pročitati ovaj članak.

U ovom članku

Terminologija baze podataka

U Microsoft ured Access 2007 organizira podatke u tablice- zbirke redaka i stupaca, slične papirima računovođe ili Microsoftovoj knjizi Office Excel 2007. jednostavna baza podaci se mogu sastojati od samo jedne tablice. Većina baza podataka uključuje više tablica. Na primjer, jedna tablica može pohraniti informacije o proizvodu, druga tablica može pohraniti podatke o narudžbi, a treća tablica može pohraniti podatke o klijentima.

Svaki red se također naziva snimiti, a svaki stupac ili tip elementa također se naziva polje. Zapisi vam omogućuju kombiniranje podataka. Polja su zasebni elementi podataka - vrste elemenata za svaki redak. Na primjer, u tablici Proizvodi svaki redak ili zapis sadrži informacije o jednom proizvodu. Svaki stupac ili polje pohranjuje određene podatke o proizvodu, kao što su naziv ili cijena.

Ispravna struktura baze podataka

Određeni principi su temelj procesa stvaranja baze podataka. Prvi princip je eliminirati duple (ili suvišne) podatke, jer zauzimaju prostor i povećavaju vjerojatnost pogrešaka i kvarova. Drugi princip se tiče važna uloga točne i potpune podatke. Ako baza podataka sadrži netočne podatke, sva izvješća koja kombiniraju podatke također će sadržavati netočne informacije. To može dovesti do usvajanja pogrešne odluke na temelju izvješća.

Ispravna struktura baza podataka znači:

  • raspodjela podataka u tematske tablice kako bi se smanjila količina podataka koji se ponavljaju;
  • dodavanje u Access podataka potrebnih za kombiniranje informacija koje se nalaze u tablicama;
  • sposobnost održavanja i praćenja točnosti i integriteta podataka;
  • usklađenost sa zahtjevima obrade podataka i izvješćivanja.

Razvojni proces

Proces razvoja baze podataka uključuje sljedeće korake.

  • Određivanje svrhe izrade baze podataka

To vam omogućuje da se pripremite za sljedeće korake.

  • Pronalaženje i organiziranje podataka koji su vam potrebni

Treba prikupiti sve podatke koje je potrebno pohraniti u bazu podataka, kao što su nazivi proizvoda i brojevi narudžbi.

  • Distribucija podataka po tablicama

Organizirajte stavke podataka u grupe ili teme, kao što su "Proizvodi" ili "Narudžbe". Za svaku temu će se izraditi tablica.

  • Pretvaranje stavki podataka u stupce

Odredite koje podatke želite pohraniti u svaku tablicu. Svaki element podataka bit će upisan u zasebno polje i postat će stupac tablice. Na primjer, tablica Zaposlenici može sadržavati polja kao što su prezime i datum zapošljavanja.

  • Postavljanje primarnih ključeva

Odaberite primarne ključeve tablica. Primarni ključ je stupac za jedinstvenu identifikaciju svakog zapisa, kao što je kod proizvoda ili narudžbe.

  • Stvaranje odnosa između tablica

Analizirajte sve tablice i odredite kako su podaci u jednoj tablici povezani s podacima u drugim tablicama. Dodajte polja u tablice ili stvorite nove tablice kako biste stvorili potrebne odnose.

  • Poboljšanje strukture

Provjerite ima li grešaka u strukturi baze podataka. Napravite tablice i dodajte neke uzorke unosa podataka. Analizirajte rezultate. Napravite potrebne promjene u strukturi.

  • Primjena pravila normalizacije

Primijenite pravila normalizacije kako biste provjerili jesu li tablice ispravno strukturirane. Napravite potrebne izmjene u tablicama.

Određivanje svrhe izrade baze podataka

Preporučljivo je na papiru zapisati svrhu izrade baze podataka: zadatke, namjene i popis korisnika. Za malu bazu podataka za rad od kuće možete definirati sljedeće jednostavan cilj: "Baza podataka kupaca sadrži informacije o kupcima i koristi se za slanje poruka E-mail i izvješća." Prilikom izrade složenije baze podataka za veliki broj korisnika, kao što je u organizaciji, opis cilja može se sastojati od nekoliko paragrafa; potrebno je naznačiti vrijeme i načine korištenja baze podataka raznih korisnika. Glavni zadatak je napraviti Detaljan opis svrha izrade baze podataka je da se na nju može referirati tijekom procesa projektiranja. Prisutnost opisa omogućuje praćenje postavljenih ciljeva u procesu donošenja odluka.

Pronalaženje i organiziranje podataka koji su vam potrebni

Proces pronalaženja i organiziranja potrebnih podataka treba započeti bilježenjem dostupnih informacija. Na primjer, možete zabilježiti narudžbe iz glavne knjige ili pohraniti podatke o klijentima iz ormarića za datoteke. Skupite se Potrebni dokumenti i napravite popis tipova podataka (na primjer, popis polja u obrascu). Ako se obrasci ne koriste, zamislite da trebate izraditi obrazac za bilježenje podataka o klijentima. Koje podatke treba zabilježiti? Koja polja za popunjavanje treba stvoriti? Odrediti potrebnih elemenata i napravite njihov popis. Pretpostavimo da su podaci o klijentima pohranjeni u ormariću za dokumente. Analiza kartica omogućuje vam da utvrdite da sadrže informacije kao što su ime, adresa, grad, država, poštanski broj i telefonski broj kupca. Svaki od ovih elemenata može postati stupac tablice.

Prilikom pripreme liste nije potrebno težiti tome da joj prvi put damo gotov izgled. Sve treba zabilježiti moguće opcije. Ako je baza podataka namijenjena za više korisnika, zamolite ih da predlože svoje opcije. Popis se može naknadno ispraviti.

Zatim morate odrediti vrste izvješća ili e-pošte koje želite pokrenuti iz baze podataka. Na primjer, možda biste željeli pokrenuti izvješće o prodaji proizvoda po regiji ili sažeto izvješće o inventuri proizvoda. Možda ćete htjeti izraditi pisma upućena kupcima koja sadrže informacije o prodaji ili posebne ponude. Razmislite o strukturi izvješća, definirajte je izgled. Koje podatke trebate uključiti u izvješće? Napravite popis informacija koje su vam potrebne. Slijedite iste korake za e-poštu i druga izvješća.

Određivanje strukture izvješća i mailinga omogućuje vam da identificirate elemente koje želite uključiti u bazu podataka. Recimo da želite korisnicima dati mogućnost pretplate ili odjave s redovnog newslettera, te mogućnost ispisa popisa pretplatnika. Da biste ove podatke zabilježili u tablici kupaca, dodajte stupac za slanje poruka e-pošte. Možete odabrati Da ili Ne za svakog klijenta u ovom polju.

Za slanje e-mail poruka kupcima morate zabilježiti još jednu stavku podataka. Ako kupac pristane primati poruke e-pošte, morat ćete zabilježiti njegovu adresu e-pošte. Stoga ćete morati pohraniti adresu e-pošte za svakog klijenta.

Prikladno je izraditi prototip svakog izvješća ili popisa kupaca za ispis i odrediti koji će elementi podataka biti potrebni za njihovo stvaranje. Na primjer, analiza pisma otkriva nekoliko elemenata. Ako u pismu želite uključiti pozdrav - na primjer, redak "g." ili "Gospođa" - morate stvoriti odgovarajući element. Osim toga, pismo obično počinje standardnom frazom "Poštovani gospodine Egorov", a ne "Dragi gospodine Vladimir Egorov". Stoga se prezime mora čuvati odvojeno od imena.

Važno je zapamtiti da se podaci moraju podijeliti minimalni elementi. Ime treba podijeliti na dva dijela: ime i prezime, kako bi prezime bilo dostupno za korištenje. Na primjer, da biste izvješće sortirali po prezimenima, morate ih spremiti u zasebna polja. Općenito, ako želite sortirati, pretraživati, izračunavati ili izvješćivati ​​o pojedinačnim stavkama podataka, trebali biste te stavke pohraniti u zasebna polja.

Napravite popis pitanja na koja želite dobiti odgovor koristeći bazu podataka. Na primjer, koliki je bio obujam prodaje pojedinog proizvoda u zadnjem mjesecu? Gdje se nalaze najperspektivniji klijenti? Tko isporučuje najprodavaniji proizvod? Popis moguća pitanja omogućuje vam definiranje dodatnih stavki podataka za snimanje.

Nakon prikupljanja podataka, možete nastaviti na sljedeći korak.

Distribucija podataka po tablicama

Da biste organizirali podatke u tablice, označite glavne grupe ili teme. Na primjer, nakon pretraživanja i organiziranja podataka za bazu podataka o prodaji proizvoda, može se generirati sljedeći popis:

Glavne grupe su proizvodi, dobavljači, kupci i narudžbe. Stoga je logično izraditi četiri tablice: po jednu za informacije o proizvodu, dobavljaču, kupcu i narudžbi. Iako ovaj popis nije konačan, možete početi s ovim osnovnim tablicama. Popis se može dopunjavati dok se ne primi željenu strukturu Baza podataka.

Kada prvi put pogledate preliminarni popis elemenata, mogli biste pomisliti da ima smisla staviti sve elemente u jednu tablicu umjesto stvaranja četiri tablice kao što je prikazano u prethodnom primjeru. Ovaj odjeljak objašnjava zašto je ovaj pristup neučinkovit. Pogledajte tablicu na ilustraciji.

U ovaj slučaj svaki red sadrži podatke o proizvodima i dobavljačima. Budući da jedan dobavljač opskrbljuje razni proizvodi, potrebno je ponovno unijeti njegovo ime i adresu. U tom se slučaju prostor na disku koristi neučinkovito. Pametnije rješenje je pohraniti podatke o dobavljačima u zasebnu tablicu dobavljača i povezati tu tablicu s tablicom proizvoda.

Drugi problem kod takve strukture baze podataka nastaje kada je potrebno promijeniti podatke o dobavljaču. Recimo da želite promijeniti adresu dobavljača. Budući da su podaci dobavljača sadržani u velikom broju redaka, korisnik može neke od njih preskočiti. Ovaj se problem također može riješiti zadržavanjem adrese dobavljača na jednom mjestu.

Prilikom dizajniranja baze podataka, trebali biste nastojati pohraniti svaki element podataka jednom. Ako se podaci ponavljaju (na primjer, adresa određenog dobavljača), stavite ih u zasebnu tablicu.

Konačno, pretpostavimo da Coho Winery isporučuje samo jedan proizvod i želi ga izbrisati, ali zadržati ime i adresu dobavljača. Kako mogu izbrisati zapis o proizvodu, a da zadržim podatke o dobavljaču? To je nemoguće. Budući da svaki redak sadrži podatke o proizvodu, kao i podatke o dobavljačima, nije moguće brisati te podatke odvojeno jedan od drugog. Da biste odvojili ove podatke, trebate izraditi dvije tablice, jednu za informacije o proizvodu i jednu za informacije o dobavljačima. U tom slučaju, brisanjem zapisa o proizvodu neće se izbrisati podaci dobavljača.

Nakon što odaberete temu za tablicu, morate biti sigurni da stupci u toj tablici sadrže samo podatke o toj temi. Na primjer, tablica proizvoda treba sadržavati samo informacije o proizvodima. Budući da je adresa dobavljača povezana s podacima dobavljača, a ne podacima o proizvodu, mora biti pohranjena u tablici dobavljača.

Pretvaranje stavki podataka u stupce

Da biste definirali stupce tablice, morate odlučiti koje informacije želite pratiti za tablicu. Na primjer, u tablici kupaca možete uključiti stupce Ime, Adresa, Grad/Pokrajina/Poštanski broj, Slanje e-pošte, Naslov i Adresa e-pošte. Svi retki sadrže isti skup stupaca, tako da možete pohraniti odgovarajuće informacije za svaki redak. Na primjer, stupac Adresa sadrži adrese kupaca. Svaki unos sadrži podatke samo o jednom kupcu, a polje adrese sadrži adresu tog kupca.

Početni skup stupaca za svaku tablicu može se dopuniti novim stupcima. Na primjer, zgodno je pohraniti ime i prezime kupca u zasebne stupce kako bi se olakšalo sortiranje, pretraživanje i stvaranje indeksa. Adresa se također sastoji od nekoliko komponenti: adrese, grada, države, poštanskog broja i zemlje, koje je najbolje pohraniti u zasebne stupce. Na primjer, ako želite pretraživati, filtrirati ili sortirati po opsegu, informacije o opsegu morate pohraniti u poseban stupac.

Također treba odrediti koji će se podaci pohranjivati ​​u bazi podataka: na nacionalnoj ili međunarodnoj razini. Na primjer, ako namjeravate pohraniti međunarodne adrese u svoju bazu podataka, bolje je koristiti stupac "Regija" umjesto "Zemlja" jer ovaj stupac možete koristiti za označavanje područja unutar svoje zemlje i regija drugih zemalja. Na isti način možete pohraniti u polje Poštanski broj poštanski brojevi različite zemlje.

Popis u nastavku sadrži nekoliko savjeta za stvaranje stupaca.

  • Nemojte uključivati ​​izračunate podatke u tablicu

Rezultate izračuna ne treba pohranjivati ​​u tablice. Umjesto toga, možete izvršiti izračune u Accessu kad god trebate dobiti rezultat. Pretpostavimo da izvješće Naručeni proizvodi prikazuje međuzbrojeve za naručene proizvode u svakoj kategoriji. Međutim, tablica ne sadrži stupac za međuzbrojeve. Umjesto toga, tablica uključuje stupac za naručene proizvode koji pohranjuje količinu svakog proizvoda. S ovima Pristup podacima izračunava međuzbrojeve svaki put kada se izvješće ispisuje. Sami međuzbrojevi nisu pohranjeni u tablici.

  • Rastavite informacije na minimalne logičke komponente

Možda bi se činilo bolje stvoriti pojedinačna polja za pohranu punih naziva ili naziva proizvoda zajedno s njihovim opisima. Međutim, kombiniranje različitih podataka u jednom polju otežava njihovo daljnje izdvajanje. Informaciju treba rastaviti na logičke komponente. Na primjer, možete stvoriti zasebna polja za ime i prezime ili za naslov, kategoriju i opis proizvoda.

Nakon što izradite stupce u tablicama, možete odabrati primarni ključ za svaku tablicu.

Postavljanje primarnih ključeva

Svaka tablica mora sadržavati stupac ili skup stupaca za jedinstvenu identifikaciju svakog reda tablice. U pravilu, za tu svrhu, jedinstven identifikacijski broj, kao što je šifra zaposlenika ili serijski broj. U bazi podataka se ta informacija zove glavni ključ tablice. U Accessu se primarni ključevi koriste za brzo povezivanje podataka iz više tablica i njihovo prikazivanje korisniku.

Ako tablica ima jedinstveni identifikator, kao što je broj proizvoda, koji jedinstveno identificira svaki proizvod u katalogu, može se koristiti kao primarni ključ tablice, ali vrijednosti u ovom stupcu moraju biti različite za sve zapise. Primarni ključ ne smije sadržavati duplicirane vrijednosti. Na primjer, imena ljudi ne bi se trebala koristiti kao primarni ključ jer nisu jedinstvena. U istoj tablici mogu postojati dva zapisa s istim imenom.

Primarni ključ uvijek mora imati vrijednost. Ako stupac dopušta nedodijeljenu vrijednost ili vrijednost koja nedostaje, ne bi se trebao koristiti kao komponenta primarnog ključa.

Vrijednost primarnog ključa se ne smije mijenjati. U bazi podataka s više tablica, primarni ključ jedne tablice može se koristiti kao referenca u drugim tablicama. Ako se primarni ključ promijeni, promjena se mora primijeniti na sve reference na taj ključ. Korištenje primarnog ključa s konstantnom vrijednošću smanjuje mogućnost nesinhronizacije s drugim tablicama.

Često se kao primarni ključ koristi proizvoljan jedinstveni ključ. brojčana vrijednost. Na primjer, svakoj narudžbi može se dodijeliti jedinstveni broj za jedinstvenu identifikaciju narudžbe. Ovaj broj se ne može promijeniti.

Ako ne možete odabrati stupac ili skup stupaca koji će se koristiti kao primarni ključ, možete koristiti stupac s tipom podataka "Broj". Kada koristite takav stupac, Access automatski dodjeljuje vrijednosti. Takav kod ne sadrži informacije; ne sadrži opis niza koji predstavlja. Prazni kodovi idealni su za korištenje kao primarni ključ jer se ne mijenjaju. Primarni ključ koji sadrži stvarne podatke o retku, kao što je telefonski broj ili ime korisnika, podložniji je promjenama jer se stvarne informacije mogu promijeniti.

Stupac s tipom podataka "Counter" je prikladan primarni ključ. Šifre proizvoda se nikad ne podudaraju.

U nekim slučajevima potrebno je koristiti dva ili više polja kao primarni ključ tablice. Na primjer, za tablicu pojedinosti narudžbe koja pohranjuje stavke retka za narudžbe, možete koristiti dva stupca u primarnom ključu: ID narudžbe i ID proizvoda. Primarni ključ s više stupaca naziva se složeni ključ.

U bazi podataka prodaje možete stvoriti stupac brojača za primarni ključ svih tablica: ItemID za tablicu proizvoda, OrderID za tablicu narudžbi, CustomerID za tablicu kupaca i SupplierID za tablicu dobavljača.

Stvaranje odnosa između tablica

Nakon što se podaci rasporede po tablicama, morate ih moći spojiti. Na primjer, sljedeći obrazac uključuje informacije iz više tablica.

Ovaj obrazac sadrži podatke iz tablice kupaca,

Zaposlenici

narudžbe,

Proizvodi

i informacije o narudžbi.

Access je sustav upravljanja relacijskim bazama podataka. U relacijskoj bazi podataka informacije su organizirane u zasebne, tematski organizirane tablice. Relacije između tablica koriste se za spajanje podataka.

Stvaranje odnosa jedan-prema-više

Smatrati sljedeći primjer: Baza podataka narudžbi proizvoda sadrži tablice dobavljača i proizvoda. Dobavljač može isporučiti bilo koji broj proizvoda. Stoga, za svakog dobavljača iz tablice dobavljača, tablica proizvoda može sadržavati veliki broj proizvodi. Stoga je odnos između tablice dobavljača i tablice proizvoda odnos jedan prema više.

Da biste stvorili odnos jedan-prema-više u strukturi baze podataka, dodajte primarni ključ na "jedan" strani tablice strani "više" kao dodatni stupac. U ovaj primjer morate dodati stupac koda dobavljača iz tablice dobavljača u tablicu proizvoda. Access zatim može koristiti ID dobavljača iz tablice proizvoda da pronađe dobavljača za svaki proizvod.

Stupac ID dobavljača u tablici proizvoda naziva se strani ključ. Strani ključ je primarni ključ druge tablice. Stupac ID dobavljača u tablici proizvoda je strani ključ jer je i primarni ključ tablice dobavljača.

Osnova za povezivanje tablica je kombinacija primarnog i stranog ključa u parovima. Ako se tablice sa zajedničkim stupcem ne mogu definirati, stvaranje odnosa jedan-prema-više osigurava da dvije tablice trebaju zajednički stupac.

Stvaranje odnosa mnogo-prema-više

Razmotrite odnos između tablica proizvoda i narudžbi.

Jedna narudžba može uključivati ​​više proizvoda. S druge strane, odvojeni proizvod može biti sadržano u više narudžbi. Stoga za svaki unos u tablici narudžbi može biti više unosa u tablici proizvoda i obrnuto. Ova vrsta odnosa naziva se odnosom više-prema-više. Imajte na umu da je važno razmotriti obje strane kako biste otkrili odnos mnogo-prema-više između tablica.

Teme dviju tablica, narudžbe i proizvodi, povezane su odnosom mnogo-prema-više. Ovo je problem. Zamislite što se događa ako stvorite odnos između dvije tablice dodavanjem polja koda proizvoda u tablicu narudžbi. Da bi narudžba sadržavala više proizvoda, svaka narudžba u tablici mora imati više unosa. U tom slučaju, pojedinosti narudžbe moraju se ponoviti u svakom retku narudžbe, što može dovesti do neučinkovitosti strukture tablice i netočnosti podataka. Ista poteškoća nastaje i kod izrade polja s šifrom narudžbe u tablici proizvoda – postoji nekoliko zapisa za svaki proizvod u tablici. Kako riješiti ovaj problem?

Rješenje je stvoriti treću spojnu tablicu koja razbija odnos mnogo-prema-više u dva odnosa jedan-prema-više. Primarni ključevi dviju tablica umetnuti su u treću tablicu. Kao rezultat, svi primjeri relacije pohranjeni su u trećoj tablici.

Svaki unos u tablici s detaljima narudžbe predstavlja zasebni element redovi narudžbe. Primarni ključ tablice sastoji se od dva polja - stranih ključeva tablica narudžbi i proizvoda. Nije moguće koristiti samo polje koda narudžbe za primarni ključ ove tablice, jer jedan nalog može sadržavati mnogo elemenata retka. Šifra narudžbe se ponavlja za svaki element reda, tako da ovo polje ne sadrži jedinstvene vrijednosti. Također nije moguće koristiti samo polje šifre proizvoda, jer jedan proizvod može biti uključen u više narudžbi. Međutim, korištenje dvaju polja omogućuje vam da dobijete jedinstvenu vrijednost za svaki zapis.

U bazi podataka o prodaji proizvoda tablice narudžbi i proizvoda nemaju izravnu vezu. Povezani su neizravno kroz tablicu pojedinosti narudžbe. Odnos više-prema-više između narudžbi i proizvoda predstavljen je u bazi podataka s dva odnosa jedan-prema-više:

  • Tablice s detaljima narudžbe i narudžbe povezane su odnosom jedan prema više. Svaka narudžba sadrži više stavki retka, ali svaka je stavka povezana samo s jednom narudžbom.
  • Tablice s pojedinostima o proizvodu i narudžbi povezane su odnosom jedan prema više. Svaki proizvod može biti povezan s više stavki retka, ali svaka je stavka povezana samo s jednim proizvodom.

U tablici s detaljima narudžbe možete definirati proizvode za pojedinačnu narudžbu. Također možete definirati narudžbe za pojedinačni proizvod.

Nakon izrade tablice s pojedinostima narudžbe, popis tablica i polja može izgledati ovako:

Stvaranje odnosa jedan na jedan

Sljedeća vrsta odnosa je odnos jedan na jedan. Pretpostavimo da želimo zadržati dodatne informacije o proizvodu koji se rijetko koristi ili se na njega primjenjuje mali broj proizvodi. Budući da se ovi podaci rijetko koriste i njihovo pohranjivanje u tablicu proizvoda zahtijeva dodatno prazno polje za sve proizvode na koje se ne odnosi, najbolje je ove podatke staviti u zasebnu tablicu. Kao i tablica proizvoda, ID proizvoda koristi se kao primarni ključ. Dodatna tablica i tablica proizvoda povezani su u odnosu jedan na jedan. Postoji jedan unos za svaki unos u tablici proizvoda u dodatnoj tablici. Prilikom definiranja ove vrste odnosa, obje tablice moraju sadržavati isto polje.

Ako trebate stvoriti odnos jedan-na-jedan u svojoj bazi podataka, razmislite o spajanju podataka u jednu tablicu. Ako ova opcija nije prihvatljiva, na primjer zbog praznih polja, koristite sljedeći popis za definiranje odnosa u strukturi baze podataka.

  • Ako su tablice spojene istom temom, odnos se može stvoriti korištenjem zajedničkog primarnog ključa.
  • Ako su predmet i primarni ključ tablica različiti, trebate odabrati bilo koju tablicu i umetnuti njezin primarni ključ u drugu tablicu kao strani ključ.

Definiranje odnosa između tablica pomaže osigurati da su tablice i stupci točni. Ako postoji odnos jedan prema jedan ili jedan prema više, tablice moraju sadržavati zajednički stupci. Ako imate odnos više prema mnogo, potrebna je treća tablica.

Poboljšanje strukture

Nakon kreiranja potrebnih tablica, polja i relacija, trebali biste ispuniti tablice uzorcima podataka i izvršiti razne operacije s njima: kreiranje upita, dodavanje novih zapisa itd. To će vam omogućiti da identificirate mogući problemi- na primjer, možda ćete morati dodati dodatni stupac ili podijeliti jednu tablicu na dvije kako biste uklonili duple podatke.

Provjerite može li se baza podataka koristiti za dobivanje odgovora prava pitanja. Izradite nacrte obrazaca i izvješća i provjerite prikazuju li podatke koje želite. Provjerite ima li u bazi podataka duplih podataka i po potrebi ih uklonite.

Na početku rada s bazom podataka možete identificirati područja za poboljšanje njezine strukture. Možete obratiti pozornost na sljedeće točke:

  • Nedostaju potrebni stupci. Ako neki stupci nedostaju, trebali biste odrediti koji od njih postojeće tablice podaci se mogu dodati. Ako se podaci odnose na drugu temu, možda ćete morati dodatni stol. Napravite stupac za svaku stavku podataka koju želite pratiti. Ako se podaci ne mogu dohvatiti iz drugih stupaca izračunima, možda će biti potreban novi stupac.
  • Prisutnost stupaca čiji se podaci mogu dobiti iz postojećih polja kroz izračune. Ako se podaci mogu izvesti iz drugih stupaca putem izračuna – na primjer, cijena s popustom može se izračunati na temelju maloprodajne cijene – preporučujemo da izbjegavate korištenje dodatnih stupaca.
  • Prisutnost ponovljenih podataka u tablicama. U tom slučaju trebate podijeliti tablicu na dvije tablice i povezati ih u odnos jedan prema više.
  • Prisutnost stolova sa veliki iznos polja, ograničen broj zapisi i prazna polja u zasebni unosi. U tom slučaju možda ćete morati restrukturirati tablicu kako biste smanjili broj polja i povećali broj unosa.
  • Rastavljanje svakog elementa podataka na njegove najmanje komponente. Ako se stavka podataka koristi za izvješćivanje, sortiranje, pretraživanje ili izračun, treba je staviti u zaseban stupac.
  • Prisutnost u stupcu podataka vezanih uz temu tablice. Ako stupac sadrži podatke koji nisu povezani s predmetom tablice, treba ga smjestiti u drugu tablicu.
  • Prisutnost relacija između tablica predstavljenih zajedničkim poljima ili trećom tablicom. Relacije jedan-na-jedan i jedan-prema-više zahtijevaju dijeljene stupce. Treća tablica je potrebna za stvaranje odnosa više-prema-više.

Poboljšanja strukture tablice proizvoda

Pretpostavimo da se svi proizvodi u bazi podataka mogu podijeliti u nekoliko općih kategorija, kao što su pića, začini ili riblji proizvodi. Tablica proizvoda može sadržavati polje koje određuje kategoriju proizvoda.

Pretpostavimo da je nakon analize i poboljšanja strukture baze podataka odlučeno spremiti ne samo naziv kategorije proizvoda, već i njegov opis. Ako dodate polje opisa kategorije u tablicu proizvoda, opis bi se morao ponoviti za svaki proizvod u zasebnoj kategoriji, što nije pametno rješenje.

Racionalniji pristup je odvojiti kategoriju kao zasebnu temu za praćenje u bazi podataka, stvoriti zasebnu tablicu s vlastitim primarnim ključem. Primarni ključ tablice kategorija može se zatim dodati u tablicu proizvoda kao strani ključ.

U procesu analize strukture tablica potrebno je identificirati skupine koje se ponavljaju. Pretpostavimo da tablica sadrži sljedeće stupce:

  • Šifra proizvoda
  • Šifra proizvoda 1
  • Šifra proizvoda 2
  • Šifra proizvoda3

U ovom slučaju proizvodi se ponavljaju grupe stupaca koji se međusobno razlikuju samo brojem u nazivu stupca. Ako su stupci numerirani na ovaj način, potrebno je preispitati strukturu tablice.

Ova struktura ima nekoliko nedostataka. Prije svega, postoji gornja granica broja proizvoda. Nakon prekoračenja ove granice, morate dodati u tablicu nova grupa kolone, a ovaj zadatak je teško izvesti.

Sljedeći nedostatak je da ako je broj proizvoda za pojedinog dobavljača manji od maksimalnog, neki stupci će ostati prazni. No, najozbiljniji nedostatak takve strukture je kompliciranje mnogih zadataka, kao što je razvrstavanje ili stvaranje indeksa tablice prema kodu ili nazivu proizvoda.

Ako postoje grupe koje se ponavljaju, razmislite o dijeljenju jedne tablice na dvije. U gornjem primjeru bolje je izraditi dvije tablice, jednu za dobavljače i jednu za proizvode, te ih povezati pomoću koda dobavljača.

Primjena pravila normalizacije

Sljedeći korak u stvaranju baze podataka može biti primjena pravila normalizacije podataka (ili samo pravila normalizacije). Ova pravila omogućuju provjeru ispravnosti strukture tablice. Proces primjene ovih pravila na strukturu baze podataka naziva se normalizacija baze podataka ili jednostavno normalizacija.

Normalizaciju se preporuča izvršiti nakon unosa svih elemenata podataka u bazu podataka i izrade preliminarne strukture. Svrha ovog procesa je provjeriti jesu li elementi podataka ispravno raspoređeni po tablicama. Međutim, normalizacija vam ne dopušta provjeru ispravnosti samih elemenata podataka.

Pravila normalizacije primjenjuju se uzastopno; u svakoj se fazi provjerava usklađenost baze podataka s jednom od tzv. normalni oblici. Postoji pet normalnih oblika. Ovaj članak opisuje prva tri oblika jer su dovoljni za većinu baza podataka.

Prvi normalni oblik

Prvi normalan oblik sadrži pravilo da svaka ćelija na sjecištu retka i stupca u tablici mora sadržavati jednu vrijednost, a ne popis vrijednosti. Na primjer, polje "Cijena" treba sadržavati samo jednu vrijednost cijene. Ako postoji ćelija na sjecištu retka i stupca, ona mora sadržavati samo jednu vrijednost.

Drugi normalni oblik

Drugi normalni oblik zahtijeva da svaki stupac koji nije dio ključa mora biti ovisan o cijelom ključnom stupcu, a ne njegovom dijelu. Ovo pravilo se primjenjuje ako primarni ključ ima više stupaca. Pretpostavimo da tablica u kojoj se primarni ključ sastoji od stupaca s šifrom narudžbe i šifrom proizvoda sadrži sljedeće stupce:

  • Šifra narudžbe (primarni ključ)
  • ID proizvoda (primarni ključ)
  • Ime proizvoda

Ova struktura ne slijedi drugi normalni oblik, jer naziv proizvoda ovisi o šifri proizvoda, ali ne ovisi o šifri narudžbe; stoga ovaj stupac ovisi samo o dijelu primarnog ključa. Stupac naziva proizvoda treba ukloniti iz tablice. Mora biti uključena u drugu tablicu (tablica proizvoda).

treći normalni oblik

Treći normalni oblik zahtijeva da stupci bez ključa ne moraju ovisiti samo o cijelom primarnom ključu, već moraju biti neovisni jedan o drugom.

Drugim riječima, svaki stupac koji nije ključ trebao bi ovisiti samo o primarnom ključu. Pretpostavimo da tablica sadrži sljedeće stupce:

  • ID proizvoda (primarni ključ)
  • Preporučena maloprodajna cijena
  • Popust

Pretpostavimo da popust ovisi o predloženoj maloprodajnoj cijeni. U ovom slučaju tablica ne ispunjava zahtjeve trećeg normalnog oblika jer stupac neključnog popusta ovisi o drugom neključnom stupcu (stupac predložene maloprodajne cijene). Zahtjev da stupci budu neovisni jedan o drugom znači da promjena bilo kojeg neključnog stupca ne bi trebala utjecati na druge stupce. Ali promjena vrijednosti u stupcu maloprodajne cijene promijenila bi vrijednost popusta u skladu s tim, kršeći pravilo. Stoga u ovom slučaju stupac popusta treba premjestiti u drugu tablicu u kojoj je stupac maloprodajne cijene ključni stupac.

dodatne informacije

Za više informacija o dizajnu baze podataka pogledajte sljedeće knjige.

  • Hernandez, Michael J. Dizajn baze podataka za meneSmrtnici: Praktični vodič za dizajn relacijske baze podataka, drugo izdanje. Addison Wesley Professional. 2003.
  • Fleming, Candace C. von Halle, Barbara. Priručnik za projektiranje relacijskih baza podataka. Addison Wesley Professional. 1989.
  • Riordan, Rebecca M. Projektiranje učinkovitih sustava baza podataka. Addison Wesley Professional. 2005.

Odnosi se na Access 2007 i novije verzije

Svaka tablica sadrži informacije o određenoj temi, a svako polje u tablici sadrži zasebne informacije o temi tablice. Na primjer, tablica podataka o klijentima može sadržavati polja s nazivom tvrtke, adresom, gradom, državom i telefonskim brojem. Kada dizajnirate polja za svaku tablicu, imajte na umu:

    Svako polje mora biti povezano s temom tablice.

    Tablica treba sadržavati sve potrebne podatke.

Informacije treba raščlaniti na najmanje logičke jedinice (na primjer, polja "Ime" i "Prezime", a ne opće polje "Ime").

4. Postavljanje pojedinačne vrijednosti za svako polje

Kako bi Microsoft Access povezao podatke iz različitih tablica, kao što su podaci o kupcima i narudžbe, svaka tablica mora sadržavati polje ili skup polja koji će dati pojedinačnu vrijednost svakom zapisu u tablici. Takvo polje ili skup polja naziva se glavni ključ.

5. Definiranje odnosa između tablica

Nakon distribucije podataka po tablicama i definiranja ključnih polja, trebate odabrati shemu za povezivanje podataka u različitim tablicama. Da biste to učinili, morate definirati odnose između tablica.

6. Ažurirajte strukturu baze podataka

Nakon dizajniranja tablica, polja i odnosa, morate ponovno pregledati strukturu baze podataka i identificirati moguće nedostatke. Preporučljivo je to učiniti u ovoj fazi, dok tablice nisu ispunjene podacima.

Da biste testirali, morate stvoriti nekoliko tablica, odrediti odnose između njih i unijeti nekoliko zapisa u svaku tablicu, a zatim provjeriti zadovoljava li baza podataka zahtjeve. Također je dobra ideja izraditi nacrte izlaznih obrazaca i izvješća i provjeriti pružaju li tražene informacije. Osim toga, potrebno je isključiti sva moguća ponavljanja podataka iz tablica.

7. Dodavanje podataka i stvaranje drugih objekata baze podataka

Ako strukture tablice ispunjavaju zahtjeve, tada možete unijeti sve podatke. Tada možete stvoriti bilo koji upite, obrasce, izvješća, makronaredbe i module.

8. Korištenje alata za analizu u Microsoft Accessu

U Microsoft Accessu postoje dva alata za poboljšanje strukture baza podataka. Čarobnjak za analizu tablice ispituje tablicu, predlaže novu strukturu i odnose ako je potrebno, te je prerađuje.

Analizator performansi ispituje cijelu bazu podataka, daje preporuke za njezino poboljšanje, a također ih implementira.

Kako se razvijaju samostalni dijelovi aplikacije, poželjno ih je predati kupcu kako bi provjerio njihov rad i dobio mišljenje o potrebi unošenja određenih izmjena. Nakon što se kupac upozna s radom aplikacije, gotovo uvijek ima dodatne prijedloge za poboljšanje, bez obzira na to koliko je preliminarna studija projekta temeljita. Korisnici često smatraju da neke od stvari koje su spomenule tijekom procesa postavljanja zadataka kao vrlo važne i potrebne, zapravo ne igraju značajnu ulogu u praktičnoj upotrebi aplikacije. Identificiranje potrebnih promjena u ranoj fazi razvoja aplikacije može značajno smanjiti vrijeme za naknadnu doradu.

Vrhunski povezani članci