Makale Özeti

Visual Studio Team System ile Yazılım Süreç Yönetimi makale serisinin, 4. Makalesi, Veritabanı uzmanı araçları hakkındadır.

Makale

 

VISUAL STUDIO TEAM SYSTEM (VSTS) İLE

YAZILIM SÜREÇ YÖNETİMİ

Bölüm 4: Veritabanı uzmanı araçları

05.03.2006

 

Ertan Deniz

Derya Bilgi Teknolojileri

www.deryabilgi.com, Ertan.Deniz@deryabilgi.com

 

 

 

Makale özeti

 

Visual Studio Team System tanıtımı ile ilgili makale serisinin dördüncüsü, veritabanı geliştiricisi ve veritabanı yöneticisi gibi, veritabanı uzmanları tarafından kullanılacak araçlar hakkındadır. 

 

Veritabanı uzmanları için VSTS sürümü ile gelen, Veritabanı proje yönetimi, Veritabanı değişiklik yönetimi, Veritabanı birim testleri, Veritabanı nesneleri tekrar isimlendirme (Refactoring) gibi konularda bilgi sahibi olacağız.

 

Bu serinin ilk 3 makalesine, aşağıdaki adreslerden ulaşılabilir.

 

Visual Studio Team System - Giriş ve Bileşenler (1)

http://www.yazgelistir.com/Makaleler/1000001120.ygpx

 

Visual Studio Team System – Takım ortak bilgi yönetim sunucusu (2)

http://www.yazgelistir.com/Makaleler/1000001126.ygpx

 

Visual Studio Team System - Yazılım mimarları araçları (3)

 

http://www.yazgelistir.com/Makaleler/1000001134.ygpx

 

 

İçindekiler

 

Veritabanı uzmanları için VSTS

Veritabanı proje yönetimi

Veritabanı değişiklik yönetimi

Veritabanı prosedürlerinin birim testleri (Unit testing)

Veritabanı nesnelerinin tekrar isimlendirilmesi

T-SQL Editör

Değerlendirme

Kaynaklar

 

Veritabanı uzmanları için VSTS

 

VSTS içindeki Yazılım mimari,Yazılım geliştirici ve Test uzmanı sürümleri 2005 yılının sonuna doğru duyurulmuştu. Veritabanı uzmanları için VSTS sürümü bu yıl sonu itibarıyla duyuruldu. (1 Aralık 2006) Yazılım geliştirme sürecine, veritabanı geliştirme/test/gerçek ortama geçiş adımlarının eklenmesi ile birlikte çalışma ortamı daha da geliştirilmiş ve ürün ailesi içinde önemli bir adım daha atılmıştır. MSF (Agile ve CMMI) süreç şablonlarının veritabanı geliştirme ve yönetimi ile ilgili entegrasyonu da hazır hale getirilmiştir. Bu çalışma  ile Microsoft,  veritabanının uygulama geliştirme sürecinin bir parçası olarak yer aldığı ilk süreç şablonunu sunmuş oldu.[1]

 

Yazılımcıların güncel veritabanı versiyonu üzerinde çalışmaları gerekiyor. Çoğu zaman, güncel versiyon, gerçek ortamdaki veritabanı. Değişiklikler genelde, gerçek veritabanında geçekleştiriliyor. Test veritabanlarına bu değişiklikler yansıtılmıyor veya eksik yansıtılabiliyor. Test ortamlarında, veritabanı değişiklik yönetiminin takip edilememesi sebebiyle, hem yazılım geliştirme hem de gerçek ortama geçiş sürecinde ciddi problemler bizi bekliyor. Bu problemler büyük kayıplara sebeb olabiliyor.  Veritabanı uzmanları için VSTS sürümü, veritabanı geliştirme ve gerçek ortama geçiş sürecini, tüm yazılım sürecine entegre etmesi ile önemli bir ihtiyaca cevap vermiş oldu.

 

Takip eden bölümde, bu sürümün önemli özellikleri bazı bilgiler verilmiştir.

 

Veritabanı proje yönetimi

 

