Nesne Veri Tabanları Nesne-Ba˘ıntı Veri Tabanları         g         XML Veri Tabanları         Veri Tabanı Sistemleri     ...
Nesne Veri Tabanları                           Nesne-Ba˘ıntı Veri Tabanları                                   g           ...
Nesne Veri Tabanları                 Nesne-Ba˘ıntı Veri Tabanları                         g                         XML Ve...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                      s                          Nesne Veri Tabanları                ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Nesne Veri Tabanları    Giri¸                                                    s                 Nesne-Ba˘ıntı Veri Taba...
Nesne Veri Tabanları    Giri¸                                                    s                 Nesne-Ba˘ıntı Veri Taba...
Nesne Veri Tabanları    Giri¸                                                    s                 Nesne-Ba˘ıntı Veri Taba...
Nesne Veri Tabanları    Giri¸                                                   s                Nesne-Ba˘ıntı Veri Tabanl...
Nesne Veri Tabanları    Giri¸                                                  s               Nesne-Ba˘ıntı Veri Tabanlar...
Nesne Veri Tabanları    Giri¸                                                  s               Nesne-Ba˘ıntı Veri Tabanlar...
Nesne Veri Tabanları    Giri¸                                                 s              Nesne-Ba˘ıntı Veri Tabanları ...
Nesne Veri Tabanları    Giri¸                                                   s                Nesne-Ba˘ıntı Veri Tabanl...
Nesne Veri Tabanları    Giri¸                                                  s               Nesne-Ba˘ıntı Veri Tabanlar...
Nesne Veri Tabanları    Giri¸                                                   s                Nesne-Ba˘ıntı Veri Tabanl...
Nesne Veri Tabanları    Giri¸                                                  s               Nesne-Ba˘ıntı Veri Tabanlar...
Nesne Veri Tabanları    Giri¸                                                  s               Nesne-Ba˘ıntı Veri Tabanlar...
Nesne Veri Tabanları    Giri¸                                                      s                   Nesne-Ba˘ıntı Veri ...
Nesne Veri Tabanları    Giri¸                                                  s               Nesne-Ba˘ıntı Veri Tabanlar...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                      s                          Nesne Veri Tabanları                ...
Giri¸                                                      s                          Nesne Veri Tabanları                ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                      s                          Nesne Veri Tabanları                ...
Giri¸                                                      s                          Nesne Veri Tabanları                ...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                     s                         Nesne Veri Tabanları                  ...
Giri¸                                                     s                         Nesne Veri Tabanları                  ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                    s                        Nesne Veri Tabanları                    ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Giri¸                                                s                    Nesne Veri Tabanları                            ...
Giri¸                                                s                    Nesne Veri Tabanları                            ...
Giri¸                                                s                    Nesne Veri Tabanları                            ...
Giri¸                                                   s                       Nesne Veri Tabanları                      ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                  s                      Nesne Veri Tabanları                        ...
Giri¸                                                 s                     Nesne Veri Tabanları                          ...
Upcoming SlideShare
Loading in …5
×

Veri Tabanı Sistemleri - Nesne Veri Tabanları

2,294 views

Published on

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

Published in: Education, Technology
1 Comment
2 Likes
Statistics
Notes
No Downloads
Views
Total views
2,294
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
51
Comments
1
Likes
2
Embeds 0
No embeds

No notes for slide

Veri Tabanı Sistemleri - Nesne Veri Tabanları

  1. 1. 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
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. 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
  23. 23. 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
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. 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
  28. 28. 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
  29. 29. 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
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. 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
  41. 41. 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
  42. 42. 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
  43. 43. 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
  44. 44. 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
  45. 45. 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
  46. 46. 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
  47. 47. 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
  48. 48. 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
  49. 49. 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
  50. 50. 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
  51. 51. 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
  52. 52. 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
  53. 53. 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
  54. 54. 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
  55. 55. 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
  56. 56. 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
  57. 57. 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
  58. 58. 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
  59. 59. 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
  60. 60. 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
  61. 61. 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
  62. 62. 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
  63. 63. 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
  64. 64. 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
  65. 65. 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
  66. 66. 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
  67. 67. 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
  68. 68. 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
  69. 69. 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
  70. 70. 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
  71. 71. 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
  72. 72. 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
  73. 73. 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
  74. 74. 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
  75. 75. 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
  76. 76. 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
  77. 77. 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
  78. 78. 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
  79. 79. 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
  80. 80. 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
  81. 81. 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
  82. 82. 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
  83. 83. 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
  84. 84. 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
  85. 85. 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
  86. 86. 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
  87. 87. 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
  88. 88. 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
  89. 89. 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
  90. 90. 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
  91. 91. 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

×