Access to SQL

Access’den MSSQL’e veritabanı dönüştürme işlemleri

Gulistan-Okul-Otomasyon

Gülistan Okul Otomasyon

Şu anda her okulun ayrı bir sunucusu, IP’si ve otomasyon programı var. Dolayısıyla bir değişiklik gerektiğinde her okulun programına bağlanıp tek tek düzeltmek gerekiyor. İlk başlarda bunun kolay yolunu bulduğumu zannediyordum. Tek bir okulun programını düzelteceğim sonra bunu diğer okullara kopyalayacaktım ama sonra okullardan istek ve hata bildirimleri gelmeye başlayınca ipin ucu kaçtı. Ben de yeni sistem üzerine yoğunlaşmaya karar verdim.

GOO (Gülistan Okul Otomasyonu) üzerinde fikirler yürütürken ilk önce tamamen İnternet üzerinden çalışan bir sistem hayal etmiştim. Bunun için de en güvenli sistem olan Linux sunucu üzerinde PHP ile hazırlanmış bir web sitesi düşünüyordum. Tam o zamanlarda okuyla kendi programlarını tanıtmak için bir şirket geldi. Programları bize uygun değildi ama yine de beynimde şimşeklerin çakmasına sebep olmuştu. Programları VB.Net ile hazırlanmıştı, ve ben de bu programı ve programlama dilini çok iyi biliyordum. Veritabanı sistemi olarak MSSQL kullanılmıştı. MSSQL bu sistemle birlikte çok güzel çalışıyordu ama en güzel yanı İnternetten çalıştırılabiliyor olmasıydı. Ben de ilk olarak veritabanını hazırlayarak başladım işe. Tüm okulların, genel müdürlüğün ve mezunların veritabanlarının bir kopyasını aldım. Onları ince eleyip sık dokuyarak ayrı bir Access veritabanında birleştirdim. Böylece tek bir veritabanında tüm okulların ihtiyacı olan veritabanı sistemini oluşturdum. Bunları tek bir merkezde toplayınca bazı tablolarda değişiklik gerekti. Mesela ayarlar tablosunda ilk sütunda ayarın ismi (“OkulAdı”) varken ikinci sütunda onun değeri (“Mehmet Akif College”) vardı. Şimdi yine ilk sütunda ayarın ismi var ama artık bunun yanında 6 ayrı sütün var. Her okul için ayrı bir sütun oluşturdum. Böylece tek bir  yerden tüm ayarları görüp düzeltme imkanım olacak. Diğer birkaç tabloda da buna benzer değişiklik yaptıktan sonra “Tamam” dedim ve MSSQL’e dönüştürme işlemine başladım.

Veritabanı dönüştürme işlemini İnternetten birkaç program indirip denem yanılma yöntemiyle buldum. Şimdi adını bile hatırlamıyorum. Zaten çok da önemli değil. Önemli olan dönüştürme işleminden sonra tabloları tekrar gözden geçirmek, isimlendirmeyi düzgün ve mantıklı yapmak. Örnek verecek olursak; bize “Staff” diye bir tablo var personel bilgilerini tutmak için kullanılan. Personelin iletişim bilgileri “Staff_Contact”, çalışma ve oturum izni (Residence and Work Permit) bilgileri “Staff_Permits”, kullanıcı adı ve şifre bilgileri ise “Staff_Usernames” tablosuna yerleştirildi. Böylece personelle ilgili tüm bilgiler kolayca bulunup değiştirilebiliyor.

İkinci önemli nokta ise veritabanındaki tabloların sütunların tipleri. Aşağıdakiler benim uzun uzun araştırmalarım neticesinde elde ettiğim püf noktaları :D

  • Yazı içeren sütunlar için “nvarchar” tipini kullanmak en doğru seçim. Her ne kadar maksimum boyut belirtmiş olsanız da içindeki bilgi kadar yer kaplıyor.
  • Erkek-Kadın, Evli-Bekar gibi sütunlar için ben “bit” kullanıyorum, yani true-false. Daha az yer kaplıyor ve anlaması zor değil.
  • Para birimi olan sütunlarda “smallmoney” en iyi yöntem. “money” de var ama o kadar büyük ki kim kullanır bilmiyorum, ±214 milyondan fazla.

Dönüştürme İşlemi

Access to SQL

Access to SQL

Bunca yazının sonunda asıl dönüştürme işlemini aktarıyorum. Bu işlem için bize bir adet Access 2010 program lazım, belki 2007 versiyonuyla da yapılabilir ama ben kullanmıyorum. Dönüştürme işlemini yapacağınız access dosyasını açalım. Üst kısımdaki “Ribbon”dan “Database Tools/Veritabanı Araçları” menüsünden “SQL Server” düğmesine tıklayın. İlk önce yeni bir veritabanı mı yoksa var olan bir veritabanını mı kullanacağımızı seçiyoruz. Açılan pencereden ikinci sekmeyi açıyoruz ve “yeni” düğmesine tıklıyoruz. Ekrana gelen pencereden “SQL Server” seçeneğini takip edip bağlantı bilgilerini girin. En son olarak ise hangi tabloları SQL veritabanına aktaracağınızı seçiyoruz ve bitiyor.