relacione baze podataka microsoft access 200 3 sql server
DESCRIPTION
Relacione baze podataka Microsoft Access 200 3 SQL Server. Miljan G. Jeremi ć. Sadržaj iz baza podataka. Uvod u relacione baze podataka Jet-SQL Tabele i relacije Upiti Forme Izveštaji Visual Basic for Applications Osobine Access baze podataka Access i SQL Server. - PowerPoint PPT PresentationTRANSCRIPT
Relacione baze podatakaMicrosoft Access 2003
SQL Server
Miljan G. Jeremić
Sadržaj iz baza podataka
• Uvod u relacione baze podataka• Jet-SQL• Tabele i relacije• Upiti• Forme• Izveštaji• Visual Basic for Applications• Osobine Access baze podataka• Access i SQL Server
Šta je Microsoft Access 2003?
• Deo paketa Microsoft Office
• RDBMS – Relational Database Management System
• Kompletno rešenje za rad sa lokalnim bazama podataka
• Primena gde god treba sakupljati, organizovati, pretraživati i prikazivati velike količine podataka
Podaci u bazi podataka
• Tabela – podaci o objektima iste vrste
• Slog – vrsta u tabeli
• Polje – kolona u tabeli
Radnici
ID Ime Plata
145 Lazar Simić 18700
146 Milica Jovanović 15400
149 Stevan Lazić 19300
150 Ivana Petrov 17900
Ograničenja nad poljima
• Tip podatka Integer, Text• Primary Key
• Input Mask (999-900-0000)• Default Value Date()• Validation Rule [Plata] > 0• Required (Not Null)• Allow Zero Length• Indexed (No Duplicates)
Ključ
• Primarni ključ – jedno ili više polja koja jedinstveno identifikuju svaki slog u tabeli. Ne može imati NULL vrednost i mora imati jedinstveni indeks. Služi za uspostavljanje veze između tabela.
• Strani ključ – jedno ili više polja u tabeli koja se odnosi na primarni ključ iz druge tabele. Vrednosti se moraju poklapati.
Relacije
• Veze između polja zajedničkih za dve tabele
• One-to-one
• One-to-many
• Many-to-many
Radnici
ID Ime Plata
145 Lazar Simić 18700
146 Milica Jovanović 15400
149 Stevan Lazić 19300
150 Ivana Petrov 17900
Radni dani
ID radnika Datum Časova
145 23.9.2002 8
145 24.9.2002 8
146 24.9.2002 5
149 24.9.2002 8
Primer Many-To-Many relacije
Radnici
ID Ime Plata
145 Lazar Simić 18700
146 Milica Jovanović 15400
149 Stevan Lazić 19300
150 Ivana Petrov 17900
RadniciPoslovi
ID radnika ID posla
145 PR1
145 MG
146 PR2
149 PR1
149 MG
Poslovi
ID Naziv Koef
PR1 145 1.00
PR2 145 1.00
MG 146 1.20
Referencijalni integritet
• Svim pojavama stranog ključa mora odgovarati pojava primarnog ključa
• Narušen referencijalni integritet daje nekonzistentne podatke
Radnici
ID Ime Plata
145 Lazar Simić 18700
146 Milica Jovanović 15400
150 Ivana Petrov 17900
Radni dani
ID radnika Datum Časova
146 26.9.2002 8
149 26.9.2002 8
149 27.9.2002 8
150 28.9.2002 8
Radni dani
ID radnika Datum Časova
146 26.9.2002 8
149 26.9.2002 8
149 27.9.2002 8
150 28.9.2002 8
Kaskadno brisanje
• Zasniva se na uspostavljenim relacijama između tabela
• Može se proširiti na niz tabela, sve dok je relacija One-To-Many u istom smeru
Radnici
ID Ime Plata
145 Lazar Simić 18700
146 Milica Jovanović 15400
149 Stevan Lazić 19300
150 Ivana Petrov 17900
Radni dani
ID radnika Datum Časova
146 26.9.2002 8
149 26.9.2002 8
149 27.9.2002 8
150 28.9.2002 8
Cascade Delete Related RecordsRadnici.ID = [Radni dani].[ID radnika]
Kaskadno ažuriranje
• Omogućava održanje konzistentnosti podataka i nakon izmena primarnog ključa
• Može da se proširi na više tabela, kao i kaskadno brisanje
RadniciPoslovi
ID radnika ID posla
145 PR1
145 MG
146 PR2
149 PR1
149 MG
Poslovi
ID Naziv Koef
PR1 145 1.00
PR2 145 1.00
MG 146 1.20
Cascade Update Related FieldsPoslovi.ID = RadniciPoslovi.[ID posla]
Poslovi
ID Naziv Koef
KI1 145 1.00
PR2 145 1.00
MG 146 1.20
RadniciPoslovi
ID radnika ID posla
145 KI1
145 MG
146 PR2
149 KI1
149 MG
Relacione baze Relacione baze podatakapodataka
i SQLi SQL
Metode organizacije Metode organizacije podatakapodataka
u informacionom sistemuu informacionom sistemu
deo Ideo I
IstorijatIstorijat
• Baze podataka implementirane u pj Baze podataka implementirane u pj opšte nameneopšte namene
• Mrežni i hijerarhijski modelMrežni i hijerarhijski model(1955. do 1970.)(1955. do 1970.)
• Relacioni model, Dr. E.F. Codd 1970. Relacioni model, Dr. E.F. Codd 1970.
Hijerarhijski model podatakaHijerarhijski model podataka
AA1:m1:m
Nivo
Nivo
Specifičnost
Specifičnost
Hijerarhijski model - osobineHijerarhijski model - osobine
• Jednostavan Jednostavan edit/insertedit/insert
• Velike indeksne datotekeVelike indeksne datoteke
• Neophodno je frekventno održavanjeNeophodno je frekventno održavanje
• Svi upiti su unapred definisaniSvi upiti su unapred definisani
Mrežni model podatakaMrežni model podataka
AA1:m, m:1,1:m, m:1,
m:nm:n
Nivo
Nivo
Specifičnost
Specifičnost
Mrežni model - osobineMrežni model - osobine
• FleksibilnostFleksibilnost
• Indeksne datoteke veće od istih datoteka Indeksne datoteke veće od istih datoteka kod hijerarhijske organizacijekod hijerarhijske organizacije
• Svi upiti su unapred definisaniSvi upiti su unapred definisani(nije mogu(nije moguće zadavati proizvoljne upite)će zadavati proizvoljne upite)
Relacioni model podatakaRelacioni model podataka
MM
SSSS
1:m, m:1,1:m, m:1,m:nm:n
Relacioni model - osobineRelacioni model - osobine
• Fleksibilnost i podrška složenim Fleksibilnost i podrška složenim organizacijama podatakaorganizacijama podataka
• Veze među podacima nisu sadržane u Veze među podacima nisu sadržane u samoj strukturisamoj strukturi
• Omogućeni su proizvoljni upitiOmogućeni su proizvoljni upiti
• Najšire prihvaćen model podatakaNajšire prihvaćen model podataka
Objektni model podatakaObjektni model podataka
DBDBII
interniinternimehanizmimehanizmi
OO
Objektni model - osobineObjektni model - osobine
• Mehanizmi održavanja podataka Mehanizmi održavanja podataka sadržani u samoj bazi podatakasadržani u samoj bazi podataka
• Nativno se nadovezuje na OOP pjNativno se nadovezuje na OOP pj
• NeefikasanNeefikasan
• Nedovoljno prihvaćenNedovoljno prihvaćen
Relacioni model podatakaRelacioni model podataka
deo IIdeo II
Tabela baze podatakaTabela baze podataka
Redni broj Ime Prezime Adresa Br. Telefona1 Petar Petrović Bul. Oslobođenja 50 (021) 555 5472 Milica Marić Ribnikareva 28 (021) 342 7533 Ana Vojnić Masarikova 55/11 (021) 873 2464 Dragan Toroman Programerska 666 (013) 283 356
kolonakolona
redred
primarni ključprimarni ključ
poljepolje
Tipovi podatakaTipovi podataka
• Tip i opsegTip i opseg
• INTEGER, FLOAT, INTEGER, FLOAT, [DECIMAL][DECIMAL]
• CHAR, VARCHAR, MEMOCHAR, VARCHAR, MEMO
• [BOOLEAN][BOOLEAN]
• Specijalna Specijalna NULL NULL vrednostvrednost
Pristup poljimaPristup poljima
• Identifikacija pojedinačnog polja:Identifikacija pojedinačnog polja:
1.1. Tabela u kojoj se nalaziTabela u kojoj se nalazi
2.2. Vrednost primarnog ključa vrsteVrednost primarnog ključa vrste
3.3. KolonaKolona (atribut) (atribut)
• Ne na osnovu rednog broja vrste!Ne na osnovu rednog broja vrste!
Normalne formeNormalne forme
• Definišu kako izgleda i funkcioniše Definišu kako izgleda i funkcioniše relaciona baza podatakarelaciona baza podataka
• Sprečavaju pojavu redundancijeSprečavaju pojavu redundancije
• 12 pravila i 3 osnovne normalne forme12 pravila i 3 osnovne normalne forme
Relacije među tabelama, 1:1Relacije među tabelama, 1:1
… Oznaka dobavljača Oznaka kupca… 364 …… … 527
Oznaka dobavljača Naziv Sedište364 AB Import Beograd… … …
Oznaka kupca Ime Kredit527 Pera Perić 1050,20… … …
Tabela transakcija - Tabela transakcija - mastermaster
Tabela dobavljača - Tabela dobavljača - detaildetail
Tabela kupaca - Tabela kupaca - detaildetailPKPK
PKPK
FKFK FKFK
Datum Dobavljač Porudžbenica br2. 10. 2003. Frizer-komerc 505… … …
Relacije među tabelama, 1:mRelacije među tabelama, 1:m
Tabela inventara - Tabela inventara - detaildetail
Tabela porudžbi - Tabela porudžbi - mastermaster
Porudžbenica br Stavka br Naziv Količina505 1 Makaze 3505 2 Češalj 6505 3 Žileti 12… … … …
PKPK
FKFK
Operacije nad bazomOperacije nad bazom
• Upiti:Upiti:
• Insert/Edit/DeleteInsert/Edit/Delete
• AdministracijaAdministracija (korisnička prava, (korisnička prava, backupbackup itd) itd)
• Filtracija podatakaFiltracija podataka
Integritet baze podatakaIntegritet baze podataka
• Integritet domena poljaIntegritet domena polja
• Integritet primarnog/unikatnog ključaIntegritet primarnog/unikatnog ključa
• Referencijalni integritetReferencijalni integritet
• Proceduralni integritet podatakaProceduralni integritet podataka
• Triggers, Stored proceduresTriggers, Stored procedures
Pregledi Pregledi (views)(views)
• Ekstrahovani podaci iz tabelaEkstrahovani podaci iz tabela
• Logička veza između tabela i pregledaLogička veza između tabela i pregleda
• Relaciona algebraRelaciona algebra
Relaciona algebraRelaciona algebra
• Projekcija (po kolonama)Projekcija (po kolonama)
• Selekcija (po redovima)Selekcija (po redovima)
• Unija tabelaUnija tabela
• Presek tabelaPresek tabela
• Razlika tabelaRazlika tabela
• Skupovne:Skupovne:
• Osnovne:Osnovne:
Spajanje tabela Spajanje tabela (join)(join)
Ime Prezime ZaduženjeAleksandar Stojković 1Milorad Pavić 2Nikola Nikolić 3Irena Miljković 9
Zaduženje Opis1 Poslovođa2 Direktor3 Radnik4 Pripravnik
Tabela zaposlenihTabela zaposlenih Tabela zaduženjaTabela zaduženja
Ime Prezime Zaduženje OpisAleksandar Stojković 1 PoslovođaMilorad Pavić 2 DirektorNikola Nikolić 3 Radnik
Natural join - zaposleni + zaduženjaNatural join - zaposleni + zaduženja
Upravljanje bazom podatakaUpravljanje bazom podataka
• Upravljanje skript jezikomUpravljanje skript jezikom
• Upravljanje pomoUpravljanje pomoćnim alatimaćnim alatima
• Korišćenjem iz klijent aplikacija:Korišćenjem iz klijent aplikacija:
• Database driverDatabase driver-om-om (ODBC, JDBC) (ODBC, JDBC)
• Standardnim tehnologijamaStandardnim tehnologijama (ADO...) (ADO...)
Upravljanje skript jezikomUpravljanje skript jezikom
• Data Definition LanguageData Definition Language
• Data Manipulation LanguageData Manipulation Language
• AdministrationAdministration
Structured Query LanguageStructured Query Language
Structured Query Structured Query LanguageLanguage
deo IIIdeo III
SQLSQL
• Deklarativni skript jezikDeklarativni skript jezik
• Prvobitno korisnički-orijentisanPrvobitno korisnički-orijentisan
• DDL, DML karakteristikeDDL, DML karakteristike
• Široko prihvaćen i standardizovanŠiroko prihvaćen i standardizovan
ProjekcijaProjekcija
• SELECT <polja> FROM <tabela>SELECT <polja> FROM <tabela>
• SELECT * FROM <tabela>SELECT * FROM <tabela>
• Primer: Primer:
SELECT ime, prezime, adresa, telefon SELECT ime, prezime, adresa, telefon FROM imenikFROM imenik
SelekcijaSelekcija
• SELECT <polja> FROM <tabela> SELECT <polja> FROM <tabela> WHERE <uslov>WHERE <uslov>
• Primer: Primer:
SELECT ime, prezime, telefon FROM SELECT ime, prezime, telefon FROM imenik WHERE grad = “Valjevo”imenik WHERE grad = “Valjevo”
Sortirani prikazSortirani prikaz
• SELECT <polja> FROM <tabela> SELECT <polja> FROM <tabela> ORDER BY <polje> [ASC | DESC]ORDER BY <polje> [ASC | DESC]
• Primer: Primer:
SELECT ime, prezime, telefon FROM SELECT ime, prezime, telefon FROM imenik ORDER BY prezime ASC, ime imenik ORDER BY prezime ASC, ime ASCASC
Spajanje Spajanje (join)(join)
• SELECT <polja> FROM <tabela1> SELECT <polja> FROM <tabela1> LEFT JOIN <tabela2> LEFT JOIN <tabela2> ON <polje1> = <polje2>ON <polje1> = <polje2>
• Primer: SELECT ime, prezime, Primer: SELECT ime, prezime, zaduzenje FROM zaposleni LEFT JOIN zaduzenje FROM zaposleni LEFT JOIN zaduzenja ON zaposleni.zaduzenje = zaduzenja ON zaposleni.zaduzenje = zaduzenja.zaduzenjezaduzenja.zaduzenje
Dodavanje redovaDodavanje redova
• INSERT INTO <tabela> (<kolone>) INSERT INTO <tabela> (<kolone>) VALUES (<vrednosti>)VALUES (<vrednosti>)
• Primer:Primer:
INSERT INTO imenik (ime, prezime, INSERT INTO imenik (ime, prezime, telefon) VALUES (pera, peric, “011/512-telefon) VALUES (pera, peric, “011/512-128”)128”)
Brisanje redovaBrisanje redova
• DELETE FROM <tabela>DELETE FROM <tabela>WHERE <uslov>WHERE <uslov>
• Primer:Primer:
DELETE FROM imenik WHERE DELETE FROM imenik WHERE rednibroj = 155rednibroj = 155
Osnovne operacijeOsnovne operacije
• CREATE DATABASECREATE DATABASE
• CREATE TABLECREATE TABLE
• CREATE VIEWCREATE VIEW
• DROP TABLE ...DROP TABLE ...
TransakcijeTransakcije
• Zaštićene izmene na sadržaju bazeZaštićene izmene na sadržaju baze
• SET TRANSACTION <ime>SET TRANSACTION <ime>
• COMMIT TRANSACTION <ime>COMMIT TRANSACTION <ime>
• ROLLBACK TRANSACTION <ime>ROLLBACK TRANSACTION <ime>
Relational DatabaseRelational DatabaseManagement SystemManagement System
deo IVdeo IV
SURBP SURBP (RDBMS)(RDBMS)
• Serverski sistem Serverski sistem (multiuser environment)(multiuser environment)
• DistribuiranostDistribuiranost
• Database driver Database driver (ODBC, JDBC)(ODBC, JDBC)
• Tehnologije pristupa (BDE, ADO, DAO, Tehnologije pristupa (BDE, ADO, DAO, Microsoft JET)Microsoft JET)
AdministracijaAdministracija
• Administrator (kreator i vlasnik)Administrator (kreator i vlasnik)
• KorisniciKorisnici
• Uloge Uloge (roles)(roles)
• Backup, Duplication, CompactingBackup, Duplication, Compacting
Komercijalni RDBMSKomercijalni RDBMS
• Microsoft SQL ServerMicrosoft SQL Server
• Oracle’s OracleOracle’s Oracle
• IBM DB2IBM DB2
• InterbaseInterbase
• Informix-SQLInformix-SQL
BesplatniBesplatni RDBMS RDBMS
• Open InterbaseOpen Interbase
• MySQLMySQL
• PostgreSQLPostgreSQL
• Berkley DBBerkley DB
Kako početiKako početi
• Microsoft Visual Basic + MS ExcelMicrosoft Visual Basic + MS Excel
• MSDNMSDN (SQL, ADO, DAO...) (SQL, ADO, DAO...)
• Borland Delphi + InterbaseBorland Delphi + Interbase
• Interbase dokumentacijaInterbase dokumentacija
Relacione baze Relacione baze podatakapodataka
i SQLi SQL