SQL Server kod adı DENALI Microsoft tarafından 8-11 Kasım 2010 tarihleri arasında gerçekleşen PASS Summit 2010 etkinliğinde duyuruldu. Artan veri hacmi ve şirketlerin maliyetlerini düşürme gereksinimlerini karşılamak amacıyla geliştirilen SQL Server’in bu yeni sürümü; müşteriler ve iş ortaklarının veri ambarı uygulamalarını hızlandırmalarını sağlıyor.

Bu makalede; öncelikle SQL Server DENALI’yi nasıl kurabileceğinize dair detaylı bir makale yazmayı amaçlıyorum. Bundan sonraki makalelerde, kuracağınız bu versiyonla gelen yeniliklerden bahs ederek bu konuda çalışmalara devam edeceğiz.

Öncelikle kuruluma geçmeden önce, SQL Server’in bu yeni versiyonunun sistem gereksinimlerinden bahs edelim.

Sistem Gereksinimleri

  • Desteklenen İşletim Sistemleri: Windows 7, Windows Server 2008 R2; Windows Server 2008 Service Pack 2; Windows Vista Server Pack 2
  • 32-bit Sistemler
  • Intel veya 1GHz veya daha hızlı işlemcilere sahip (2 GHz veya daha hızlı işlemciler tavsiye edilir) bilgisayarlar
  • 64-bit Sistemler
  • 1.4 GHz veya daha hızlı İşlemciler
  • Minimum 1 GB RAM (2 GB Ram tavsiye edilir)

Eğer kullanmakta olduğunuz sistem yukarıda listenen maddelerin herhangi bir tanesinin dahilinde ise; aşağıdaki adımları izleyerek kolaylıkla kurulumu gerçekleştirebilirsiniz.

Sistemimiz uyumlu ve hazır olduğuna göre, kurulum işlemlerine başlayabiliriz. Öncelik SQL Server (Denali)’yi indirmemiz gerekiyor. (SQL Server Denali’yi buradan indirebilirsiniz)

İndirme işlemi yapılırken, windows update uygulamasını çalıştırıp sistemdeki güncellemelerinizi tamamlamanız öneriler. Kurulum aşamasında bu işlem Denali kurulumu yapılırken ekstra bileşenlerin kurulmasına gerek kalmadan ilerlemesine sağlamış olup, size zaman kazandıracaktır.

Kurulum

Kurulumu setup.exe üzerinden başladıktan sonra; karşınıza çıkan ekrandan “Installation” sekmesine geçiyorsunuz. Karşınıza gelen öğelerden “New SQL Server stand-alone installation or add features to an existing installation” seçeneğini tıkladıktan sonra bir sonraki aşamaya geçebilirsiniz.

Biraz bekledikten sonra, karşımıza aşağıdaki gibi bir ekran çıkacaktır. Eğer şanslıysanız, herhangi bir hata mesajı almadan “ok” duğmesine basarak bu aşamayı geçiyorsunuz.

Muhtemel hata olarak aşağıdaki uyarı mesajı karşınıza çıkabilir (Şanssız bir gününüz demek ki):

Hatanın bulunduğu satırdaki “view detailed report” bağlantısına tıklarsanız; aldığınız uyarı mesajın detayını aşağıdaki gibi görebilirsiniz:

“This rule determines whether the computer has the required update package that ensures that the computer will not have to be rebooted because of the Microsoft .NET Framework 4 installation.”

İlgili hatayı giderebilmek için; hata satırında bulunan “Failed” bağlantısına tıklayın; Karşınıza aşağıdaki ekran çıkacaktır:

