You are on page 1of 74

BMB202.

Veritaban Ynetimi
Ders 12.
ORM, LINQ, XML, JSON

Erdin Uzun
NK orlu Mhendislik Fakltesi
Bilgisayar Mhendislii Blm
Dersin Plan
ORM (Object to Relational Mapping)
LINQ
XML
JSON
ORM
Object Relational Mapping (Nesne-likisel Eleme)

likisel veritaban (RDBMS - VTYS) ile nesneye


ynelik programlann arasnda bir tr kpr
zellii gren ve ilikisel veritabanndaki
bilgilerimizi ynetmek iin, nesne modellerimizi
kullandmz bir tekniktir/metottur.
Baka bir deyile Nesnelerimizi ilikisel
veritabanndaki tablomuza balayan ve veri al-
veriini bizim iin yapan bir tekniktir/metottur.
ORM teknii belli bir programlama diline bal
deildir ve her OO dilinde yazlabilir/kullanlabilir.
ORM
ORM sayesinde veritabanna kayt ekleme
(INSERT), ekme (SELECT), dzenleme
(UPDATE) ilemleri ok kolay yaplmaktadr.
Bu ilemler direk ORM zerinden
gereklemektedir. Bu yntemin dnda kat SQL
kodu yazarak da yaplabilecei gibi, ORM
aralarnn kendi dilleri de entegre olabilmektedir.
Buna en gzel rnek, Hibernateteki HQL ve
Microsoftun runtimeda sorgu hatalarn en aza
indirmeyi planlad ve birok noktada kolaylk
saayan LINQ (Entity Framwork).
ORM
ORM temel olarak veri taban ile alakal yaplan
projelerde kullanlabilen bir programlama tekniidir.
ORM Amac Nedir?
Veri taban ile urarken karlalabilen problemlere
odaklanmtr;
Temel Problemler
Proje bydnde ynetimi
Hzl bir ekilde zm retme gereksinimi
Kod ayklama zorluu
Kod tekrarnn fazlaca yaplmas
ok karmak sorgularn ynetimi
ORM
ORM sayesinde SQL sorgularyla yaplan birok
ilem SQL sorgusu kullanlmadan
gerekletirilmektedir. rnein veritabanndan
veri ekmek iin SELECT sorgusu yerine
oluturmak yerine oluturulan nesneden IDsi xxx
olan eleman gelsin diyerek veritabanndan o
eleman alabiliriz. Baka bir ekilde rneklersek,
Ad yyy olan elemanlar Liste eklinde getirmek
istiyorsak BU NESNEDEN Ad yyy OLANLARI
GETR diyerek SELECT sorgusu yazp, sonra
onu Liste atmayla uramadan getirebiliyoruz.
ORM
Veritabanndan bamsz nasl alr?
ORMnin en nemli zellii veritaban bamsz altrabilmektir. Her
ne kadar kimi ORM frameworkleri veritaban bamsz zelliini baz
veritabanlar ile SINIRLANDIRSA da baka bir framework ile istenen
veritabanna balantlar gerekletirilebilmektedir.
ORMde tm ilemler nesneler ve nesneler aras ilikiler ve bu
ilikilerin UYGULAMA KATMANINDA tanmlanmas sebebiyle
veritabanndan sadece TABLO ve tablolarn ALANlarnn istenen
formatta olmas yeterli olmaktadr.
rnein Oracle ve SQL Server sunucularmzda birbirinin ayn
veritabanlar bulunmaktadr.
Herhangi bir ORM aracyla oluturulan projenin Oracledan SQL
Servera geirilmesi gerekmektedir. Dediimiz gibi, projelerimiz
veritabanndan bamsz, nesnelere baml alt iin veritabannn
HANG VERTABANI olduu bilgisinin verilmesi yeterlidir. SQL
Servera gei yaplacaksa, balant parametrelerinin SQL Servera
gre dzenlenmesi ile (config dosyasndaki kk bir dzenleme
olarak dnlebilir) projemiz SQL Serverda almaktadr.
ORM
Avantajlar
Daha hzl ve verimli ekilde i srelerinin
modellenmesi
Kod tekrarnn olduka azalmas
Karmak sorgular daha kolay ekilde
zlmesine olanak salamas
Kodlarn ayklanmas daha kolaydr
ORM
Dezavantajlar
Ktle halindeki silme ilemlerinde baz ORM
aralarnn performans baarl deildir.
Kaytl yordamlarn daha iyi performans salad
dnlmektedir.
Her dil iin farkl aralar olmas ve getirdikleri yeni
kodlama tekniklerinin renilmesi. Buna rnek
olarak .Net altyaps iinde kullanlan Linq
(Language Integrated Query) sorgu dili ve Lamda
ifadeleri verilebilir
ORM
Transaction Ynetimi

