search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
3.2k gösterim
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.
Genel Kavramlar kategorisinde 133 puan

2 Cevap

1 oy

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.

2.0k puan
0 oy

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.

6.2k puan
düzenledi

İlgili sorular

0 oy
1 cevap 3.4K gösterim
3.4K gösterim
JPA, ORM, Hibernate ve Persistence kavramları nedir? Bunları birbirleri ile arasındaki ilişki nasıldır?
21 Ekim 2016 Genel Kavramlar kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
2 cevap 2.7K gösterim
2.7K gösterim
In memory database nedir? ne gibi kolaylık sağlar. Spring boot projelerinde in memory database kavramı geçiyor, başka In memory database var mıdır?
9 Haziran 2020 Genel Kavramlar kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 716 gösterim
716 gösterim
Autonomous Transaction nedir?
5 Şubat 2019 Veri Tabanı kategorisinde sinan 291 puan sordu
0 oy
3 cevap 2.1K gösterim
2.1K gösterim
Selamlar, Table partition, global index ve local index terimleri ne ifade ediyor. Teşekkürler
15 Şubat 2018 Veri Tabanı kategorisinde erkanerkisi 211 puan sordu
0 oy
1 cevap 2.4K gösterim
2.4K gösterim
flyway ile database migration yapma hakkında bilgisi olan var mı? Bir arkadaş migration işleri için flyway kullanmayı önerdi. Normal migration'dan ne farkı vardır?
21 Eylül 2017 Veri Tabanı kategorisinde tolgacelik.art 2.0k puan sordu