Bu yazımda SQL Server'da oldukça faydalı olan schema yapısını inceleyeceğiz. SQL Server’da şema yapısı özellikle orta ve büyük ö...
SQL Server Synonym Nedir ve Nasıl Kullanılır?
Bu yazımda SQL Server'da oldukça faydalı olan synonym yapısını inceleyeceğiz. Veritabanı projelerinde zamanla tablo isimleri uzar, şema yapıları değişir veya farklı veritabanlarına bağımlılıklar oluşur. Bu noktada kodu daha okunabilir ve sürdürülebilir hale getirmek için SYNONYM (eş anlamlı) yapısı devreye girer.
SQL Server’da SYNONYM nedir, neden kullanılır, nasıl oluşturulur, nerelerde avantaj sağlar ve dikkat edilmesi gereken noktalar nelerdir adım adım inceleyeceğiz.
Synonym Nedir?
SYNONYM, veritabanındaki bir nesneye (table, view, stored procedure, function vb.) verilen alternatif bir isimdir (alias).
Yani bir nesnenin kendisini değiştirmeden, ona farklı bir isimle erişmemizi sağlar.
Gerçek nesne yerinde durur, SYNONYM sadece bir yönlendirme (pointer) görevi görür. Veritabanındaki tabloları başka yere taşıdığınızda Synonym ile sorgularda değişiklik yapmadan hızlıca kullanmamıza olanak sağlar.
SYNONYM Hangi Nesneler İçin Kullanılabilir?
SQL Server’da aşağıdaki nesneler için SYNONYM oluşturabilirsiniz:
-
Table
-
View
-
Stored Procedure
-
Function (Scalar / Table-Valued)
-
Sequence
-
Hatta başka bir veritabanındaki nesneler
-
Linked Server üzerindeki nesneler
Neden SYNONYM Kullanılır?
Kod Okunabilirliğini Artırmak
Uzun ve karmaşık nesne isimlerini sadeleştirir.
SELECT *
FROM ERP_PROD_DB.dbo.Products_2024_Active
yerine:
SELECT * FROM Urunler
Bağımlılıkları Azaltmak
Eğer tablo ismi veya veritabanı değişirse:
-
Tüm sorguları değiştirmek yerine
-
Sadece SYNONYM’i güncellemek yeterlidir
Çoklu Veritabanı / Mikroservis Senaryoları
Farklı veritabanlarına erişen uygulamalarda:
-
Kod aynı kalır
-
Hedef veritabanı SYNONYM üzerinden değiştirilebilir
SYNONYM Nasıl Oluşturulur?
Products Tablosu İçin SYNONYM Oluşturma
CREATE SYNONYM Urunler
FOR Products
Artık Products tablosuna Urunler adıyla erişebiliriz.
SYNONYM Üzerinden Sorgulama
SELECT * FROM Urunler u
SQL Server bu sorguyu otomatik olarak Products tablosuna yönlendirir.
Başka Bir Veritabanı Üzerinden SYNONYM Oluşturma
CREATE SYNONYM Urunler
FOR SalesDB.dbo.Products
Stored Procedure İçin SYNONYM Oluşturma
CREATE SYNONYM GetUrunler
FOR dbo.sp_GetProducts
Kullanımı
EXEC GetUrunler
SYNONYM Silme
DROP SYNONYM IF EXISTS Urunler
Bu işlem sadece SYNONYM’i siler, gerçek tabloya zarar vermez.
Bir SYNONYM’i değiştirmek için:
Synonym değiştirme veya düzeltme işlemi yoktur. O yüzden öncelikle var olan Synonym silinir sonrasında tekrar istenilen şekilde oluşturulabilir.
Performans
-
SYNONYM performans kaybı oluşturmaz
-
SQL Server çalışma anında SYNONYM’i çözümler
-
Ekstra join veya işlem yoktur
Intellisense ve Dependency Takibi
-
SSMS Intellisense bazen SYNONYM’leri geç algılayabilir
-
Dependency tracking (bağımlılık analizi) SYNONYM’lerde zayıftır
SYNONYM Ne Zaman Kullanılmamalı?
-
Küçük ve tek veritabanlı projelerde
-
Gereksiz soyutlama yaratıyorsa
-
Gerçek tabloyu gizlemek yerine yanlış anlaşılmaya yol açıyorsa
SYNONYM, SQL Server’da güçlü ama sade bir özelliktir. Kod okunabilirliğini ve esnekliği sağlayarak ciddi avantajlar sağlayabilir.
Umarım faydalı olmuştur. İyi çalışmalar!

Yorum yapabilmek için giriş yapmalısınız. Giriş yapmak için tıklayınız.