“Rule Check Result” uyarı penceresini  fare imlecinizle aktif tutarak ctrl+c ile kopyalayıp ve ctrl+v ile notepad’a yapıştırabilir ve hata penceresinde size verilen bağlantıya giderek, ilgili güncellemeyi indirip kurabilir ve karşılaştığınız hatadan kurtulabilirsiniz. (Direk buradanda ulaşabilirsiniz KB #958488)

İlgili güncellemenin kurulumunu yaptıktan sonra ve muhtemel bir restart işleminden sonra kurulum aşamalarını yukarıda anlatıldığı gibi tekrar takip ederek hatayı aldığınız ekrana geri geldiğinizde bu sefer hatanın giderilmiş olduğunu göreceksiniz.

Eğer karşınıza firewall ile ilgili bir uyarı gelirse, bu sorunu kurulum bitimine kadar Firewall i kapatarak çözebilirsiniz.

Karşılaştığımız bir sonraki aşama; kurulacak olan SQL Server versiyonunu seçmek olacaktır.

Varsayılan olarak “Enterprise Evaluation” seçeli olacak. Bu versiyonda; SQL Server’in SQL Server Çevrimiçi kitabındada bahsedilen bütün özellikleri mevcüt olmakla beraber en büyük özellik kümesine sahip versiyon olarakda belgelenmiş durumdadır. Deneme sürümü olması itibariyle 180 günlük bir zaman diliminden sonra kullanım tarihi sonlanmış olacaktır.

Diğer iki seçenek olarak “Express” ve “Express with Advances services” ücretsiz sürümler olup, 180 günlük bir süre size kafi gelmiyorsa bu iki seçenekten herhangi birini seçebilirsiniz.

Bir sonraki ekranda karşınıza çıkan şartnameyi okuyup kabul ettikten sonra kurulum destekli dosyaları kurmaya başlayabiliriz:

Bu aşamada karşınıza aşağıdaki uyarı penceresi çıkacaktır:

Bilgisayarınız yeniden başlatmanız gerekmektedir. Bilgisayarınızı yeniden başlatın ve Firewalli kapattıktan sonra kurulumu yukardan anlatıldığı gibi devam ederek tekrar bu aşamadan devam edebilirsiniz: Karşımıza çıkan 3 seçenekten bir tanesi seçip kurulum işlemini devam edebiliriz. Bu aşamada “SQL Server feature Installation” seçeneğini tıklayarak devam edelim.

Bir sonraki ekranda yüklenilecek olan bileşenlerin listesini görüntüleyeceksiniz. Bu ekrandan kurmak istediğiniz eklentileri seçip bir sonraki aşamaya geçebilirsiniz. Benim tercihim aşağıdaki gibidir:

Gerekli eklenti ve araç seçiminden sonra, sıra artık “instance ID” seçimine gelmiştir. Named Instance kısmına isteğinize uygun bir isim verebilirsiniz.

“Next” duğmesine tıkladıktan sonra; kurulum yeri ve kurulumun kaplayacağı alan gözükecektir. Bu aşamayıda geçtikten sonra karşımıza çıkan ekrandan Hesap adı ve başlangıç tiplerini ayarladıktan sonra geçebiliriz. Bu kurulumda “Use the same acount for all SQL Server Services” duğmesine tıkladıktan sonra NT AUTHORITY\SYSTEM i seçtikten sonra bir sonraki aşamayı geçebiliriz.

Sonraki aşamada karşımıza çıkan ekranda aşağıda gösterilen seçenekler ve ayarları yapıyoruz. Yetkilendirme modu olarak “Mixed” seçmemiz daha uygun olacaktır. Bu şekilde tanımladığınız windows ve belirlediğimiz “sa” kullanıcı bilgileri ile SQL Server’i yönetebilirsiniz.

“Specify SQL Server Administrators” kısmında SQL Server’i yönetecek hesap adları seçebiliyorsunuz. Bu aşamada “Add Current User” diyerek şu an açık olan oturum hesabını yönetici olarak atayabilirsiniz.

Yukarıda “Data Directories” ve “FILESTREAM” sekmeleri bulunmaktadır. Data Directories adındanda anlaşılacağı üzere SQL Server, Kullanıcı veritabanı, kullanıcı veritabanı logları ve çeşitli verilerin saklandığı klasörlerin yolları ve adları bilgisi bulunmaktadır.

FILESTREAM; Yapısal olmayan verilerin saklanması ve işlenmesi için SQL Server 2008 ve DENALI’nin barındırdığı yapıdır. Yapısal olmayan veriler (Ses dosyaları, görüntü dosyaları, resimler) SQL Server’da değil, NTFS disk sisteminde duruyor. Ama bu verilere erişimi SQL Server üzerinden yapmanız mümkün. Bu sekmeden FILESTREAM’le ilgili tanımlaya yapabilirsiniz.

Bundan sonraki aşama; SQL Server Analiz servislerini erişim yapabilecek ve yönetcek kullanıcıları tanımlamak. Burada benim yaptığım mevcüt oturum kullanıcısına bir önceki işlemde olduğu gibi buraya yönetici olarak atamak ve bunun için “Add current user” i tıklamanız yeterli olacaktır.

“Data Directories” sekmesinden SQL Server Analiz verilerinin saklanacağı klasör yolları ve bilgilerini ayarlayabilir ve düzenleyebilirsiniz.

Sonraki kurulum penceresinde “Install the native mode default configuration” seçeneğini seçtikten sonra; ve karşımıza çıkan 2 diğer pencereyi “Next” deyip geçtikten sonra artık son aşamaya gelmiş oluruz.

Son olarak “Install” duğmesine tıkladıktan sonra; kurulumu başlatmış oluyoruz. Kurulum işlemi yaklaşık 30 dk sürecektir.

Kurulumdan sonra SQL Server Management Studio’ya giriş yaparak kurulumun başarılı bir şekilde olup olmadığına baktıktan sonra kurulum işlemini tamamlamış oluyorsunuz:

Ve bağlandıktan sonra karşımıza gelen görüntü:

Görüldüğü üzere başarılı bir şekilde giriş yapabildik.

Bol SQL Server DENALI’li günler dilerim.

İyi Çalışmalar.

SQL, verileri yönetmek ve tasarlamak için kullanılan bir veritabanı yönetim sistemidir. SQL, kendisi bir programlama dili olmamasına rağmen birçok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veri tabanı ortamında kullanılan bir alt dildir. SQL ile yalnızca veri tabanı üzerinde işlem yapılabilir. SQL’e özgü cümleler kullanarak veri tabanına kayıt eklenebilir, olan kayıtlar değiştirilebilir, silinebilir ve bu kayıtlardan listeler oluşturulabilir.

SQL Server bir ilişkisel veritabanı yönetim sistemidir (RDBMS: Relational database management system). SQL Server:

• Veri işleme ve analiz için saklanan veri yığınlarını yönetebilir.
• Client uygulamalarından gelen isteklere cevap verebilir.
• SQL Server ve clientlar arasında veri göndermek için T-Sql (Transact SQL), XML, MDX veya SQL-DMO kullanabilir.

SQL Server Windows Server 2008, Windows Vista, Windows 2003 Server, Windows XP Professional, Windows 2000 Server, Windows 2000 Professional, Windows NT 4.0 sistemleri üzerinde çalıştırılabilen istemci/sunucu (client/server) tabanlı bir ilişkisel veritabanı yönetim sistemidir.

SQL Server 2008 veritabanlarının grafiksel arayüzden yönetimi ve SQL Server 2008 ile Transact-SQL kodları geliştirmek için SQL server 2008 Management studio’yu kullaniyoruz.


SQL Server Management studio yu açtığımızda karşımıza Connect To Server ekranı gelir. Buradaki öğeleri tanıtacak olursak:

Server Type:  Bağlanmak istediğiniz SQL Servis tipini seçebilirsiniz. Biz SQL Server veritabanı sistemine bağlanacağımız için, Database Engine bileşenini seçiyoruz.

Server Name:  Bağlanacağınız SQL Server Instance adı yazılır. SQL Server kurulumunda SQL Server kurulumunu yaparken Default Instance seçeneğini seçtiyseniz, SQL Server kurulu bilgisayarın adı otomatik gelecektir veya kendiniz de yazabilirsiniz, ya da Browse seçeneği ile gelen pencereden de server adını seçebilirsiniz.

Authentication : SQL Server bağlantısını yaparken kullanacağınız kimlik doğrulama yöntemi seçilir. Burada sahip olduğunuz SQL hesabına göre ilgili kimlik doğrulama yöntemini seçmeniz gerekir. 

Bilgileri girdikten sonra, connect diyoruz ve karşımıza Management studio ekranı gelir.

Hazır ekranımız açıkken biraz veritabanı işlemlerine göz atalım, ne dersiniz :)

