SQL Express : LocalDB (.mdf)

Giriş

LocalDB developerlar için özel olarak geliştirildi. Kurulumu kolay ve yönetim gerektirmeyen, her zamanki SQL Server Express gibi client-side ve programlama alanı olan ve T-SQL diliyle kodlanabilen ortamı mevcut.
Geliştiricilerin laptop veya geliştirme yaptığı bilgisayarlarda SQL Server Express artık SQL Server’ın yaptığını yapmak zorunda. Bununla beraber LocalDB hedeflenen uygulama ortamının ihtiyaçlarına uygun olduğu takdirde, geliştirici uygulama geliştirmeye devam ederken, aynı zamanda LocalDB veritabanı entegrasyonunu yapacaktır.

Arka Plan

LocalDB’nin açıklamasına geçmeden önce,  arka planda olanlara değinmek istiyorum. Bugün Sql Server Express iki ayrı ihtiyaca cevap vermektedir. Sql Server’ın ücretsizdir. Sql Server Express’in kurulumu, yönetimi ve programlaması diğer sürümlerle 100% uyumludur. Alıştırma yaparken veya ders çalışırken küçük veritabanına   (10gb ‘dan düşük ) sahip uygulamalarda kullanılabilir. Sql Express’i Sql Server’a yükseltmek için tekrar kurulum yapılmasına gerek yoktur sadece lisans key gerekiyor.

Sql Server’ı hedefleyerek uygulama geliştiren developerlar Sql Express kullanabilir. Bu durumda Sql Expres ile yapılan programalama diğer Sql sürümleriyle 100% uyumlu çalışacak, sadece uygulamanın kullanacağı database küçük ve basit yani ayar gerektirmeyen, non-admin user gibi benzeri modlarda çalıştırılması beklenmeyen bir yapıda olduğu varsayılacaktır.

Sql Server sürekli geliştiği için bugün çok karmaşık bir yapıda ve anlaşılması güç, Sql Express ise kolay ve basit ve diğer Sql sürümleriyle uyumlu. LocalDB developerlar için geliştirimliş bir Sql Express versiyonudur.

High-Level Genel Bakış

Uzun bir giriş kısmından sonra sıra LocalDB’nin teknik kısmına bakmaya geldi. LocalDB aşağıdaki özelliklere sahiptir :

  1. LocalDB Sql Server’ın diğer sürümleri ve Sql Express gibi sqlservr.exe kullanır. Uygulama Sql Express tarafından sağlanan T-Sql dili gibi datayı işler ve bağlanmak için de client-side sağlayıcılarını (ADO.NET, ODBC, PDO ve diğerleri)  kullanır.
  2. LocalDB makinaya bir kere kurulur (ana Sql sürümüne göre). Çoklu uygulamalar çoklu LocalDB süreçlerini başlatabilirler, fakat hepsi aynı sqlservr.exe yürütme dosyasından ve aynı disk alanından başlatılılırlar.
  3. LocalDB herhangi bir database servisi oluşturmaz ; LocalDB işlemleri ihtiyaç anında otomatik olarak başlatılır ve sonlandırılır. Uygulama sadece “Data Source=(localdb)\v11.0” ‘e bağlanır ve LocalDB uygulamanın alt elemanı olarak başlatılır. Son bağlantı kapatıldıktan birkaç dakika sonra işlem sonlandırılır.
  4. LocalDb AttachDbFileName özelliğini destekler ki bu geliştiricilere, veritabanı dosyasının nerede konumlandıracaklarını belirlemelerini sağlar. LocalDB belirtilen database dosyasına bağlanacak ve bağlantıyı sağlayacaktır.

LocalDB Örnekleri

Önceden de söylemiş olduğumuz gibi sqlservr.exe  SQL Server sürümleri ve Sql Express te olduğu gibi LocalDB’nin de kalbidir. LocalDB tüm zorunlu DLL’lerle birlikte merkezi bir konuma yüklenir. Default olarak “C:\Program Files\Microsoft SQL Server\110\LocalDB\Binn” konumuna yüklenir. Bir uygulama “Data Source=(localdb)\v11.0” adresine bağlanmak için herhangi bir client-side sağlayıcıdan (ADO.NET, ODBC veya PDO ) birini kullanır. Sağlayıcı ilk olarak geçerli kullanıcı için LocalDB’nin başlatılıp başlatılmadığını kontrol edecektir. Zaten başlatılmışssa uygulama bağlanacaktır. Önemli bir nokta da şudur ; Her kullanıcı (Window login) için ayrı bir LocalDB oluşturulur.

LocalDB ile çalışmak için “Data Source=(localdb)\v11.0;Integrated Security=true” bağlantı satırı yeterlidir. Client-side sağlayısısında aktivasyon mantığının var olduğunu unutmayınız çünkü güncel halde olan verilerin yüklenmesi gerekiyor – .NET Framework (ADO.NET için).

.NET Framework 4 LocalDB desteği için eklediği QFE’ye bakalım. (.NET Framework 4 kuruluysa otomatik olarak geliyor)

Bir Dosya Olarak Database

LocalDB connection string bağlantı işlem süresi boyunca AttachDbFileName özelliğiyle veritabanına bağlı kalma olanağı sunuyor. Bu geliştirici için database server ile çalışmak yerine direk olarak database ile çalışma imkanı sunuyor. Farzedelim “C:\MyData\Database1.mdf” içerisinde depolanan bir database dosyamız olsun geliştirici  “Data Source=(localdb)\v11.0;Integrated Security=true;AttachDbFileName=C:\MyData\Database1.mdf” connection stringini kullanarak hemen kodlamaya başlayabilir.

LocalDB ve SQL Express

LocalDB Sql Server Express yerine geçmez —  SQL Server Express’e ek olarak geliştirilmiştir. LocalDB geliştiriciler içinken SQL Server Express ise ücretsiz SQL Server sürümü olarak var olmaya devam edecek.

LocalDB ve SQL Server Compact?

Küçük ve basit database, kolay kurulum, bir database dosyasına bağlanma — Sql Server Compact kullanan bir geliştiricinin kulağına bunlar alışıldık gelecektir. Bu benzerlikler tesadüfi değil, LocalDB de amaç SQL Server Compact gibi () kolay bir kullanım sağlamasıydı.

LocalDB ve Sql Server Compact arasındaki önemli farklar :

  1. Execution mod : Sql Server Compact bir DLL  içinde çalışırken LocalDB ayrı bir işlem olarak çalışır.
  2. Disk kullanımı : tüm Sql Server Compact binarylerinin toplamı 4MBs civarıdayken, LocalDB kurulumu 140MBs’dir.
  3. Özellikler : Sql Server Compact RDBMS fonksiyonelliği sunarken, LocalDB çok daha fazla özelliğe sahiptir. Stored Procedure, Geometri ve Coğrafya data tipleri gibi…

 

 

Muavenet

Web teknolojilerine merak salmış bir bilgisayar mühendisinin yazıları

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir