SQL Server Temel Mimarisi

SQL Server Temel Mimari

Bu yazıda, SQL Server’ın temel mimarı yapısından bahsedeceğim. Instance ve service kavramları nedir ve veritabanı yapılandırılması nasıl olur gelin birlikte bakalım.

İlişkisel Veritabanı

SQL Server, ilişkisel modeli kullanarak veriyi kaydedebilen ve yönetebilen bir veritabanı yönetimi sistemidir. İlişkisel veritabanları verileri tablolarda saklar. Bu sakladığı şeyler müşteri bilgisi gibi somut anlamda kayıtlar olabileceği gibi sipariş bilgisi gibi soyut anlamdaki kayıtlar da olabilir.

Müşteri kayıtlarını Müşteri tablosunda, sipariş kayıtlarını da Sipariş tablosunda tutmak şeklinde bir düzen oluşturduğumuzda yaptığımız iş daha verimli olur ve gereksiz şeylerden de kaçınmış oluruz. Bir müşteriye ait siparişleri görmek istiyoruz diyelim. SQL Server yardımıyla attığımız sorguda iki tabloyu birleştirerek ihtiyacımız olan bilgiye kolaylıkla erişebiliriz.

Veritabanları içerisinde birbiriyle ilintili olan birden fazla tablo olabilmektedir. Bu sebepten dolayı sık sık tabloları kendi aralarında birleştirerek gerekli veriyi çekeceğiz. Diyelim ki bünyenizde çalışan bir satıcıdan belirli bir müşterinin satın aldığı tüm eşyaları görmek istiyorsunuz, bunun için satıcı, müşteri ve satılan eşya tablosunu birleştirerek işlem yapmamız gerekmektedir.

SQL Server’da veriyi saklamaya yarayan veritabanlarının yanı sıra aşağıda belirtilen sistem veritabanları vardır:

Master: Sistem konfigürasyon veritabanıdır

Model: Template veritabanıdır, yeni bir veritabanı oluşturulduğunda bu veritabanında oluşturulmuş nesnelerden faydalanılır

Msdb: SQL Server Agent tarafından job ve alert yönetimi için kullanılır

TempDb: Bir sonraki SQL Server yeniden başlamasına kadar geçici nesneleri saklama işlevi görür

Resource: Diğer veritabanları için tüm sistem nesnelerini tutan gizli ve read-only veritabanıdır

SQL Server veritabanları tabloları, view’ları, stored procedure’leri, kullanıcı hesapları ve diğer yönetim nesnelerini içeren veri ve nesnelerden oluşmaktadır. Bir veritabanına sorgu atmak, veri ekleyip silmek için ilk önce veritabanına bağlanmak gerekmektedir.

Client-Server Veritabanları

SQL Server bir Client-Server ilişkisi üzerinde çalışan bir sistemidir, SQL Server Database Engine’den ayrı olarak çalışmaktadır. Ayrıca SQL Server Management Studio ve Visual Studio’yu da yapısında barındırmaktadır. Client, T-SQL ile Database Engine’e istek gönderdiğinde, SQL Server gerekli dosyalara erişimi, bellek yönetimini ve işlemci kullanımını Client adına isteğe cevap vermektedir. Client’ın kendisi, herhangi bir masaüstü veritabanı programı gibi hiçbir zaman veritabanı dosyalarına direkt erişim sağlayamaz.

Sorgular

T-SQL Set-Based bir dildir yâni verileri satır satır değil tablolar hâlinde çeker. Tablolardaki veriye ulaştıktan sonra da gelen veriyi filtreleyerek sunar. SQL Server bu sayede büyük boyutlardaki verilerle işlem yapabilmektedir.

T-SQL scriptleri .sql uzantılı dosyalarda saklanır. Her script dosyasını, GO komutu ile her bir script yığınlara ayrılabilir. Her bir yığın tamamen çalıştırılana kadar bir sonraki yığına geçilmez, bu sayede işlemler bir sırada gider. Mesela, bir tabloyu doldurmadan önce onun oluşturulması gerekir. Script içerisinde ilk önce CREATE TABLE komutuyla bir tablo tanımlanıp oluşturulur, ardından da INSERT INTO komutuyla tabloyu doldurmak için gerekli komutlar yazılır. Eğer aralarına GO komutu koymadan işlem gerçekleştirilirse işlem hatayla sonuçlanır. Bu yüzden tablo oluşturulduktan sonra önce GO komutu çalıştırılmalı ve ardından INSERT INTO komutuyla tablo doldurulmalıdır.

Kaynak: Querying Data with Transact-SQL