Veritabanı şeması, tüm nesneleri ile birlikte bir proje olarak takip edilebilmektedir.  Sağlanan şablonlar sayesinde, veritabanı projesi oluşturulması ve varolan bir şemanın taşınması (Import) kolaylıkla gerçekleştiriliyor. Kaynak kod ve XML dosyaları gibi, tablo tanımları,veritabanı prosedürleri gibi veritabanı nesneleri de projemizin bir parçası haline geliyor. Proje yapısının oluşturulması ile, kaynak kod ve versiyon yönetimi imkanı da sağlanmış durumda. Bu modelin, veritabanı değişiklik yönetimi için şu ana kadar kendi imkanlarımız ile geliştirdiğimiz yöntemler üzerinde önemli avantajlar sağlayacağı açıktır. Veritabanı proje yapısı olarak, SQL Server 2000 ve 2005 proje şablonları hazırlanmış. Örnek projemiz, SQL Server 2005 veritabanını kullanmaktadır. Aşağıda, örnek projemizin veritabanı şemasının, proje ekran görüntüsü sunulmuştur :

 

Resim1: DeryaDemo Veritabanı projesi

 

Ekran görüntüsünde de görüldüğü gibi, veritabanı nesneleri SQL dosyaları olarak saklanmaktadır. Tablo, veritabanı prosedürü gibi veritabanı nesnelerini ekleme, silme ve isim değişikliği bu ekran üzerinden yapılabilmektedir. Aşağıdaki ekran görüntüsünde, veritabanı projesine ekleyebileceğimiz nesnelerin seçim ekranı sunulmuştur :

 

Resim2: Veritabanı projesine eklenebilecek yeni nesneler

 

Veritabanı projesinin nesnelerini görüntüleme ve işlem yapmak için, şema göstericisi şeklinde bir pencere daha mevcut. Bu pencere, veritabanı araçları açısından daha alışık olunan bir görüntü sağlıyor. Aşağıda, projemizin şema görüntüsü sunulmuştur :

 

Resim3: DeryaDemo Veritabanı şeması

 

Şema göstericisi üzerinden de, bazı kısıtlar ile birlikte nesneler üzerinde işlem yapılabilmektedir.

 

Sonraki bölümde, veritabanı değişiklik yönetimi işlemlerinin nasıl takip edildiğini inceleyeceğiz.

 

Veritabanı değişiklik yönetimi

 

Uygulamalarımızın geliştirme, test ve gerçek ortama geçiş sürecindeki, veritabanı şema farklılıklarından kaynaklanan hatalar ile çok karşılaşıyoruz. Veritabanı uzmanları için VSTS sürümünde, bu ihtiyacımıza cevap verecek bir çözüm sunulmuştur. Şema karşılaştırma işlemi. Bu işlem ile, veritabanları (Test ve Gerçek ortamlar) ve veritabanı projeleri arasında karşılaştırma yapılarak, farklılıklar tespit edilebilmektedir.

 

Örnek veritabanı projemiz ile, veritabanımızı karşılaştırmaya çalışacağız. Öncelikli olarak, karşılaştırma yapılacak şemaların seçimi gerçekleştirilmelidir. Aşağıda, şema karşılaştırması seçim ekranı sunulmuştur :

 

 

Resim4: Şema karşılaştırma

 

Seçilen kaynak ve hedef ortamlar karşılaştırılarak, farklılıklar listelenmektedir. Bu farklılıkların tanım (script) dosyası oluşturularak, sürecin devamında kullanmak için saklanabilir. Bu işlem içerisinden de, hedef şema güncellenebilmektedir.

 

Örnek projemizde, veritabanı projesinde 2 değişiklik gerçekleştirildi. Bunlardan bir tanesi, bir tabloya yeni bir alan eklenmesi, diğeri ise yeni bir tablo eklenmesidir. Veritabanı projesi ile, veritabanını (gerçek veritabanı) karşılaştırdığımızda, elde ettiğimiz ekran aşağıda sunulmuştur :

 

Resim5: Şema karşılaştırması sonuç ekranı

 

           

Tüm nesneler karşılıklı listelenmiş, farklı olanlar ve yeni eklenenler listede belirlenmiştir. Listenin altında, listede seçilen nesnenin kaynak ve hedef ortamlardaki tanımları gösterilmektedir.

 