Veritabanı Oluşturmak

SQL Management Studio içerisinde Databases öğesi üzerinde sağ tuş -> New Database ile oluşturulur.

Gelen ekranda Database Name kısmına veritabanı adını veriyoruz. Owner kısmında veritabanın sahibi olacak kişi atanabilir. Default olarak veritabanıyı açan kişi veritabanı sahibidir. Hemen altında Database Files kısmında veritabanı ve log dosyası otomatik olarak oluşacaktır. Burada Initial Size : Başlangıç boyutunu belirlemek için ve Autogrowth: Büyüme oranı ve maksimum dosya boyutu değelerini ayarlayabilirsiniz.

Autogrowth yanındaki üç nokta butonuna tıklanınca yukarıdaki şekilde görülen görünecektir. Burada Enable Autogrowth ile veritabanı dosyasının Initial Size boyutu dolduğunda otomatik olarak dosyanın kendi kendini büyütmesi aktifleştirilir. File Growth kısmından bu büyümenin yüzde olarak mı (In Percent) yoksa MB olarak mı (In Megabytes) olacağı belirlenir. Maximum File Size ile de veritabanı dosyası için maksimum boyut belirlenir. Herhangi bir maksimum dosya boyutu limit uygulamayacaksanız, şekilde de olduğu gibi Unrestricted File Growth seçilir. Otomatik büyüme ayarlarını Log dosyası için de ayrıca benzer şekilde yapılabilir.

