Object Oriented Database Management Systems (OODMS), Nesne Tabanlı Veri Tabanı Yönetim Sistemleri, ismini önceden duymuştum ama hiç bu konu ile ilgili bir makale okumadım.Sadece lisans yıllarında "Database" dersinde bir kaç bilgiden öteye değildi bildiklerim.Ta ki geçen gün bir zat'ın makalesini okuyunca ilgim bu konuya arttı. OODMS'ler gerçekten çok güzel düşünülmüş.Siz nasıl nesne tabanlı programlama yapıyorsanız veritabınını da bu şekilde tanımlayabiliyorsunuz.Böylece veritabanında kalıtım özelliğini de sağlamış oluyorsunuz.Bir çok avantajı var,mesela primary key ortadan kalkıyor.Çünkü herşey bir nesne ve her nesnenin bir ID'si var.Sorgulama (Query) diline de fazla ihtiyacınız yok.Çünkü nasıl programlamada bir nesnenin elemanlarına get() metodları ile ulaşıyorsunuz,burda da vaziyet aynı.Makalede de belirtildiği gibi kötü tarafı şema değişikliği.Yani veritabanında bir değişiklik yaptığınızda bu değişikliklere takabül eden sınıflarda da değişiklik yapmak gerek.Ama bu konuyu halledecek araçlar bence mevcuttur, araştırmadım gerçi.Otomatik olarak veritabanındaki değişiklikleri algılayıp kodu güncelleyebilirler mesela.
Günümüzde İlişkisel veritabanları bazı araçlar kullanılarak nesne tabanlı bir yapıya dönüştürebiliyorsunuz.Mesela ünlü hibernate projesini kullanarak haritalama (mapping) yardımı ile table'lar ile JavaBean sınfları arasında ilişki kurabiliyor ve nesne tabanlı olarak veritabanına veri yazıp okuyabiliyorsunuz.Ama arka tarafta, işlemler gene ilişkisel veritabanına göre yapıldığı için performansta bir kayıp oluyor.Ama OODBMS'de zaten her şey nesne tabanlı, o nedenle performansta ilişkisel veritabanında göre performans kaybının daha düşük olacağı kanaatindeyim.Bir deneyip görmek lazım...
1 yorum:
Relational DB sistemleri oldukça yaygın olduğu için pek tutmayacak gibi gözüküyor. Mesela oracle'ın tüm sistemleri relational db sistemi üzerine kurulu. ama güzelmiş.
Yorum Gönder