relacione baze podataka microsoft access 200 3 sql server

53
Relacione baze podataka Microsoft Access 2003 SQL Server Miljan G. Jeremić

Upload: bernadine-wolf

Post on 03-Jan-2016

97 views

Category:

Documents


6 download

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 Presentation

TRANSCRIPT

Page 1: Relacione baze podataka Microsoft Access 200 3 SQL Server

Relacione baze podatakaMicrosoft Access 2003

SQL Server

Miljan G. Jeremić

Page 2: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 3: Relacione baze podataka Microsoft Access 200 3 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

Page 4: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 5: Relacione baze podataka Microsoft Access 200 3 SQL Server

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)

Page 6: Relacione baze podataka Microsoft Access 200 3 SQL Server

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.

Page 7: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 8: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 9: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 10: Relacione baze podataka Microsoft Access 200 3 SQL Server

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]

Page 11: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 12: Relacione baze podataka Microsoft Access 200 3 SQL Server

Relacione baze Relacione baze podatakapodataka

i SQLi SQL

Page 13: Relacione baze podataka Microsoft Access 200 3 SQL Server

Metode organizacije Metode organizacije podatakapodataka

u informacionom sistemuu informacionom sistemu

deo Ideo I

Page 14: Relacione baze podataka Microsoft Access 200 3 SQL Server

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.

Page 15: Relacione baze podataka Microsoft Access 200 3 SQL Server

Hijerarhijski model podatakaHijerarhijski model podataka

AA1:m1:m

Nivo

Nivo

Specifičnost

Specifičnost

Page 16: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 17: Relacione baze podataka Microsoft Access 200 3 SQL Server

Mrežni model podatakaMrežni model podataka

AA1:m, m:1,1:m, m:1,

m:nm:n

Nivo

Nivo

Specifičnost

Specifičnost

Page 18: Relacione baze podataka Microsoft Access 200 3 SQL Server

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)

Page 19: Relacione baze podataka Microsoft Access 200 3 SQL Server

Relacioni model podatakaRelacioni model podataka

MM

SSSS

1:m, m:1,1:m, m:1,m:nm:n

Page 20: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 21: Relacione baze podataka Microsoft Access 200 3 SQL Server

Objektni model podatakaObjektni model podataka

DBDBII

interniinternimehanizmimehanizmi

OO

Page 22: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 23: Relacione baze podataka Microsoft Access 200 3 SQL Server

Relacioni model podatakaRelacioni model podataka

deo IIdeo II

Page 24: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 25: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 26: Relacione baze podataka Microsoft Access 200 3 SQL Server

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!

Page 27: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 28: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 29: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 30: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 31: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 32: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 33: Relacione baze podataka Microsoft Access 200 3 SQL Server

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:

Page 34: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 35: Relacione baze podataka Microsoft Access 200 3 SQL Server

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...)

Page 36: Relacione baze podataka Microsoft Access 200 3 SQL Server

Upravljanje skript jezikomUpravljanje skript jezikom

• Data Definition LanguageData Definition Language

• Data Manipulation LanguageData Manipulation Language

• AdministrationAdministration

Structured Query LanguageStructured Query Language

Page 37: Relacione baze podataka Microsoft Access 200 3 SQL Server

Structured Query Structured Query LanguageLanguage

deo IIIdeo III

Page 38: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 39: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 40: Relacione baze podataka Microsoft Access 200 3 SQL Server

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”

Page 41: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 42: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 43: Relacione baze podataka Microsoft Access 200 3 SQL Server

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”)

Page 44: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 45: Relacione baze podataka Microsoft Access 200 3 SQL Server

Osnovne operacijeOsnovne operacije

• CREATE DATABASECREATE DATABASE

• CREATE TABLECREATE TABLE

• CREATE VIEWCREATE VIEW

• DROP TABLE ...DROP TABLE ...

Page 46: Relacione baze podataka Microsoft Access 200 3 SQL Server

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>

Page 47: Relacione baze podataka Microsoft Access 200 3 SQL Server

Relational DatabaseRelational DatabaseManagement SystemManagement System

deo IVdeo IV

Page 48: Relacione baze podataka Microsoft Access 200 3 SQL Server

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)

Page 49: Relacione baze podataka Microsoft Access 200 3 SQL Server

AdministracijaAdministracija

• Administrator (kreator i vlasnik)Administrator (kreator i vlasnik)

• KorisniciKorisnici

• Uloge Uloge (roles)(roles)

• Backup, Duplication, CompactingBackup, Duplication, Compacting

Page 50: Relacione baze podataka Microsoft Access 200 3 SQL Server

Komercijalni RDBMSKomercijalni RDBMS

• Microsoft SQL ServerMicrosoft SQL Server

• Oracle’s OracleOracle’s Oracle

• IBM DB2IBM DB2

• InterbaseInterbase

• Informix-SQLInformix-SQL

Page 51: Relacione baze podataka Microsoft Access 200 3 SQL Server

BesplatniBesplatni RDBMS RDBMS

• Open InterbaseOpen Interbase

• MySQLMySQL

• PostgreSQLPostgreSQL

• Berkley DBBerkley DB

Page 52: Relacione baze podataka Microsoft Access 200 3 SQL Server

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

Page 53: Relacione baze podataka Microsoft Access 200 3 SQL Server

Relacione baze Relacione baze podatakapodataka

i SQLi SQL