Veritabanı değişiklik yönetimi ile ilgili diğer önemli bir özellik ise,verilerin karşılaştırılması. Kaynak ve hedef veritabanlarının veri açısından karşılaştırılarak, güncelleme tanım (script) dosyaları oluşturulabilmektedir. Öncelikli yapılacak işlem, kaynak ve hedef veritabanlarının seçilmesi ve karşılaştırma parametrelerinin belirlenmesi. Karşılaştırma işleminin ilk adımını oluşturan, seçim ekranı aşağıda sunulmuştur :

 

 

Resim6: Veri karşılaştırma

 

Karşılaştırma işlemi ile ilgili farklı kayıtlar,sadece kaynak veritabanında olan kayıtlar,sadece hedef veritabanında olan kayıtlar ve aynı kayıtlar şeklinde tercihler verilebilmektedir. Bir sonraki adımda, tablo ve görüntü (view) nesneleri seçilerek, karşılaştırma işlemi gerçekleştirilir. Karşilaştırma sonuç ekranı, aşağıda sunulmuştur:

 

 

 

        

Resim7: Veri karşılaştırma sonuç ekranı

 

Bu sonuçlar üzerinden, güncelleme tanım (script) dosyası oluşturularak, sürecin devamında kullanmak için saklanabilir. Bu işlem içerisinden de, hedef veritabanı üzerinde güncelleme yapılabilmektedir.

 

Veritabanı prosedürlerinin birim testleri (Database Unit testing)

 

Veritabanı birim testleri, yazılım geliştiriciler tarafından geliştirilen birim testlerine tamamlayıcı görevini  yürütüyor. Veritabanı birim testleri ile, şema üzerindeki değişikliklerin, fonksiyonların çalışmasını etkileyip etkilemediğini takip edebiliyoruz. Her iki çeşit birim testleri de, uygulama ile ilgili değişiklikleri yönetmek için gerekli.

 

Testini gerçekleştirmek istediğimiz veritabanı prosedürü için, T-SQL kodu bizim için üretiliyor. Test işleminden önce (Pre-Test) ve test işleminden sonra (Post-Test) yapılması gereken işlemleri de belirlememiz mümkün.  Mesela, veritabanının test işleminden önce, belli bir duruma getirilmesi. Test çalıştırıldıktan sonra, tekrar eski durumuna getirilmesi gibi. T-SQL kodunun çalışması sırasında toplanan değerler üzerinden (Kayıt sayısı,Çalışma zamanı gibi), test koşulları da hazırlayabilir.Bu koşullara göre testin başarılı olup olmadığını belirleyebiliriz. Yeni test koşulları da geliştirmemiz mümkün.

 

Birim testleriyle tutarlı test sonuçları alabilmek için, veriye ihtiyaç var. Bu ihtiyacı karşılamak için, veri üretme alt yapısı geliştirilmiş. Veritabanı projesinde yer alan, veri üretme planları bölümüne (Data Generation Plans) yeni bir nesne eklenerek bu süreç başlatılır. Bu nesnenin konfigürasyonu sırasında, veri üretilecek tablolar seçilir. İstenildiği taktirde, veri üretilerek ilgili veritabanı tablolarına girişi sağlanır.  Üretilecek veri önizleme imkanı sayesinde, görülebilir. Birim testlerinin veritabanı  konfigürasyonunda, bu plan referans edilerek, birim testlerinden önce çalıştırması sağlanabilir.

 

Veritabanı uzmanları için VSTS sürümünde, hazır veri üreticileri var. Mesela, sayı veri üreticisi ile (random) sayı değerleri, karakter veri üreticisi ile (random) karakter dizileri üretilebilir. Belli bir koşula uygun veri üretmekde mümkün. Bu imkanlar yetersiz kaldığında, yeni veri üreticileri de geliştirilebilir. Bu şekilde, sistemin veri üretme yetenekleri geliştirilebilir.

Veritabanı birim testleri ile ilgili genel bir bilgi verildikten sonra, bu testlerin oluşturma sürecini örnek projemiz üzerinde takip edelim. Veritabanı şema göstericisi üzerinden, veritabanı prosedürleri bölümünden birim testleri oluşturma sürecini başlatabiliriz.  Birim testleri oluşturma işleminde ilk yapılan iş, ilgili veritabanı prosedürlerini seçip, test projesi oluşturmak. Aşağıda, birim testleri oluşturma ekran görüntüsü sunulmuştur :

 

Resim8: Birim testleri oluşturma ekranı

 

