Full Backup Alma (Resimli Anlatım)

30 Temmuz 2007

Yedeğini almak istediğiniz veri tabaının üzerine sağ tıklayarak açılan menüden Tasksı ordan da Backup seçeneğine tıklıyorsunuz. (Resim-01)


Resim-01

Daha sonra açılan pencereden yedekleme ayarlarını yapıyorsunuz. Biz bu örneğimizde Full backup alacağız, o yüzden backup type kısmından full ü seçeçeğiz. Destination kısmında veritabanımızı yedekleyeceğimiz yeri seçiyoruz. Listeye default olarak bir adres gelecek, eğer kayıt yapacağınız yer orası değil ise o uzantıyı seçtikten sonra remove ile kaldırıyorsunuz. Add butonuna basarak da yeni bir adres seçiyorsunuz.(Resim-02)


Resim-02

İşaterli butona tıklayarak yedeğinizi saklamak istediğiniz klasör adresini seçiyoruz.(Resim-03)

Resim-03
Yedeklemek istedşğniz klasörün adresini seçtikten sonra dikkat etmeniz gerek bir husus var. File Name kısmına yedeğinizin adını .bak uzuntılı olarak kaydetmelisiniz. Aksi takdirde backup (yedek) alınmamış olur. Resim-04 teki örnekte File Name i OrnekDB.bak olarak kaydettim.

Resim-04

OK butonuna tıkladıktan sonra Select Backup Destination penceresinde yeni klasör adresinin göründüğünü göreceksiniz.(Resim-05)

Resim-05

OK butonun tıkladığınızda karşınıza çıkan pencerede artık eklediğiniz kalör adresinin görünmesi gerekir. Yapacağınız başka ayar yoksa penceredeki ok butonuna tıklayın. (Resim-06)

Resim-06

Eğer backup başarılı ise onay esajı ile karşılaşacaksınız. (Resin-07)

Resim-07

Yedeklediğimiz veritabanının, belirlediğimiz klasör adresinde olup olmadığını kontrol edelim. (Resim-08). O adreste verdiğiniz isimde bir bak dosyası var ise yedek başarı ile alınmıştır demek.

Resim-08

Kolay gelsin.. Bir sonraki yazıda görüşmek üzere..

Yedekleme Methodları ve Dikkat Edilmesi gerekenler

29 Temmuz 2007

SQL Server, farklı bir çok yedekleme methodu sunmuştur.

A- Full Database Backup Yapma

Eğer veritabanı read-only ise, full database backups veri kaybını önlemek için yeterli olabilir. Full database backups alındığı zaman SQL Server:

1- Aktiviteleri yedekler.
2- Transaction log’daki onaylanmamış
transactionları yedekler.


Örnek: Aşağıdaki örnek; mantıksal ismi nwndbac olan permanent backup files’ı yaratır ve full database backups’ı icra eder.

USE master
EXEC sp_addumpdevice ‘disk’, ‘nwndbac’, ‘C:\MyBackupdir\Nwndbac.bak’
BACKUP DATABASE northwind TO nwndbac

Örnek: Aşağıdaki örnek; nwndbac dosyasına full database backups’ı yapar ve dosya üzerinde bulunan önceki yedeklerin üzerine yazar.

BACKUP DATABASE northwind TO nwndbac WITH INIT

Örnek: Aşağıdaki örnek; temporary backup disk file yaratır ve bu dosyaya full database backup işler.

BACKUP DATABASE northwind TO
DISK = ‘D:\Temp\Mytempbackup.bak’


B- Differantial Backup Yapma


Değişmiş veritabanının yedeğini açmak için gerekli olan zamanı, minimize etmek için differantial backup yapılmalı. Bu full database backup yapılmışsa kullanılabilir. Differantial backup’ta SQL Server:

1- Son full database backup’tan beri değiştirilen veritabanı veritabanı
bölümlerini yedekler.
2- Differantial backup sırasında yer tutan aktiviteyi yedekler.



Differantial backup yapılırken aşağıdaki adımlar göz önüne alınmalı:

1- Son full database backup’tan beri belirli bir row farklı zamanlarda değiştirilmişse, Differantial backup row’un sadece son değerini içerir. Bu, row hakkındaki tüm değişiklikleri içeren transaction log’dan farklıdır.
2- Yedekleme zamanı minimize edilebilir; çünkü yedek setleri, full backups’dakilerden daha küçüktür ve transaction log’ların işlenme zorunluluğu yoktur.



Syntax BACKUP DATABASE {database_name @database_name_var}
TO [,…n]
[WITH
[[,]DIFFERENTIAL]
]

Örnek: Aşağıdaki örnek; temporary backup file üzerinde differantial backup yaratır.

BACKUP DATABASE northwind TO
DISK='D:\Mydata\Mydiffbackup.bak'
WITH DIFFERENTIAL



C- Transaction Log Yedeği Yapma

Veritabanı değişikliklerini kaydetmek için transaction loglar yedeklenir. Transaction loglar, full database backup yapılırken yedeklenirler:

1- En azından bir kere full database backup yapmadıkça, transaction log’un yedeği alınmaz.
2- Uygun veritabanı yedeği olmadan transaction loglar’ın yedekleri açılamaz.

SQL Örnekleri

25 Temmuz 2007

Daha önce açıklamış olduğum sql ifadelerinin her biri ile ilgili örnek yazmayı düşünüyordum. Yazmadan evvel şöyle bir gezindim internette ve çok güzel bir web sayfasına rastladım. Her bir ifade ile ilgili örnekler yapmış arkadaşlar. istifadenize sunuyorum.



http://www.metu.edu.tr/~e137346/sql.htm


Arkadaşlar Yukarıdaki link ömrünü tamamlamış :) Aşağıya yeni bir link ekliyorum;


İyi Çalışmalar.



Trigger (Tetikleyici)

23 Temmuz 2007

  • Trigger nedir?

    Bir tablo üzerinde belirli bir olaya bağlı olarak tetiklenip çalışan SQL kodlarıdır. Diğer bir değişle trigger tetikleyicidir,veritabanında kayıt eklerken,silerken ve değiştirirken arkda tarafata kendi kendine calışan sql cümleleridir.

  • Triggerlar neden kullanılır?

    Genel amacı veri bütünlüğünü korumaktır. Bunun için yapılacak herhangi bir değişiklikte izin verilmemiş işlemler veya gerçekleşmesi durumunda veri bütünlüğünde bozulmalara yol açacak işlemlerde veri bütünlüğünün korunmasına yardımcı olurlar.

  • Hangi olaylar trigerları tetikler?

    Tablo üzerindeki triggerları tetikleyen olaylar insert, update, delete olaylarıdır.
  • Triggerlar nerde kullanılır?

    Bir tablo üzerinde bu olayların öncesinde ve sonrasında tetiklenecek istenildiği kadar trigger yazılabilir. Fakat genel eğilim ve kullanım her bir olay için tek bir trigger kullanmak şeklindedir. Örneğin stok hareketleri sonucunda stok miktarlarının azalması veya artması işlemlerinin, veya tahakkuk ve tahsilatlar sonucu cari hesapların etkilenmesi işlemlerinin triggerlar aracılığı ile yapılmaları tipik bir trigger kullanım yeridir.

  • Triggerların çeşitleri nelerdir?

    Tablo üzerindeki triggerları tetikleyen olaylar insert, update, delete olaylarıdır. Bu olaylara istinaden 3 ana tip triggerdan bahsedilir. Bunlar insert triggerı, update triggerı, delete triggerı şeklindedir.

Stored Procedure (Saklı Yordam) Örneği

22 Temmuz 2007


Stored procedure aracılığıyla şu işlemler yapılablir:


  • Input parametrelerini kabul ederek ve birçok değerin geri dönmesini sağlar.

  • Database içindeki işlemleri yapmak için programlama deyimleri içerir.


Stored procedure'lar genellikle rutin hale gelmiş işleri kolayca yapmak için geliştirilirler. SQL deyimleriyle yazılan stored procedure'lar sadece ilk kez çalıştırıldıklarında derlenirler. Daha sonraki çalıştırma işlemlerinde derlenmezler ve böylece hızlı bir biçimde çalışma sağlanmış olur.


Bir sql ifadesi stored procedure olarak saklanabilir. Örneğin "select * from Kisiler" bir stored procedure olarak saklanabilir. Ancak daha çok parametre alan Stored Procedure'ler kullanılır.


Stored Procedure Tanımlama:



Stored Procedure tanımlama




Çalıştırılması:





veya

