Skip to main content

AccessTr.neT


Ms Sql Server Ve Ms Access İn Beraber Kullanılmasına Yönelik Senaryolar Hakkında

schecter
schecter
SQL
3
1148

Ms Sql Server Ve Ms Access İn Beraber Kullanılmasına Yönelik Senaryolar Hakkında

#1
Herkese merhaba,

Birbiriyle ilgili 4 sorum olacak. Uzun süredir aşağıdaki sorularımın cevaplarını aramaktayım. Aydınlatırsanız çok memnun olurum.

MS Access üzerinden baştan sona tasarladığım veritabanı projem var. Bu veritabanım çok kullanıcılı bir ortamda ortak ağ paylaşımı üzerinden kullanıma geçireceğim. Ancak bazı endişelerim var.

1- Access çok kullanıcının eş zamanlı form üzerinden veri girişlerinde problem çıkaracak mı? Çıkarırsa ne tarz problemlerle karşılacağım?

2- Bununla ilgili olarak sormak istediğim; veritabanımı Access den ayırıp Sql server a koyarsam ve kullanıcı arayüz olarak MS Access i kullanırsam, bu problemleri yok etmiş mi olurum?

3- Aynı şekilde MS Accessde veritabanı ayrı kullanıcı arayüzü ayrı olarak bölünebilmekte. Bu şekilde yaptığımda da problemler yok olacak mı?

4- Bazı arkadaşlar C# ile kullanıcı arayüzü tasarlayıp Sql Server ile bağlama metodundan bahsetmektedir.
Bu şekilde yapıldığında performans ve çoklu kullanıcıların aynı form üzerinden tabloya veri girme durumunda problem yaşama konusu, MS Access in kullanıcı arayüzü olduğu senaryoya göre daha mı iyi bir çözüm olacak? Evet ise neden?
Cevapla
#2
Merhaba Sayın @schecter

Sorunlarınıza kısaca cevap vermeye çalışayım.

1. Access veritabanını paylaşıma açmaktan kastınız veritabanını bölmeden paylaşmak ise asla tavsiye etmeyeceğimiz bir uygulamadır. %99 olarak yaşayacağınız sorun kayıt çakışmasıdır ki kilitlenme ve çökmelere sebep olur. Sürekli onarma ve kurtarma ile uğraşırsınız ve bazen kurtaramayabilirsiniz. Bunun yerine veritabanını bölerek paylaşıma açmalısınız. Bölme ile ilgili başlıklarımızı incelerseniz yaşayabileceğiniz tüm sorunlar ve gerekli tedbirler ile ilgili fikriniz olacaktır.

2. Kullanıcı arayüzü olarak Access kullanmak eldeki kaynağı kullanıp tasarruf etmek anlamında değerlendirilebilir ancak şahsi görüşüm Sql serverda bir veritabanı düşünülüyor ise Access neden derim. Sql serverın çok daha kompleks ve ölçeklenebilirlik özelliğini Access'de asla bulamayacağınız tartışılmaz. Sorunuz özelinde bakılacak olursa ölçek olarak daha geniş imkana sahip olmanızı sağlayacak olan Sql serverda arayüz olarak Access kullanmak yukarıdaki sorunlarınıza kısmi çözüm getirse de %100 engelleyemez.

3. Bu 1. maddede bahsettiğiniz paylaştırma işleminin en doğru yöntemi olan bölme işlemidir ki bu konu ile ilgili başlıklarımızı incelemeniz ile ilgil belirttiklerimi tekrarlamıyorum. Ben önemli bir iki kalemi belirteyim:
* Karşılaşabileceğiniz en ciddi sorun kayıt çakışmasıdır. İyi yapılandırılmamış bir bölme işlemi kayıt çakışması, kilitlenme, işlemlerde ciddi süreler ve çökme sorunlarına sebep olabilir. Benim bu hususta tavsiyem tüm veri girişinin akabinde kayda alma ve numaralandırma/kimliklendirmedir ki bu kayıt çakışması sorununu yaşama olasılığınızı en alt seviyeye çekecektir.
* Access'in mevcut yapısı nedeni ile diğer veritabanları ve özellikle sqlserver hızlarına asla ulaşamayacağını unutmayın.
* Veritabanınıza erişecek kullanıcı sayısı diğer veritabanları ile kıyaslandığında daha sınırlıdır. 200 kullanıcya kadar ağır yük işleri yapılmadığı sürece desteklediği Microsoft tarafından belirtilsede belirli sayıda sorgu ve işlemin üzerinde çıkılan veritabanlarında 20-25 kullanıcıdan sonra ciddi performans sorunlarının yaşandığını dönem içinde deneyimledik.

4. Bu çözüm çok daha efektif bir çözümdür. Access'in yapısal esnekliğindeki eksikliği bertaraf ve Sql server performans artılarından faydalanmanın en pratik ve stabil yöntemidir. C# dediğinizde WinForm, WPF, ASP.NET WebFormları, ASP.NET gibi kozlarınız Access'de yoktur mesela bu bile tek başına cevaptır sanıyorum.

Vakit darlığı nedeni ile çok daha detaylı yazamıyorum ancak bu genel başlıklardan yola çıkarak çok daha detaylı da inceleyebilirsiniz.

Umarım işinize yarar. İyi çalışmalar.
Cevapla
#3
(15/12/2020, 00:32)atoykan yazdı: Merhaba Sayın @schecter

Sorunlarınıza kısaca cevap vermeye çalışayım.

1. Access veritabanını paylaşıma açmaktan kastınız veritabanını bölmeden paylaşmak ise asla tavsiye etmeyeceğimiz bir uygulamadır. %99 olarak yaşayacağınız sorun kayıt çakışmasıdır ki kilitlenme ve çökmelere sebep olur. Sürekli onarma ve kurtarma ile uğraşırsınız ve bazen kurtaramayabilirsiniz. Bunun yerine veritabanını bölerek paylaşıma açmalısınız. Bölme ile ilgili başlıklarımızı incelerseniz yaşayabileceğiniz tüm sorunlar ve gerekli tedbirler ile ilgili fikriniz olacaktır.

2. Kullanıcı arayüzü olarak Access kullanmak eldeki kaynağı kullanıp tasarruf etmek anlamında değerlendirilebilir ancak şahsi görüşüm Sql serverda bir veritabanı düşünülüyor ise Access neden derim. Sql serverın çok daha kompleks ve ölçeklenebilirlik özelliğini Access'de asla bulamayacağınız tartışılmaz. Sorunuz özelinde bakılacak olursa  ölçek olarak daha geniş imkana sahip olmanızı sağlayacak olan Sql serverda arayüz olarak Access kullanmak yukarıdaki sorunlarınıza kısmi çözüm getirse de %100 engelleyemez.

3. Bu 1. maddede bahsettiğiniz paylaştırma işleminin en doğru yöntemi olan bölme işlemidir ki bu konu ile ilgili başlıklarımızı incelemeniz ile ilgil belirttiklerimi tekrarlamıyorum. Ben önemli bir iki kalemi belirteyim:
* Karşılaşabileceğiniz en ciddi sorun kayıt çakışmasıdır. İyi yapılandırılmamış bir bölme işlemi kayıt çakışması, kilitlenme, işlemlerde ciddi süreler ve çökme sorunlarına sebep olabilir. Benim bu hususta tavsiyem tüm veri girişinin akabinde kayda alma ve numaralandırma/kimliklendirmedir ki bu kayıt çakışması sorununu yaşama olasılığınızı en alt seviyeye çekecektir.
* Access'in mevcut yapısı nedeni ile diğer veritabanları ve özellikle sqlserver hızlarına asla ulaşamayacağını unutmayın.
* Veritabanınıza erişecek kullanıcı sayısı diğer veritabanları ile kıyaslandığında daha sınırlıdır. 200 kullanıcya kadar ağır yük işleri yapılmadığı sürece desteklediği Microsoft tarafından belirtilsede belirli sayıda sorgu ve işlemin üzerinde çıkılan veritabanlarında 20-25 kullanıcıdan sonra ciddi performans sorunlarının yaşandığını dönem içinde deneyimledik.

4. Bu çözüm çok daha efektif bir çözümdür. Access'in yapısal esnekliğindeki eksikliği bertaraf ve Sql server performans artılarından faydalanmanın en pratik ve stabil yöntemidir. C# dediğinizde WinForm, WPF, ASP.NET WebFormları, ASP.NET gibi kozlarınız Access'de yoktur mesela bu bile tek başına cevaptır sanıyorum.

Vakit darlığı nedeni ile çok daha detaylı yazamıyorum ancak bu genel başlıklardan yola çıkarak çok daha detaylı da inceleyebilirsiniz.

Umarım işinize yarar. İyi çalışmalar.


Sayın atoykan, cevabınız çok yararlı oldu.
Açıklamanızla ilgili bir konuda teyit almak isterim.
ikinci soruya istinaden açıklamanızda aşağıdaki ifadeyi kullandınız
ölçek olarak daha geniş imkana sahip olmanızı sağlayacak olan Sql serverda arayüz olarak Access kullanmak yukarıdaki sorunlarınıza kısmi çözüm getirse de %100 engelleyemez.

SQL Server ı back end olarak kullandığımda Access front end kullanmassam, Kullanıcı arayüzünü ne ile yapacağız? 4. Sorunuzda cevabını verdiğiniz teknolojiler mi? Eğer o ise programlama bilgim yeterli olmadığından accesse yönelmek durumundayım sanırım.
Cevapla
#4
Sayın @schecter

Backend olarak Sql Server kullanıp front end için C# ile yapabilirsiniz. Front end için Filemaker, Crystal, Drupal, Evolulity, vs. gibi alternatifler de sayılabilir ancak mevcut deneyim ve proglamlama bilginiz ile ilgili dip notunuz baz alındığında Access'i kullanmak sizin için en optimal çözüm gibi görünüyor.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task