Daha sonra, testin çalıştırılacağı veritabanı bağlantı bilgileri, veri üretme planlarının belirlendiği, konfigürasyon aşaması gelmektedir. Aşağıda, bu konfigürasyon ekranı sunulmuştur :

Resim9: Test projesi veritabanı konfigürasyon ekranı

 

Bu aşamadan sonra, test projesi oluşturulur ve çözümümüze eklenir. Test yöneticisi ekranında testimiz yer almaktadır. Bu test seçilerek çalıştırılabilir ve sonucu izlenebilir. Aşağıda, Test yöneticisi ve sonuç izleme ekranı sunulmuştur :

 

Resim10: Test yöneticisi ve test sonuçları izleme ekranı

 

 

Veritabanı nesnelerinin tekrar isimlendirilmesi

 

Veritabanı şeması içinde, kurumsal standartlar uygunluk açısından nesnelerin tekrar isimlendirilmesi gerekebilir. Bu işlemin kolaylıkla gerçekleştirilebilmesi sağlanmış. İsim değişikliği düşünülen nesne seçilerek, yeni isim veriliyor. İstenildiği taktirde, değişiklik yapılacak yerler listelenebiliyor. Aşağıda, değişikliklerin ön izleme ekranı sunulmuştur :

 

Resim11: İsim değişikliği önizleme ekranı

 

 

T-SQL Editor

 

Veritabanı uzmanları için VSTS sürümünde, T-SQL komutlarının çalıştırılması için bir editor de dahil edilmiştir. Bu editor, Visual Basic, Visual C# kod editörleri ile temelde aynı özelliklere sahip. Diğer önemli özellikleri olarak ; SQL Server yönetim ortamı ile uyumluluk, T-SQL ifadelerinin daha kolay okunması imkanı, SQL ifadelerinin sınanması, aynı anda birden fazla oturum açılması ve komut çalıştırılması, Aynı oturum içinde birden fazla sorgunun sıralı bir şekilde çalıştırılması, sorgulara ait istatistiklerin izlenmesi gibi özelliklerini sayabiliriz. Aşağıda, T-SQL editöründe çalıştırılan bir SQL sorgusu ve sonuç penceresi sunulmuştur :

 

Resim12: T-SQL Editörü

 

Değerlendirme

 

Doğru olan versiyon şimdi kontrol altında. Gerçek veritabanı, veri açısından doğru ama şema için başvuru kaynağı olmamalı. Veritabanı şemasının proje yönetim yapısı ile, veritabanının istenilen versiyonu elde etme ve değişiklikleri izleme imkanı sağlanmıştır. Bu özellikler, geliştirme (offline geliştirme dahil), test ve gerçek ortama geçiş süreçlerinde çalışmalarımıza önemli kolaylıklar getirecektir. Bütün bu kolaylıkların, süreçlerimize entegre olması da, takım içindeki birlikte çalışma ve proje izlenebilirliği açısından da son derece önemlidir.

 

Bu sürüm ile, SQL 2000 ve SQL 2005 şablonları destekleniyor. SQL Server veritabanını geliştirme veritabanı olarak kullanan firmalar için önemli bir imkan. Bu sürümün, ORACLE ve DB2 gibi yaygın olarak kullanılan veritabanları desteği ne olacak gibi bir soru aklımıza gelebilir. Veritabanı nesnelerini elde etme, karşılaştırma, birim testleri gibi fonksiyonlar veritabanına özel. Bu sebeble bu ürün, SQL veritabanı uzmanlarına yönelik kalacak gibi gözüküyor. VSTS ‘nin genişleyebilir ve özelleştirilebilir yapısı sayesinde, VSTS için ORACLE/DB2 uzmanları  sürümlerini bekleyebiliriz. Var olan süreç şablonları (MSF) için gerekli özelleştirmeler de dahil.

 

Kaynaklar

 

Kaynaklar, bu serinin ilk makalesinde (Bölüm1:Giriş ve bileşenler), ortak yayınlanmıştır. Bunlara ek olarak ;

 

1.      FAQ: Visual Studio Team Edition for Database Professionals

http://msdn2.microsoft.com/en-us/teamsystem/aa718913.aspx

2.      Visual Studio 2005 Team Edition for Database Professionals

http://msdn2.microsoft.com/en-us/teamsystem/aa718807.aspx

 

VSTS Veritabanı uzmanı 05 03 2007