Sistem Tabloları

Eyl 06, 2013

Sistem tabloları, veritabanlarındaki sistem ve nesneler hakkındaki bilgileri içerir ve metadata olarak adlandırılır. Metadata veri hakkındaki bilgilerdir.

Veritabanı Kataloğu

Her bir veritabanı, belirli veritabanı hakkındaki metadataları depolayan sistem tablolarını yığınlarını içerir. Sistem tabloları yığını veritabanı kataloğudur.

Sistem Kataloğu

Sadece Master veritabanında bulunur. Tüm sistem veya diğer tüm veritabanları hakkındaki metadataları depolayan sistem tablolarını içerir. Sistem tabloları sys ön eki ile başlar.

  • Syslogins: SQL Server'a bağlanabilen her bir giriş hesabı için bir satır içerir. 
     
  • Sysmessages: SQL Server'ın döndürebildiği her bir sistem hatası için bir satır içerir. 
     
  • Sysdatabases: SQL Server üzerindeki her bir veritabanı için bir satır içerir. 
     
  • Sysusers:  Bir veritabanı üzerindeki her bir SQL Server rolü, SQL Server kullanıcısı, WinNT grubu, WinNT kullanıcısı için bir satır içerir. 
     
  • Sysobjects: Bir veritabanındaki her bir nesne için bir satır içerir. 

Sistem Tabloları: 

Sistem tabloları; sistem ve tablolarla ilgili bilgi depolar ki bu bilgiye metadata adı verilir. Her veritabanı, o veritabanı ile ilgili metadata tutar;  o veritabanındaki sistem tablolarına veritabanı katoloğu adı verilir. Sistem katoloğu ise sadece Master veritabanında bulunur ve tüm sistemle ilgili ve diğer veritabanları ile ilgili metadata'yı tutar. Sistem tabloları sys ön eki ile başlar (syslogins,sysmessages gibi)