Path sütununda veritabanı ya da log dosyasının depolanacağı konum belirlenir.

Options kısmından veritabanı özellikleri ayarlanabilir. Veritabanı ayarlarını, veritabanını oluşturduktan sonrada üzerine sağ tıklayıp-> Properties den ulaşabilirsiniz.

Oluşan veritabanını silmek için, veritabanı üzerinde sağ tuşa basılıp Delete seçeneğine tıklanır.

Oluşan veritabanının adını Management Studio içerisinden artık değiştirebiliyoruz. (Bu SQL 2000 de mümkün değildi.) Bunun için veritabanı üzerinde sağ tuş Rename ile gerçekleştirilebilir.

T-SQL

SQL Server üzerinde bulunan belli işlemleri gerçekleştirmek için oluşturulmuş ve derlenmiş T-SQL ifadelerdir. Standart SQL ’de döngü ifadeleri, şart ifadeleri gibi programlanabilme özelliğine sahip terimler yoktur. Fakat T-SQL  gibi özelleştirilmiş araçlar bu özellikler mevcuttur. Bu yapılar veritabanında ilk çalıştıklarında derlenirler ve sonraki kullanımlarında bir daha derlenmedikleri için hızlı çalışırlar ve performanıs artırırlar.

T-SQL de çalıştıracağımız komutlar 3 kategoriye ayrılırlar:

-Data Manipulation Language(DML) – Veri düzenleme ile ilgili işlemleri yapabileceğimiz komutları içerir.
   DML Komutlar:

•Select – Veri/Verileri seçmek
•Insert – Yeni veri eklemek
•Delete – Var olan veriyi silmek
•Update – Var olan veriyi güncellemek

