Perbedaan antara database dan skema

166

Apa perbedaan antara Database dan Skema di SQL Server? Keduanya adalah wadah tabel dan data.

Jika suatu Skema dihapus, maka apakah semua tabel yang terdapat dalam skema itu juga dihapus secara otomatis atau mereka dihapus ketika Database dihapus?

sqlchild
sumber

Jawaban:

171

Database adalah wadah utama, berisi data dan file log, dan semua skema di dalamnya. Anda selalu membuat cadangan database, itu adalah unit tersendiri.

Skema seperti folder dalam database, dan terutama digunakan untuk mengelompokkan objek logis bersama, yang mengarah pada kemudahan pengaturan izin oleh skema.

Sunting untuk pertanyaan tambahan

drop schema test1

Msg 3729, Level 16, Negara 1, Baris 1
Tidak dapat membatalkan skema 'test1' karena sedang direferensikan oleh objek 'copyme'.

Anda tidak dapat menjatuhkan skema saat sedang digunakan. Anda harus terlebih dahulu menghapus semua objek dari skema.

Bacaan terkait:

  1. Apa gunanya skema SQL Server?
  2. MSDN: Pemisahan Skema Pengguna
RichardTheKiwi
sumber
5
di sql server 2005 dan versi di atas, secara default semuanya berjalan di dalam skema DBO jika kita tidak menyebutkan nama skema apa pun saat membuat objek database?
sqlchild
@ sqlchild ya itu benar. Diperlukan skema, setiap objek disimpan dalam skema, jadi defaultnya adalah dbo
RichardTheKiwi
Apakah Anda mempertimbangkan mereplikasi tabel dalam database yang sama dan mengelompokkannya dalam skema sesuai dengan klien yang berbeda, daripada membuat database terpisah untuk setiap klien praktik yang baik?
Yevgraf Andreyevich Zhivago
Apakah logika yang sama untuk Redshift AWS? Siapa saja? Saya bingung antara keduanya dalam hal AWS.
Aakash Basu
19

Skema adalah cara mengkategorikan objek dalam database. Ini dapat berguna jika Anda memiliki beberapa aplikasi berbagi satu database dan sementara ada beberapa set data umum yang diakses oleh semua aplikasi.

demo
sumber
12

Basis data ibarat wadah data dengan skema, dan skema adalah tata letak tabel-tabel di sana tipe data, relasi dan sebagainya

Saghir A. Khatri
sumber
1
Ini tidak benar untuk SQL Server secara khusus; Tabel memiliki skema dalam database umum ya, tetapi skema (untuk siapa yang tahu alasan apa) di SQL Server juga secara efektif ruang nama yang berisi tabel (dan tabel itu juga memiliki skema dalam pengertian tradisional). Nama malang yang dipilih Microsoft untuk mereka - namespacejauh lebih tepat.
SacredSkull
7

Skema mengatakan tabel apa yang ada di database, kolom apa yang mereka miliki dan bagaimana mereka terkait. Setiap basis data memiliki skema sendiri.

Robert
sumber
tetapi jika saya tidak membuat skema apa pun secara eksplisit dan membuat tabel tanpa menyebutkan nama skema maka di mana tabel dibuat. secara default mereka harus masuk ke skema dbo. bukan?
sqlchild
ya tapi biasanya Anda tidak berurusan dengan skema secara manual, Anda membuat tabel baik dari beberapa alat manajemen atau menggunakan fitur kode pertama dari beberapa alat ORM
Robert
saya menggunakan studio manajemen server sql dan saya tidak menyebutkan nama skema apa pun
sqlchild
4

Skema dalam SQL Server adalah objek yang secara konseptual memiliki definisi untuk objek database lain seperti tabel, tampilan, prosedur tersimpan dll.

Hardik Mishra
sumber