Stored Procedure (Saklı Yordam)

  • Stored Procedure nedir?



    Bir tabloya bağlı olmaksızın veritabanı içinde tanımlanan belirli bir işi yapmaya yönelik kodlardır. Başka bir değişle "Derlenmiş sql cümlecikleridir".
    Bunlar birer veritabanı nesnesi oldukları için, doğrudan veritabanı yöneticisi olan programda (örneğin Sql Server) yer alırlar. Veritabanınızı nereye taşırsanız orda yer alırlar.



  • Stored Procedure ne işe yarar?


    Çalıştırmak istediğimiz sql cümleciklerini bir Saklı Yordam içine yerleştirerek, bunun bir veritabanı nesnesi haline gelmesini ve çalışıtırıldığında doğrudan, veritabanı yöneticisini üzerinde barındıran sunucu makinede işlemesini sağlarız.

  • Stored Procedure faydaları nelerdir?
  1. İstemci makinelerdeki iş yükünü azaltır ve performansı
    arttırır (yazıldığı zaman aynı zamanda compile edildikleri için query optimizer tarafından optimize edilmiş en hızlı şekilde çalışır).
  2. Sql cümleleri, Saklı Yordam’ lardan çok daha yavaş sonuç
    döndürür
  3. Çok katlı mimariyi uygulamak isteğimiz projelerde faydalıdır.
  4. Networkü (Ağ Trafiğini) azaltır.
  5. Açık Sql cümleciklerine nazaran daha güvenlidir
  6. Programlama deyimlerini içerebilirler. if, next, set vs.. programlama dillerindekine benzer özellikler sunar. Gelen parametrelere göre sorgu yapılıp sonucun dönmesi sağlanabilir.




Bu linkte 'Stored Procedure'ler ile ilgi Burak Selim Şenyurt'a ait çok güzel bir makale, örneği incemelinizi tavsiye ederim



http://www.csharpnedir.com/makalegoster.asp?MId=208



Select İfadesinin Kullanımı

14 Temmuz 2007

Select tanımı:

Tablolarda bulunan bilgileri elde etmenin en sık kullanılan biçimidir. Select ifadesi diğer ek ifadeler ile birlikte veriyi filtrelemeyi yada daha anlamlı kılmayı sağlar.

Bu komut ile database üzerindeki tablonun hangi kolonlarını alacağımızı veritabanına söyleriz.Tablonun bütün kolonlarını görmek istiyorsak '*' karekterini kullanırız. Sadece belli kolonları görmek istiyorsak kolon isimlerini aralarına virgül koyarak yanyana yazarız.

Select Kullanımı:

Select kullanımı
Select Örnek:

sorgu01:
select *
from dbo.TblDepartmanlar

sonuc 01- dbo.TblDepartmanlar tablosundaki tüm veriler gösterildi

sorgu02:

select DepartmanAdi
from dbo.TblDepartmanlar



sonuc 02- dbo.TblDepartmanlar tablosundaki DepartmanAdi kolonundaki bilgiler gösterildi

Veri Düzenleme Komutları DML (Data Manuplation Language)

Veri Düzenleme Komutları DML (Data Manuplation Language)

DML komutları var olan kayıtlar üzerinde işlem yapılmasını sağlar.

  1. Veri listeleme ,
  2. yeni kayıt ekleme ,
  3. var olan kaydı değiştirme ,
  4. silme işlemleri yapmak için kullanılır.
  • Select ifadesi:

    Tablolarda bulunan bilgileri elde etmenin en sık kullanılan biçimidir. Select ifadesi diğer ek ifadeler ile birlikte veriyi filtrelemeyi yada daha anlamlı kılmayı sağlar.
  • Where (Koşul) İfadesi :

    Select cümlelerinde veriyi çeşitli koşullar sonucunda filtrelemek için kullanılır.
  • IN (İçinde) Operatörü :

    Bir koşulun başka bir veri kümesi içinde olup olmaması durumu.
  • BETWEEN (Arasında) İfadesi :

    Koşulun belirtilen iki değer arasında olup olmaması için kullanılır. Between ifadesi >= ve <= ifadesi yerinde kullanılabilir.

  • LIKE (Benzer) İfadesi :

    Bir veri kümesi içerisinde belirtiğimiz değere benzeyen verilerin olup olmadığını kontrol etmek için kullanılır. Bu ifade genellikle karakter içeren bilgilerde yani char, varchar, binary vb. tipli alanlar için kullanılır.
  • GROUP BY İfadesi :

    Elde edilen verilerin belli kriterlere göre gruplandırılması. Group by da dikkat edilmesi gereken durum select ifadesinden sonra yazdığımız ve fomksiyonlar dışındaki bütün kolonların group by ifadesinden sonra sıralanması gerekir.
  • HAVING (Sahiplik) İfadesi :

    Gruplandırılmış verilerin var olan koşula sahip olup olmadı kontrolu yapılır. Bu ifade genellikle sum(), avg, min(), max() , vs. gibi ifadeler ile kullanılır.
  • UNION (Birleşim) ifadesi :

    Veri kümelerinde birleştirme işlemi yapar. Ancak veri kümelerinde aynı sayıda kolon bulunmalı ve birbirine karşılıklı gelen kolonların veri tipleri ve uzunlukları aynı olmalıdır. Union ALL ifadesi ile de kullanılır. ALL ifadesi ile kullanıldığında birleştime sonucunda çift kayıt oluşursa hepsini getirir. Union yanlız kullanıldığında çift kayıtları göz ardı eder.
  • ORDER BY (Sırala) İfadesi:

    Sql sorgusu sonucunda elde edilen veriyi verilen kritere göre sıralar. ASC ek ifadesi ile küçükten büyüğe DESC ile de büyükten küçüğe sıralar.
  • DISTINCT İfadesi :

    Sql sorgu sonucunda veri tekrarı oluşabilir.Bu durumlarda veri tekrarını önlemek için DISTINCT ifadesi kullanılır.
  • JOIN (İlişkilendir)İfadesi :

    Tablolar arasında mantıksal olarak ilişki kurmayı sağlar.Join ifadesi ek ifadelerler daha kullanışlı hale getirilmiştir
  • INNER JOIN İfadesi :

    T-SQL de var olan bir ifadedir. Tabloların bire bir ilişkilendirilmesini sağlar. Inner joinde join yapılan tabloda ilgili kayıt yok ise boş kayıt geri döner.
  • LEFT JOIN İfadesi :

    Bu ilişki biçimi de inner joindeki gibi sadece T-SQL de bulunmaktadır. Bu ifadede sol taraf değeri NULL yada boş olması durumunda da; sql cümlesinin istediği veri kümesini geri döndürür.
  • RIGHT JOIN İfadesi :

    Right joinde sağ taraf değeri NULL yada boş olması durumunda da sql cümlesinin istediği veri kümesini geri döndürür.
  • T-SQL CASE İfadesi:

    Var olan alanlarda bir alanda bir değeri sorgulayacak ve dönecek olan değere göre işlem yapılacaksa case ifadesi kullanılır.

  • INSERT komutu:

    Tabloya veri eklemek için kullanılır.

  • UPDATE komutu:

    Tablo veya viewde bulunan kayıt yada kayıtların değiştirilmesi için kullanılır. Değiştirilmesi istenen kolonların teker teker yazılıp değerlerin atanması gerekmekte.
  • DELETE Komutu:

    Tablo veya viewde bulunan kayıt yada kayıtların silinmesi amacı ile kullanılır.

