Professional Documents
Culture Documents
Data Set Data Relation
Data Set Data Relation
Data Set Data Relation
Kragujevac
SEMINARSKI RAD
Predmet:
PROJEKTOVANJE APLIKACIJA
NAD BAZAMA PODATAKA
Profesor:
Dr Zoran Mirovi
Sadraj
Student:
Jovan Verbi 116/2013
1. ARHITEKTURA APLIKACIJE..................................................................................................3
1.1 ARHITEKTURA APLIKACIJE U .NET-U..........................................................................3
1.2 Presentation Layer (PLA/GUI)..............................................................................................5
1.3 Business Logic Layer (BLL).................................................................................................6
1.4 Data Access Layer.................................................................................................................7
1.5 Data Base (DB)......................................................................................................................8
2. UVOD U ADO.NET....................................................................................................................9
2.1 ADO.NET..............................................................................................................................9
2.2 Pregled ADO.Net komponenti.............................................................................................10
2.3 Konektovani pristup bazi podataka.....................................................................................12
2.3 Diskonektovani pristup bazi podataka.................................................................................13
3. DATA BINDING.......................................................................................................................14
3.1 Data binding (osnove)..........................................................................................................14
3.2 ta reava i zato se koristi Data binding ?.........................................................................14
3.3 Binding source kontrola.......................................................................................................15
4. DATA SET.................................................................................................................................18
4.1 Datasetobjekt: uopsteno.......................................................................................................19
4.4 Uspostavljanje relacija izmedju tabela u datasetu...............................................................20
4.5 Dodavanje row-a u tabelu (ADD)........................................................................................21
4.6 Izmena postojeceg row-a u tabeli (UPDATE).....................................................................22
4.7 Brisanje row-a iz tabele (DELETE)....................................................................................22
4.8 Slanje dataseta nazad u bazu podataka (UPDATE).............................................................23
5. DATA RELATION.....................................................................................................................25
5.2 Konstruktori.........................................................................................................................25
5.3 Svojstva................................................................................................................................25
5.4 Metode.................................................................................................................................26
6. LITERATURA...........................................................................................................................27
1
Kragujevac 2016
1. ARHITEKTURA APLIKACIJE
1.1 ARHITEKTURA APLIKACIJE U .NET-U
P
B
D
LL
A
2
Kragujevac 2016
3
Kragujevac 2016
4
Kragujevac 2016
Ovaj sloj je takoe poznat kao i sloj domena koji u softverskom inenjeringu predstavlja praksu
kreiranja reenja po delovima. On sprovodi poslovnu funkcionalnost aplikacije, tj. ona
predstavlja samu logiku aplikacije, klase sa funkcijama, kako e se podaci obraivati.
Jednostavnije reeno kreiranja klasa u zavisnosti od entiteta ili kreiranje deljenje objekata na
procese. Ovaj sloj ne sadri podatke ali sadri metode koje obrauju podatke koji se dopremaju
sa Presentation layera ili iz data access layera. On poseduje logiku za procesovanje, pretvaranje,
upravljanje podacima kao i uvanje postojanosti podataka. Kada se uitaju podaci iz
Presentacionog sloja alju se ovom layeru kako bi bili obraeni.
5
Kragujevac 2016
DAL (Data Access Layer) ovaj sloj obezbeuje pristup ekstremnim sistemima kao to je baza
podataka. Primarna .NET tehnologija koja je ovde ukljuena je ADO .NET. Prilikom
kompunikacije sa bazom podataka, prikuplja samo potrebne informacije za obavljanje zadataka.
On je zaduen za konverziju podataka koji se uzimaju iz baze u vidu reda ili polja tabela i
pretvara ih u podatke koje mi moemo koristiti. Kreiranjem metoda mi moemo da poyovemo
bayu i da jasno definiemo sintaksom koje podatke da nam vrati iz baze. Takoe istim moemo i
da unosimo podatke u bazu. Kreiranjem metoda i klasa, olakan nam je posao jer iza toga lei
kompleksnost ovog sloja. Ranijih godina programeri su kreirali gotove standardne klase i metode
i spakovali ih u ADO.net. Ovaj sloj je u modernom programiranju dizajniran tako da se sa bilo
kojim tipom baze lako me povezati i manipulisati podacima.
7
Kragujevac 2016
2. UVOD U ADO.NET
2.1 ADO.NET
ADO.NET je skup klasa za rad sa podacima. Snabdevai podataka su klase koje
obezbeuju mogunost konektovanja na izvor podataka. Osnovni snabdevai podataka su SQL
Server snabdevai podataka i OLE DB snabdevai podataka. Pri radu u ADO.NET okruenju
koriste se prostori imena System.Data, System.Data.SqlClient, System.Data.OleDb,
System.Data. SqlTypes, System.Xml. Prvi model pristupa podacima, DAO je napravljen za
lokalne baze podataka sa ugraenim Det motorom koji je imao probleme sa performansama i
radom. Posle njega je doao RDO i ADO koji su bili dizajnirani za klijent server arhitekturu ali,
uskoro je ADO prevaziao RDO. ADO je imao dobru arhitekturu ali kako se jezik menja tako se
menja i tehnologija. Sa ADO, svi podaci se nalaze u RekordSet objektu koji je imao probleme sa
implementacijom na mreu i slabim firevorkom. ADO je bio konektovan na bazu podataka to
znai da kada se uspostavi konekcija na bazu podataka konekcija ostaje otvorena sve dok se
aplikacija ne zatvori, ostavljanje otvorene konekcije za sve vreme rada aplikacije budi
zabrinutost za sigurnost baze podataka i za internet saobraaj. Takoe poto baze podataka
postaju sve vanije zbog sve veeg broja korisnika model konektovane baze podataka nas tera na
razmiljanje o njenoj produtkivnosti. Na primer, jedna aplikacija koja je konektovana na bazu
podatka radi lepo kada je konektovana na dva klijenta ali moe da radi loe kada je npr.
konektovano 10 klijenata a moe i ak da bude totalno neupotrebljiva kada je konektovana na
100 ili vie klijenata. Takoe, otvorena konekcija ka bazi podataka koristi resurse sistema do
maksimuma inei performanse sistema manje efektivnim. ADO.NET se nosi sa nekim od gore
pomenutim problemima tako sto odrava model diskonektovanog pristupa bazi podataka to
znai da kada aplikacija radi sa bazom podataka konekcija se otvara da bi uradila zahtev
aplikacije i zatvara se im se zahtev zavri. Takoe ako je baza apdejtovana konekcija se otvara
samo za period do se apdejt izvri i odmah se zatvara. Odravajui konekciju na minimalni
period, ADO.NET uva resurse sistema, daje maksimalnu sigurnost i ima manje uticaja na
performanse sistema Takoe ADO.NET koristi XML za interakciju sa bazom podataka i
konvertuje sve podatke u XML format za sve operacije vezane za bazu podataka inei sistem
efikasnijim.
8
Kragujevac 2016
9
Kragujevac 2016
The DataReader objekat (recordset) koji uitava podatke u direktnoj konekciji sa bazom
podataka. Ovaj objekat dri konekciju aplikacije sa bazom otvorenom sve vreme i ima
mogunost uitavanja podataka iz baze u samo jednom prolazu bez iteracija (forward-only,
read-only). Za razliku od ostalih ADO.NET komponenti nemogue je napraviti direktnu
instancu ovog objekta ve se on vraa aplikaciji pomou ExecuteReader metode objekta
Command. Koristi se u sluajevima kada nije neophodno uvati redove tabela u lokalnoj
memoriji raunara ve ih logika aplikacije odmah koristi. Ovaj objekt dakle vraa jedan po
jedan red tabele aplikaciji u direktnoj vezi aplikacije i baze i omoguava najbri mogui transfer
podataka. Nedostatak je to zahteva ekskluzivan pristup Connection objektu za vreme trajanja
izvravanja DataReader objekta
The DataAdapter objekat popunjava diskonektovani DataSet ili DataTable sa odgovarajuim
podacima i aurira podatke u DB. DataAdapter je klasa koja omoguava realizaciju
diskonektovane ADO.NET arhitekture pristupa podacima. disconnected data access. Ovaj
objekat realizuje sve elemente komunikacije izmeu baze podataka i objekta DataSet.
DataAdapter popunjava objekte DataTable ili DataSet sa podacima iz baze pozivom svoje Fill
metode. Nakon manipulacije navedenim podacima smetenim u lokalnoj memoriji DataAdapter
pozivanjem svoje Update metode omoguava auriranje baze modifikovanim podacima.
DataAdapter nudi etiri svoje osobine koje reprezentuju odgovarajue SQL naredbe:
SelectCommand. Sadri tekst SQL naredbe (objekt) koji selektuje podatke iz baze
podataka. SQL naredba se izvrava pozivom Fill metode popunjavajui objekte
DataTable ili DataSet.
InsertCommand. Sadri tekst SQL naredbe (objekt) koji insertuje jedan red u tabelu.
DeleteCommand. Sadri tekst SQL naredbe (objekt) koji brie jedan red iz tabele.
UpdateCommand. Sadri tekst SQL naredbe (objekt) koji aurira podatke u bazi
podataka.
10
Kragujevac 2016
11
Kragujevac 2016
Diskonektovani scenario
U diskonektovanom scenariju podskup podataka iz baze podataka se kopira na lokalnom
raunaru. Dok se korisnik nalazi u diskonektovanom radu ostali korisnici mogu da koriste
konekciju.Diskonektovani rad poveava skalabilnost aplikacije.Podaci koji predstavljaju lokalnu
kopiju dela baze podataka nisu uvek aurni. Kada se podacima iz lokalne kopije podataka aurira
baza moe doi do konflikta.
Korienje ADO.NET klasa u diskonektovanom scenariju
U nastavku su prikazane osnovne klase koje se koriste u diskonektovanom scenariju. Redosled
izvravanja operacija pri radu u diskonektovanom scenariju je: otvaranje konekcije, punjenje
DataSet objekta podacima iz baze, zatvaranje konekcije, obrada podataka u DataSet-u, ponovo
otvaranje konekcije, auriranje baze podataka podacima iz DataSet-a, zatvaranje konekcije.
Klase konektovanog scenarija
Klasa XxxDataAdapter klasa koristi Connection, Command i DataReader klase da bi popunila
DataSet. XxxConnection objekat uspostavlja konekciju sa specificiranim izvorom podataka.
XxxCommand objekat izvrava komandu nad odgovarajuim izvorom podataka. XxxDataReader
ita podatke iz izvora podataka.
12
3. DATA BINDING
3.1 Data binding (osnove)
Data binding predstavlja proces koji uspostavlja vezu izmeu korisnikog interfejsa aplikacije
(npr. forme, web stranice) i poslovne logike (najee nekog poslovnog entiteta, kao npr.
klasa Zaposlen, Vozilo itd )U praksi, kod Windows formi postoje dva tipa povezivanja: prosti i
kompleksni.Prosto povezivanje je sposobnost kontrole da se povee sa vrednosti u tabeli, tj. sa
jednostavnim tipom.Primer kontrola koji se povezuju sa jednom vrednu je TextBox ili Label.
Kompleksno povezivanje se odnosi na povezivanje vie podataka, npr ListBox, ComboBox,
DataGridView.
Ako npr. imamo formu za unos imena, prezimena i telefona Zaposlenog, da bismo podatke sa
forme preneli u objekat Zaposlenkoristili bismo sledei kd: za upisivanje podataka iz forme u
objekat
1 Zaposlen novi_zaposlen = new Zaposlen();
2 zaposlen. ImeIPrezime = imeIPrezimeTextBox.Text;
3 zaposlen.Telefon = telefonTextBox.Text;
13
Kragujevac 2016
14
Kragujevac 2016
15
Kragujevac 2016
16
Kragujevac 2016
4. DATA SET
Konstruktori:
Naziv
Data Set()
Data Set(String)
DataSetBoolean)StreamingContext,
(SerializationInfo,
Opis
Inicijalizuje novu instance Data Set klase
Inicijalizuje novu instance Data Set klase sa
datim imenom
Ovaj API podrzava koja nije neophodna da se
izvrsava direktno iz naeg koda.
Svojstva:
Naziv
CaseSensitive
DataSetName
DesignMode
Relations
Tables
Opis
Uzima ili postavlja vrednost koja odredjuje da
li je string osetljiv na mala i velika slova
Uzima ili postavlja ime Data Set
Postavlja vrednost koja pokazuje da li su
komponente u dizajn modu.
Uzima kolekciju relacija koje su povezane sa
tabelom i dozvoljava navigaciju od tabele
roditelj ka tabeli dete.
Uzima vrednost tabela u Data Set
Metode:
Naziv
Clear ()
Copy ()
Merge(DataRow[])
Merge(DataTable)
AcceptChanges()
Opis
Brie sve podatke iz DataSet
Kopira DataSet
Spaja red DataSeta
Spaja odredjeni DataSet sa njegovom emom
Prihvata izmene DataSeta kada se uita
Events:
Naziv
Disposed
Opis
17
Kragujevac 2016
Initialized
MergeFailed
Code:
Dim parentCol as DataColumn
Dim childCol as DataColumn
Dim relCustOrder as DataRelation
dataadapter1_titles.Fill(dataset1,"Titles")
' u dataset dodajemo tabelu Titles i podatke iz iste
dataadapter2_publishers.Fill(dataset1, "Publishers") ' u dataset dodajemo tabelu Publishers i p
odatke iz iste
' definisemo relacije izmedju tabela:
parentCol = dataset1.Tables("Publishers").Columns("pub_id")
childCol = dataset1.Tables("Titles").Columns("pub_id")
relCustOrder = New DataRelation("Titles", parentCol, childCol)
dataset1.Relations.Add(relCustOrder)
Da bi uradili nesto 'pametno' sa ovom relacijom mozemo da se koristimo GetChildRows
metodom DataRows objekta. Npr.
Code:
Dim table As DataTable
Dim rows() As DataRow
Dim childRows() As DataRow
Dim i As Integer
table = dataset1.tables("Publishers")
rows = table.Select("pub_name = '" & strPubName & "'")
If rows.Length = 1 Then
childRows = rows(0).GETCHILDROWS("Titles")
For i = 0 To childRows.Length - 1
msgbox (childrows(i)("Title"))
Next
End If
row("author_id") = "eer-4421-aad43"
row("author_name") = "Pera"
row("ugovor") = False
...
table.Rows.Add(row)
22
Kragujevac 2016
23
Kragujevac 2016
5. DATA RELATION
5.1 DataRelation uopteno
DataRelation se koristi da napravi vezu izmeu dva DataTable objekta jedna ka drugima preko
DataColumn objekta. Na primer, u Kupac/Narudbina vezi, tabela kupac je roditelj, a tabela
narudbina je dete ove relacije. Ovo je slino kao primarni klju relaciji.
Relacije se stvaraju izmeu podudarne kolone u roditelj dete tabeli. to znai da DataTzpe
vrednost obe kolone mora biti identina.
Kada je DataRelation kreiran, on prvo mora da verifikuje da relacije mogu biti uspostavljene.
Nakon toga dodaje DataRelationCollection, on se odrava onemoguavanjem bilo koje promene
koje bi ga ponitile.
5.2 Konstruktori
Naziv
DataRelationDataColumn^)
DataColumn^,(String^,
DataRelation
(String^,<DataColumn^>array
^,<DataColumn^>^)
DataRelationString^,String^,
(String^,<String^>array
^,<String^>Boolean)^,
Opis
Inicijalizuje novu instancu DataRelation klase
koristei specifina DataRelation imena i
roditelj dete DataColumn objekte.
Inicijalizuje novu instancu DataRelation klase
koristei specifina DataRelation imena i
povezujui redove roditelj dete DataColumn
objekata
Ovaj konstruktor omoguava design podrku u
Visual Studio.
5.3 Svojstva
Naziv
ChildColumns
DataSet
ParentTable
Opis
Uzima dete DataColumn objekta ove relacije
Uzima DataSet kojem DataRelation pripada
Uzima roditelja DataTable od ovog
DataRelation
24
Kragujevac 2016
5.4 Metode
Naziv
GetType()
ToString()
Finalize()
Opis
Uzima tip od trenutne instance.
Uzima RelationName ukoliko postoji
Omoguava objektu da proba slobodne resurse
i da odradi CLEANUP operaciju (ienje)
25
Kragujevac 2016
6. LITERATURA
http://www.ucim-programiranje.com/2011/12/data-binding-osnove/
http://www.linkedu.tv/wpf-data-binding
http://www.link-elearning.com/lekcija-Uvod-u-ADO.NET_2038
https://support.office.com/sr-latn-rs/article/Osnove-baza-podataka-a849ac16-07c7-4a31-99483c8c94a7c204
http://www.link-university.com/lekcija/Uvod-u-ADO.NET--/2777
http://www.scribd.com/doc/110934193/Ado#scribd
https://msdn.microsoft.com/en-us/library/system.data.datarelation%28v=vs.110%29.aspx?cssave-lang=1&cs-lang=cpp#code-snippet-1
http://www.elitesecurity.org/t12371
https://msdn.microsoft.com/en-us/library/system.data.dataset%28v=vs.110%29.aspx
26
Kragujevac 2016