BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop...
Transcript of BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop...
![Page 1: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/1.jpg)
BAZE PODATAKABAZE PODATAKA i i RAZVOJ APLIKACIJA RAZVOJ APLIKACIJA
![Page 2: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/2.jpg)
2
HTML Klijent
Web ServerHTTP
Desktopaplikacija
Aplikacioni server
Bazapodataka
RMI-IIOPDCOM
ASP JSP Servlet
HTML / DHTML / XML
BC4J
Procedurebaze podataka
Web servis
COM
EJB .NET
Arhitektura za razvoj aplikacija nad bazom podataka
![Page 3: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/3.jpg)
3
Bazapodataka
APLIKACIJA
Procesor baze podataka
SQL ili poziv procedure
SUBP
SUBP Interfejsi
SQL-klijent
SQL-server
Call LevelInterface
EmbeddedSQL
SQL-klijentservisi
Udaljeni pristup
SQL ili poziv procedure
SUBP interfejsi
Lokalni pristup
Komunikacija programskih sistema sa bazom podataka
![Page 4: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/4.jpg)
4
Razlikujemo:
1. Distribuirane baze i
2. Klijent-server okruženje (razne vrste)
Distribuirane baze – ostvarivanje transparentnosti d istribucije
• Razne vrste Middleware: složenih komponenti za komunikaciju sa distribuiranim objektima
- CORBA
- .NET
- EJB
Klijent-server okruženja:
• Ostvarivanje konekcije sa BP
• Call-Level Interface (CLI)
- ODBC
- ADO
- JDBC
- ADO.NET
![Page 5: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/5.jpg)
5
1. Open Database Connectivity 1. Open Database Connectivity (ODBC) (ODBC)
![Page 6: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/6.jpg)
6
� ODBC predstavlja biblioteku standardizovanih funkcija(funkcija koje imaju tačno definisano ime, ulazne i izlazne argumente) koje su na raspolaganjuprogrameru da iz programskog koda pristupa bazamapodataka.
� ODBC je API za pristup različitim, heterogenim bazamapodataka bez izmene izvornog programskog koda.
Šta je ODBC?ODBC
![Page 7: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/7.jpg)
7
Aplikacija
ORACLE
SQL izvori podataka
ODBCInterface
ODBC Driver Manager
SQL ServerODBC Driver
ORACLEODBC Driver
...ODBC Driver
SQL Server ...
ODBC arhitektura
ODBC
![Page 8: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/8.jpg)
8
2. ActiveX2. ActiveX ®® Data Objects Data Objects (ADO)(ADO)
![Page 9: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/9.jpg)
9
Aplikacija
SQL podaci
ADO
OLE DB
ODBC
Ne-SQL podaciPodaci na
Mainframe-u
ADO arhitektura
ADO
![Page 10: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/10.jpg)
10
� Connection . Predstavlja jedinstvenu sesiju ka izvoru podataka. Nad ovim objektom se može pozvati metoda Execute() koja direktno izvršava zadatu SQL naredbu.
� Command . Ovaj objekat služi za pripremanje i izvršavanje SQL naredbe koja može biti parametrizovana. Objekat Commandposeduje kolekciju Parameters koja sadrži jedan ili više parametara koji su atributi klase Parameter. Vrednosti ovih atributa zadaju se u toku izvršenja programa.
� Recordset . Predstavlja objekat ADO komponente koji sadrži rezultate SELECT upita nad bazom podataka i omogućava manipulaciju sa podacima redova iz rezultata.
Osnovni objekti ADO komponente su:ADO
![Page 11: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/11.jpg)
11
Osnovne karakteristike ADO komponente
'*** Deklaracija promenljivihDim objKonekcija As ADODB.Connection
Dim strKonekcija As String
'*** Instanciranje objekta konkecijeSet objKonekcija = New ADODB.Connection
'*** Postavljanje parametara potrebnih za otvaranje konek cijestrKonekcija="Provider=sqloledb;DataSource=DBServer ;Initial Catalog=Test;User Id=sa;Password=sa;"
'*** Otvaranje konekcijeobjKonekcija.Open strKonekcija
ADO
![Page 12: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/12.jpg)
12
Dim objKomandaRacun As ADODB.Command
Set objKomandaRacun = New ADODB.Command
objKomandaRacun.ActiveConnection = objKonekcija
objKomandaRacun.CommandType = adCmdText
objKomandaRacun.CommandText="UPDATE Racun SETUkupnaVrednost=" &
mUkupnaVrednost & " WHERE BrojRacuna=" & brojRacuna
'*** Izvršenje komandeobjKomandaRacun.Execute
ADO
![Page 13: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/13.jpg)
13
'*** Instanciranje i otvaranje recordset-aDim rstRacun As ADODB.Recordset
Set rstRacun = New ADODB.Recordset
Set rstRacun.ActiveConnection = objKonekcija
rstRacun.CursorLocation = adUseClient
rstRacun.CursorType = adOpenStatic
rstRacun.LockType = adLockOptimistic
SQLupit = "SELECT * FROM Racun"
rstRacun.Open SQLupit, , , , adCmdText
Atribut CursorType uzima jednu od četiri mogu će vrednostiadOpenDynamic, adOpenKeySet, adOpenStatic, adOpenForwardOnly
ADO
![Page 14: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/14.jpg)
14
Za pozicioniranje u rekordsetu koriste se metode:MoveFirst, MoveLast, MoveNext i MovePrevious.
Za pristup vrednostima polja trenutnog rekorda u rekordsetukoristi se kolekcija Fields.
rstRacun.MoveFirst
While Not rstRacun.EOF
brojRacuna = rstRacun.Fields(“BrojRacuna”).Value
datum = rstRacun.Fields(“Datum”).Value
rstRacun.MoveNext
Wend
ADO
![Page 15: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/15.jpg)
15
Parametrizovane naredbe
� ADO objektni model podr žava izvršavanje parametrizovanihSQL naredbi.
� Da bi se ozna čilo mesto gde treba da se ubaci vrednostparametra u vreme izvršenja naredbe koristi se marker parametra (?).
� Za definisanje parametra koristi se objekat Parameter.
� Metoda CreateParameter() objekta Command kao argumenteima naziv parametra, tip podatka polja tabele, tip paramet ra(ulazni ili izlazni), kao i opciono vrednost parametra.
� Da bi se naglasilo da se radi o parametrizovanoj naredbiatributu Prepared se dodeljuje vrednost True.
ADO
![Page 16: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/16.jpg)
16
Parametrizovane naredbe - primerDim brojRacuna As Long
Dim objKomandaRacun As ADODB.Command
Dim param As ADODB.Parameter
Set objKomandaRacun = New ADODB.Command
objKomandaRacun.ActiveConnection = objKonekcija
objKomandaRacun.CommandText="DELETE FROM Racun WHERE
BrojRacuna = ?"
objKomandaRacun.CommandType = adCmdText
objKomandaRacun.Prepared = True
Set param= objKomandaRacun.CreateParameter("pBrojRac una",adBigInt, adParamInput)
objKomandaRacun.Parameters.Append param
brojRacuna=893
objKomandaRacun.Parameters("pBrojRacuna").Value=bro jRacuna
objKomandaRacun.Execute
ADO
![Page 17: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/17.jpg)
17
Poziv procedura baze podataka - primer
Set objKomandaRacun = New ADODB.Command
objKomandaRacun.ActiveConnection = objKonekcija
objKomandaRacun.CommandText = “IzracunajIznos”
objKomandaRacun.CommandType = adCmdStoredProc
Set param= objKomandaRacun.CreateParameter("pBrojRac una",
adBigInt, adParamInput)
objKomandaRacun.Parameters.Append param
objKomandaRacun.Parameters("pBrojRacuna").Value = 75 0
Set param= objKomandaRacun.CreateParameter("pIznos",
adCurrency, adParamOutput)
objKomandaRacun.Parameters.Append param
objKomandaRacun.Execute
ADO
![Page 18: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/18.jpg)
18
Ažuriranje tabele baze podataka prekorezultuju ćeg seta - primer
Set rstRacun = New ADODB.Recordset
Set rstRacun.ActiveConnection = objKonekcija
rstRacun.CursorLocation = adUseClient
rstRacun.CursorType = adOpenStatic
rstRacun.LockType = adLockOptimistic
rstRacun.Open "SELECT * FROM Racun", , , , adCmdText
rstRacun.AddNew
rstRacun("BrojRacuna") = brojRacuna
rstRacun("Datum") = Datum
rstRacun("NazivKupca") = NazivKupca
rstRacun("Napomena") = Napomena
rstRacun.Update
ADO
![Page 19: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/19.jpg)
19
Upravljanje transakcijama
'*** Otpo činjanje transakcijeobjKonekcija.BeginTrans
... izvršavanje SQL naredbi ...
'*** Potvr ñivanje transakcijeobjKonekcija.CommitTrans
ili
'*** Poništavanje transakcijeobjKonekcija.RollbackTrans
ADO
![Page 20: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/20.jpg)
20
Perzistentnost rekord seta
'*** Snimanje sadržaja rekordseta u XML formaturstSporniRacuni.Save"C:\Temp\SporniRacuni.xml", adPe rsistXML
'*** Preuzimanje sadržaja XML datoteke u novi rekordsetrstRacuni.Open "C:\Temp\SporniRacuni.xml"
ADO
![Page 21: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/21.jpg)
21
3. Java Database Connectivity 3. Java Database Connectivity (JDBC) (JDBC)
![Page 22: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/22.jpg)
22
� JDBC (Java Database Connectivity) je standardni Java interfejs za povezivanje Jave sa relacionim bazama podataka definisan od strane Sun Microsystems.
� JDBC omogućava Java aplikacijama, apletimai servletima pristup bazama podataka kao i drugim tabelaranim izvorima podataka.
Šta je JDBC?JDBC
![Page 23: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/23.jpg)
23
JDBC arhitektura
JDBC
Java Application
JDBC Driver Manager
JDBCAPI
JDBC-NetDriver
JDBC-ODBCBridge Driver
ODBC Drivers
Nativ-APIdriver
(party-Java)
Nativ-protocoldriver
JDBCMiddleware
ProtocolOdgovarajuci SUBP protokoli
AlternativeimplementacijeJDBC drajvera
![Page 24: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/24.jpg)
24
'*** Registrovanje ORACLE drajveraDriverManager.registerDriver(new
oracle.jdbc.driver.OracleDriver());
'*** Uspostavljanje konekcije sa bazom podatakaConnection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@zmaj:1521:baza",
"korisnik","lozinka");
'*** Kreiranje naredbeStatement stmt = conn.createStatement();
'*** Izvršenje naredbestmt.executeUpdate("UPDATE Racun SET ukupanIznos="+ lUk Izn
+" WHERE brojRacuna = "+ broj);
JDBC
![Page 25: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/25.jpg)
25
'*** Rad sa rezultuju ćim setomResultSet rs = stmt.executeQuery("SELECT sifraProizvod a,
kolicina FROM StavkaRacuna WHERE brojRacuna = “ + broj);
while(rs.next())
{
long lSifPrz = rs.getLong(1);
BigDecimal lKol = rs.getDouble(2);
}
JDBC
![Page 26: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/26.jpg)
26
'*** Parametrizovane naredbePreparedStatement pst = conn.prepareStatement(
"INSERT INTO StavkaRacuna (brojRacuna, rbStavke,sifraProizvoda, kolicina) VALUES(?,?,?,?)");
pst.setBigDecimal(1, new BigDecimal(10);
pst.setLong(2,(long)1);
pst.setLong(3,(long)55);
pst.setDouble(4,(double)3*2.5);
pst.executeUpdate();
'*** Poziv procedura baze podatakaCallableStatement cstmt =
con.prepareCall("{call izracunajIznos(?, ?)}");
cstmt.registerOutParameter(1, java.sql.Types.TINYIN T);
cstmt.registerOutParameter(2, java.sql.Types.DECIMA L);
ResultSet rs = cstmt.executeQuery();
JDBC
![Page 27: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/27.jpg)
27
'*** Ažuriranje tabele baze podataka preko rezultuju ćeg setaStatement stmt = con.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet rs = executeQuery(“SELECT brojaRacuna, datum ,nazivKupca, ukupanIznos as iznos FROM Racun”);
rs.moveToInsertRow(); rs.updateInt("brojRacuna", 15) ;rs.updateDate("datum”,’2003-04-01");rs.updateString("nazivKupca", "Mica");rs.updateFloat("iznos", 10.50f);
rs.insertRow();
'*** Upravljanje transakcijamaconn.setAutoCommit(false);
...
// naredbe
...
conn.commit(); // ili conn.rollback();
JDBC
![Page 28: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/28.jpg)
28
4. ADO.NET
![Page 29: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/29.jpg)
29
ADO.NET
� ADO.NET je dizajniran za koriš ćenje kako u intranet tako i u Internet aplikacijama
� Najprimetnija razlika je izme ñu objekata ADO Recordset-a i .NET DataSet-a
� Recordset sadrži rezultat jednog upita i naj češće održavaotvorenu konekciju ka bazi podataka nad kojom je izvršenupit
� DataSet može sadržati rezultate više upita, čak iz razli čitihizvora podataka
� DataSet je prakti čno memorijski keš za podatke izrazli čitih izvora
ADO.NET
![Page 30: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/30.jpg)
30
ADO.NETADO.NET
DBMS
XMLDokument
.NET Managed Code
.NET Provider
Connection
Command
DataAdapter
Client
DataSet
DataTables
DataRelation
ADO.NET arhitektura
![Page 31: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/31.jpg)
31
ADO.NET – primer – str. 1
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
...
ADO.NET
![Page 32: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/32.jpg)
32
ADO.NET – prime r – str. 2
...
namespace DemoRezervacija
{
/// <summary>
/// Summary description for WebForm1.
/// </summary>
public class Rezervacija : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox txt_Hote lID;
protected System.Web.UI.WebControls.TextBox txt_Datu mOd;
protected System.Web.UI.WebControls.TextBox txt_Datu mDo;
protected System.Web.UI.WebControls.TextBox txt_TipS obe;
protected System.Web.UI.WebControls.TextBox txt_Broj Osoba;
protected System.Web.UI.WebControls.LinkButton LBtn_ Dodaj;
protected System.Web.UI.HtmlControls.HtmlGenericCon trol Message;
...
ADO.NET
![Page 33: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/33.jpg)
33
ADO.NET – primer – str. 3
...
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: This call is required by the ASP.NET We b Form Designer.
//
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.LBtn_Dodaj.Click+=new System.EventHandler(this.LBtn_Dodaj_Click);
this.Load += new System.EventHandler(this.Page_Load );
}
#endregion
...
ADO.NET
![Page 34: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/34.jpg)
34
ADO.NET – primer – str. 4
...
private void LBtn_Dodaj_Click ( object sender,System.EventArgs e )
{Message.InnerHtml = "";
string connstring = "data source=NS1;initial catalog=SrX_db;persist security info=False;user id=sa;password=sa;workstation id=SMAK;packet size=4096";
SqlConnection conn = new SqlConnection(connstring);
...
ADO.NET
![Page 35: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/35.jpg)
35
ADO.NET – primer – str. 5...
SqlCommand command = new SqlCommand("Dodaj_Rezervaci ju", conn);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@DatumOd",
System.Data.SqlDbType.SmallDateTime, 4));
command.Parameters["@DatumOd"].Value = txt_DatumOd.T ext;
command.Parameters.Add(new SqlParameter("@DatumDo",
System.Data.SqlDbType.SmallDateTime, 4));
command.Parameters["@DatumDo"].Value = txt_DatumDo.T ext;
command.Parameters.Add(new SqlParameter("@HotelID",
System.Data.SqlDbType.Int, 4));
command.Parameters["@HotelID"].Value = txt_HotelID.T ext;
command.Parameters.Add(new SqlParameter("@TipSobe",
System.Data.SqlDbType.Int, 4));
command.Parameters["@TipSobe"].Value = txt_TipSobe.T ext;
command.Parameters.Add(new SqlParameter("@BrOsoba",
System.Data.SqlDbType.Int, 4));
command.Parameters["@BrOsoba"].Value = txt_BrojOsoba .Text;
...
ADO.NET
![Page 36: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/36.jpg)
36
ADO.NET – primer – str. 6
...
command.Connection.Open();
SqlTransaction trans;
trans = command.Connection.BeginTransaction();
command.Transaction = trans;
...
ADO.NET
![Page 37: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/37.jpg)
37
ADO.NET – primer – str. 7...
try
{
command.ExecuteNonQuery();
trans.Commit();
Message.InnerHtml = "<b>Rezervacija je dodata!</b>";
}
catch (SqlException sqlex)
{
if (sqlex.Number == 2627)
Message.InnerHtml="GRESKA: Zapis vec postoji sa timprimarnim kljucem!";
Message.Style["color"] = "red";
trans.Rollback();
}
...
ADO.NET
![Page 38: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/38.jpg)
38
ADO.NET – primer – str. 8
...catch (Exception){
Message.InnerHtml="GRESKA: Ne mozesdodati rekord, proveri da li si ispravnouneo podatke!";
Message.Style["color"] = "red";trans.Rollback();
}command.Connection.Close();
}}
}
ADO.NET
![Page 39: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/39.jpg)
39
� Ada, C, Cobol, Fortran, Pascal, PL/I
� Naredbe programskog jezika koje se koriste, tzv. "jezika domaćina" i SQL su "pomešane“
� Kombinovanje naredbi jezika treće generacije i SQL-a omogućava, s jedne strane korišćenje proceduralnih karakteristika jezika treće generacije (sekvenca, selekcija, iteracija, procedura, podprogram), a sa druge strane pristup podacima u bazi podataka pomoću SQL-a.
SQL unutar klasi čnih programskih jezika:Embedded SQL
![Page 40: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/40.jpg)
40
� Istovremenu obradu podataka u bazi podataka i podataka u datotekama operativnog sistema
� Korišćenje rekurzivnih podprograma, najčešće za obradu hijerarhijskih ili mrežnih struktura podataka (organizaciona struktura, sastavnica proizvoda, itd.)
� Korišćenje dinamičkog SQL-a (SQL naredbe se definišu u vreme izvršavanja programa, a ne u vreme prevoñenja)
� Korišćenje DDL (Data Definition Language) naredbi za kreiranje i izmenu objekata baze podataka
Programi pisani pomo ću ugra ñenog SQL-a omogu ćavaju: :
Embedded SQL
![Page 41: BAZE PODATAKA i RAZVOJ APLIKACIJA - · PDF file2 HTML Klijent Web Server HTTP Desktop aplikacija Aplikacioni server Baza podataka RMI-IIOP DCOM ASP JSP Servlet HTML / DHTML / XML BC4J](https://reader031.fdocuments.net/reader031/viewer/2022020108/5a7a54f37f8b9a27638c7485/html5/thumbnails/41.jpg)
41
Embedded SQL
SQL bibliotekafunkcija
Jezik domacin+
SQL naredbePretprocesor Izvršni program
(aplikacija)
Jezik domacin+
Pozivi funkcija
Prevodilacjezika
domacina
Baza podataka
Sintaksna i semantickaprovera
Procesiranje aplikacinog programa sa SQL-om unutar programskih jezika