Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
UVOD U ACESS BAZU PODATAKA
VIII RAZRED ORAHOVICA PROKSOVICI
PRIPREMIO:PROF.ELVIR ČAJIĆ
Uvod u Access bazu podataka
Access je program za rad s bazom podataka i dio je MS Office paketa. Njegova struktura omogućava dohvaćanje, redanje (engl. sort), prikazivanje i ispis različitih formata podataka.
Mnogi korisnici računala koriste MS Excel ili druge programe za upravljanje njihovim bazama podataka.
Kada koristiti bazu podataka?
Kako trebate pohraniti iste podatke na više različitih mjesta. Kopiraj – zalijepi način kreiranja kopije podataka često vodi do grješaka.
Ne želite više koristiti stupčane tablice i želite ispisati izvješće o podatcima u drugačijem formatu.
Vaši podatci se sastoje od više od jednog zapisa. Ako pohranjujete podatke o više različitih stvari – kao što su kupci, narudžbe, proizvodi – spremni ste za Access bazu podataka.
Objekti baze podataka
1. Tablice (engl. Tables)
2. Obrasci (engl. Forms)
3. Upiti (engl. Queries)
4. Izvješća (engl. Reports)
5. Makro naredbe
1. Tablice (engl. Tables)
U tablice pohranjujemo podatke u obliku niza zapisa. Svaki zapis sadrži informacije o jedno stvari. U adresaru svaki zapis sadrži informacije o jednoj osobi: ime, adresu, telefon...
Svaki pojedini dio informacije – kao što je ime, prezime, ulica i adresa zovemo polje.
Pravilan dizajn tablica je ključan za kreiranje fleksibilne i uporabljive baze podataka. Zato je bazu potrebno dovesti u 3NF.
2. Upiti (engl. Queries)
Upiti su operacije koje dohvaćaju podatke koji odgovaraju potrebi korisnika. Najčešće ih koristimo za dohvaćanje podataka iz tablice koje npr. želimo ispisati u izvješću. Možete tako tražiti osobu koja nema dostupan broj telefona. Kako bi kreirali upit potrebno je postaviti uvjet koji određuje koje vrijednosti iz tablice će biti dohvaćene.
Akcijski upiti (Action Query)
Druga vrsta upita su akcijski upiti koji obavljaju operaciju nad zapisima koji su dohvaćeni u upitu npr. kopiraju dohvaćene zapise iz jedne u drugu tablicu, brišu ili mijenjaju selektirane zapise .
3. Obrasci (engl. Forms)
Obrasci služe za unos i prikaz podataka. Možemo također:
Uređivati podatke u novom zapisu
Izabrati izgled tablice u formi
Mijenjati redoslijed kojim će se stavke pojaviti
Koristiti popise, kružiće opcija, polja za potvrdu i druge kontrole4. Izvješća (engl. Reports)
Obrasci prvenstveno služe za prikazivanje na zaslonu računala dok izvješća su oblikovana za ispis na pisaću. Poput obrazaca, izvješća prikazuju podatke iz tablica ili upita. Oblikovanje izvješća određuje redoslijed kojim će zapisi baze podataka biti prikazani, koja će se polja prikazivati, kojom vrstom i veličinom slova će biti prikazani itd.
Osim ispisa na papir možemo oblikovati podatke za ispis na naljepnice, koverte i ostale medije. Također je moguće spremiti izvješća u PDF zapisu.
5. Makro naredbe
Access uključuje dva odvojena programska jezika. Jedan za makro naredbe i odvojeni VBA ili Visual Basic za aplikacije za veće programe. Makro naredbe su programi koji automatiziraju izvršavanje naredbi koje se na raspolaganju Accessu.
Tako npr. možete napisati makro naredbu za promjenu položaja točke unosa sa posljednjeg zapisa u tablici Narudžbi na bilo koje mjesto u obrascu.
6. Moduli s programima
Posljednji objekt Access baze podataka služi ozbiljnom programiranju. VBA (Visual Basic for Application) je prvenstveno namijenjen programiranju u Office alatima.
Razvoj relacijskih baza
1969. godine dr. E. F. Codd je uveo formalnu strukturu relacijske baze podataka.
Relacijska teorija koja se temelji na teoriji skupova, odnosi se na baze podataka i na aplikacije koji pokreću baze podataka.
Dr. Codd je uspostavio 12 pravila pomoću kojih se određuje kakvoću aplikacije i njezinih podataka u odnosu na relacijski model. Broj tih pravila do danas se popeo na stotine.
Struktura relacijske baze
Osnovni cilj strukture relacijske baze podataka je što je moguće bolje, napraviti bazu podataka koja predstavlja model praktičnog sustava podataka.
To znači da praktičan sustav podataka rastavimo u tablice i polja i odredimo odnose između tablica.
Relacijska baza podataka ima mnogo prednosti. Postupak unosa, promjene, brisanja i dodavanja podataka u tablice lakša je kada je baza podataka pravilno strukturirana. Najvažnije od svega je da je relacijsku bazu podataka lakše mijenjati i održavati.Referencijalni integritet
Pravila referencijalnog integriteta znači da u bazi podataka ne smije biti ne uparene vrijednosti stranog ključa. To znači da:
U tablicu se ne mogu unijeti slogovi ukoliko za njih ne postoji odgovarajući slog u drugoj tablici.
Vrijednost glavnog ključa se ne može promijeniti ako se ta vrijednost koristi kao strani ključ u drugoj tablici.
Iz tablice se ne može obrisati zapis ako u drugoj tablici postoje zapisi u kojima ja ta vrijednost dio stranog ključa
Entitetski integritet
Pravilo entitetskog integriteta određuje da vrijednost glavnog ključa ne može imati vrijednost NULL.
Ovo pravilo se ne odnosi samo na glavne ključeve koji su napravljeni nad jednim poljem, već i na glavne ključeve koji se sastoje od više polja. U glavnom ključu koje se sastoji od više polja vrijednost niti jednog polja ne smije sadržavati vrijednost NULL.
To ima smisla jer kada bi glavni ključ imao vrijednost NULL, on više ne bi bio jedinstveni identifikator zapisa. Access Jet Engine ne dopušta dodjeljivanje glavnom ključ vrijednost NULL.
Problemi s kojima se susrećemo
Konkurentnost
Integritet
Relacija
Ponovna iskoristivost
Sigurnost
Modeli podataka
Hijerarhijski model
Mrežni model
Relacijski model
Objektni model
Semantički model
Geoprostorni model
Razvoj relacijske baze podataka
Planiranje
Analiza potreba
Dizajniranje
Izgradnja
Implementacija
Uporaba i održavanje
Vrste ključeva
Glavni ključ (engl. Primary key)
Jedan ili više stupaca s jedinstvenom vrijednošću u svakom retku. Svaka tablica mora imati glavni ključ.
Strani ključ (engl. Foreign Key)
Određuje relacije među tablicama. Ako želimo redak u tablici A povezati s retkom u nekoj tablici B potrebno je dodati atribut stranog ključa u tablicu A. U tablici B taj isti atribut mora biti glavni ključ.
One –to-one (1:1) relacija
Jedan stupac u tablici A odgovara jednom stupcu u tablici B.
Ako imamo dvije tablice
Osoba: ID_osobe, ime, prezime
Kontakt_osobe: ID_osobe, mobitel, telefon
Tablice Osoba i Kontakt_osobe su u vezi 1:1
Ova vrsta relacije je praktično nepostojeća u normaliziranoj bazi. Može
Relacija između dvije tablice, gdje više redaka u tablici B se povezuje s jednim retkom u tablici A.
Osoba: ID_osobe, Ime, Broj_poste
Poste: Broj_poste, Naziv_mjesta
Tablice Osoba i Poste su u relaciji 1:NMany-to-Many (N:M) relacija
Relacija između dvije tablice gdje više redaka u tablici A su povezani u više redaka u tablici B.
Ova vrsta relacija je umjetna na neki način jer se ne može ostvariti izravno između tablica Kako bi ih ostvarili koristimo treću tzv. prometnu tablicu koje je s tablicama A i B povezana vezom 1:N
Ducan: ID_ducana, Naziv_ducana
Cijene: ID_proizvoda, ID_ducana
Proizvod:ID_proizvoda i Naziv proizvodaŠto je normalizacija?
Da bismo mogli napraviti bazu podataka koja ne će sadržavati kritične pogješke u dizajnu, pomaže nam normalizacija.
Normalizacija je postupak organiziranja podataka s ciljem kreiranja učinkovite, pouzdane (sačuvan integritet baze podatka) i fleksibilne baze podataka.
Postupak se temelji na matematički dokazanim tvrdnjama. To znači ako slijedimo normalizaciju, rezultat će biti dobivanje dobre baze podataka.
Normalne forme
Pri dizajniranju baze podataka potrebno je donijeti odluke o tome koje tablice načiniti, koja će polja te tablice sadržavati, te kakve veze između tablica treba uspostaviti.
Normalizacija (engl. Normalization) je postupak primjene niza pravila kojima se osigurava optimalna struktura baze podataka. Normalne forme su niz primjene tih pravila.
Svakom slijedećom normalnom formom dobiva se bolja strukutra podataka nego u prethodoj normalnoj formi. Za nas su najznačajnije prve tri normalne forme.Prva normalna forma - 1NF
Prva normalna forma zahtjeva atomičnost polja tablice i da svi zapisi moraju imati isti broj polja. To znači da se u istom polju ne mogu zapisivati ime i prezime.
Razlog postojanja ovog pravila je to što je nemoguće pretraživati ili sortirati podatke prema imenu ili prezimenu ukoliko se obje vrijednosti nalaze u istom polju.
Slijedeći zahtjev koji tablica mora zadovoljiti da bi bila u 1NF je ne sadržavati vrijednosti koje se ponavljaju.
Prva normalna forma - 1NF
Prva normalna forma zahtjeva atomičnost polja tablice i da svi zapisi moraju imati isti broj polja. To znači da se u istom polju ne mogu zapisivati ime i prezime.
Razlog postojanja ovog pravila je to što je nemoguće pretraživati ili sortirati podatke prema imenu ili prezimenu ukoliko se obje vrijednosti nalaze u istom polju.
Slijedeći zahtjev koji tablica mora zadovoljiti da bi bila u 1NF je ne sadržavati vrijednosti koje se ponavljaju.
Druga normalna forma - 2NF
Druga normalna forma zahtjeva da je zadovoljena 1NF i sva polja moraju biti jednoznačna i u potpunosti ovisiti o glavnom ključu (engl. primary key).
Drugim rječima u svakoj tablici moraju se zapisivati podatci o samo jednom subjektu. Primjer nepoštivanja 2NF je tablica u kojoj se zapisuju podatci o narudžbi zajedno s podatcima o osobi koja je obavila narudžbu.
Kako bi tablicu prebacili u 2NF potrebno je takvu tablicu razdvojiti u dvije tablice. Postupak razdvajanja podataka u dvije tablice zove se dekompozicija.
Druga normalna forma - 2NF
Treća normalna forma - 3NF
Treća normalna forma zahtjeva da je zadovoljena 2NF i sva polja koja nisu dio glavnog ključa ne smiju međusobno ovisiti jedno o drugom.
Treba izbaciti sva izračunavanja u tablici npr. kada uz polja [Cijena] i [Količina] želimo pomnožiti te podatke i pohraniti u polje [Ukupno].
Problem se javlja kada ažuriramo polje [Cijena] ili polje [Količina] jer se polje [Ukupno] ([Cijena]*[Količina]) ne ažurira automatski. Zato ga treba izbaciti po 3NF.
Treća normalna forma - 3NF
Denormalizacija
Iako je cilj korisnika normalizacija u mnogim slučajevima ima smisla denormalizaciija (engl. denormalisation) ili namjerno odstupanje od normalnih formi.
Osnovni razlog za denormalizaciju je poboljšanje značajki brzine baze podataka.
Prilikom pitanja odustajanja od normalizacije moramo se pitati je li nam poboljšanje značajki ili lakoća održavanja baze podataka.
Entitet
Entitet može biti stvaran objekt, bilo živ ili neživ, kojega možemo opisati. Na primjer, u bazi podatka škole, učenik, učitelj, razred i predmet može se promatrati kao entitete. Svi ti entiteti imaju neke atribute ili svojstva kojima ih opisujemo.
Skup entiteta su objekti jednake ili slične vrste. Tako skup eniteta Učenici može sadržavati sve učenike u školi; slično skup eniteta Profesori može sadržavati sve profesore u školi iz svih predmeta.Atributi
Entiteti su opisani pomoću svojih svojstava koje zovemo atributi. Svi atributi imaju vrijednosti. Npr. entitet Učenik ima atribute ime, razred, starost.
Postoji skup vrijednosti (domena) koje možemo dodjeliti atributu. Npr. ime učenika ne može imati brojčanu vrijednost. Ona se mora sastojati od slova. Starost učenika ne može biti negativna, itd.
Vrste atributa:
- jednostavni atributi (ne mogu biti podijeljeni)- složeni atributi (npr. ime i prezime)- izvedeni atributi (ne postoje fizički u bazi tako npr. starost može biti izvedena iz datuma rođenja)←→Relacije između entiteta
Relacija jedan prema više ili 1:N (engl. One to Many)
Relacija jedan prema jedan ili 1:1 (engl. One to One)
Relacija više prema više ili M:N (engl. Many to Many)←→Relacije 1:N
Relacija 1:N odnosno jedan prema više je najvažnija vrsta odnosa između tablica. U tom slučaju jednom zapisu prvog entiteta odgovara više zapisa drugog entiteta.
U gotovo svim slučajevima je zajednički atribut po kojem se spajaju tablice na strani jedan glavni ključ.
Zajednički atribut na strani drugog entiteta je strani ključ.←→Relacije 1:N
←→Relacije 1:1
U relaciji 1:1 odnosno jedan prema jedan, svakom zapisu entiteta s jedne strane odgovara jedan zapis entiteta s druge strane.
Ovakva vrsta relacija nije uobičajena i koristi se samo u posebnim slučajevima.
Najčešći razlozi zbog kojih se koristi relacija jedan prema jedan su:
- ograničen broj atributa u tablici baze podataka
- neki atributi tablice se moraju bolje zaštititi od preostalih atributa
- nekoliko atributa tablice su nužna samo kao podskup zapisa istog entiteta.
←→Relacije 1:1
←→Relacije M:N
U relaciji M:N odnosno više prema više, za slogove obje tablice postoji više slogova u drugoj tablici.
U većini baza podataka ne možemo izravno uspostaviti relaciju više prema više.
Ovu relaciju ostvarujemo umetanjem prometne tablice (engl. Junction table) između tablica za koje želimo ostvariti relaciju više prema više.
Između prometne tablice i druge dvije tablice koje ostvarujemo relaciju jedna prema više.
←→Relacije M:N
←→Matične i prometne tablice
Pri postupku dizajniranja najprije se keiraju matične tablice. U takvim tablicama zapisi se upisuju samo jedanput. Primjer takve tablice je tablica kupaca ili tablica filmova.
Prometne tablice (engl. Junction table) nazivaju se još i srce baze podataka. U njih se bilježe transakcije i promet tj. posudbe. Glavni ključevi u prometnim tablicama u praksi se često sastoje od više polja.←→Pravila za ključeve
Tablice se sastoje od polja i zapisa. Kako bi oslikali relacijski model podataka, svaka tablica mora imati jedinstveni indetifikator. Bez jedinstvenog identifikatora nemoguće je adresirati zapis. Jedinstvenost se ostvaruje stvaranjem glavnog ključa (engl. Primary key).
Glavni ključ se sastoji od jednog ili više polja koja jedinstvno identificiraju svaku zapis tablice. Svako polje ili skupina polja tablice koje sadrže jedinstvene vrijednosti smatraju se mogućim ključevima (engl. Candidate key)
Jedan od mogućih ključeva postaje glavni ključ a ostali mogući ključevi postali alternativni ključevi (engl. Alternate key).←→Jednostavni i složeni ključevi
Glavni ključ koji se sastoji od samo jednog polja nazivamo jednostavan ključ (engl. Simple key).
Glavni ključ koji se sastoji od više polja nazivamo složeni ključ (engl. Composite key).
Dobro je da je glavni ključ:
- minimalan (ima što je moguće manje polja)
- stabilan (rijetko se mijenja)
- jednostavan (poznat korisniku)
←→Glavni i strani ključ
Glavni ključ (engl. Primary key) je polje ili više polja koje jedinstveno određuje svaku zapis. Po glavnom ključu svi su zapisi obavezno različiti.
Primjeri glavnog ključa su: OIB, ISBN knjige, Poštanski broj, bar kod proizvoda itd.
Zajedničko polje između dvije tablice a nalazi se na strani više u relaciji zovemo strani ključ (engl. Foreign key) i omogućava nam uspostavu relacija između tablica.←→Relacije između tablica
Relacija jedan prema više ili 1:N (engl. One to Many)
Relacija jedan prema jedan ili 1:1 (engl. One to One)
Relacija više prema više ili M:N (engl. Many to Many)←→Relacije 1:N
Relacija 1:N odnosno jedan prema više je najvažnija vrsta odnosa između tablica. U tom slučaju jednom zapisu prve tablice odgovara više zapisa druge tablice.
U gotovo svim slučajevima je zajedničko polje po kojem se spajaju tablice na strani jedan glavni ključ
Zajedničko polje na strani druge tablice je strani ključ.←→Relacije 1:1
U relaciji 1:1 odnosno jedan prema jedan, svakom zapisu tablice s jedne strane odgovara jedan zapis tablice s druge strane.
Ovakva vrsta relacija nije uobičajena i koristi se samo u posebnim slučajevima.
Najčešći razlozi zbog kojih se koristi relacija jedan prema jedan su:
- ograničen broj polja u tablici baze podataka
- neka polja tablice se moraju bolje zaštititi od preostalih polja
- nekoliko polja tablice su neophodna samo kao podskup slogova iste tablice.
←→Relacije M:N
U relaciji M:N odnosno više prema više, za slogove obje tablice postoji više slogova u drugoj tablici.
U većini baza podataka ne možemo izravno uspostaviti relaciju više prema više.
Ovu relaciju ostvarujemo umetanjem prometne tablice (engl. Junction table) između tablica za koje želimo ostvariti relaciju više prema više.
Između prometne tablice i druge dvije tablice koje ostvarujemo relaciju jedna prema više.
←→Referenicjalni integritet
Pravila referencijalnog integriteta znači da u bazi podataka ne smije biti ne uparene vrijednosti stranog ključa. To znači da:
U tablicu se ne mogu unijeti slogovi ukoliko za njih ne postoji odgovarajući slog u drugoj tablici.
Vrijednost glavnog ključa se ne može promijeniti ako se ta vrijednost koristi kao strani ključ u drugoj tablici.
???Iz tablice se ne može obrisati zapis ako u drugoj tablici postoje zapisi u kojima ja za vrijednost dio stranog ključa
←→Entitetski integritet
Pravilo entitetskog integriteta određuje da vrijednost glavnog ključa ne može imati vrijednost NULL.
Ovo pravilo se ne odnosi samo na glavne ključeve koji su napravljeni nad jednim poljem, već i na glavne ključeve koji se sastoje od više polja. U glavnom ključu koje se sastoji od više polja vrijednost niti jednog polja ne smije sadržavati vrijednost NULL.
To ima smisla jer kada bi glavni ključ imao vrijednost NULL, on više ne bi bio jedinstveni identifikator zapisa. Access Jet Engine ne dopušta dodjeljivanje glavnom ključ vrijednost NULL.
←→Design pogled
←→Izbor vrste podataka
1. Tekst (sadrži slova, brojke i posebne znakove), veličine do 255 znakova, ne možemo obavljati numeričke operacije nad ovom vrstom podataka.
2. Memo (sadrži tekst), veličine do 65536 znakova, ne može se indeksirati, ni obavljati numeričke operacije.
3. Number (sadrži brojke, pomoću svojstva Field Size biramo vrstu brojeva), možemo ih koristiti ih za numeričke operacije.
4. Date/Time, možemo računati broj dana između dva datuma itd.←→Izbor vrste podataka II.
5. Currency (sadrži brojeve sa znakom valute), koristimo ga za valutne izraze kao što su cijene.
6. AutoNumber (sadrži jedinstveni broj koji generira Access), vrijednost počinje s jedan i povećava se sa svakim zapisom.
7. Yes/No (binarni podatci kao Da/Ne, Muško/Žensko, Istina/Laž itd.), koristimo Format Field svojstvo za izbor vrijednosti.←→Oblikovanje brojčanih polja
General Number - prikazuje brojeve bez decimalne točke.
Currency - prikazuje brojeve u lokalnoj valute, sa dva decimalna mjesta i zarezom kao graničnikom tisućica.
Standard - prikazuje brojeve sa zarezom kao graničnikom tisućica a polje Decimal places određuje broj decimalnih mjesta.
Percent - prikazuje brojeve kao postotak, tj. pomonožene sa sto iza kojih dolazi znak za postotak.←→Svojstvo Field Size
Byte - cijeli brojevi od 0 do 255
Integer - cijeli brojevi od -32768 do 32767
Long Integer - cijeli brojevi od -2.147.483.648 do 2.147.483.647
Single - realni brojevi decimalne točnosti sa sedam decimalnih mjesta.
Double - realni brojevi decimalne točnosti s 15 decimalnih mjesta.←→Oblikovanje tekstnih polja
U svojstvu Format određujemo:
> (veće od) - prikazivanje svog teksta velikim slovima
< (manje od) - prikazivanje svog teksta malim slovima
! - prikazuje tekst lijevo poravnat
[blue], [green]... - prikazuje tekst u zadanoj boji.
& - označava da znak nije obvezan.←→Određivanje glavnog kluča
Glavni ključ (engl. Primary key) je jedno ili više polja koja jedinstveno određuju svaki zapis u tablici baze podataka.
U Design pogledu treba označite jedno ili više polja za koja želimo da budu glavni ključ.
Na alatnoj traci Design pogleda kliknemo na gumb Primary key ili pomoću desnog klika na označena polja u brzom izbroniku izaberemo Primary key.Indeksiranje polja
Kada indeksiramo polje Access brže sortira i pronalazi zapise. Premda ubrzava mnoge operacije indeksiranje polja usporava neke akcijske upite zbog potrebe promjene obnove indeksa.
Polje glavnog ključa se automatski indeksira.
Za indeksiranje polja izabiremo odgovarajuću vrijednost svojstva Index. Dopuštene su tri vrijednosti:
- No: Polje se ne indesirara- Yes (Duplicates OK): Indeksira polje i dopušta iste vrijednosti za više zapisa
- Yes (No Duplicates): Indeksira polje i ne dopušta iste vrijednosti za više zapisa. Glavni ključ automatski dodjeljuje ovu vrijednost.←→Datasheet pogled
←→Redanje (engl. sort) polja
Zapisi su prikazani u Datasheet pogledu slučajno. Želimo li poredati (engl. Sort) zapise u polju potrebno je najprije staviti točku unosa u to polje.
Zatim odabiremo jedan od dva gumba za redanje:
- AZ Ascending: za redanje od manjeg prema većem - ZA Descending: za redanje od većeg prema manjem
Želimo li isključiti redanje odaberemo gumb:
- Remove Sort←→