Bir Transaction balatp balattmz transaction


ierisinde birok INSERT/UPDATE/DELETE
ilemi gerekletirebiliriz. VERTABANINA
KAYDET demeden bu ilemler localde
gereklemi olacaktr.
Kayt ilemini gerekletirdiimiz anda
(Transaction tamamlandnda) veritabanna
etkileyecektir.
ORM
Transaction Ynetimi
Veri locale alnyor, ilemler yaplyor, tekrar gncelleniyor. Bu
performans dren bir etken deil midir?
Bir bak asndan cevab evet, eer rnein bir web sayfasnn
ynetim panelini yapyorsak, sadece rn ekleme silme
dzenleme ilemleri yaplyorsa byle bir yap performans
drebilmektedir.
Baka bir bak asndan cevab hayr, veritabanndan kaytlar
alp zerinde dzenlemeler yapma, dzenlemeleri veritabanna
etkileme ve bu etkilemeden sonraki sonular grmemiz,
gerektiinde dzenlememiz gereken geni apl ilemler
gerekebilir.
Bu ilemler iin srekli veritabannda INSERT/UPDATE/DELETE
ilemleri gerekletirip ok sayda Transaction oluturmak yerine
daha az Transaction ile veritabanndan kaytlar alp
dzenlemeleri yapp tek seferde dzenleme ilemini yapmak bu
noktada performans artrmaktadr diyebiliriz.
ORM
Transaction Ynetimi

Kullanm skl ve performans avantajlar


dnlp projede ORM Frameworknn
avantajlar ve dezavantajlarn inceleyip karar
doru vermek gerekmektedir.
ORM
Veritaban Modelleme

Genel olarak Veri taban uygulamalarnda