-Data Definition Language(DDL) – Verilerin saklandığı yapıların (tabloların) tanımlandığı ve düzenlendiği komutları içerir.
   DDL Komutlar:

Create – Yeni bir Veritabanı(Database), Tablo(Table), İndeks(Index), Veri Tipi(Type), View(View), Stored Procedure-Saklı Yordam(Procedure), Fonksiyon(Function), Trigger-Tetikleyici(Trigger) vb. gibi oluşturabileceğimiz komuttur.
Alter – Daha önce oluşturulmuş bir veritabanı nesnesinin(database objects) üzerinde değişiklik yapmamızı sağlayacak komuttur.
Drop - Daha önce oluşturulmuş veritabanı nesnesini kaldırmak için kullanılan komuttur.

-Data Control Language(DCL) – Verilere ulaşırken, kimin-neye yetkisi olduğunu belirlemekte kullanılacak komutları içerir.
   DCL Komutlar:

Grant - Yetki vermek için kullandığımız komuttur.
Deny – Kullanıcı, grup veya rolü bir eylem için engeller.
Revoke – Belirtilmiş olan yetkiyi ya da engeli kaldırır.

Transact-SQL İle Veritabanı Oluşturmak


DETAYLİ BİLGİLERLE VERİTABANİ OLUŞTURMAK

 


VERITABANI HAKKINDA BILGI ALMAK

exec ifadesi execute’in kısaltılması. sp ise store procedure (saklı yordam)kısaltılması. Tek komutla toplu işlemler yapılabilir bu sayede. sp_helpdb ise kendinden sonra belirtilen veritabanı hakkında bilgi görüntüler:


Veritabanları hakkında bilgi alabilmek için, hakkında bilgi almak istediğimiz herhangi bir veritabanını seçtikten sonra, aşağıdaki komutla bilgi edinebiliriz. Veritabanının mevcüt olup olmadığı ile ilgili ve buna ek olarak bazı diğer bilgiler (Resimde görebilirsiniz).


VERİTABANI DOSYASININ ÖZELLİĞİNİ DEĞİŞTİRMEK



T-SQL komutlarıyla birçok işlem yapabilir, ve işlerimizi komutlarla sadeleştirebiliriz. Basit bir örnekle şu şekilde göstereyim: Eğer Jamshid adlı veritabanı varsa, silecek ve yerine JamshidH adına bir veritabanı oluşturduktan sonra, silindi mesajından sonra bilgileri ekrana gösterecek.


Aşağıdaki komutlarıda ayni şekilde uygulayabilirsiniz:

VERİTABANI DOSYASININ ÖZELLİĞİNİ DEĞİŞTİRMEK

ALTER DATABASE Jamshid
MODIFY FILE (NAME=’Jamshid_DATA’, MAXSIZE=500MB) –Jamshid_DATA dosyasının maksimum dosya boyutunu 500 MB olarak ayarlar

VERİTABANI ADINI DEĞİŞTİRMEK

exec sp_renamedb ’Jamshid’,’JamshidH’ –Jamshid isimli veritabanı adını JamshidH olarak değiştirir

VERİTABANINDA KULLANILMAYAN ALANLARIN BOŞALTILARAK DOSYA BOYUTUNUN DÜŞÜRÜLMESİ

Dbcc shrinkdatabase (Jamshid,10)  –maya2005 veritabanını %10 küçültür.
VERI FİLTRELEME

Verilerinizi Where ifadesinden sonra kullanacağınız bazı koşullar ile filtreleyebilirsiniz. Bu koşullar şunlardır;

• Karşılaştırma operatörleri =, >, <, >=, <=, <>
• String karşılaştırmalar LIKE ve NOT LIKE
• Lojik operatörler AND, OR
• Lojik operatörler (Negatif) NOT
• Değer aralıkları BETWEEN ve NOT BETWEEN
• Değer listeleri IN ve NOT IN
• Bilinmeyen değerler IS NULL ve IS NOT NULL

