Veri Tabanı Sistemleri - Nesne Veri Tabanları
Upcoming SlideShare
Loading in...5
×
 

Veri Tabanı Sistemleri - Nesne Veri Tabanları

on

  • 2,692 views

Nesne veri tabanları, nesne-bağıntı eşleştirmesi. XML, XPath, XQuery.

Nesne veri tabanları, nesne-bağıntı eşleştirmesi. XML, XPath, XQuery.

Statistics

Views

Total Views
2,692
Views on SlideShare
2,684
Embed Views
8

Actions

Likes
2
Downloads
36
Comments
1

2 Embeds 8

http://www.slideshare.net 6
http://www.health.medicbd.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Veri Tabanı Sistemleri - Nesne Veri Tabanları Veri Tabanı Sistemleri - Nesne Veri Tabanları Presentation Transcript

  • Nesne Veri Tabanları Nesne-Ba˘ıntı Veri Tabanları g XML Veri Tabanları Veri Tabanı Sistemleri Nesne Veri Tabanları H. Turgut Uyar ¨ g¨ u u Sule O˘ud¨c¨ ¸ 2005-2012 ¸ ¨ g¨ u uH. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Nesne-Ba˘ıntı Veri Tabanları g XML Veri TabanlarıLicense ¸ ¨ g¨ u u c 2005-2012 T. Uyar, S. O˘ud¨c¨ You are free: to Share – to copy, distribute and transmit the work to Remix – to adapt the work Under the following conditions: Attribution – You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Noncommercial – You may not use this work for commercial purposes. Share Alike – If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. Legal code (the full license): http://creativecommons.org/licenses/by-nc-sa/3.0/ ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Nesne-Ba˘ıntı Veri Tabanları g XML Veri TabanlarıKonular 1 Nesne Veri Tabanları Giri¸ s Nesne Kimli˘i g ¨ Ornek: db4o 2 Nesne-Ba˘ıntı Veri Tabanları g Giri¸ s ¨ Ornek: Persist 3 XML Veri Tabanları Giri¸ s XQuery ¨ Ornek: DBXML ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları KaynaklarKonular 1 Nesne Veri Tabanları Giri¸ s Nesne Kimli˘i g ¨ Ornek: db4o 2 Nesne-Ba˘ıntı Veri Tabanları g Giri¸ s ¨ Ornek: Persist 3 XML Veri Tabanları Giri¸ s XQuery ¨ Ornek: DBXML ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları KaynaklarNesne Modeli veri modeli ile yazılım modeli arasında uyumsuzluk veride: ba˘ıntı, ¸oklu, dı¸ anahtar, . . . g c s yazılımda: nesne, y¨ntem, . . . o ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar ¨ gModel Farkı Orne˘i ¨ Ornek (filme oyuncu ekleme - SQL tanımları) CREATE TABLE MOVIE ( ID INTEGER PRIMARY KEY , TITLE VARCHAR (80) NOT NULL ) CREATE TABLE PERSON ( ID INTEGER PRIMARY KEY , NAME VARCHAR (40) NOT NULL ) CREATE TABLE CASTING ( MOVIEID INTEGER REFERENCES MOVIE , ACTORID INTEGER REFERENCES PERSON , PRIMARY KEY ( MOVIEID , ACTORID ) ) ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar ¨ gModel Farkı Orne˘i ¨ Ornek (filme oyuncu ekleme - SQL i¸lemleri) s INSERT INTO MOVIE ( ID , TITLE ) VALUES (110 , ’ Sleepy Hollow ’) INSERT INTO PERSON ( ID , NAME ) VALUES (26 , ’ Johnny Depp ’) INSERT INTO CASTING ( MOVIEID , ACTORID ) VALUES (110 , 26) ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar ¨ gModel Farkı Orne˘i ¨ Ornek (filme oyuncu ekleme - Java tanımları) public class Movie { ... private List < Person > cast ; ... public void addActor ( Person p ) { this . cast . add ( p ); } } ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar ¨ gD¨zey Farkı Orne˘i u ¨ Ornek (filme oyuncu ekleme - Java i¸lemleri) s Movie m = new Movie ( " Sleepy Hollow " , ...); Person p = new Person ( " Johnny Depp " , ...); m . addActor ( p ); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları KaynaklarKonular 1 Nesne Veri Tabanları Giri¸ s Nesne Kimli˘i g ¨ Ornek: db4o 2 Nesne-Ba˘ıntı Veri Tabanları g Giri¸ s ¨ Ornek: Persist 3 XML Veri Tabanları Giri¸ s XQuery ¨ Ornek: DBXML ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları KaynaklarNesne Kimli˘i g her nesnenin bir nesne kimli˘i var g o ¨zellikler de˘i¸se bile kimlik aynı kalır gs birincil anahtardan farklı birincil anahtar g¨r¨n¨r (kullanıcı tanımlar) ou u birincil anahtardaki de˘erler de˘i¸ebilir g gs programlama dillerindeki referanslara kar¸ı d¨¸er s us nesne kimli˘i ile ba¸ka nesnelere ba¸vurulabilir: g s s i¸erme hiyerar¸isi c s ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları KaynaklarNesne Kimli˘i g her nesnenin bir nesne kimli˘i var g o ¨zellikler de˘i¸se bile kimlik aynı kalır gs birincil anahtardan farklı birincil anahtar g¨r¨n¨r (kullanıcı tanımlar) ou u birincil anahtardaki de˘erler de˘i¸ebilir g gs programlama dillerindeki referanslara kar¸ı d¨¸er s us nesne kimli˘i ile ba¸ka nesnelere ba¸vurulabilir: g s s i¸erme hiyerar¸isi c s ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları KaynaklarNesne Kimli˘i g her nesnenin bir nesne kimli˘i var g o ¨zellikler de˘i¸se bile kimlik aynı kalır gs birincil anahtardan farklı birincil anahtar g¨r¨n¨r (kullanıcı tanımlar) ou u birincil anahtardaki de˘erler de˘i¸ebilir g gs programlama dillerindeki referanslara kar¸ı d¨¸er s us nesne kimli˘i ile ba¸ka nesnelere ba¸vurulabilir: g s s i¸erme hiyerar¸isi c s ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar˙cerme Hiyerar¸isi Orne˘iI¸ s ¨ g ¨ Ornek ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar˙cerme Hiyerar¸isi Orne˘iI¸ s ¨ g ¨ Ornek ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları KaynaklarNesne Veri Tabanları uygulamanın kalıcı nesneleri veri tabanında ba˘ıntılar de˘il nesneler halinde saklanır g g yazma: nesne → i¸ format (serile¸tirme) c s okuma: i¸ format → nesne c ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları KaynaklarKonular 1 Nesne Veri Tabanları Giri¸ s Nesne Kimli˘i g ¨ Ornek: db4o 2 Nesne-Ba˘ıntı Veri Tabanları g Giri¸ s ¨ Ornek: Persist 3 XML Veri Tabanları Giri¸ s XQuery ¨ Ornek: DBXML ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklardb4o g¨m¨l¨ ¸alı¸abilen bir nesne veri tabanı sistemi o uu c s ko¸ulla sorgulama s orne˘e g¨re sorgulama ¨ g o sorgulanacak sınıftan bir nesne yaratılır istenen nitelikler ayarlanır, di˘erleri bo¸ bırakılır g s bu nesneye benzer nesneler aratılır g¨ncellenecek ya da silinecek nesnelerin u veri tabanından ¸ekilmi¸ olması gerek (nesne kimli˘i) c s g ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklardb4o g¨m¨l¨ ¸alı¸abilen bir nesne veri tabanı sistemi o uu c s ko¸ulla sorgulama s orne˘e g¨re sorgulama ¨ g o sorgulanacak sınıftan bir nesne yaratılır istenen nitelikler ayarlanır, di˘erleri bo¸ bırakılır g s bu nesneye benzer nesneler aratılır g¨ncellenecek ya da silinecek nesnelerin u veri tabanından ¸ekilmi¸ olması gerek (nesne kimli˘i) c s g ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklardb4o g¨m¨l¨ ¸alı¸abilen bir nesne veri tabanı sistemi o uu c s ko¸ulla sorgulama s orne˘e g¨re sorgulama ¨ g o sorgulanacak sınıftan bir nesne yaratılır istenen nitelikler ayarlanır, di˘erleri bo¸ bırakılır g s bu nesneye benzer nesneler aratılır g¨ncellenecek ya da silinecek nesnelerin u veri tabanından ¸ekilmi¸ olması gerek (nesne kimli˘i) c s g ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklardb4o Aray¨z¨ u u veri tabanına ba˘lantı (g¨m¨l¨ kip): g o uu Db4oEmbedded.openFile(filePath) → ObjectContainer ekleme ve g¨ncelleme: u ObjectContainer.store(object) silme: ObjectContainer.delete(object) ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklardb4o Aray¨z¨ u u veri tabanına ba˘lantı (g¨m¨l¨ kip): g o uu Db4oEmbedded.openFile(filePath) → ObjectContainer ekleme ve g¨ncelleme: u ObjectContainer.store(object) silme: ObjectContainer.delete(object) ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklardb4o Aray¨z¨ u u bir sınıftan b¨t¨n nesneler: uu ObjectContainer.query(Class.class) → List<Class> o g o ¨rne˘e g¨re sorgulama: ObjectContainer.queryByExample(Class prototype) → ObjectSet<Class> ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklardb4o Aray¨z¨ u u bir sınıftan b¨t¨n nesneler: uu ObjectContainer.query(Class.class) → List<Class> o g o ¨rne˘e g¨re sorgulama: ObjectContainer.queryByExample(Class prototype) → ObjectSet<Class> ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklardb4o Aray¨z¨ u u sorgulama ko¸ulu: Predicate<Class> s bu sınıfın match y¨ntemi ger¸eklenir: o c public boolean match(Class object) sorgulama: ObjectContainer.query(Predicate<Class> predicate) → List<Class> ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklardb4o Aray¨z¨ u u sorgulama ko¸ulu: Predicate<Class> s bu sınıfın match y¨ntemi ger¸eklenir: o c public boolean match(Class object) sorgulama: ObjectContainer.query(Predicate<Class> predicate) → List<Class> ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar ¨db4o Ornekleri ¨ Ornek (veri tabanına ba˘lantı) g ObjectContainer db = Db4oEmbedded . openFile ( " imdb . db4o " ); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar ¨db4o Ornekleri ¨ Ornek (sorgulama: b¨t¨n filmler) uu List < Movie > movies = db . query ( Movie . class ); for ( Movie movie : movies ) { ... } ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar ¨db4o Ornekleri ¨ Ornek (¨rne˘e g¨re sorgulama: 1977’de ¸ekilmi¸ filmler) o g o c s Movie prototype = new Movie ( null ); prototype . setYear (1977); ObjectSet < Movie > movies = db . queryByExample ( prototype ); while ( movies . hasNext ()) { Movie m = movies . next (); ... } ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar ¨db4o Ornekleri ¨ Ornek (ko¸ulla sorgulama: 1977’den sonra ¸ekilmi¸ filmler) s c s List < Movie > movies = db . query ( new Predicate < Movie >() { public boolean match ( Movie movie ) { return movie . getYear () > 1977; } }); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar ¨db4o Ornekleri ¨ Ornek (ekleme) Movie m = new Movie ( " Casablanca " ); m . setYear (1942); db . store ( m ); db . commit (); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar ¨db4o Ornekleri ¨ Ornek (g¨ncelleme) u Movie prototype = new Movie ( " Casablanca " ); ObjectSet < Movie > result = db . queryByExample ( prototype ); Movie found = result . next (); found . setYear (1943); db . store ( found ); db . commit (); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları Kaynaklar ¨db4o Ornekleri ¨ Ornek (silme) Movie prototype = new Movie ( " Casablanca " ); ObjectSet < Movie > result = db . queryByExample ( prototype ); Movie found = result . next (); db . delete ( found ); db . commit (); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları Nesne Kimli˘i g Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: db4o XML Veri Tabanları KaynaklarKaynaklar Okunacak: Date Chapter 25: Object Databases ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları KaynaklarKonular 1 Nesne Veri Tabanları Giri¸ s Nesne Kimli˘i g ¨ Ornek: db4o 2 Nesne-Ba˘ıntı Veri Tabanları g Giri¸ s ¨ Ornek: Persist 3 XML Veri Tabanları Giri¸ s XQuery ¨ Ornek: DBXML ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları KaynaklarNesne-Ba˘ıntı E¸le¸tirmesi g s s yazılım nesneye dayalı veri tabanı ba˘ıntılar ¸eklinde g s yazılım bile¸enleri veri tabanı bile¸enleriyle e¸le¸tirilir s s s s ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları KaynaklarKonular 1 Nesne Veri Tabanları Giri¸ s Nesne Kimli˘i g ¨ Ornek: db4o 2 Nesne-Ba˘ıntı Veri Tabanları g Giri¸ s ¨ Ornek: Persist 3 XML Veri Tabanları Giri¸ s XQuery ¨ Ornek: DBXML ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları Kaynaklar¨Ornek: Persist bir JDBC ba˘lantısını sarmalıyor g nesne veri tabanı aray¨z¨n¨ JDBC komutlarına ¸eviriyor u u u c ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları KaynaklarPersist Aray¨z¨ u u veri tabanına ba˘lantı: Connection connection g Persist(connection) → Persist ekleme: Persist.insert(object) g¨ncelleme: u Persist.update(object) silme: Persist.delete(object) ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları KaynaklarPersist Aray¨z¨ u u veri tabanına ba˘lantı: Connection connection g Persist(connection) → Persist ekleme: Persist.insert(object) g¨ncelleme: u Persist.update(object) silme: Persist.delete(object) ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları KaynaklarPersist Aray¨z¨ u u sorgulama: bir sınıftan b¨t¨n nesneler uu Persist.readList(Class.class) → List<Class> SQL ile sorgulama: hazır komut yazımına benzer ¸ekilde s Persist.readList(Class.class, String query, params) → List<Class> ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları Kaynaklar ¨Persist Ornekleri ¨ Ornek (veri tabanına ba˘lantı) g Connection connection = DriverManager . getConnection ( jdbcURL ); Persist db = new Persist ( connection ); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları Kaynaklar ¨Persist Ornekleri ¨ Ornek (sorgulama: b¨t¨n filmler) uu List < Movie > movies = db . readList ( Movie . class ); for ( Movie movie : movies ) { ... } ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları Kaynaklar ¨Persist Ornekleri ¨ Ornek (SQL ile sorgulama: 1977’de ¸ekilmi¸ filmler) c s List < Movie > movies = db . readList ( Movie . class , " SELECT * FROM MOVIE WHERE ( YEAR = ?) " , 1977); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları Kaynaklar ¨Persist Ornekleri ¨ Ornek (ekleme) Movie m = new Movie ( " Casablanca " ); m . setYear (1942); db . insert ( m ); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları Kaynaklar ¨Persist Ornekleri ¨ Ornek (g¨ncelleme) u List < Movie > movies = db . readList ( Movie . class , " SELECT * FROM MOVIE WHERE ( TITLE = ?) " , " Casablanca " ); Movie found = movies . get (0); found . setYear (1943); db . update ( found ); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları Kaynaklar ¨Persist Ornekleri ¨ Ornek (silme) List < Movie > movies = db . readList ( Movie . class , " SELECT * FROM MOVIE WHERE ( TITLE = ?) " , " Casablanca " ); Movie found = movies . get (0); db . delete ( found ); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Nesne Veri Tabanları Giri¸ s Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: Persist XML Veri Tabanları KaynaklarKaynaklar Okunacak: Date Chapter 26: Object/Relational Databases ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarKonular 1 Nesne Veri Tabanları Giri¸ s Nesne Kimli˘i g ¨ Ornek: db4o 2 Nesne-Ba˘ıntı Veri Tabanları g Giri¸ s ¨ Ornek: Persist 3 XML Veri Tabanları Giri¸ s XQuery ¨ Ornek: DBXML ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarXML XML kendisi bir dil de˘il g dil tanımlama kuralları XML ile tanımlanmı¸ diller s XHTML, DocBook, SVG, MathML, ... XML ile ba˘lantılı diller g XPath, XQuery, XSL Transforms, SOAP, XLink, ... ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarXML XML kendisi bir dil de˘il g dil tanımlama kuralları XML ile tanımlanmı¸ diller s XHTML, DocBook, SVG, MathML, ... XML ile ba˘lantılı diller g XPath, XQuery, XSL Transforms, SOAP, XLink, ... ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarXML XML kendisi bir dil de˘il g dil tanımlama kuralları XML ile tanımlanmı¸ diller s XHTML, DocBook, SVG, MathML, ... XML ile ba˘lantılı diller g XPath, XQuery, XSL Transforms, SOAP, XLink, ... ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarXML Yapısı a˘a¸ yapısı g c d¨˘umler: eleman ug¨ k¨k d¨˘um¨: belge elemanı o ug¨ u yapraklar: karakter verileri, bo¸ elemanlar s a¸ılı¸-kapanı¸ takıları c s s nitelikler ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarXML Yapısı a˘a¸ yapısı g c d¨˘umler: eleman ug¨ k¨k d¨˘um¨: belge elemanı o ug¨ u yapraklar: karakter verileri, bo¸ elemanlar s a¸ılı¸-kapanı¸ takıları c s s nitelikler ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨ gXML Orne˘i ¨ Ornek (HTML) < html > < head > < title > Foo Bar </ title > </ head > < body > < h1 > Welcome to Foo Bar ! </ h1 > <p > You can get more information from the <a href = " http: // www . foobar . net / " > foobar page </ a >. </ p > < img src = " logo . jpg " alt = " Foo Bar logo " / > </ body > </ html > ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨ gXML Orne˘i ¨ Ornek (DocBook) < book lang = " tr " > < title > Foobar Report </ title > < bookinfo > ... </ bookinfo > < chapter > ... </ chapter > < chapter > ... </ chapter > ... </ book > ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨ gXML Orne˘i ¨ Ornek (DocBook) < bookinfo > < author > < firstname > John </ firstname > < surname > Foobar </ surname > </ author > < date > 2007 </ date > </ bookinfo > ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨ gXML Orne˘i ¨ Ornek (DocBook) < chapter > < title > Introduction </ title > < section > < title > Description </ title > < para > Foobar is ... </ para > </ section > ... </ chapter > ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨ gXML Orne˘i ¨ Ornek (filmler) < movies > < movie color = " Color " > < title > Usual Suspects </ title > ... </ movie > < movie color = " Color " > < title > Being John Malkovich </ title > ... </ movie > ... </ movies > ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨ gXML Orne˘i ¨ Ornek (filmler) < movie color = " Color " > < title > Usual Suspects </ title > < year > 1995 </ year > < score > 8.7 </ score > < votes > 35027 </ votes > < director > Bryan Singer </ director > < cast > < actor > Gabriel Byrne </ actor > < actor > Benicio Del Toro </ actor > </ cast > </ movie > ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarKonular 1 Nesne Veri Tabanları Giri¸ s Nesne Kimli˘i g ¨ Ornek: db4o 2 Nesne-Ba˘ıntı Veri Tabanları g Giri¸ s ¨ Ornek: Persist 3 XML Veri Tabanları Giri¸ s XQuery ¨ Ornek: DBXML ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarXQuery XPath: XML belgelerinden d¨˘um ve veri ¸ekme ug¨ c XQuery: XPath + g¨ncelleme i¸lemleri u s ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarXPath aranılan d¨˘umlerin yolu: yol adımları zinciri ug¨ k¨k d¨˘um¨nden ba¸lanarak (mutlak) o ug¨ u s bulunulan d¨˘umden ba¸lanarak (ba˘ıl) ug¨ s g yol adımları / i¸aretleriyle ayrılır s ¨ Ornek /movies/movie cast/actor veya ./cast/actor ../../year ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarXPath aranılan d¨˘umlerin yolu: yol adımları zinciri ug¨ k¨k d¨˘um¨nden ba¸lanarak (mutlak) o ug¨ u s bulunulan d¨˘umden ba¸lanarak (ba˘ıl) ug¨ s g yol adımları / i¸aretleriyle ayrılır s ¨ Ornek /movies/movie cast/actor veya ./cast/actor ../../year ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarYol Adımları yol adımı yapısı: axis::node_selector[predicate] eksen: nerede aranacak? se¸ici: ne aranacak? c y¨klem: hangi ko¸ula uyanlar aranacak? u s ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarYol Adımları yol adımı yapısı: axis::node_selector[predicate] eksen: nerede aranacak? se¸ici: ne aranacak? c y¨klem: hangi ko¸ula uyanlar aranacak? u s ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarEksenler child: b¨t¨n ¸ocuklarda, bir d¨zey (varsayılan eksen) uu c u descendant: b¨t¨n ¸ocuklarda, rek¨rsif olarak uu c u (kısa g¨sterilim: //) o parent: anne d¨˘umde, bir d¨zey ug¨ u ancestor: b¨t¨n anne d¨˘umlerde, k¨ke kadar uu ug¨ o attribute: niteliklerde (kısa g¨sterilim: @) o following-sibling: sonra gelen karde¸lerde s preceding-sibling: ¨nce gelen karde¸lerde o s ... ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarD¨˘um Se¸iciler ug ¨ c d¨˘um takısı ug¨ d¨˘um niteli˘i ug¨ g d¨˘um metni: text() ug¨ d¨˘um¨n b¨t¨n ¸ocukları: * ug¨ u u u c ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨XPath Ornekleri ¨ Ornek b¨t¨n y¨netmenlerin isimleri: uu o /movies/movie/director/text() //director/text() bu filmdeki b¨t¨n oyuncular: uu ./cast/actor .//actor b¨t¨n filmlerin renkleri: uu //movie/@color bundan sonraki filmlerin puanları: ./following-sibling::movie/score ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨XPath Ornekleri ¨ Ornek b¨t¨n y¨netmenlerin isimleri: uu o /movies/movie/director/text() //director/text() bu filmdeki b¨t¨n oyuncular: uu ./cast/actor .//actor b¨t¨n filmlerin renkleri: uu //movie/@color bundan sonraki filmlerin puanları: ./following-sibling::movie/score ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨XPath Ornekleri ¨ Ornek b¨t¨n y¨netmenlerin isimleri: uu o /movies/movie/director/text() //director/text() bu filmdeki b¨t¨n oyuncular: uu ./cast/actor .//actor b¨t¨n filmlerin renkleri: uu //movie/@color bundan sonraki filmlerin puanları: ./following-sibling::movie/score ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨XPath Ornekleri ¨ Ornek b¨t¨n y¨netmenlerin isimleri: uu o /movies/movie/director/text() //director/text() bu filmdeki b¨t¨n oyuncular: uu ./cast/actor .//actor b¨t¨n filmlerin renkleri: uu //movie/@color bundan sonraki filmlerin puanları: ./following-sibling::movie/score ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarXPath Y¨klemleri u d¨˘um sırası sınaması: [position] ug¨ c ¸ocuk varlı˘ı sınaması: [child_tag] g c ¸ocuk de˘eri sınaması: [child_tag="value"] g nitelik varlı˘ı sınaması: [@attribute] g nitelik de˘eri sınaması: [@attribute="value"] g ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarXPath Y¨klemleri u d¨˘um sırası sınaması: [position] ug¨ c ¸ocuk varlı˘ı sınaması: [child_tag] g c ¸ocuk de˘eri sınaması: [child_tag="value"] g nitelik varlı˘ı sınaması: [@attribute] g nitelik de˘eri sınaması: [@attribute="value"] g ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarXPath Y¨klemleri u d¨˘um sırası sınaması: [position] ug¨ c ¸ocuk varlı˘ı sınaması: [child_tag] g c ¸ocuk de˘eri sınaması: [child_tag="value"] g nitelik varlı˘ı sınaması: [@attribute] g nitelik de˘eri sınaması: [@attribute="value"] g ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨XPath Ornekleri ¨ Ornek birinci filmin ba¸lı˘ı: s g /movies/movie[1]/title/text() 1997 yılında ¸ekilmi¸ filmler: c s //movie[year="1997"] siyah-beyaz filmler: //movie[@color="BW"] ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨XPath Ornekleri ¨ Ornek birinci filmin ba¸lı˘ı: s g /movies/movie[1]/title/text() 1997 yılında ¸ekilmi¸ filmler: c s //movie[year="1997"] siyah-beyaz filmler: //movie[@color="BW"] ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨XPath Ornekleri ¨ Ornek birinci filmin ba¸lı˘ı: s g /movies/movie[1]/title/text() 1997 yılında ¸ekilmi¸ filmler: c s //movie[year="1997"] siyah-beyaz filmler: //movie[@color="BW"] ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarKonular 1 Nesne Veri Tabanları Giri¸ s Nesne Kimli˘i g ¨ Ornek: db4o 2 Nesne-Ba˘ıntı Veri Tabanları g Giri¸ s ¨ Ornek: Persist 3 XML Veri Tabanları Giri¸ s XQuery ¨ Ornek: DBXML ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar¨Ornek: Oracle Berkeley DBXML g¨m¨l¨ XML veri tabanı o uu XML belgeleri tutuyor XQuery ile veri uzerinde i¸lem yapılabiliyor ¨ s kendi istemcisi ile kullanılabiliyor c s ¸e¸itli programlama dilleri i¸in aray¨zleri var c u ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarDBXML Aray¨z¨ u u veri tabanı yaratma: XmlManager nesnesi yaratılır XmlManager.createContainer(name) → XmlContainer belge elemanı (k¨k) yerle¸tirilir: o s XmlContainer.putDocument(namespace, xml_string, configuration) var olan veri tabanına ba˘lanma: g XmlManager nesnesi yaratılır XmlManager.existsContainer(name) != 0 ise XmlManager.openContainer(name) → XmlContainer ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarDBXML Aray¨z¨ u u veri tabanı yaratma: XmlManager nesnesi yaratılır XmlManager.createContainer(name) → XmlContainer belge elemanı (k¨k) yerle¸tirilir: o s XmlContainer.putDocument(namespace, xml_string, configuration) var olan veri tabanına ba˘lanma: g XmlManager nesnesi yaratılır XmlManager.existsContainer(name) != 0 ise XmlManager.openContainer(name) → XmlContainer ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarDBXML Aray¨z¨ u u XmlManager.createQueryContext() → XmlQueryContext XmlQueryContext.setNamespace(namespace, URL) sorgu katarı: collection(name)/xpath_expression sorgunun ¸alı¸tırılması: c s XmlManager.query(query, context) → XmlResults XmlResults yineleyicisinin her bir elemanı bir XmlValue getFirstChild(), getLastChild(), getNextSibling(), ... karakter verisi: getNodeValue() → String nitelikler: XmlValue.getAttributes() → XmlResults ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarDBXML Aray¨z¨ u u XmlManager.createQueryContext() → XmlQueryContext XmlQueryContext.setNamespace(namespace, URL) sorgu katarı: collection(name)/xpath_expression sorgunun ¸alı¸tırılması: c s XmlManager.query(query, context) → XmlResults XmlResults yineleyicisinin her bir elemanı bir XmlValue getFirstChild(), getLastChild(), getNextSibling(), ... karakter verisi: getNodeValue() → String nitelikler: XmlValue.getAttributes() → XmlResults ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarDBXML Aray¨z¨ u u XmlManager.createQueryContext() → XmlQueryContext XmlQueryContext.setNamespace(namespace, URL) sorgu katarı: collection(name)/xpath_expression sorgunun ¸alı¸tırılması: c s XmlManager.query(query, context) → XmlResults XmlResults yineleyicisinin her bir elemanı bir XmlValue getFirstChild(), getLastChild(), getNextSibling(), ... karakter verisi: getNodeValue() → String nitelikler: XmlValue.getAttributes() → XmlResults ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨DBXML Ornekleri ¨ Ornek (veri tabanına ba˘lantı) g db = new XmlManager (); XmlContainer container = null ; if ( db . existsContainer ( " imdb . dbxml " ) != 0) container = db . openContainer ( " imdb . dbxml " ); else { container = db . createContainer ( " imdb . dbxml " ); container . putDocument ( " movies " , " < movies / > " , ( XmlDocumentConfig ) null ); } ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨DBXML Ornekleri ¨ Ornek (film nesnesini XML katarına ¸evirme) c public static String toXml ( Movie movie ) { StringBuffer buffer = new StringBuffer (); buffer . append ( " < movie > " ); buffer . append ( " < title > " + movie . getTitle () + " </ title > " ); buffer . append ( " < year > " + movie . getYear (). toString () + " </ year > " ); buffer . append ( " </ movie > " ); return buffer . toString (); } ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨DBXML Ornekleri ¨ Ornek (XML d¨˘um¨n¨ film nesnesine ¸evirme) ug¨ u u c private static Movie fromNode ( XmlValue node ) throws XmlException { XmlValue tn = node . getFirstChild (); String title = tn . getFirstChild (). getNodeValue (); XmlValue yn = tn . getNextSibling (); String yearValue = yn . getFirstChild (). getNodeValue (); Integer year = Integer . parseInt ( yearValue ); Movie movie = new Movie ( title ); movie . setYear ( year ); return movie ; } ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨DBXML Ornekleri ¨ Ornek (sorgulama: b¨t¨n filmler) uu XmlQueryContext context = ...; context . setNamespace (...); String query = " collection (" imdb . dbxml ")/ movies / movie " ; XmlResults results = db . query ( query , context ); if ( results . hasNext ()) { XmlValue node = results . next (); Movie movie = fromNode ( node ); ... } results . delete (); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları Kaynaklar ¨DBXML Ornekleri ¨ Ornek (ekleme) Movie m = new Movie ( " Casablanca " ); m . setYear (1942); XmlQueryContext context = ...; context . setNamespace (...); String query = " insert nodes " + toXml ( m ) + " into collection (" imdb . dbxml ")/ movies " ; XmlResults results = db . query ( query , context ); results . delete (); ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri
  • Giri¸ s Nesne Veri Tabanları XQuery Nesne-Ba˘ıntı Veri Tabanları g ¨ Ornek: DBXML XML Veri Tabanları KaynaklarKaynaklar Okunacak: Date Chapter 27: The World Wide Web and XML ¸ ¨ g¨ u u H. Turgut Uyar, Sule O˘ud¨c¨ Veri Tabanı Sistemleri