Nezaman UNION ne zaman JOIN kullanmalıyız?

09 Temmuz 2007

Arkadaşlar çok güzel bir video. Görüntü kalitesi düşük, ne yazdığı tam belli olmuyor ama dinlemeniz bile yeterli olabilir :)





Cast Fonksiyonu

06 Temmuz 2007

İlk olarak Cast Fonksiyonun kullanılması ile ilgili bir senaryomuz var, burdaki soruna çözüm bulalım. Aşağıdaki gibi tanımlanmış bir TblDepartmanlar tablomuz var ve colonlarından olan DepartmanID nvarchar(50) olarak tanımlanmış.


Dikkat!!! DepartmanID nvarchar(50) olarak tanımlanmış

Resim-1: Tablonun Tanımlanması


Yapmamız istenilen sorgu ise şu; DepartmanID leri 3 ile 8 arasındaki departmanların IDlerinin ve o IDlere ait departman isimlerinin listelenmesi.

Taralı alan sorguda istenilen satırları gösteriyor

Resim-2: Sorguda istenilen alanlar


Bu durumda karşımıza çıkacak sorun şu; DepartmanID int olmadığı için doğrudan between and kelimelerini kullanarak bir sorgu yazamayacağız.

Çözüm olarak bir dönüşüm yapmamız gerekecek. Eğer nvarchar(50) yi int'e çevirebilirsek sorgumuzu kolayca yazabiliriz.

İşte burada karşımıza dönüşümlerde kullancağımız fonksiyonlar çıkıyor. Bu Senaryoya Çözümü CAST fonksiyonu ile sunalım;

Sorgu Cümleciği

Resim-3: Sorgu Cümlemiz

Sonuç:

Sonuç



Kurumsal Servis Odaklı Mimari (Enterprise SOA) SEMİNERİ

CETURK ve IBM isbirliğiyle düzenlenen ücretsiz seminerde gündem günümüzün en popüler konularından olan Servis Odaklı Mimari(Service Oriented Architecture).

Seminer IBM Academic Initiative kapsamında düzenleniyor.

Seminerin konuşmacısı IBM Türkiye Yazılım Grubu WebSphere ürün ailesinde Teknik Danışman olarak çalışan Arden Agopyan olacaktır.







Tarih/Saat : 14.07.2007 – 13:00-15:00

Yer: IBM Türk - Konferans A Salonu Büyükdere Cad. Yapı Kredi Plaza B Blok Levent – İstanbul (Kanyon alışveriş merkezi karşısı)

KAYIT İÇİN TIKLAYINIZ

Arden Agopyan'ın İstanbul Bilişim Kongresi - SOA Prensipleri sunumu için tıklayınız