Bunları bazılarını detaylıca inceleyim:

STRİNG KARŞILAŞTIRMALARIN KULLANIMI

% 0 veya daha fazla karakterli string
_ tek bir karakter
[] belirtilenler arasından tek bir karakter
[^] belirtilenler arasında olmayan tek bir karakter
Bu wildcarların LIKE ile kullanım örnekleri aşağıdaki gibidir;
LIKE ‘BR%’ BR ile başlayan tüm isimler
LIKE ‘Br%’ Br ile başlayan tüm isimler. Büyük küçük harf farkı
LIKE ‘%een’ een ile biten tüm isimler
LIKE ‘%en%’ en karakterlerini içeren tüm isimler
LIKE ‘_en’ en ile biten tüm 3 karakterli isimler
LIKE ‘[CK]%’ C veya K ile başlayan tüm isimler
LIKE ‘[S-V]ing’ Tüm 4 karakterli ve ilk karakteri S ile V arasında olan ve ing ile biten tüm isimler
LIKE ‘M[^c]%’M ile başlayan ve ikinci karakteri c olmayan tüm isimler

ÖRN : SELECT companyname FROM customers
WHERE companyname LIKE ’%Restaurant%’

DEĞER ARALIKLARI

BETWEEN ifadesini Where ile beraber kullanarak belli bir değer aralığındaki kayıtları getirebiliriz. Between ifadesi ile belirlenen aralık dışında kalan verileri almak için NOT BETWEEN kullanabiliriz.

ÖRN:

SELECT productname, unitprice
FROM products
WHERE unitprice BETWEEN 10 AND 20

DEĞER LİSTELERİ

Verilen bir liste içerisinde yer alan veya almayan değerleri içeren kayıtları getirir. Listede yer alanları aramak için IN, yer almayanları aramak için NOT IN ifadelerini kullanırız. Birden fazla koşulu OR ile de ayırabiliriz veya IN ile bir liste içerisinde arayabiliriz. İkisinide SQL aynı şekilde çözümler.

ÖRN :

SELECT companyname, country
FROM suppliers
WHERE country IN (’Japan’,’Italy’)

SYSTEM VERİTABANLARI

1- Master: SQL Server ile alakalı server – level bilgileri tutar.
2- Model: Model DB si SQL Server da yeni oluşturulacak DB lerin template idir. Msdb üzerinde database size,collation,recovery model gibi bilgiler değiştirilerek yeni oluşturulan her DB nin bu bilgiler ile oluşturulması sağlanabilir.
3- Tempdb: TempDB temporary objeleri tutar.
4- Msdb: SQL Server Agent tarafından kullanılan bu db; alert ve job lar ile ilgili bilgileri tutar.
5- Resource: SQL Server sistem objelerini tutan Resource DB bir read-only DB dir. Sistem objeleri fiziksel olarak resource db de tutulurken mantıksal olarak her DB nin içerisinde gösterilir.

İpucu : Management studioda T-SQL olarak Query ekraninda birçok kod yazdınız. Bu kodların arasından o anda sadece bir kısmının çalıştırmasını istiyorsunuz; bunun için o kısmı seçili hale getirdikten sonra F5 yaptıktan sonra sadece o kısmı çalıştırmış olursunuz.

VIEW

View; kısaca depolanmış query denilebilir.
View kullanımının Faydaları

1) Performans
2) Column Level Security
3) Database complexitysini düşürür
4) Network trafiğini engeller

STORED PROCEDURES

Transact-SQL (T-SQL) Stored Procedure, Microsoft SQL Server üzerinde barındırılan, T-SQL komutları ile hazırladığınız işlemler bütününün çalıştırılma anında derlenmesi ile size bir sonuç üreten SQL Server bileşenidir.