Sistem tablosu Veritabanı Fonksiyon
sysdatabases Master Her satırda bir veritabanı içerir.
syslogins Master Her satırda SQL Server'a bağlanmak için bir login hesabı içerir.
sysmessages Master Her satırda SQL Server'ın verebileceği bir hata mesajı ya da uyarı içerir.
sysalerts MSDB Her uyarı için bir satır içerir.
syscategories MSDB SQL Server Management Studio tarafından; işleri, uyarıları ve operatörleri kaydetmek amacıyla kullanılan kategorileri içerir.
sysdownloadlist MSDB Tüm hedef sunucular için download talimatlarının sırasını içerir.
sysjobactivity MSDB O anki SQL Server Agent işinin etkinliği ve durumu hakkındaki bilgileri içerir.
sysjobhistory MSDB SQL Server Agent tarafından planlanmış işlerin uygulaması hakkındaki bilgileri içerir.
sysjobs MSDB SQL Server Agent tarafından tamamlanmış olması gereken her planlanmış iş ile ilgili bilgileri depolar.
sysjobschedules MSDB SQL Server Agent tarafından tamamlanmış olması gereken işlerin plan bilgilerini içerir.
sysjobservers MSDB Belirli bir iş ile bir ya da daha fazla hedef sunucu arasındaki tüm bağların bilgilerini içerir.
sysjobsteps MSDB SQL Server Agent tarafından tamamlanmak üzere olan bir işin her aşamasıyla ilgili bilgileri içerir.
sysjobstepslogs MSDB İş aşamalarının günlükleriyle ilgili bilgileri içerir.
sysmail_allitems MSDB Veritabanı Postası tarafından işlenmiş her mesaj için bir satır içerir.
sysmailevent_log MSDB Veritabanı Posta Sistemi tarafından geri çevrilen her Windows ya da SQL Sunucusu mesajı için bir satır içerir.
sysmail_faileditems MSDB Başarısız durumdaki her Veritabanı Posta mesajı için bir satır içerir.
sysmail_mailattachments MSDB Veritabanı Postasına iliştirilen her ek için bir satır içerir.
sysmail_sentitems MSDB Veritabanı Postası tarafından gönderilen her mesaj için bir satır içerir.
sysmail_unsentitems MSDB “Gönderilemedi” veya “tekrar deneniyor” durumundaki her Veritabanı Posta Mesajı için bir satır içerir.
sysnotifications MSDB Her bildirim için bir satır içerir.
sysoperators MSDB Her SQL Server Agent operatörü için bir satır içerir.
sysproxies MSDB SQL Server Agent yetkili hesaplarıyla ilgili bilgileri içerir.
sysproxylogin MSDB Her SQL Server Agent yetkili hesabıyla ilişkilendirilmiş SQL Server oturumunu kaydeder.
sysproxysubsystem MSDB Her yetkili hesabıyla kullanılan SQL Server alt sistemini kaydeder.
sysschedules MSDB SQL Server Agent iş planlarıyla ilgili bilgileri içerir.
syssessions MSDB Her SQL Server Agent oturumu için SQL Server Agent’ın başlagıç tarihini içerir.
syssubsystems MSDB Mevcut tüm SQL Server Agent yetkili alt sistemlerle ilgili bilgileri içerir.
systargetservergroupmembers MSDB O anda çok sunuculu grupta listelenmiş olan hedef sunucuları kaydeder.
systargetservergroups MSDB O anda çok sunuculu ortamda listelenmiş hedef sunucu gruplarını kaydeder.
systargetservers MSDB O anda çok sunuculu işlem etki alanında listelenmiş hedef sunucuları kaydeder.
systaskids MSDB SQL Server’ın önceki sürümlerinde oluşturulmuş görevlerle, güncel Microsoft SQL Server 2005 Management Studio’daki işler arasındaki eşleştirmeleri içerir.
sysaltfiles Hepsinde Özel durumlarda, veritabanındaki dosyalara karşılık gelen satırlar içerir.
syscacheobjects Hepsinde Önbelleğin nasıl kullanıldığına dair bilgiler içerir.
syscharsets Hepsinde SQL Server 2005 veritabanı motoru tarafından kullanılmak üzere her karakter için bir satır içerir ve bunları sıralar.
syscolumns Hepsinde Veritabanında kayıtlı her işlem parametresini ve tablolardaki her sütunu satıra çevirir.
syscomments Hepsinde Veritabanında tutulan her tablo, kural, varsayılan değer, varsayılan kısıtlaması ve kontrol kısıtlaması için girdi içerir.
sysconfigures Hepsinde Kullanıcı tarafından tanımlanmış her kurulum seçeneği için bir satır içerir.
sysconstraints Hepsinde Veritabanında yer alan objeler ve bu objelerle ilgili kısıtlamaların eşleştirmesini içerir.
syscurconfigs Hepsinde Geçerli kurulumun her seçeneği için bir girdi içerir.
sysdepends Hepsinde Veritabanındaki objelerle (tablo, işlem ve deklanşörler) tanımlarının içerdiği objeler arasındaki bağla ilgili bilgiler içerir.
sysdevices Hepsinde Diskteki her yedek dosyası, banttaki her yedek dosyası ve veritabanındaki her dosya için bir satır içerir.
sysfilegroups Hepsinde Veritabanındaki her dosya grubu için bir satır içerir. Bu tabloda ana dosya grubu için en az bir girdi mevcuttur.
sysfiles Hepsinde Veritabanındaki her dosya için bir satır içerir.
sysforeignkeys Hepsinde Veritabanındaki tanım tablosunda bulunan dış anahtar (foreign key) kısıtlamalarıyla ilgili bilgileri içerir.
sysfulltextcatalogs Hepsinde Tüm metin katalogları hakkında bilgiler içerir.
sysindexes Hepsinde Aktif veritabanındaki her tablo ve her dizin için bir satır içerir.
sysindexkeys Hepsinde Veritabanı dizinindeki anahtarlar veya kolonlar ile ilgili bilgileri içerir.
syslanguages Hepsinde SQL Server 2005’te mevcut olan tüm diller için bir satır içerir.
syslockinfo Hepsinde Beklemedeki, değişim halindeki ve kabul edilmiş tüm kilit değişiklikleriyle ilgili bilgileri içerir.
sysmembers Hepsinde Veritabanı görevindeki her üye için bir satır içerir.
sysobjects Hepsinde Her bir satırda o veritabanındaki objelerden birini içerir.
sysoledbusers Hepsinde Özel bağlı sunucuda her kullanıcı ve şifre eşleştirmesi için bir satır içerir.
sysperfinfo Hepsinde Windows Sistem Monitörü tarafından görüntülenebilen, SQL Server 2005’in performans ölçücü veritabanı motorunun gösterimini içerir.
syspermissions Hepsinde Veritabanındaki kabul ve reddedilmiş tüm kullanıcı, grup ve görev izinleri ile ilgili bilgileri içerir.
sysprocesses Hepsinde Microsoft SQL Server örneğinde geçerli tüm işlemlerle ilgili bilgileri içerir.
sysprotects Hepsinde GRANT ve DENY komutları yardımıyla veritabanındaki güvenlik hesaplarına verilen izinlerle ilgili bilgileri içerir.
sysreferences Hepsinde Veritabanındaki ilişkili kolonlarla DIŞ ANAHTAR (FOREIGN KEY) kısıtlama tanımlarının eşleştirmesini içerir.
sysremotelogins Hepsinde Microsoft SQL Server 2005 örneğinde stoklanmış işlemleri çağırmaya izinli tüm uzak kullanıcılar için bir satır içerir.
sysservers Hepsinde Bir Microsoft SQL Server 2005 örneğinin OLE DB veri kaynağı olarak erişebildiği tüm sunucular için bir satır içerir.
systranschemas Hepsinde Karşılıklı yayımlanan makale ve reklamlardaki şemalarda yapılan değişiklikleri takip etmek için kullanılır.
systypes Hepsinde Veritabanında, kullanıcı tarafından tanımlanmış ve sistemde bulunan her türlü veri için bir satır dönüştürür.
sysusers Hepsinde Her satırda bir NT kullanıcısı, NT grup, SQL Server kullanıcsı ya da SQL rolü içerir.

