SQL Server’da Model Veritabanı

Herkese merhaba, Bu bölümde sizlere SQL Server’da Sistem Veritabanı olan Model veritabanı hakkında ve Model Veritabanının kullanımı hakkında bilgi vereceğim.

SQL Server’da Model veritabanı Sistem Veritabanlarından birisidir.

SQL Server’da Model Veritabanı

Model veritabanı kullanıcı tarafından oluşturulacak veritabanları için bir şablondur ve aynı instance içerisinde oluşturulan bütün veritabanları modellerinin saklandığı yerdir.

Tüm veritabanlarında bulunması gereken sistem düzeyindeki bazı nesneler bu veritabanında tutulurlar. Kullanıcı tarafından yeni bir veritabanı oluşturulduğu zaman model veritabanı bu veritabanına aynen kopyalanır. Model veritabanı üzerinde yapılacak değişiklikler sonradan oluşturulacak tüm veritabanlarına yansır.

Örneğin: Model veritabanında yeni bir tablo oluşturulduğunda, bundan sonra oluşturulacak tüm veritabanlarında da bu tablo oluşturulacaktır. Ayrıca yeni oluşturulacak bir veritabanının boyutu en az bir model veritabanı boyutunda olmalıdır.  Model veritabanı diğer veritabanları için şablon veritabanıdır ve sistemde kalmalıdır, silinmemelidir. Bu veritabanının dbid’si 3’tür.

Model veritabanı, kullanıcı tanımlı veritabanları oluşturulurken şablon olarak kullanılır. Her kullanıcı tanımlı veritabanının ihtiyaç duyduğu ana veritabanının tüm sistem tablolarının alt kümesini içerir. Sistem yöneticisi, sistemlerinin özel ihtiyaçlarına uyarlamak için model veritabanının özelliklerini değiştirebilir.

Örneğin belli standart bir tablo her bir veritabanı içerisinde ayrı ayrı oluşturulmak yerine tek bir seferde hepsinde Model veritabanı sayesinde tanımlanabilir. Eğer Model veritabanı mevcut değil ya da offline ise Tempdb bu durumda oluşturulamaz.

Model veritabanı, esasen herhangi bir yeni kullanıcı veritabanının oluşturulmasında kullanılan bir şablon veritabanıdır.

Model veritabanı, bir SQL Server örneğinde oluşturulan tüm veritabanları için şablon olarak kullanılır. SQL Server her başlatıldığında Tempdb oluşturulduğundan, model veritabanı bir SQL Server sisteminde her zaman var olmalıdır.

SQL Server’da her yeni veritabanı oluşturduğunuzda, Tablolar, Stored Prosedür’ler ve diğer veritabanı nesneleri dahil olmak üzere varsayılan nesnelerini oluşturmak için Model veritabanının içeriği yeni veritabanına kopyalanır.

Model veritabanı dosyası (model.mdf) ve Model veritabanı günlük dosyaları (modellog.ldf) yükleme işlemi sırasında

C:\Program Files\Microsoft SQL Server\MSSQL15.YOURPATHNAME\MSSQL\DATA

Model veritabanının dosya özellikleri bir istisnadır ve veri dosyasının ilk boyutu dışında yok sayılır. Model veritabanı verilerinin ve günlük dosyasının varsayılan başlangıç boyutu 8 MB’dir.

Aşağıdaki tablo, model verilerinin ve günlük (log) dosyalarının ilk yapılandırma değerlerini listelenmektedir.

Dosya Mantıksal Adı Fiziksel Adı Otomatik Genişleme Özelliği
Primary Data modeldev model.mdf 64MB genişleme ile bulunduğu disk dolana kadar otomatik büyüyebilir.
Log modellog modellog.ldf 64MB genişleme ile 2 TB’a kadar otomatik büyüyebilir.

dizininde oluşturulur.

Aşağıdaki tablo, model veritabanındaki her bir veritabanı seçeneği için varsayılan değeri ve seçeneğin değiştirilip değiştirilemeyeceğini listeler. Bu seçenekler için geçerli ayarları görüntülemek için sys.databases katalog görünümünü kullanabilirsiniz.

Database özellikleri Varsayılan değer Değiştirilebilir
ALLOW_SNAPSHOT_ISOLATION OFF Yes
ANSI_NULL_DEFAULT OFF Yes
ANSI_NULLS OFF Yes
ANSI_PADDING OFF Yes
ANSI_WARNINGS OFF Yes
ARITHABORT OFF Yes
AUTO_CLOSE OFF Yes
AUTO_CREATE_STATISTICS ON Yes
AUTO_SHRINK OFF Yes
AUTO_UPDATE_STATISTICS ON Yes
AUTO_UPDATE_STATISTICS_ASYNC OFF Yes
CHANGE_TRACKING OFF No
CONCAT_NULL_YIELDS_NULL OFF Yes
CURSOR_CLOSE_ON_COMMIT OFF Yes
CURSOR_DEFAULT GLOBAL Yes
Database Availability Options ONLINE No
Database Availability Options MULTI_USER Yes
Database Availability Options READ_WRITE Yes
DATE_CORRELATION_OPTIMIZATION OFF Yes
DB_CHAINING OFF No
ENCRYPTION OFF No
MIXED_PAGE_ALLOCATION ON No
NUMERIC_ROUNDABORT OFF Yes
PAGE_VERIFY CHECKSUM Yes
PARAMETERIZATION SIMPLE Yes
QUOTED_IDENTIFIER OFF Yes
READ_COMMITTED_SNAPSHOT OFF Yes
RECOVERY Depends on SQL Server edition* Yes
RECURSIVE_TRIGGERS OFF Yes
Service Broker Options DISABLE_BROKER No
TRUSTWORTHY OFF No

Model veritabanında aşağıdaki işlemler gerçekleştirilemez:

  • Dosya veya dosya grupları ekleme.
  • Collation ayarı değiştirme yapılamaz. Varsayılan collation seçeneği sunucu üzerindeki dil ayarı ile aynıdır.
  • Veritabanı sahibini değiştirme (database owner) model sa’ya aittir.
  • Veritabanını düşürme (drop) yapılamaz
  • Guest kullanıcı hesabı veritabanından çıkarılmaz.
  • Change data capture (Değişiklik verilerinin yakalanmasını) etkinleştirmesi yapılamaz
  • Veritabanı mirroring ‘e dahil edilemez.
  • Primary filegroup, primary data file ve log dosyası silinemez.
  • Veritabanını veya primary filegroup yeniden adlandırma yapılamaz.
  • Veritabanını Offline olarak ayarlanamaz.
  • WITH ENCRYPTION seçeneğini kullanarak prosedürler, view veya triger oluşturma. Şifreleme anahtarı, nesnenin oluşturulduğu veritabanına bağlıdır. Model veritabanında oluşturulan şifreli nesneler yalnızca modelde kullanılabilir.

Linkteki kaynağı da okuyabilirsiniz : https://learn.microsoft.com/en-us/sql/relational-databases/databases/model-database?view=sql-server-ver16

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

475 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!