Storeprocedure ler default olarak geriye int deger donerler . Storeprocedure içerisinden metinsel bir deger dondurmek istersek bunu output ifadesi ile procedure umuze belirtmeliyiz.

Yazılan stored procedure lerin çalışması ve sonuç döndürmesi için geçilen aşamalar şunlardır:

Parse : syntax hatası var mı yok mu kontrolu
Resolve : Sorgu içerisinde alanlar yani kolonlarım var mı yok mu kontrolu
Optimize : Sorgumuz en hızlı sekilde nasıl calısır .
Complite  : Kodumuzun derlenmesi
Execution : İlgili kod calısır .

TRANSACTION

Transaction, özet olarak daha küçük parçalara ayrılamayan işlem demektir. Özellike bir grup işlemin arka arkaya gerçekleşiyor olmasına rağmen, seri işlemler halinde ele alınması gerktiğinde kullanılır. Transaction bloğu içerisindeki işlemlerin tamamı gerçekleşinceye kadar hepsi gerçekleşmemiş varsayılır.

SQL Server 3 farklı transaction desteği sağlar:

1. Harici(Explicit) Transaction: SQL Server’in kullanıcı tarafından bir BEGIN TRAN ifadesi ile transaction’a başlatılması şeklindeki bloktur. Bir aksilik olması halinde SQL Server tarafından veya kullanıcı tarafından COMMIT ifadesi ile gerçekleşmiş olarak veya ROLLBACK ifadesi ile hiç olmamış olarak sonlandırlabilir.

2.Dahili(Implict) Transaction: SQL Server’in belli ifadelerden sonra otomatik olarak transaction açmasını sağlar. Bu modda, bu belli ifadeler kullanıldıktan sonra, kullanıcı tarafından transaction’ın sonlandırılması gerekir. Bu nedenle zahmetli bir mod’dur.

3.Auto Commit: Hiç bir transaction mod’u tayin edilmedi ise, SQL Server bu modda çalışır. Auto Commit modunda iken, her bir batch(yığın, Query Analyzer için iki go arasındaki ifade veya bir defada çalıştırılan bütün SQL ifadeleri) bir transaction bloğu olarak ele alınır. Batch içerisinde bir sorun olursa, SQL Server otomatik olarak bütün batch’i  geri alır(ROLLBACK eder).

SQL SERVER DATA REPLICATION (VERİ YİNELEME)

SQL Server’in sürekli kullanılabilirlik için desteklediği işlemlerden biri de replication modelidir. Replication kısaca verileri merkezi konumdan alıp farklı konumlarda yedekleme işlemidir.

Replikasyon Türleri

Snapshot Replication:  Static replication olarak ta bilinen Snapshot Replication en basit replikasyon türü olup her defasında kaynak veritanındaki tüm verileri bağlı abonelere toplu olarak yükler. Snapshot replication’da daha önce abonelere hangi verilerin gönderildiğine bakılmaz. Bütün verilerinin taşıması söz konusu olduğu için ve şayet verilerinin boyutu büyükse zaman ve kaynak maliyetine sebep olabilmektedir.

Transactional Replication: Dynamic replication olarak ta bilinen bu yöntem Snapshot Replication’tan farklı olarak incremental modele sahiptir yani sadece son yapılmış replikasyon işleminden bu yana gerçekleşmiş değişiklikleri üye veritabanlarına adım adım yansıtır. Bunu da merkezi veritabanındaki log dosyasını dinleyerek gerçekleştirir. Değişiklikler üyelere gerçek zamanlı gönderilebildiği gibi belli peryotlarda da gönderilebilir. Bu yöntem çok yoğun transaction işlemlerinin yapıldığı sistemlerde tercih edilir.

