SQL Server'da Naming Convention ve Değişiklik Yönetimi: Düzensizlik Nasıl Riske Dönüşür?
I’m a passionate software engineer specializing in SQL change management, database security, and DevOps automation. With over 17 years of experience in the banking sector, I focus on building tools and processes that make database deployments safer, more auditable, and automated.
As the creator of SQL Change Guard, I develop solutions that use risk scoring and AI-powered code analysis to detect dangerous SQL scripts before they reach production. I’m dedicated to helping teams minimize downtime and data loss through smarter change governance.
When I’m not coding, I enjoy sharing insights about secure development practices, WPF desktop applications, and integrating modern CI/CD pipelines.
Feel free to connect or reach out at info@sqlchangeguard.com
tbl_Musteriler. Customers. musteri. MusteriTablosu. MUSTERI_T. Aynı sistemde, aynı varlığı temsil eden beş farklı isim. Bu küçük bir estetik sorun gibi görünür. Ama gerçekte risk üretir.
Naming Convention Neden Değişiklik Yönetimini Etkiler? Bağımlılık analizi zorlaşır Bir tabloyu değiştirmeden önce bağımlı nesneleri bulmak gerekir. İsimlendirme tutarsızsa arama güçleşir. "Musteri" içeren stored procedure'leri ararken "Customer" içerenleri kaçırırsınız. Yeni değişiklikler tutarsızlığı derinleştirir Standart yoksa her yeni geliştirici kendi alışkanlığıyla nesne oluşturur. Zamanla sistem haritalanamaz hale gelir. Denetimde açıklama zorluğu "Bu tablo neden böyle isimlendirilmiş?" sorusuna yanıt verilemiyor. Denetçi kurumun sistem üzerindeki hakimiyetini sorguluyor.
Tutarsız İsimlendirmenin Tespit Edilmesi sql-- Farklı ön ek kullanan tabloları listele SELECT name AS TabloAdi, CASE WHEN name LIKE 'tbl_%' THEN 'tbl_ öneki' WHEN name LIKE 'T_%' THEN 'T_ öneki' WHEN name LIKE '%_T' THEN '_T soneki' ELSE 'Önek/sonek yok' END AS IsimlendirmeModeli FROM sys.tables ORDER BY IsimlendirmeModeli, name; sql-- Türkçe ve İngilizce karışık nesne adları SELECT name AS NesneAdi, type_desc AS NesneTipi FROM sys.objects WHERE type IN ('U', 'P', 'V', 'FN') AND ( name LIKE '%musteri%' OR name LIKE '%customer%' OR name LIKE '%siparis%' OR name LIKE '%order%' OR name LIKE '%urun%' OR name LIKE '%product%' ) ORDER BY type_desc, name;
Naming Convention Standardı Nasıl Belirlenmeli? Mükemmel standart yoktur. Önemli olan tutarlılık. Tablolar için yaygın yaklaşımlar:
PascalCase: MusteriAdresleri snake_case: musteri_adresleri Önek kullanımı: tbl_MusteriAdresleri
Stored procedure'ler için:
İşlem bazlı isimlendirme: usp_Musteri_Ekle, usp_Siparis_Guncelle
Index'ler için:
IX_TabloAdi_KolonAdi UQ_TabloAdi_KolonAdi (unique index) PK_TabloAdi (primary key)
Standardı Değişiklik Sürecine Dahil Etmek Naming convention değişiklik yönetiminin bir parçası olmalı. Yeni nesne talebi geldiğinde isim standardına uygunluk kontrol edilmeli. Uygun değilse onay sürecinde geri çevrilmeli. Bu hem yeni tutarsızlıkları önler hem de ekipte farkındalık oluşturur.
Mevcut Tutarsızlığı Düzeltmek Mevcut isimlendirme tutarsızlığını düzeltmek büyük bir iş. Bir anda yapmak yerine kademeli yaklaşım daha sağlıklı. Yeni oluşturulan her nesne standarda uygun isimlendirilir. Değiştirilen eski nesneler fırsatçı yeniden isimlendirmeyle düzeltilir. Böylece sistem zamanla olgunlaşır.
Sonuç Naming convention teknik estetik değil, operasyonel sağlık meselesi. Değişiklik yönetim sürecine entegre edilmesi hem yeni tutarsızlıkları önler hem de sistemin anlaşılabilirliğini artırır. Detaylı bilgi için: sqlchangeguard.com
