Kurs
SQL Server, Microsoft tarafından geliştirilen ve yaygın olarak kullanılan bir ilişkisel veritabanı yönetim sistemi (RDBMS)dir. Veri sektöründeki popülerliği nedeniyle, veriyle ilgili rollere yönelik teknik mülakatlarda SQL Server’a özgü sorularla karşılaşmanız muhtemeldir.
Bu makale, temel kavramlardan ileri tekniklere kadar çeşitli SQL Server sorularını ayrıntılı yanıtlar ve açıklamalarla ele alarak bu tür mülakatlara hazırlanmanızı amaçlar.
SQL Server hakkında daha fazla bilgi edinmek için şu SQL Server’a Giriş kursuna göz atın.
Temel SQL Server Mülakat Soruları
Mülakat sürecinin başlarında karşılaşmanız muhtemel bazı temel sorularla başlayalım.
SQL Server nedir?
SQL Server, Microsoft tarafından geliştirilen, büyük veri hacimlerini verimli biçimde depolamak, almak ve yönetmek için tasarlanmış bir ilişkisel veritabanı yönetim sistemidir (RDBMS). BI araçları, işlem işleme ve analitik araçları için destek sunduğundan, güvenilir ve ölçeklenebilir veritabanı çözümlerine ihtiyaç duyan işletmeler için güçlü bir araçtır.
Ayrıca ölçeklenebilirdir ve kapsamlı veritabanı geliştirme, yönetim ve bakım yetenekleri sayesinde çok çeşitli sistemlerde çalışabilir.
SQL ile SQL Server arasındaki fark nedir?
SQL (Structured Query Language), ilişkisel veritabanlarını yönetmek ve işlemek için kullanılan standartlaştırılmış bir programlama dilidir. Veri sorgulama, kayıt güncelleme ve veritabanı yapıları yönetme gibi çeşitli işlemleri gerçekleştirmek için gerekli sözdizimi ve komutları sağlar.
SQL Server, veritabanıyla etkileşim kurmak için dil olarak SQL kullanan bir RDBMS’dir. Ayrıca veritabanı yönetimi, güvenlik, performans optimizasyonu ve veri entegrasyonu için bir dizi araç ve hizmeti kapsar.
Temel fark, SQL’in veriler üzerinde işlemler yapmak için kullanılan dil, SQL Server’ın ise SQL’i kullanarak veritabanı depolama, erişim ve yönetimi için sağlam bir ortam sunan kapsamlı bir sistem olmasıdır.
SQL veritabanıyla iletişim aracıdır; SQL Server gibi bir RDBMS ise verileri depolayan, işleyen ve güvence altına alan platformdur.
SQL Server’ın başlıca özellikleri nelerdir?
SQL Server; veri depolama, işlem işleme ve gelişmiş analitik dahil birçok özellik sunar. Ek olarak, çeşitli veri kaynakları ve araçlarla entegrasyon, kapsamlı BI ve raporlama hizmetleri ve R ve Python entegrasyonu aracılığıyla makine öğrenimi ile veri analizi için yerleşik destek sağlar. SQL Server, şifreleme ve denetimle gelişmiş güvenlik de sunar.
SQL Server’da bir birincil anahtar (primary key) nedir?
Birincil anahtar, bir tabloda her satırı benzersiz şekilde tanımlayan bir sütun ya da sütun grubudur. Her kaydın benzersiz olmasını sağlar ve NULL değer içeremez; böylece varlık bütünlüğünü güvenilir biçimde uygular.
SQL Server’daki farklı join türleri nelerdir?
SQL Server şu join türlerini destekler: INNER JOIN, LEFT JOIN (veya LEFT OUTER JOIN), RIGHT JOIN (veya RIGHT OUTER JOIN), FULL JOIN (veya FULL OUTER JOIN) ve CROSS JOIN. Her join türü, ilgili tablolar arasındaki ilişkilere göre verileri farklı biçimde getirir.
SQL Server’da CTE (Common Table Expression) nedir?
Common Table Expression (CTE), tek bir SELECT, INSERT, UPDATE veya DELETE deyiminin yürütme kapsamı içinde tanımlanan geçici bir sonuç kümesidir. CTE’ler, karmaşık sorguları daha basit parçalara ayırarak yazmayı ve okumayı kolaylaştırır. Özellikle özyinelemeli sorgular için kullanışlıdır ve SQL kodunuzun okunabilirliğini ve sürdürülebilirliğini artırabilir.
Orta Düzey SQL Server Mülakat Soruları
Temellerin ötesine geçerek, SQL Server’ın yetenekleri ve yönetimine daha derinlemesine giren orta düzey soruları inceleyelim.
SQL Server’da yedekleme ve kurtarma stratejileri nasıl uygulanır?
SQL Server’da yedekleme ve kurtarma stratejileri, tam, diferansiyel ve işlem günlüğü yedeklerini kullanarak düzenli veritabanı yedekleri oluşturmaya dayanır.
Tam yedekler tüm veritabanını yakalar; diferansiyel yedekler son tam yedekten bu yana yapılan değişiklikleri yakalar; işlem günlüğü yedekleri ise son günlük yedeğinden bu yana yapılan tüm değişiklikleri kaydeder.
Kurtarma stratejileri arasında yedeklerin düzenli olarak test edilmesi, otomatik yedekleme zamanlaması kullanılması ve veri kaybı veya bozulma durumunda verilerin hızla geri yüklenerek kesintinin en aza indirilmesini sağlayan net bir felaket kurtarma planı bulunması yer alır.
Tam Yedek
BACKUP DATABASE [YourDatabaseName]
TO DISK = 'C:\Backups\YourDatabaseName_Full.bak'
WITH INIT,
NAME = 'Full Backup of YourDatabaseName';
Diferansiyel Yedek
BACKUP DATABASE [YourDatabaseName]
TO DISK = 'C:\Backups\YourDatabaseName_Diff.bak'
WITH DIFFERENTIAL,
NAME = 'Differential Backup of YourDatabaseName';
Kurtarma
RESTORE DATABASE [YourDatabaseName]
FROM DISK = 'C:\Backups\YourDatabaseName_Full.bak'
WITH NORECOVERY;
RESTORE DATABASE [YourDatabaseName]
WITH RECOVERY;
SQL Server’da fonksiyonlar ve saklı yordamlar (stored procedure) nedir ve aralarındaki farklar nelerdir?
Fonksiyonlar ve saklı yordamlar, SQL Server’da yeniden kullanılabilir kod nesneleridir. Fonksiyonlar tek bir değer ya da bir tablo döndürmek üzere tasarlanmıştır ve SELECT veya JOIN gibi SQL ifadelerinde kullanılabilir.
Saklı yordamlar ise veritabanı nesnelerini değiştirme, karmaşık işlemler yürütme ve birden çok sonucu işleme gibi daha geniş bir yelpazede işlem yapabilir. Fonksiyonlar belirleyici olmalı ve veritabanı durumunu değiştiremezken, saklı yordamlar yan etkilere sahip olabilir ve daha karmaşık programlama mantığını destekler.
Bir fonksiyon oluşturmak için CREATE FUNCTION komutunu, saklı yordam için ise CREATE PROCEDURE komutunu kullanabilirsiniz. Saklı yordamlar EXEC komutuyla yürütülür.
Dizinleme gibi teknikler kullanarak SQL Server’da sorgu performansını nasıl optimize edebilirsiniz?
SQL Server’da sorgu performansını optimize etmek, WHERE koşullarında, JOIN koşullarında ve ORDER BY ifadelerinde sık kullanılan sütunlara dizinler oluşturarak veri getirmenin hızlandırılmasını içerir. Doğru dizinleme, SQL Server’ın taraması gereken veri miktarını azaltarak sorguların daha hızlı çalışmasını sağlar.
Ayrıca, sorgu yürütme planlarını analiz etmek, istatistikleri güncellemek, SELECT ifadelerinde gereksiz sütunlardan kaçınmak ve SQL kodunu optimize etmek gibi teknikler performansı daha da artırabilir. Dizinlerin düzenli izlenmesi ve gerekli olduğunda yeniden oluşturulması veya yeniden düzenlenmesi de en iyi performansı korumaya yardımcı olur.
SQL Server’da view (görünüm) nedir ve neden kullanılır?
Görünüm, bir SELECT sorgusuna dayalı sanal bir tablodur; karmaşık sorguları birleştirip basitleştirebilir, mantığı kapsülleyebilir ve soyutlama katmanı sağlar. Görünümler, alttaki tablolara erişimi kısıtlayarak güvenliği artırır, veri erişimini basitleştirir ve alttaki veri yapısı değişse bile tutarlı, değişmeyen bir şema sunar.
CREATE VIEW dbo.ViewName
AS
SELECT var_1,
var_2,
var_3
FROM
dbo.data;
SQL Server işlemleri (transaction) nasıl ele alır ve ACID özellikleri nelerdir?
SQL Server, bir dizi işlemin başarıyla tamamlanmasını ve veri bütünlüğünün korunmasını sağlamak için transaction’ları kullanır. ACID özellikleri şunlardır:
- Atomiklik (işlemlerin ya tamamı yapılır ya da hiçbiri yapılmaz)
- Tutarlılık (transaction öncesi ve sonrası veri tutarlı kalır)
- İzolasyon (transaction’lar birbirinden yalıtılmıştır)
- Kalıcılık (commit edildikten sonra değişiklikler kalıcıdır)
SQL Server’da yabancı anahtar (foreign key) nedir?
Yabancı anahtar, bir tabloda yer alan ve başka bir tablodaki satırları benzersiz biçimde tanımlayan sütun ya da sütun grubudur; iki tablo arasında ilişki oluşturur. Yabancı anahtar sütunundaki değerlerin, başvurulan tablonun birincil anahtarındaki değerlere karşılık gelmesini zorunlu kılarak başvuru bütünlüğünü sağlar; böylece geçersiz veri girişlerini önler ve tutarlılığı korur.
SQL Server Profiler nedir ve nasıl kullanılır?
SQL Server Profiler, SQL Server olaylarını izleme ve analiz etme aracıdır. Sorgu yürütme, performans metrikleri ve hatalar gibi her olayla ilgili verileri yakalar ve kaydeder. Veritabanı yöneticilerinin performans sorunlarını teşhis etmesine, yavaş çalışan sorguları belirlemesine ve SQL Server etkinliğini denetlemesine olanak tanır. Yakalanan iz verileri, sorun gidermek veya performansı optimize etmek için kaydedilebilir ve yeniden oynatılabilir.
SQL Server Agent’ın amacı nedir?
SQL Server Agent, yedeklemeler, veritabanı bakımı ve zamanlanmış işler gibi görevlerin otomasyonunu sağlayan bir SQL Server bileşenidir. Belirli zamanlarda veya belirli olaylara yanıt olarak SQL betiklerini, T-SQL ifadelerini veya harici programları çalıştıran işler oluşturup zamanlamaya olanak tanır; böylece rutin yönetim görevlerini otomatikleştirir ve güvenilir şekilde yürütülmelerini sağlar.
Veritabanı normalizasyonu nedir ve neden önemlidir?
Veritabanı normalizasyonu, verileri tablolara düzenleyerek ve aralarındaki ilişkileri tanımlayarak yinelenmeyi ve bağımlılığı en aza indirmek için ilişkisel bir veritabanının yapılandırılması sürecidir. Yinelenen verileri ortadan kaldırma ve veri bağımlılıklarının mantıksal olmasını sağlama gibi belirli sorunları ele alan aşamalar (normal formlar) halinde yapılır.
Normalizasyon, veri bütünlüğünü ve tutarlılığını artırır, depolama gereksinimlerini azaltır ve güncellemeler, eklemeler ve silmelerin verimli biçimde ele alınmasıyla bakımı basitleştirir.
İleri Düzey SQL Server Mülakat Soruları
Artık orta düzey kavramları ele aldığımıza göre, bazı ileri düzey SQL Server mülakat sorularına geçelim.
SQL Server’daki farklı çoğaltma (replication) türleri nelerdir (Transactional, Merge, Snapshot)?
SQL Server, verileri birden çok veritabanına dağıtmak ve eşzamanlamak için çeşitli çoğaltma teknikleri sunar:
- Transactional replication: Yayıncıdan abone(ler)e her transaction’ı gerçek zamanlı olarak çoğaltır ve veritabanları arasında tutarlılığı korur.
- Merge replication: Hem yayıncıda hem de abonelerde güncellemelere izin verir; değişiklikleri birleştirerek tüm kopyalar arasında tutarlılığı sağlar.
- Snapshot replication: Belirli bir anda verinin anlık görüntüsünü alır ve abonelere uygular; gerçek zamana yakın eşzamanlama gerekmeyen senaryolar için uygundur.
SQL Server Integration Services (SSIS) tarafından sunulan işlevleri açıklayın.
SQL Server Integration Services (SSIS), aşağıdakiler dahil geniş bir işlev yelpazesi sunar:
- Veri çıkarma, dönüştürme ve yükleme (ETL).
- Veri entegrasyon görevleri için iş akışı otomasyonu.
- Veritabanları, dosyalar ve bulut hizmetleri gibi çeşitli veri kaynakları ve hedeflerle entegrasyon.
- Gelişmiş dönüşümler, veri temizleme ve hata yönetimi desteği.
- Zamanlanmış yürütme ve izleme için paketlerin dağıtımı ve yönetimi.
SQL Server’da performans sorunlarını nasıl izler ve giderirsiniz?
En iyi performansı korumak, bir SQL Server ortamını yönetmenin kritik bir yönüdür. Kullanabileceğimiz birkaç strateji şunlardır:
- SQL Server Management Studio (SSMS), SQL Server Profiler ve Performance Monitor gibi araçlarla sistem ve sorgu performansını düzenli olarak izlemek.
- Yavaş çalışan sorguları belirlemek için yürütme planlarını analiz etmek ve bunları dizinleme, sorgu ayarlama veya yeniden yazma ile optimize etmek.
- Olası darboğazları belirlemek ve donanım yapılandırmalarını optimize etmek için CPU, bellek, disk G/Ç ve ağ kullanımı gibi sistem kaynaklarını izlemek.
- Kullanıcıları etkilemeden önce performans sorunlarını proaktif olarak belirlemek ve ele almak için performans sayaçları ve uyarılar uygulamak.
SQL Server’da skaler fonksiyonlar, tablo değerli fonksiyonlar ve satır içi tablo değerli fonksiyonlar arasındaki farkları açıklayın.
Skaler fonksiyonlar tek bir değer döndürürken, tablo değerli fonksiyonlar bir sonuç kümesi döndürür. Satır içi tablo değerli fonksiyonlar görünümlere benzer fakat parametre alabilir ve daha esnektir. Çıktıları ve kullanım senaryoları bakımından farklılaşırlar.
SQL Server’da tetikleyici (trigger) kullanmanın faydaları ve sakıncaları nelerdir?
Tetikleyiciler, veriler değiştirildiğinde değişikliklerin kaydedilmesi, iş kurallarının uygulanması veya bütünlüğün korunması gibi işlemleri otomatik olarak gerçekleştirme olanağı sağlar. Ancak dikkatli tasarlanıp yönetilmezlerse performansı etkileyebilir, karmaşıklığı artırabilir ve beklenmedik davranışlara yol açabilirler.
SQL Server’da satır düzeyinde güvenliği (row-level security) nasıl uygularsınız?
Satır düzeyinde güvenlik, SQL Server’da güvenlik önekleri (security predicate) veya filtre önekleri kullanılarak uygulanabilir. Güvenlik önekleri, bir güvenlik ilkesinde tanımlanan kullanıcıya özgü koşullara göre satırlara erişimi kısıtlayarak kullanıcıların yalnızca kendi ölçütlerini karşılayan verileri görmesini sağlar.
SQL Server’da kümelemeli ve kümelenmemiş columnstore dizinleri arasındaki farkları açıklayın.
Kümelemeli columnstore dizinleri verileri sütunsal biçimde depolar; büyük veri kümelerine sahip analitik iş yükleri için idealdir. Kümelenmemiş columnstore dizinleri ise tablonun fiziksel yapısını değiştirmeden sütunsal depolamanın avantajlarını sunar; gerçek zamanlı veri erişimi ve güncellemelerine olanak tanır.
SQL Server’da NOLOCK ipucunun (hint) amacı nedir ve ne zaman kullanılmalıdır?
NOLOCK ipucu, bir SELECT ifadesinin paylaşımlı kilit almadan veri okumasına izin vererek engellemeleri önleyip sorgu performansını artırabilir. Ancak kirli ve tekrarlanamayan okumalarla sonuçlanabileceğinden, özellikle veri tutarlılığının kritik olduğu durumlarda dikkatli kullanılmalıdır.
SQL Server’daki zamansal tabloların (temporal tables) kavramını ve nasıl kullanıldıklarını açıklayın.
Zamansal tablolar, kayıtların geçmiş sürümlerini otomatik olarak tutarak zaman içindeki veri değişikliklerini izlemeyi sağlar. Biri mevcut, diğeri geçmiş verileri tutan iki tablodan oluşur; sistem sürümlü tablolar, farklı zaman noktalarındaki verilerin denetim ve uyumluluk amaçlarıyla kolayca sorgulanmasını mümkün kılar.
Veri/BI Analisti için SQL Server Mülakat Soruları
Bir Veri Analisti veya BI Analisti rolü için mülakata giriyorsanız, verilerden içgörü çıkarma ve sunma yeteneğinize odaklanan sorularla karşılaşmanız olasıdır. Bu pozisyonlara yönelik yaygın mülakat sorularına göz atalım.
BI’da kullanılan farklı veri görselleştirme tekniklerini ve SQL Server verilerinden içgörüleri sunmak için nasıl kullanılabileceklerini açıklayın.
BI’daki veri görselleştirme teknikleri; grafikler, diyagramlar, haritalar ve panoları içerir. Bu teknikler, ham SQL Server verilerini kolayca anlaşılabilir ve yorumlanabilir görsel temsillere dönüştürerek karar alma süreçlerini kolaylaştırır. Örneğin grafikler satış verilerindeki eğilim ve kalıpları gösterirken, haritalar müşterilerin coğrafi dağılımını görselleştirebilir.
SQL Server ile entegre olan BI araçlarıyla (örn. Power BI, Tableau) veri analizi ve raporlama konusundaki deneyiminizi anlatın.
Not: Aşağıdaki yapı iyi bir örnektir; ancak kendi deneyiminize uygun bir yanıt hazırlamanız gerekir.
Power BI ile veri analizi ve raporlama konusunda kapsamlı deneyime sahibim. Power BI’ın SQL Server ile sorunsuz entegrasyonu sayesinde, işletme performansına ilişkin gerçek zamanlı içgörüler sunan etkileşimli panolar ve raporlar oluşturdum ve bu çalışmalarım [Power BI deneyiminizle sağladığınız sayısal etkiyi ekleyin] üzerinde etkili oldu.
Ayrıca, DAX ifadeleri ve veri modelleme gibi Power BI’ın gelişmiş özelliklerinden yararlanarak paydaşların özel ihtiyaçlarını karşılayan güçlü analitik çözümler geliştirdim.
Ayrıca, önceki görevimde [Şirket] bünyesinde Tableau’yu [İlgili proje ve sonuçları ekleyin] için görselleştirmeler oluşturmada kullandım. Bu iş deneyimi kapsamında R ve Python gibi popüler kodlama dilleriyle görselleştirmeler üretme konusunda da kapsamlı deneyimim var.
Bir veri ambarında olgu (fact) tablosu ve boyut (dimension) tablosu kavramlarını açıklayın.
Bir veri ambarında, olgu tablosu iş işlemlerini temsil eden nicel ölçüleri/metrikleri içerirken, boyut tabloları bu ölçülere bağlam sağlayan açıklayıcı öznitelikleri barındırır. Olgu tabloları tipik olarak boyut tablolarıyla çevrelenir ve analiz için birlikte birleştirilir.
BI projeleri için SQL Server’da veri modelleme teknikleriyle ilgili deneyiminizi anlatın.
Not: Aşağıdaki yapı iyi bir örnektir; ancak kendi deneyiminize uygun bir yanıt hazırlamanız gerekir.
Önceki projelerimde, SQL Server’da BI çözümleri için yıldız şeması ve kar tanesi şeması gibi veri modelleme tekniklerini kullandım. Analitik raporlama ve içgörü üretimini destekleyen yapılandırılmış ve verimli bir veri mimarisi oluşturmak üzere olgu tablolarını, boyut tablolarını ve aralarındaki ilişkileri tanımladım.
SQL Server’daki satış performansı verilerini görselleştirmek için Power BI’da bir pano nasıl tasarlanır?
Önce Power BI’ı SQL Server veritabanına bağlayarak satış verilerini içe aktarırdım. Ardından, gelir, satılan birim sayısı ve kâr marjı gibi temel satış metriklerini göstermek için çubuk grafikler, çizgi grafikler ve KPI’lar gibi görselleştirmeler tasarlardım. Kullanıcıların daha derin analiz için belirli bölgelere, ürünlere veya zaman aralıklarına göre ayrıntıya inebilmelerini sağlamak amacıyla filtreler ve dilimleyiciler de eklerdim.
BI raporlaması için SQL Server’da veri kalitesi sorunlarını nasıl ele alırsınız?
Veri kalitesi sorunlarını, tutarsızlıkları, hataları veya eksik değerleri belirleyip düzeltmek için veri doğrulama kontrolleri, veri temizleme teknikleri ve veri profilleme uygulayarak ele alırım. Ayrıca, BI ortamı genelinde verilerin doğruluğunu, eksiksizliğini ve tutarlılığını sağlamak için veri yönetişimi politika ve prosedürleri oluştururum.
Sonuç
Temel tanımlardan ileri düzey yönetim ve veri analizi tekniklerine kadar geniş bir yelpazede SQL Server mülakat sorularını ele aldık. Bu kavramları anlayıp üzerine düşünülmüş yanıtlar hazırlayarak, bir sonraki mülakatınızda SQL Server yetkinliğinizi başarıyla ortaya koyabilirsiniz.
Mülakatınız için daha fazla öğrenmek ve pratik yapmak isterseniz, şu SQL kurslarına göz atın.
SSS
SQL Server mülakat soruları için kişisel deneyim sorularını nasıl yapılandırabilirim?
Proje ve iş deneyimlerinizin etkisini sayısallaştırmak her zaman iyi bir fikirdir. SQL ile ilgili deneyiminiz varsa, çalışmanızın kaç müşteriyi etkilediğini, çalıştığınız verinin ölçeğini ve geçmişte teknolojiyle ne kadar sorumluluk aldığınızı gösteren diğer unsurları net biçimde aktaracak şekilde hazırlanın.
Teknik SQL Server mülakatları ne kadar yaygındır?
Teknik mülakatlar, çoğu veri ve yazılım işi için oldukça yaygındır. İş tanımına bağlı olarak, size bazı teknik SQL Server soruları yöneltilebilir.
SQL Server nedir?
SQL Server, Microsoft tarafından geliştirilen güçlü ve popüler bir ilişkisel veritabanı yönetim sistemidir (RDBMS).
Diğer popüler RDBMS’ler nelerdir?
PostgreSQL, MySQL ve OracleDB de çok popüler ve yaygın olarak kullanılır.
Veri Bilimi yazarı | Wayfair'da Kıdemli Teknik Pazarlama Analisti | University of Pennsylvania'da Veri Bilimi Yüksek Lisansı (MSE)