projeye analizi bittikten sonra, Veri taban ilikisel
veri taban modellemesi kullanlarak
modelleniyor.
Bu ilikisel modeldeki aktrler
Tablolar, kaytl yordamlar, grnmler, fonksiyonlar,
trigerler, tablo ilikileri (1-1, 1-, - ), birincil ve
yabanc anahtarlar
Bu aktrlerin nesneye dayal bir programlama
dilindeki herhangi bir nesne gibi kullanlmas
salamak ORP in hedeflerindendir.
ORM
Veri Ykleme Teknikleri
ORM de nesnelerin zelliklerinin doldurulmas
farkl tasarm rntleri aracl veya her ikisi ile
birden de yaplabilir.
Lazy Loading : verinin ihtiya duyulduunda
yklenmesi anlamndadr. Doru kullanldnda
performans art salanm olur.
Eager Loading : verinin annda (nesne oluturulur
oluturulmaz ) yklenmesidir. (c# datareader)
ORM
Veri Ykleme Teknikleri
Veritaban modellemeyi uygulama tarafnda
yapabilmeye izin vermektedir.
Tablolar aras balantlar veritaban katmannda
yapabileceimiz gibi uygulama katmannda da
gerekletirebiliriz. Bunun avantaj ise,
veritabannn baka bir sunucuya (SQL
Serverdan Oraclea gibi) aktarmnda
tablolararas ilikileri yeni veritabannda da
oluturmak iin zaman kaybetmeyi nlemektedir.
ORM
Mapping
Mapping, ORMde veritaban ile nesnelerimiz
arasndaki ba kuran yapmzdr.
Hangi nesnenin (snfn) hangi tabloyla
balanacan, balanan tablolarda hangi
propertynin (zelliin ya da deikenin) tablonun
hangi alanyla balanacan, tablonun zelliklerini
(IDsinin ne olduu, IDsinin autoincrement olup
olmad vb.) bilgilerin tanmland yapmzdr.
Kimi ORM frameworkleri bu ilemi yazlmcnn
yapmasn istese de (Hibernate, Nhibernate) kimi
frameworkler bu ilemleri kendisi gerekletirmekte,
istedii taktirde yazlmcnn mappingde dzenleme
yapmasna izin vermektedir (Entity Framework).
ORM
Object1 ve Object 2
isminde 2 snfmz
(nesnemiz)
bulunuyor.Bu snflar
veritabanna balayan
ise ORM dir.
3 katmanl Mimari ve ORMnin Kullanm

Sunum Katman
Katman (DAL, BAL)
Data Access/Abstraction Layer
Bussiness Access/Abstraction/Logic Layer
Veri Katman
ORM Frameworkleri
Gnmzde kullanlan popler programlama dilleri
iin yazlm bir ok ORM ktphaneleri vardr.
.NET ORM Frameworks
Entity Framework
Nhibernate
.Net Persistence
BBADataObjects
DataObjects.NET
DotNorm
FastObjects.NET
Norm
OJB.NET
ORM Frameworkleri
Java ORM Frameworks
Hibernate
JPA
OpenJPA
Toplink
EclipseLink
Apache Cayenne
MyBattis
PHP ORM Frameworks
Propel
Doctrine
PHP-Activerecord
PdoMap
RedBean
LINQ
LINQ, program ve veri arasndaki ilikiyi baka bir
boyuta tayan devrimsel bir programlama
metodolojisidir.
LINQ, bir programlama arayz sunar.
C# diline getirdii eklentilerle SQL benzeri tek bir
sz dizimi ile farkl tiplerdeki verilerin
sorgulanmasn salar.
C# ile sorgu yazmak, tip gvenli alma,
ifadelerin otomatik olarak tamamlanmas ve
IntelliSense gibi zelliklerle gelitiricinin
retkenliini artrmay salar.
LINQ
LINQ, program ve veri arasndaki ilikiyi baka bir
boyuta tayan devrimsel bir programlama
metodolojisidir.
LINQ, bir programlama arayz sunar.
C# diline getirdii eklentilerle SQL benzeri tek bir
sz dizimi ile farkl tiplerdeki verilerin
sorgulanmasn salar.
C# ile sorgu yazmak, tip gvenli alma,
ifadelerin otomatik olarak tamamlanmas ve
IntelliSense gibi zelliklerle gelitiricinin
retkenliini artrmay salar.
LINQ
Nerelerde kullanlabilir?

Bellek zerindeki nesnelerden oluan


koleksiyonlar sorgulamak (LINQ to Objects),
SQL Server veritabanlarndaki tablolar
sorgulamak (LINQ to SQL),
ADO.NET DataSet tiplerini sorgulamak (LINQ to
DataSets),
Xml verilerini sorgulamak (LINQ to XML)
ADO.NET Entity Framework tarafndan
oluturulan varlklar sorgulamak (LINQ to Entity)
LINQ
ou SQL komutlarna benzer yada ayn olan C#
anahtar kelimelerinden oluan ifadeler ile .NET
koleksiyonlarna LINQ sorgular yazarsn. Bu
anahtar kelimeler, LINQ Standart Sorgu
Operatrleri olarak anlr (LINQ Standart Query
Operators).
Bu operatrler, System.Linq isim alan altnda yer
alan Enumerable snf tarafndan tanmlanr. C#
derleyicisi (compiler), sorgu ifadelerini,
altrlmak zere CIL ortak ara diline
dntrr.
LINQ
Szdizimi

var anahtar kelimesi, yukardaki LINQ sorgu


sonucunun atand sorgu isimli lokal deiken
iin tip karsamas yapar. var, bir veri tipi deildir.
var, eitliin sa tarafndaki veriye ait tipin,
derleyici tarafndan otomatik olarak tespit
edilmesini ve CIL koduna yazlmasn salar.
LINQ Mimarisi
LINQ rnei
Bir LINQ sorgusu, veri
kaynandan istenen
veriyi elde etmek iin
kullanlr. Bir LINQ sorgu
sreci 3 ayr paradan
olumaktadr.
Veri kaynan elde et.
Sorguyu olutur.
Sorguyu altr.
Sonular var ile
balayan deikene
veya uygun bir listeye
gnderilebilir.
LINQ
Generic Koleksiyonlar le LINQ
LINQ sorgu deikenleri IEnumerable<T> arayznden
treyen bir tip olmaldr. rnein IEnumerable<Ogrenci>
tipinde bir sorgu deikeni grdn zaman u anlama
gelir : Bu sorgu altrldnda sfr yada daha fazla
sayda Ogrenci snfndan nesne retecektir.
LINQ
Generic Koleksiyonlar le LINQ
Main metodu ierisine 4 tane Ogrenci nesnesi
ieren bir List<T> koleksiyonu olutur.
LINQ
Generic Koleksiyonlar le LINQ
imdi LINQ sorgusu ile bu koleksiyonda arama
yapalm : 1985 yl ncesinde doan rencilerin
isimleri ve numaralar, aralarnda / iareti olacak
ekilde yan yana tek bir string tipli veri olarak
elde edilsin.

Bu sorgu cmlesinde dikkat ekmesi gereken 1-2 nemli nokta vardr.


Birincisi generic koleksiyon zerinden LINQ sorgusu yazarken Visual
Studio editrnn otomatik kod tamamlayc zellii Intellisense sana
yardm eder. rnein where operatrnden sonra o. yazdnda
Ogrenci snfnn public yeleri listelenir ve sen filtrelemede kullanmak
istediin DogumTarihi alann listeden seebilirsin. Bylece hzl ve
minimum hatayla sorgu yazarsn.
ORM Arac Olarak LINQ to SQL
.NET ile yazlan ticari uygulamalarn %90ndan fazlas ilikisel
veritaban ynetim sistemi zerindeki tablolarda saklanan
verilerle almaktadr.
Halen artan bir yzdeyle yazlm mimarileri ve gelitiriciler nesne
ynelimli programlamaya adapte olmaktadrlar.
Ayn ekilde veritabanlar, i nesnelerini saklamak ve dier
uygulamalar ile paylamak iin tercih edilen saklama ortam
olmaktadr.
Bu srete, veritabanlar zellikle nesne modellerini saklamak
ve elde etmek zere dizayn ediliyor, veri nesne olarak
oluturuluyor, ayn zamanda snflar, zellikler, metotlar ve hatta
kaltm ile alt snflara destek veriyor.
Veritabanlar ve i nesneleri arasndaki bu doal yaknla
ramen program iinde ve veritabannda ayr ayr dizayn yapma
maliyeti sz konusuydu.
LINQ to SQL
Nesnelerin saklanmas iin ilikisel
veritabanlarnn kullanlmas, CRUD ksaltmas ile
anlan create, retrieve, update ve delete ilemleri
iin programlama dili olarak SQL kullanlmas
anlamna gelmektedir.
Bu ilemlerin program iinden belli bir uyumluluk
ile yaplmasn salamak iin O/RM (Object /
Relation Mapping) aralar kullanlmaya baland.
LINQ to SQL, Microsoftun Visual Studio ile
birlikte sunduu bir O/RM aracdr.
LINQ to SQL
LINQ to SQL, hafif ve yksek performansl bir
nesne saklama platformu sunar.
Bunu kolay kullanlan grafik bir arayz ile
gerekletirir.
Bu ara, i nesnelerini oluturmak, elde etmek,
gncellemek ve silmek iin stored procedure sql
nesnesini de desteklemektedir.
LINQ to SQL
LINQ to SQL, hafif ve yksek performansl bir
nesne saklama platformu sunar.
Bunu kolay kullanlan grafik bir arayz ile
gerekletirir.
Bu ara, i nesnelerini oluturmak, elde etmek,
gncellemek ve silmek iin stored procedure sql
nesnesini de desteklemektedir.
LINQ to SQL
Bu grsel ara, SQL Server veritabanlarndan
seecein tablolardan entity class denen snflarn
oluturulmasn salar.
Tablolar snf, tablodaki kolonlar birer zellik
(property) olacak ekilde otomatik olarak retilir
ve bu snf tasarmlar Visual Studio ierisinde
saklanr.
Ara, ayn zamanda, tablolar arasndaki ilikileri
de association olarak saklar.
Bu sayede, LINQ sorgular yazarken join
yapmana gerek kalmadan IntelliSense yardmyla
ilikili nesnelere ve onun yelerine eriebilirsin.
LINQ to SQL
Tablolar, kaytlar ve anahtarlardan oluan ilikisel
modeli entity snflar, entity nesneleri ve ilikilere
tamann avantaj, entity modelinin mteriler,
alanlar, rnler vb. i nesnelerini temsil
edebilmesidir.
Bylece LINQ to SQL, kk ve orta lekli
projelerin iin hzl uygulama gelitirme
metodolojisi sunarak sana yardmc olur.
LINQ to SQL Dizayn Ekran
LINQ to SQL Dizayn Ekran
LINQ to SQL Dizayn Ekran
LINQ to SQL
DataContext
LINQ to SQL, projene veri eriim katman uygulamak iin
ok mkemmel bir adaydr.
LINQ to SQL ile kullanacan merkezi nesne DataContext
snfdr.
Bu snf, veritabanlar ile uygulama arasndaki balanty
ynetir.
Ayn zamanda rettiin entity snflarna ait veritabanndaki
kaytlar ieren Table<TEntity> tipinde koleksiyonlar saklar.
Bu koleksiyonlar sayesinde kod tarafnda, bir tablodaki btn
verilere kolayca eriebilir ve ASP.NET gibi bir arayzde
gsterebilirsin.
rnein Musteris koleksiyonunu ele alalm. Bu, iinde
Musteri tipinde nesneler barndran Table<Musteri> tipinde
bir koleksiyondur.
LINQ to SQL
DataContext
Veritabanna doru altrlacak bir LINQ
sorgusu hazrlamak iin Table<TEntity> tipindeki
koleksiyon ile almalsn. Bu nesne zerinden
gerekletirdiin maniplasyonlar, C# derleyicisi
tarafndan nce dinamik T-SQL sorgularna
dntrlr; ardndan veritabanna doru
balant alarak altrlr.
DataContext, SqlClient salaycs zerinden
veritabanna balant almas ve kapatlmas
srelerini otomatik olarak ynetir. Senin ekstra
kod yazmana gerek yoktur.
LINQ to SQL
DataContext Kayt Ekleme
LINQ to SQL kullanarak veritabanndaki bir
tabloya yeni kayt eklemek iin Table<TEntity>
koleksiyonuna yeni bir kayt eklemen yeterlidir.
Bu kayt, veri eklemek istediin tablo iin dizayn
ekranndan rettiin entity snf tipinde olmaldr.
DataContext.TabloAd.Add(YeniNesne)
Nesneyi hazrlayp koleksiyona ekledikten sonra
DataContext.SubmitChanges() metodu arlr.
Bu metot, yeni nesnenin veritabannda
saklanmas iin gerekli T-SQL insert sorgusunun
hazrlanmas ve altrlmasn salar.
LINQ to SQL
DataContext Kayt Ekleme
Ayrca btn veritaban ilemlerinde mutlaka
System.Data.Linq.DataContext tipinden treyen projene zel
DataContext nesnesine ihtiyacn vardr.

Dilenirse InsertOnSubmit metodu yerine InsertAllOnSubmit


metodu kullanlarak bir kayt deil nceden hazrlanm bir
koleksiyon iindeki btn kaytlarn eklenmesi salanabilir.
LINQ to SQL
DataContext Kayt Dzeltme
Kayt gncellemek iin DataContext zerindeki
koleksiyondan gncellenmesi istenen bir yada
birden fazla nesnenin elde edilmesi gerekir.
Bunun iin where ifadesi ile filtrelenmi bir sorgu
yazlmas gerekir.
Sorgu sonucunda elde edilen nesnelerin istenen
zelliklerinde (property) gerekli deiiklikler
yapldktan sonra DataContext.SubmitChanges()
metodu arlr.
Bu metot kaytlarn veritabannda gncellenmesi
iin gerekli T-SQL update sorgusunun
hazrlanmas ve altrlmasn salar.
LINQ to SQL
DataContext Kayt Dzeltme

Bu rnekte DepartmentId deeri 1 olan tek bir kayt olaca


iin sorgu sonucunda SingleOrDefault metodu arlmtr.
Bylece eitliin sol tarafnda tek bir Department nesnesi elde
edilmi ve o nesnenin GroupName kolonu gncellenmitir.
LINQ to SQL
DataContext Kayt Dzeltme
Birden fazla nesne zerinde ayn anda gncelleme
yapmak durumunda kalrsan aadaki kod paras
sana yol gsterici olacaktr.

Bu kod parasnda LINQ sorgusu sonucunda 9 kayt dner. Bu


9 kayt zerinde gncelleme yapmak iin foreach dngsnden
faydalanlr. Dngnn sonunda SubmitChanges metodu
arlarak btn gncellemeler tek bir seferde veritabanna
yanstlm olur.
LINQ to SQL
DataContext Kayt Silme
Veri tabanndan tek bir kayt yada birden fazla
kayt silmek iin DataContext zerindeki
koleksiyondan nesnelerin silinmesi gerekir.
DataContext.TabloAd.Remove(SilinecekNesne)
Bunun iin where ifadesi ile filtrelenmi bir sorgu
yazlmas gerekir. Sorgu sonucunda elde edilen
nesneler koleksiyondan silindikten sonra
DataContext.SubmitChanges() metodu arlr.
Bu metot kaytlarn veritabanndan silinmesi iin
gerekli T-SQL delete sorgusunun hazrlanmas ve
altrlmasn salar.
LINQ to SQL
DataContext Kayt Silme

Dilenirse DeleteOnSubmit metodu yerine


DeleteAllOnSubmit metodu kullanlarak bir kayt
deil bir koleksiyon iindeki btn kaytlarn
silinmesi salanabilir.
XML
eXtensible Markup Language
Bamsz bir kurulu olan W3C (World Wide Web
Consortium) organizasyonu tarafndan tasarlanan
ve herhangi bir kurumun tekelinde bulunmayan
XML (eXtensible Markup Language), kiilerin
kendi sistemlerini oluturabilecekleri, kendi
etiketlerini tanmlayarak ok daha rahat ve etkin
programlama yapabilecekleri ve bu belirlenen
etiketleri kendi yaplar ierisinde standardize
edebilecekleri esnek, genileyebilir ve kolay
uygulanabilir bir meta dildir.
XML
XML'in tasarmcs, HTML'i de tasarlam olan Tim Berners
Lee'dir. Dilin dzenlenmesi de W3C'nin sorumluluundadr.
Karmak kod yazm eklinde grnen dizin, aslnda bir
grafiktir.
XML platformdan bamsz veri tayabilen iaretleme dilidir.
XML datann tanmyla ilgilidir.
HTML gibi bir iaretleme(Markup) dilidir.
Document Type Defination (DTD) veya XML Schema kullanarak
datay tanmlar.
XML programsal anlamda hibir i yapmaz.
Basit bir text dosyasdr.
XML u ana kadar bulunan en salam, gvenilir ve ASCIIden
sonra en esnek dokman formatdr
Her eyiyle bedavadr.
XML
XML datann kullanlabilirliini artrr.
HTML zerindeki datay daha kullanl hale getirir.
(Data Islands)
Farkl platformlar arasndaki data paylamn ve
transferini kolaylatrr.
B2B zmlerinde zellikle hzl deien data
aklarnda XML hzl ve kesin zmler sunar.
Datay basit ve kullanl bir ekilde saklar.
XML ile yeni diller yaratmak mmkn(WAP, WML*)
Referans ktphaneleri oluturularak data standartlar
oluturmak mmkn.(MathML, VectorML gibi)
XML
Gnmzde birok yazlm, dier yazlmlarla veri
alveriini XML format zerinden yapmaktadr.
Ayrca XML'i esas format olarak kullanan
uygulamalara rastlamak mmkndr. Rastgele veri
eriimine uygun olmadndan veri taban amal
kullanlmamaktadr.
Microsoft'un gelitirdii .NET teknolojisinde
kullanlan DataSet nesneleri XML formatndadr.
Ayrca XML, ofis uygulamalarnn alt yaps haline
getirilmitir.
eriin, dokman yapsnn ve eklin birbirinden
ayr ele alnmas XML'i erik ynetim sistemlerinin
ideal format haline getirmitir.
XML
Pozitif Yanlar
XML hiyerarik bir text yapsna sahiptir.
XML'in internet ile birlikte almas
hedeflenmitir.
XML yaygn, kolay ulalabilir ve ucuzdur.
Lisans sorunu yoktur, platform odakl olmayan ve
ok desteklenen bir dildir.
XML insanlarn okuyabilecei bir dildir.
XML esnektir, baka diller tanmlanabilir
XML
Pozitif Yanlar
XML dokmanlar bir Onaylayc-Denetleyici
(Validating Parser) tarafndan onaylanr.
XML sistemleri daha ucuza mal edilebildii iin
orta ve kk iletmeler de kullanabiliyor.
XML internet taraycs gibi basit aralarda bile
gsterilebilir.
XML
Negatif Yanlar
XML yer, ilemci ve bant genilii asndan
savruk olabilir.
XML sadece bir dokman dilidir, programlama dili
deildir.
Her yaratlan XML format bakalar tarafndan
kullanlamayan bir format oluyor.
XML text veri iin harika sonular verir ancak
saysal data iin ayn sonular veremez.
XML
XML HTML karlatrlmas
XML data tanmlamak ve tamakla grevlidir.
XML, HTML yerini almayacaktr. Ancak HTMLin
eksik kald noktalar tamamlar.
HTML datann grseliyle ilgilenir.
XML tagleri bamsz tretilir.(predefined)
XML her alanda kullanlabilir.Web Gelitirmede
ise gelecekte ok kullanlan bir ara olacak.
XML
rnek
XML dokumanlar aa veri yapsnda olurlar. Bamsz imler yapy
olutururken, ierik ya imin zellii olarak ya da iki im arasnda gsterilir
XML Teknolojileri
Veriye Eriim
DOM, Dokman Obje Modeli
SAX, XML iin Basit Arayz
DTD
XML Schema
DTD, Dokman Tip Tanm
XSL, XML stil sayfas dili
XSLT, XML eviriler iin stil sayfas dili
XQuery
XML
DOM (Document Object Model)
Bu teknik tamamen arayz ynelimlidir. Her
dm ve paralarna arayz araclyla ulalr.
Rastgele ulamda etkili olmasna ramen, byk
boyutlu dosyalar sz konusu olduunda olduka
hantaldr ve hafza tketiminde fazla talepkrdr.
XML
SAX
Olay tabanl, szcksel ileme.
Dosyada ierisindeki her dm bir geri-
besleme(callback) fonksiyonu aracl ile istemci
koda yanstlr. Bu yaps nedeniyle olduka hzl
ve etkilidir, ancak XML dosyasndan rastgele
dm ulam olduka zordur; Hedef dme
ulamak iin, her defasnda dosyay en bandan
ilemek zorundasnz.
XML
DOM vs. SAX
DOM tm XML belgesini okur ve SAX belgeyi okur ve okuduu
tamamn hafzaya bir aa yaps ksm yada o elemente ait
olarak yerletirir. tanmladmz metodu arr
DOM tm belgeyi hafzaya SAX ise ancak sral eriime
yklediinden rastgele eriime (Sequential Access ) izin verir.
(Random Access) izin verir. (r:
XPATH kullanarak)
DOM tm belgeyi hafzaya SAX daha hzldr ve daha az
yerletirdiinden yavatr ve hafzaya ihtiya duymaktadr. Bu
byk XML belgeleri iin tercih nedenlerden tr byk XML
edilmez. belgelerinde tercih edilmektedir
ve WEB uygulamalarnda daha
poplerdir.
Baz DOM versiyonlarnda Bu tarz metotlar SAX iin
hafzaya yerletirilen XML bulunmamaktadr
belgesini deitirmek iin
metotlar vardr. (UPDATE)
XML
DTD - Document Type Definition

DTD'ler bir belgenin yapsn belirlerler. Ayrca,


XML trnn nemli zelliklerinden biri olan
"genileyebilirlik" yoluyla yeni yaplarn
tanmlanmasna olanak salar. Herhangi bir
alandaki uygulamada kullanlacak yeni iaretleme
dilleri DTD'ler ile gelitirilebilir.

DTD ve XML rnei


XML
XSL - Extensible Stylesheet Language

XSL(The Extensible Stylesheet Language Family,


Geniletilebilir Biimlendirme Dili Ailesi), XML
dosyalarnn iindeki verilere ulama, ulatklarn
baka ekillere dntrme ve gsterime
hazrlama emirleri ieren kendileri de XML
kurallarna uyan diller ailesinin addr.
XML
XSLT - Extensible Stylesheet Language Transformations
XSLT(Extensible Stylesheet Language Transformations,
Geniletilebilir Biimlendirme Dili Dnmleri), XML tabanl,
XML dokmanlarn dntrmek iin kullanlan bir dildir.
Orijinal dokman deitirmeden, yeni bir dokman
oluturmaya olanak salar.

XML Dosyas -> XSLT Dosyas -> Dnm sonras XML Dosyas
XML
XSD - XML Schema Definition
XSD (XML Schema Definition), XML
dosyalarnda tanan verilerin nasl
yorumlanacan tanmlayan dosya. DTD
dosyalarnn eksikliklerini gidermek zere
gelitirilmitir.
XML
XPath
XPath bir XML dokmanndaki bilgiyi bulmak iin
kullanlan bir dildir. XPath bir XML dokman
iindeki elemanlar ve onlara ait zellikleri
incelemeye yarar.
XPath bir XML dokman yazm-szdizim-imla
(szdizimi) klavuzudur.
XPath yol belirteleri (path expression) yardm ile
XML iinde dolamaya yarar.
XPath standart ktphanesi iinde fonksiyonlar-
yordamlar ierir.
XPath XSLT'nin nemli paralarndandr.
XPath W3C Standarddr.
XML
XQuery
XQuery, XML tipi veriler zerinde sorgulama
yapabilmek iin gelitirilmi bil dildir. Bu dil, Quilt
isimli bir sorgulama dilinden tretilmitir, ve yap
olarak SQL'e benzer.
XQuery bir W3C standarddr.
XQuery 1.0, Xpath 2.0 srmnn bir uzantsdr,
dolaysyla Xpath iin geerli olan btn sorgular
XQuery iin de geerlidir.
XML
XQuery

bakkaldaki belgesellerden fiyat 30 YTL'den daha az olanlar bulur.

Sonu:
XML
XQuery

Aadaki sorgu bakkaldaki belgesellerden sanayi ile ilgili olanlar bulur.


XML
Xlink XML Pointer

Xlink
XML Balant Dili veya ksaca XLink, XML
dokmanlarnn balantlarn ynetmeye yarayan bir
dildir. W3C standarddr.
XML'de balant verme iki ksmdan oluur: XLink ve
XPointer. XLink bir dokmandaki d balantlarn nasl
oluturulacan belirleyen bir standarttr. Balantlar
HTML'dekine benzer. Bir web dosyasn, URI kullanarak
bir dierine balamaya yarar.
XML Pointer
XML areti Dili, XML dosyalar ya da uygulamalarnda,
herhangi bir XML kaynana iaret etmek zere
dzenlenmi dil. XLink'in bir paras olup, W3C'n ak
standartlatrma sorumluluundadr.
JSON
JavaScript Object Notation

JavaScript Object Notation ksaltmas olarak


kullanlan ve veri deiimi iin kullanlan bir
format olarak JSON, yapsal olarak XMLe
benzetebiliriz. Teknik olarak ana amac bamsz
olarak veri al verii yaparken daha kk
boyutlarda veri alp gndermektir. Kullanm
olduka kolaydr.
JSON
JavaScript Object Notation

XML rnei JSON rnei


JSON
JavaScript Object Notation

Modern dillerin ou tarafndan tannp kullanlr.


XML dilinin byk ve yava kalmas zerine
gelitirilmitir. XML dosyalarna gre hafif ve daha
az yer kaplar.
nternette farkl programlar ve diller aras bilgi
alverii srasnda en byk problem
deikenlerin ve dizilerin doru aktarlmasdr.
Json bu sorunu zmek iin gelitirilmi geni
kapsaml bir kod sistemidir.
AJAX konusu iinde Web Programlama Dersinde rneklerle
anlatlacaktr.
Mobile tabanl uygulamalarda da sklkla karnza kacaktr.
Kaynaklar
Nesneye Dayal Programlarla Nesne liki Haritalanmas, Yrd. Do. Dr. Mustafa Cem KASAPBAI,
stanbul Ticaret niversitesi, Akademik Biliim 2010
http://yazilimdevi.com/yazilimdevi/Makaleler-721-orm-object-relational-mapping-nedir.aspx
LINQ to SQL, Microsoft Trkiye Ak Akademi
web.firat.edu.tr/bilmuh/gaydin/dersler/0809/bmu401/ppt/xml.ppt
http://www.rssnedir.com/xml_nedir.php
http://tr.wikipedia.org/wiki/XML
http://json.nedir.com/#ixzz33QVGu5Vd
http://www.turgaysahtiyan.com/post/JSON-Nedir.aspx

You might also like