Sistem Tablolarında Değişiklik Yapma: 

Sistem tablolarındaki bilgilerde değişiklik yapılmak istediğindiğinde 3 araç kullanılır:

System Stored Procedures (Sistem Saklı Yordamları); Veritabanındaki nesnelerde çalışırken kullandığımız transact-sql komutlar bütünüdür. Her bir saklı yordam çalıştırıldığında o saklı yordamı oluşturan komutlar çalışır ve böylece aynı iş tekrar yapılmak istendiğinde tekrar tekrar o komutlar yazılıp çalıştırılmak zorunda kalınmaz. Saklı yordamlar "sp_" ön eki ile başlar.

Örnek:  Exec sp_help TABLE1    
denirse TABLE1 ile ilgili tablo bilgileri görüntülenir.

Sistem Fonksiyonları; Transact SQL komutlarını kullanarak tablo sorgulamayı sağlar.

Örnek:  SELECT USER_NAME(10)      
dersek USER_NAME burada bir sistem fonksiyonudur ve 10 da ID'yi belirtir. İşlem sonunda ID'si 10 olan kullanıcı ismi elde edilir.

Information Schema Views (Bilgi Şeması Görünümleri); Bu görünümler o veritabanındaki tüm nesnelerle ilgili bilgiyi taşır.

Örnek: SELECT * FROM INFORMATION_SCHEMA.TABLES    
dendiğinde o veritabanındaki tüm tabloların listesi ve ayrıntıları ekrana gelir.