17 Mart 2007

Normalizasyon

Veritabanı tasarımı konusunda en önemli kavramlardan biri olan Normalizasyon ile ilgili teorik çok fazla şey yazılabilir. Ben bu kavramı kafasında net olarak oturtamayanlar için küçük bir örnek vermek istedim. Tasarlayacağımız veritabanı çok uluslu kaynaklarla proje üreten bir firmanın yaptığı proje ve çalışan bilgilerini tutsun. Projelerimizi "Amerika'nın yeniden keşfi" ve "Lambaya püf denilmesi" olarak belirleyelim.

Proje bilgileri tablomuzu oluşturup gerekli kayıtları ekleyelim.



Normalize etmek için öncelikle tekrarlanan sütunları bulalım. Bu datayı normalize ettiğimiz zaman 5 tablomuz olacaktır. Bunlar.

Proje (ProjeId,ProjeAd)
Calisan(CalisanId,CalisanAd,CalisanMaliyet,CalisanUlke)
Maliyet(MaliyetId,MaliyetTutar)
Ulke(UlkeId,UlkeAd)
ProjeBilgileriN(ProjeId,CalisanId,CalismaGunu)



Normalize ettiğimiz tablolara aynı verileri girelim.



Bu tasarımda önemli bir kaç normalizasyon kuralını kullandık. Aşağıdaki linkte 5 normalizasyon kuralı bir afiş olarak yer alıyor. İlginç.
http://www.marcrettig.com/poster/rettigNormalizationPoster.pdf

07 Mart 2007

Sql Server Best Practices Analyzer Aracı

Bir kaç gün önce Microsoft Sql Server Best Practices Analyzer adlı bir araca rastladım. İstediğiniz Sql Server instance ı üzerinde seçtiğiniz database leri analiz edip size çeşitli önerilerde bulunuyor. Ben örnek olarak Service Pack 3 yüklü 2000 instance ı üzerindeki Northwind database ini analiz ettim. Aşağıdaki şekilde bir rapor oluştu.



Daha açık olarak;

* SQLBrowser servisinin LocalSystem accountu altında çalıştığını ve bunu önermediklerini belirtmiş
* Bulk Insert işleminde bazı problemler yaşanabilir, 8.00.2187 (Service Pack 4) yüklemeyi önermiş
* Automatic checkpoint özelliğini kullanabilmek için 8.00.2187 (Service Pack 4) yüklemeyi önermiş
* Şu an Mixed modda çalıştığımı, güvenlik sebebiyle "Windows Authentication" modda kullanmayı önermiş
* Çok sayıda kullanıcının SysAdmin rolünde bulunduğunu, 2'den fazla olmaması gerektiğini belirtmmiş
* Service Pack 4 'e geçmeyi ayrıca önermiş
* SQLAgent servisinin LocalSystem accountu altında çalıştığını ve bunu önermediklerini belirtmiş
* Memory Scribbler probleminin Service Pack 4 öncesinde yaşanabileceğini belirtmiş
* Strong bir şifre kullanmam gerektiğini söylemiş
* Northwind'in hiç backup ının alınmadığını belirtmiş
* Northwind üzerinde Guest accountunun yetkisi olduğunu belirtmiş, önermemiş

Özetle "Service Pack 4 yükle rahat et" mesajını aldım:)

Belki karmaşık database lerde daha yönlendirici sonuçlar çıkacaktır, denemek lazım.

Aşağıdaki linkten download edebilirsiniz:
http://www.microsoft.com/downloads/details.aspx?FamilyId=B352EB1F-D3CA-44EE-893E-9E07339C1F22&displaylang=en

01 Mart 2007

Business Intelligence


Son yıllarda "Business Intelligence" kavramını sıkça duymaya başladık. Bu kavram ilk olarak 1989 yılında Gartner Inc. firmasında analist olarak araştırma yapan Howard Dresner tarafından kullanılmıştır. O tarihe kadar DSS (decision support system) ve EIS (executive information system) gibi karışıklık yaratan kavramlar kulanılmaktaydı. Kelime olarak iş zekası şeklinde tanımlanan ama aslında bence şu an için zekadan bahsedemeyeceğimiz bir kavram. Merkezinde veri madenciliği var aslında. Klasik veri madenciliğinde temel olan konu verileri çeşitli yöntemlerle analiz ederek bilgiye dönüştürmektir. Business Intelligence kavramını veri analizinin yanında ETL (Extract, Transform, Load) işlemlerini ve Raporlama ihtiyaçlarını daha geniş bir açıdan bakarak sağlayan çözümler olarak düşünebiliriz. Business Intelligence uygulamaları sayesinde karar vericiler,stratejik ve operasyonel kararlarında daha doğru ve hızlı adımlar atabilmektedirler. Burada zekadan çok aslında bir yönlendirme söz konusu. Bu nedenle karar destek sistemleri tanımı bana biraz daha doğru geliyor.

Dünyadaki BI çözümlerine baktığımızda;

3 database devi:
IBM DB2 Business Intelligence
Oracle Business Intelligence Solutions
Microsoft SQL Server: Business Intelligence Solutions


Database ürünü olmayan yazılım devleri:
SAP Business Intelligence
Business objects
SAS - Business Intelligence Software Solutions
Microstrategy
Cognos
Hyperion


Business Intelligence ın geleceği konusunda Gartner için araştırma yapan Andreas Bitterer ın tespitleri ise şu yönde;

* BI bir çok kurumdaki deneyimli IT Manager'ın kafasında ilk planda yer alıyor
* BI'ın bir proje olmayıp devamlı bir süreç olarak düşünülmesi gerekir.
* Sık karşılaşılan bir durum da data kirliliği. Fakat "bu gezegende data kirliliği problemini yaşamayan bir firma yok"
* Kurumların data çalışanlarına ihtiyacı var. Bu kişiler kurum içerisinde çok deneyimli kişiler olmayabilir ama datayı nasıl yöneteceğini bilen kişiler olmalı.

SQL Server Business Intelligence Solutions çözümlerini inceleme fırsatım oldu. 3 temel servis bulunmakta. Integration Services, Analysis Services, Reporting Services. .net kullanıcıları 2005 ortamında kendi Business Intelligence projelerini yaratıp data işlemlerinde kod parçacıkları yazabilmekteler. Kısmen incelediğim Sql Server Integration Service projesi içerisinde kullanabileceğimiz hazır 11 bulanık mantık algoritması kullanan fuzzy lookup kontrolleri ETL işlemlerinde bir hayli işe yarar gibi görünüyor.