ustad gibi sözcükler söylemeyin lütfen. Çünkü ben buradaki en bilgisiz ve belkide en tembel insanım :) Ve ayrıca aynı sözcükler Ali Bey içinde kullanılıyor ve Ali Bey'e ayıp oluyor :-)
Benimki tam olarak veritabanı sistemi sayılmaz. Çünkü ben daha mysql gibi veritabanını kullanmayı bile tam bilmiyorken ona benzeyen bir şey yazmam mümkün değil.
Benimki sadece Phobos kütüphanesinin olanaklarını kullanarak daha basit ve daha kolay veri depolayabilceğim bir sistem.
Hala merak ediyorsanız sistem hakkında çok basit şeyler anlatayım.
Veritabanı sistemlerinde ilk önce veritabanı oluşturulur. Dkv'de de aynı mantıkla gittim ve ilk önce veritabanı oluşturtuyorum. Bunun için dizin(klasör) oluşturuyor.(Konsol komutu verdirterek oluşuyor.)
Sonra veritabanlarında tablo oluşturulur. Dkv'de de aynı mantıkla gittim veritabanı dizininde bir dizin daha açtırttım. Bunada tablo dedim.
Bundan sonrası biraz daha farklı diğer veritabanı sistemlerinden.
Bundan sonra veri yazma için bir dosya oluşturuyor. Buna sanırım normal veritabanlarında alan deniyor.
Dosyaya veri kaydederken ise anahtar sistemi dediğim bir sistem ile kaydediyor. Bu ise normal veritabanından asıl farkı.
dosyaya veri yazarken anahtar belirtiyorsunuz. Örneğin Dkv veritabanı mı ? diye. Dkv bunu *-*Dkv veritabanı mı ? - diye kaydediyor. Sonra veriyi giriyorsunuz ve alt satıra veriyi ekliyor.
Örneğin iki veri kaydedilmiş bir dosya:
*-*Dkv veritabanı mı ? -
Bilmem.
Olabilir ama o kadar kaliteli değil ki ?
-dkv iki satırı destekledi bir satırı da destekler mi-
evet.
Burda gördüğünüz gibi "-" ile anahtar dizgileri belirtiyorum. Sonra tekrardan "-" ile karşılaşırsa artık verinin bittiğini anlıyor.
Dosyadan veriyi okurken ise eşleme tablosuna aktarıyorum. Böylece dosyadan istediğiniz kadar veriyi çekin yinede hız kaybı yaşamıyor. (Bu çok cüretkar bir cümle oldu ama öyle :-) ) Eğer eşleme tablosuna aktardıktan sonra yine dosyaya veri yazılırsa ve yine okuma işlemi yapılırsa yine eşleme tablosuna aktarılıyor. Böylece hiç okurken veri kayıbı ile okunmuyor.
Böylece aynı dosyadan veriye istediğiniz veriye erişirken istediğiniz kadar erişin hız kaybı normal veritabanı gibi yaşanmıyor ama bir kere okumak için açtığınızda herhalde normal veritabanından daha yavaş oluyor.
Diğer işlemler ise silme işlemi filan. Veri silerken eşleme tablosundan veriyi silip tekrar dosyayı oluşturuyorum.
Ayrıca lazım olur diye yedekleme işlemi filan var.
Şuan tek eksiği girilen veri hakkında bilgisi yok. Kaç tane veri girdi, başlıkları ne filan...
(Python için nasıl yapacaksınız tam bilmiyorum. Çünkü python ile yazınca veritabanı çok daha yavaş çalışacaktır. Her ne kadar dosya işlemleri D ile aynı süre alsada. )
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]