Veritabanı ve şema arasındaki fark


166

SQL Server'da Veritabanı ve Şema arasındaki fark nedir? Her ikisi de tablo ve veri kaplarıdır.

Bir Şema silinirse, o şemadaki tüm tablolar da otomatik olarak silinir mi yoksa Veritabanı silindiğinde silinir mi?

Yanıtlar:


171

Bir veritabanı ana kapsayıcıdır, veri ve günlük dosyalarını ve içindeki tüm şemaları içerir. Her zaman bir veritabanını yedeklersiniz, kendi başına ayrı bir birimdir.

Şemalar, bir veritabanı içindeki klasörler gibidir ve çoğunlukla mantıksal nesneleri birlikte gruplandırmak için kullanılır ve bu da şema tarafından izinlerin ayarlanmasını kolaylaştırır.

Ek soru için DÜZENLE

drop schema test1

Msg 3729, Düzey 16, Durum 1, Satır 1
'copyme' nesnesi tarafından başvurulduğundan 'test1' şeması bırakılamıyor.

Bir şemayı kullanımdayken bırakamazsınız. Önce tüm nesneleri şemadan kaldırmanız gerekir.

İlgili okumalar:

  1. SQL Server şemaları ne işe yarar?
  2. MSDN: Kullanıcı-Şema Ayrımı

5
sql server 2005 ve üzeri sürümlerde, veritabanı nesneleri oluşturulurken herhangi bir şema adından bahsetmezsek, varsayılan olarak her şey DBO şemasının içine girer?
sqlchild

@sqlchild evet bu doğru. Bir şema gereklidir, her nesne bir şemada tutulur, bu yüzden varsayılan dbo
RichardTheKiwi

Her bir istemci için ayrı bir veritabanı oluşturmak yerine, aynı veritabanındaki tabloları çoğaltmayı ve şemada farklı bir istemciye göre gruplandırmayı düşünür müsünüz?
Yevgraf Andreyevich Zhivago

AWS Redshift için mantık aynı mı? Kimse? İkisi arasında AWS açısından kafam karıştı.
Aakash Basu

19

Şema, bir veritabanındaki nesneleri kategorilere ayırmanın bir yoludur. Tek bir veritabanını paylaşan birkaç uygulamanız varsa ve tüm uygulamaların eriştiği bazı ortak veri kümeleri varsa yararlı olabilir.


12

Veritabanı şema ile veri kapsayıcısı gibi ve şemalar veri türleri, ilişkiler ve malzeme tabloların düzenidir


1
Bu özellikle SQL Server için doğru değildir; Tabloların genel veritabanlarında şemaları vardır, ancak SQL Server'daki Şemalar (kimin nedenini bildikleri için) aynı zamanda tablo içeren ad alanlarıdır (ve bu tablolar geleneksel anlamda şemalara sahiptir). Microsoft'un onlar için seçtiği talihsiz isim - namespaceçok daha uygundur.
SacredSkull

7

Şema, veritabanında hangi tabloların olduğunu, hangi sütunların olduğunu ve bunların nasıl ilişkili olduğunu söylüyor. Her veritabanının kendi şeması vardır.


ancak herhangi bir şema açıkça oluşturmaz ve herhangi bir şema adı belirtmeden tablolar oluşturmazsanız, tablolar nerede oluşturulur. varsayılan olarak dbo şemasına girmeleri gerekir. değil mi?
sqlchild

evet ama genellikle şema ile manuel olarak ilgilenmezsiniz, ya bazı yönetim araçlarından ya da bazı ORM araçlarının kod ilk özelliğini kullanarak tablolar oluşturursunuz
Robert

sql server management studio kullanıyorum ve herhangi bir şema adı bahsetmiyorum
sqlchild

4

SQL Server'daki şema, tablolar, görünümler, saklı yordamlar vb. Gibi diğer veritabanı nesnelerinin kavramsal olarak tanımlarını tutan bir nesnedir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.