490 likes | 758 Vues
Uvod. Jedna Excel tabela, koja sadrži podatke o DVD klubu. Tabela DVD. Tabela CLANOVI. Tabela IZNAMLJIVANJE. BAZE PODATAKA. Osnovni pojmovi. Pod ~ podrazumevamo informacioni fond (skup podataka) koji mogu koristiti pojedinci, grupe, firme, regioni, države, pa i ceo svet
E N D
Tabela DVD Tabela CLANOVI Tabela IZNAMLJIVANJE
BAZE PODATAKA Osnovni pojmovi
Pod ~ podrazumevamo informacioni fond (skup podataka) koji mogu koristiti pojedinci, grupe, firme, regioni, države, pa i ceo svet • U ~ možemo čuvati tekstove, slike, zvučne i multimedijalne fajlove, liste plairanih aktivnosti, susreta ... • Na pr.firme: u njima čuvaju finansijske informacije, podatke o kupcima, dobavljačima i svim ostalim za nju bitnim detaljima poslovanja • Na pr.državne baze sadrže podatke o građanima, automobilima ...
Kako je to u Delphi-ju? • Mi ćemo samo raditi sa relacionim bazama podataka • Relaciona baza podataka=relational database • Ovakva baza sastoji se od jedne ili više tabela, koje su logički povezane • Tabela=dvodimenzionalna tabela sa karakteristikama nekog skupa objekata • Tabela ima: ime (identifikator)-po kome se možemo joj obraćati
Tabela (table) • Sastoji se iz redova u kojima se čuvaju podaci o objektima istog tipa • Svaki red sadrži podatke o jednom objektu i naziva se slog (record) • Svi slogovi jedne table su iste strukture i sastoje se od polja (field) u kojima se čuvaju atributi (svojtva) objekta • Svi slogovi imaju ista polja koja se u svakom slogu pojavljuju u istom redosledu • To znači da podaci u poljima jedne kolone moraju biti istog tipa
Tabela- DVD atributi slog
Tipovi • Numerički • String • Novčani iznos • Datum • Vreme • Logički • Tekstualni (na pr.karakteristike učenika) • Grafički (fotografija učenika)...
Primarni ključ (primary key) • Svaka tabela mora imati jedno ili više polja (atributa,kolona) koja jednoznačno identifikuju svaki slog tabele omogućavaju jasno razlikovanje jednog sloga od drugog • Ovakva polja obrazuju primarni ključ (primary key) • Primarni ključ ne sme imati suvišna polja • Ako se iz primarnog ključa izbaci neko polje , preostala polja nisu dovoljna za identifikaciju pojedinih slogova • Nikoja dva sloga nemogu imati istu vrednost primarnog ključa • Prost ključ=sastoji se od jednog polja • Složeni ključ= sastoji se od više polja • Nad tabelom može biti formiran samo jedan primarni ključ
Primarni ključ o ovoj tabeli ne može biti Ime i Prezime učenika (a ni nemamo takvu kolonu) • U ovom primeru SifraUc može biti jedini primarni ključ
Šta može biti primarni ključ ako : • 1. učenik ima pravo samo na jednu stipendiju • 2. na više stipendija • Atributi su: SifraUc,Davalac i Iznos • 1. jedini primarni ključ : SifraUc • 2.ni jedan atribut sam ne može biti ključ. • (Davalac,SifraUc)=? ne može • (Davalac,Iznos)=? ne može • (SifraUc,Iznos) =? ne može
U raznim tabelama : • ključ može biti: za identifikaciju ljudi-JMBG • u školi- matični broj • na fakultetima-redni broj+godina upisa • Informacija o ključu se može čuvati u izdvojenom fajlu ili integrisano sa podacima tabele
Sekundarni indeks (secondary index) • Slogovi tabele BP fizički mogu biti smešteni na disku bez nekog unapred zadatog poretka • Ali kad koristimo tabele podaci moraju biti uređeni (ili u alfabetskom poretku, ili na neki drugi način) • Za uređivanje podataka koristi se pojam indeksa • Indeks pokazuje u kom poretku možemo posmatrati tabelu. • Ali indeksi omogućavaju brže izvršavanje programa koji radi sa bazom podataka
Kreiranje indeksa praktično znači kreiranje dodatne tabele (fajla) u kojoj će jednu kolonu činiti sortirane vrednosti polja (osnovne tabele) po kome se vrši indeksiranje, a drugu pozicije sloga osnovne tabele.
Indeksna tabela za Prezime Osnovna tabela Učenici
Sekundarni indeks (ili ključ) se realizuje pokazivačkom tabelom • Ako imamo više indeksa onda imamo mogućnost sa sadržaj neke tabele sortiramo na razne načine • Sekundarni indeks se razlikuje od primarnog po tome što vrednosti polja, koje je indeksirano, ne moraju biti jedinstvene • Delphi vodi računa o svim promenama-automatski modifikuje indeksnu tabelu pri svakoj promeni(dodavanje,brisanje,promena nekog sloga) osnovne tabele
Indeksni tipovi • Prosti- formiraju se na osnovu samo jedne kolone tabele • Složeni- formiraju se od 2 ili više kolona tabele • Jedinstveni (unique)- ovi indeksi ne dozvoljavaju unošenje u tabelu istih vrednosti. Može biti prost ili složen
Veze između tabela • Baza podataka sadrži više međusobno povezanih tabela (više informacija se može dobiti korešćenjem skupa tabela nego od jedne tabele) • Pa zato važna je veza (relationship) između tabela
Tabela Učenici Tabela Stipendije
Strani ključ (foreign key) • ~ jaku veliku ulogu igra ako radimo sa povezanim tabelama • U ovakvoj vezi jedna tabela uvek ima ulogu glavne (master) tabele, a druga je potčinjena (detaljna,pomoćna,detail) tabela. • Ova veza zove se još i “roditelj-dete” • Strani ključ potčinjene tabele će spojiti podatke sa primarnim ključem glavne tabele • Na pr. SifraUc je strani ključ u tabeli Stipendije, a SifraUc je u tabeli Učenici primarni ključ- i na ovaj način možemo ove tabele spojiti • Strani ključ može biti formiran od više atributa
Razlike između tabela • U glavnoj tabeli su uvek dostupni svi slogovi, a u potčinjenoj su dostupni samo oni slogovi čija se vrednost atributa spoljašnjeg ključa poklapa sa vrednostima odgovarajućih atributa (primarnog ključa) tekućeg sloga glavne tabele. • Drugim rečima: kursor “klizi” po indeksu (primarnom ključu) glavne tabele i tada se svakom slogu glavne tabele posredstvom ključa pridružuje skup slogova potčinjene tabele koji na poljima stranog ključa imaju vrednost primarnog ključa glavne tabele
Kursor “šeta” po osobini SifraUc(jer je to primarni ključ) Tabela Stipendije Tabela Učenici
Napomena • U praksi se često povezuju više os 2 tabele. • Prema tome, tabela može biti glavna u odnosu na jednu i potčinjena u odnosu na drugu tabelu. • Ili, jednoj tabeli može biti potčinjena ne jedna, već nekoliko tabela • Potčinjenom tabelom ne mogu istovremeno upravljati dve tabele=> glavna tabela može imati više potčinjenih, a potčinjena samo jednu glanvu.
Tipovi veza između tabela : • 1:1(jedan prema jednom)-svakom slogu jedne tabele odgovara samo jedan slog druge table • 1:više (1:n)- jednom slogu glavne tabele može odgovarati više slogova potčinjene tabele • više:1 (n:1)- više slogova glavne tabele može odgovarati jedan isti slog potčinjene tabele • n:m (više prema više)- jedan slog glavne tabele povezan je sa više slogova potčinjene i jedan slog potčinjene povezan je sa više slogova glavne tabele
Integritet baze podataka • Imamo 2 važna ograničenja u svakoj bazi, da bi informacije bile jednoznačne i neprotivrečne: • 1.-kategorijalni integritet • 2.- referencijalni integritet
Kategorijalni integritet • Slogovima tabele se u bazi podataka opisuju određeni objekti realnog sveta= kategorije, entiteti. • Da bismo pronašli poređene podatke koji se nalaze u slogu tabele moramo znati ključ sloga. • Ovaj integritet znači: slog ne može biti unet u bazu podataka sve dok se ne definišu vrednosti svih atributa primarnog ključa. (ovo pravilo se zove pravilo kategorijalnog integriteta) • Nijedan atribut primarnog ključa ne može biti NULL vrednost (ovo polje ne može biti prazno polje a glavnoj tabeli nigde)!!!! • Kat.int.se obezbeđuje tako što onemogućava da u istoj tabeli budu dva sloga kojima je ista vrednost primarnog ključa.
Referencijalni integritet • Ovaj uslov zadaje ograničenja stranim ključevima koja obezbeđuju integritet podataka koji se naziva referencijalni integritet • Ako su 2 tabele međusobno povezane , tada strani ključ potčinjene tabele može sadržati samo vrednosti primarnog ključa glavne tabele. • Ako se ne kontroliše korektnost vrednosti stranih ključeva može se narušiti referencijalni integritet podataka.
Normalizacija podataka • ~ je proces reorganizacije podataka putem uklanjanja grupa podataka koje se ponavljaju i raznih protivurečnosti s ciljem dovođenja tabela u oblik koji obezbeđuje neprotivurečno i korektno uređivanje podataka • Krajnji cilj ~-e je dobijanje takvog projekta baze podataka u kome se svaka činjenica pojavljuje samo na jednom mestu (nema redundanse tj.ponavljanja informacija)
Cilj normalizacije • Mogući problemi: • Redundansa • Anomalije modifikacije • Anomalije brisanja • Anomalije unosa
Anomalija brisanja • Ako brišemo slog učenika sa šifrom 100, mi ne uklanjamo samo informaciju da učenik sa šifrom 100 prima rep.stipendiju, već i činjenicu da je iznos rep.stip.9000 din. • Ovo se naziva: anomalija brisanja (deletion anomaly)- uklanjanjem činjenica o jednom objektu(da učenik sa šifrom 100 prima rep.stip.), neželjno se uklanja i činjenica o drugom (da iznos rep.stip.je 9000 din) • To znači da jednom operacijom brisanja gube se informacije o dva objekta
Anomalija umetanja • Pretpostavimo da postoji još neki izvor za stipendije (na pr. od države) • Tu inf.ne možemo uneti u tab.STIPENDIJE,jer nijedan učenik još nije dobio ovu stip. • Problem : u tab.ne možemo uneti inf.o jednom objektu dok ne unesemo inf.o drugom
Šta je rešenje? Tabela UCENIK-STIPENDIJA • Podeliti tab.STIPENDIJE na dve tabele, tako da svaka sadrži informacije o određenom objektu • Ovaj metod ima i jedan nedostatak:šta je onda ako smo dodali novog učenika sa stip.koja još nije uneta u drugu tab. • Rešenje za to: skup vrednosti atributa Davalac tabele UČENIK-STIP mora biti podskup vrednosti atributa Davalac tabele STIP-IZNOS Tabela STIPENDIJA-IZNOS
Problemi nastaju zato što tabela sadrži činjenice koje se odnose na dve različite teme: • 1.ko od učenika dobija stip. i koju • 2.koliki je iznos svake stip. • Zato: svaku tabelu, koja sadrži dve ili više tema, treba razviti na dve ili više tabela, tako da svaka od njih sadrži samo jednu temu
Osnovne operacije s tabelama • Svaka tabela mora imati bar jedan slog • Definisanje strukture tabele uključuje: • opis polja • def.ključa • def.indeksa • ograničenja za vrednosti polja • ograničenja ref.integriteta
Tabeli se pri kreiranju zadaju struktura i ime • kod Save to disk naredbe kreiraće se svi neophodni fajlovi koji su u vezi s tabelom • Preimenovanjem tabele preimenuju se i svi prateći fajlovi • Uklanjanje tabele sa diska podrazumeva uklanjanje svih pratećih fajlova
Tipovi baza podataka (knjiga-str. 188-191) : • Poznate arhitekture: • 1.lokalna arhitektura • 2. falj-server arhitektura • 3. klijent-server arhitektura • 4.distribuirana arhitektura • 5.internet-arhitektura
1.lokalna arhitektura • I program i baza podataka se nalaze na jednom računaru
2. fajl-server arhitektura • Baza podataka se nalazi na moćnom izdvojenom računaru, a personalni računari su na njega priključeni putem lokalne mreže • U ovom slučaju: više korisnika su u stanju da istovrememo koriste istu bazu • Nedostatak ovakvog pristupa je da se ogromne količine informacija predaju posredstvom mreže
3. klijent-server arhitektura • U ovoj arhitekturi na serveru se ne čuva samo baza podataka, već i aplikacija koja upravlja bazom, izvršavajući zahteve korisnika, koji su u mreži, i vraćajući im skupove slogova • Ovako aplikacija korisnika ne radi direktno s bazom već se obraća programu-serveru koji izvršava operacije • Zahtev se formira na jeziku SQL, koji je srandardno sredstvo pristupa serveru pri korišćenju relacionog modela podataka
4.distribuirana arhitektura • U mreži radi nekoliko servera, a tabele baze podataka su raspoređene između njih radi podizanja efikasnosti. • Nedostatak: komplikovano administriranje i potreba za visokim performansama serverskih računara.
5.internet-arhitektura • Pristup bazi podataka (koja se nalazi u mreži) se realizuje posredstvom brauzera (na pr.Internet Explorer, Netscape Navigator, Opera,...) po standardnom protokolu • U ovoj arhitekturi se pristup bazi može realizovati i sa računara vrlo skromnih performansi)
Organizacija veze s bazama podataka • BDE- Borland Database Engine • Vidi knjigu:str.br.191-192