Relacione baze podataka Microsoft Access 200 3 SQL Server

Post on 03-Jan-2016

90 views 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

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