Merge Replication: Transactional Replication gibi incremental özelliğe sahip olan bu yöntem çift yönlü bir replikasyon sunar yani hem publisher tarafındaki değişikliği subscriber’a yansıtır hem de subscriber tarafındaki değişikliği publisher’a yansıtır.  Transactional’dan farklı olarak bir veri üzerindeki tüm değişiklikleri değil sadece son değişikliği karşı tarafa gönderir. Örneğin bir kayıt üzerinde 5 kere düzenleme yapıldıysa Transactional Replication’da bu 5 günceleme de karşı tarafa yansıtılır fakat Merge Replication’da sadece son güncelleme gönderilir.

FONKSİYONLAR

Sql fonksiyonları, kullanımı ve yararlığı nedeninden ötürü önem arz etmekte ve yaygın olarak kullanılmaktadır.
Örnek yapacak olursak :

CREATE FUNCTION whichContinent
(@Country nvarchar(15))
RETURNS varchar(30)
AS
BEGIN
declare @Return varchar(30)
select @return = case @Country
when ’Argentina’ then ’South America’
when ’Belgium’ then ’Europe’
when ’Brazil’ then ’South America’
when ’Canada’ then ’North America’
when ’Denmark’ then ’Europe’
when ’Finland’ then ’Europe’
when ’France’ then ’Europe’
else ’Unknown’
end

return @return
end
fonksiyonumuzu yazdık. Şimdi çalıştıralım :
print dbo.WhichContinent(’USA’)

SQL SERVER YEDEKLEME

1) Full Backup (Tam yedekleme) : Veri tabanının o andaki tüm yedeğinin alındığı yedekleme şeklidir. Bu yedekleme türünden geri dönmek için tüm backup dosyasını restore etmemiz yeterlidir. Fulll backup alındığı zaman o anda onaylanmamış transactionlar da yedeklenir.

2) Differential Backup (Fark yedeği) : En son alınmış olan full backuptan bu yana değişmiş kayıtların alındığı yedekleme şeklidir. Bu yedekleme türünü kullanabilmek için daha önce bir full backup almış olmak gerekir. Differential backup yöntemi, full backup yöntemine göre daha hızlı ve kısa sürede gerçekleştiği için daha çok büyük veri tabanlarında tercih edilir. Bu yedekleme türünden geri dönmek için öncelikle ilk başta alınmış full backup restore edilir ardından alınmış differential backup restore edilir. Differential backup yönteminde full backup’tan sonra bir nesne üzerinde birçok kez değişiklik yapılmışsa differential backup, o nesnenin son değerini içerir.

3) Transaction Log Backup (İşlem günlüğü yedekleme) : Veri tabanındaki tüm değişiklikleri yedeklemek için kullanılır. Bu yedekleme türünü de kullanmak için daha önce en azından bir kere full backup alınmış olması gerekir. Transaction Log backup yönteminin en önemli özelliği belli bir andaki değişikliğe geri dönülmesini desteklemesidir. “BACKUP LOG” komutu kullanılır.

MSSQL TRIGGER & KULLANIMI

Tanım : Tablo üzerinde yapılan insert, update ve delete işlemleri öncesinde veya sonrasında ek işlemler yapmamıza olanak sağlayan (Aynı veya başka bir tabloya kayıt eklemek, kayıt silmek gibi) veya yapılan işlemi (insert, update, delete) kontrol etmemize duruma göre işlemi iptal etmemize yarayan özel stored prosedürleri trigger olarak tanımlayabiliriz.
Triggerlar çalışma şekli açısından transaction ile benzerlik gösterir.

Herhangi bir tablo üzerine trigger tanımladığımız zaman tabloya gönderilen komutlar (insert, update, delete) işletilmeden önce bir transaction başlar. Daha sonra tabloya gönderilen komut işletilir. Üçüncü olarak trigger içerisine yazdığımız komutlar çalıştırılır. Son olarak yapılan işlem geçerli ise transaction commit olur, işlem geçersiz bulunursa RollBack Transaction ile yapılan işlemler iptal edilir.

Bir sonraki makalede görüşmek üzere :)