Merhaba,
İşyerinde databaseden bahsederken “Persistence katmanı” dendiğini duydum.
Bugüne kadar database diye isimlendirdiğimiz şeyi neden farklı bir isimle çağırdıklarını anlamadım.
Persistence katmanı nedir? Sadece database’e mi persistence katmanı denir? Persistence katmanı neleri kapsamaktadır?
Bu soruları cevaplarsanız çok mutlu olurum.
Teşekkürler hasscript.
Büyük bir yazılım uygulaman olduğunu düşünün, yüzlerce belkide binlerce veri tabanında tabloların var.
Bu tablolarda data alış verişi bulunmak için her defasında database (veri tabanı) bağlanma işlemini yapacak , sonrasında da gereken SQL komutlarınızı yazıp dataların update / Insert / delete işlemlerini yaptıktan sonra bağlantıyı kapatacaksınız. Ve bunları her bir tablo için yapacaksınız. Bunları yaparken zaman kaybı olacak, uygulamanız yavaş çalışacak, siz de development yapmak için harcadığınız zamanı tekrar eden bu zahmetli işte harcayacksınız.
–> veri tabanına bağlan
— insert into …. company_table
— select * from company_table veya select .. (x verisi) from company_table
— delete (x verisi) from company_table
ne kadar SQL lazımsa artık 🙂
–> veri tabanı bağlantısını kapat
bu tablolarıdan bir sürü olduğunu düşünürsen her birisi için SQL mi yazacaksın? Hayır. Senin tablolarına karşılık gelecek birer NESNE (obje) yaratacaksın. Öyle bir yapı düşünün ki, sizin sadece yaratmış olduğunuz bir obje üzerinden sizin için veri tabanına gidip o objeye ait tabloyu oluşturacak ve datalarınızı objelerin üzerinden database’e gönderecek. Siz bir kez db ayarlarını yapacaksınız, o araç o bilgileri kullanarak bağlanma işini kendisi yapacaktır.
Siz bizzat “connection aç – datayı update/inset/delete- connection kapat” işlemine ve gereksiz SQL yazma zahmetine girmeyeceksiniz.
obje.insert()
obje.update()
obje.delete()
gibi kısacık bir yöntem ile datalarınızı obje üzerinden setleyerek insert/update/delete yapabilirsiniz.
Persistance katmanı nesnelerinizin database ile ilişkisini yönetir desem yanlış olmaz sanırım.
Selamlar,
Tolga persistence katmanı nedir sorusundan ziyade persistence katmanında kullanılan teknik ve araçlardan biri olan ORM kavramını anlatmış.
Öncelikle sanıyorum ki; persistence kelimesinin ne demek olduğunu anlamamız lazım. Persistence: süreklilik, devam, ısrar. Bu kelimenin bilgisayar bilimlerinde kullanılan karşılığı ise verinin sürekli olarak bir yerde tutulabilmesidir. Yani basit bilgisayar bilgisiyle bilgisayarda iki çeşit hafıza olduğunu zaten biliyoruz. Bunlar geçici tipte ve kalıcı tipte bilgilerimizin kullanıldığı bellek çeşitleri. Yani word dosyasını açtığınız zaman yazarsınız, o yazdıklarınız önünüzde durur buna geçici bellek diyoruz ki; bilgisayarınızı o anda kapatsanız bilgileriniz gidecek. Dosyanızı kaydettiğiniz durumda ise bilgileriniz sabit, sürekli olarak bilgisayarınızda kalacak. İşte bu kaydetme işlemine Persistence diyoruz. Özellikle yazılım alanında daha çok kullanılıyor. Bir uygulama yazdığınız zaman bu uygulamanın bilgilerini bir veri tabanında, dosyada, cdde veya kalıcılık (persistence) sağlayan bir yapıda tutmanız gerekecektir.
Pesistence kavramını öğrendik, peki persistence katmanı nedir? Bu durum için de yazılım dünyasında kullanılan n-tier architecture (n-katman mimari) kavramı üzerinden düşünmek lazım. Bu katmanın detayına girmeyeceğim. Yazılımın kodları içinde özellikle persistence kısmını halleden (yani; veri tabanı işlemleri, dosyalama işlemleri, vb.) kodların olduğu katmana persistence katmanı denir. Şu anda Tolga’nın anlattığı ORM yapısı da çok kullanılan bir tekniktir.
İyi çalışmalar.