Database Hakkında
-
Amaç : Tartışma,
.Net platformunda VB ci arkadaşlar bile OOP ile tanıştı.
Ama DB mantığı hep aynı... OO bi yapıda... Transact SQL ile datayı rowSet ile çekmek bana çok ta OOP yaklaşımı olmuyor. ben DB'den gelen datayı Obje mi doldurmak için uğraşıorum ve bu uğraş performans kaybına neden oluyor.
Piyasada ObjectOrientedDB ler var. Yarattığınız objeyi OO yapısı olan bir yapıda tutuorsunuz. ve DB'den veri çektiğinizde size direk Object döndürüyor...
Yinede hangi yapıyı seçerdiniz.. yada seçtiniz ?
-
java olayında oracle da JavaStored Proc. ler var mesela ben vb.net te dolduruyorum datasete çekiyorum.
-
Benim bahsettiğim olayda MSSQL, MYSQL, ORACLE, DB2... hiçbiri kullanılmıyor.. bunların hepsi ilişkisel database.
Benim bahsettiğim database direk objeleri tutuyor.
Kişi class'ın var.. kişi objeni DB'de depoluyorsun.. DB'den çekerken direk sana kişi objesi olarak gelir..
-
Aslında classları bir database motoruna ihtiyac duymadan cogu dilde dosyaya yazdirabilirsin
mesela kişiler diye bir kişi arrayi yapar onuda cat die dosyaya aldirabilirsin, ama sql ile bunlari secemioz tabi o zaman.
bahsettigin database cesitlerini hic kullanmadim bi ornek warmi hoja? site linki fln yada? (performansi dibe ceken bişey olduna eminim ama denemekte yarar war)
-
@HolyOne :
Efet Objelerimizi Serialization ile objeleri binary olarak tutabilirim hatta çokda az yer kaplıyor ama Database dedin mi.. bi sorgulama aracı olmalı.. serialization'da bunu yapamıorsun.. bide 40MB lik bi dosyayı serialize etmek 2dk falan sürer buda çok düşük bir performans.Ben şuan kullanıyorum prototip projesi yapıorum bununla. Dediklerine göre saniyede 200.000 obje üserinde çalışabiliyorsun ve HIBERNATE ve MySql den 40 kat hızlı diye iddaları var tabi ben daha bunun testini yapmadım HIBERNATE'den hızlı olabilirler ama bi DatabaseServer'ından hızlı olabilirmi bilmiyorum. 2GB nin katı olarak genişleyebiliyormuş.
OODB normal bir yapıdan hızlı olmalı bu DB4O dosya tabanlı çalışıyor. ama Server mantığıyla çalışan OODB leri de var. sanırım ObjectStore(Progress) die enterprise bi yazılım var ama hiç bakmadım.
SQL ile uğraşmıyorsun.. Class'ını DB'deki tablona MAP etmeye kasmıyorsun...
Amazon, IMDB .. gibi büyük firmalar OODB kullanıyor.
*HIBERNATE : Classlarını DB tablona map eden bir persistance framework'dur. (NHIBARNATE : .Net port'u)
Benim hayalimde hep ObjectOriented DB Managemnt System projesinin içinde bulunmak vardır..