Understanding Schemas in SQL Server

Skema adalah wadah untuk objek database seperti tabel, view, store procedure, function, types, dan trigger. Skema berfungsi banyak sebagai fungsi namespace di .NET Framework Dan XML juga sebagai cara untuk mengelompokkan objek database sehingga dapat menggunakan kembali nama-nama objek tersebut, seperti memungkinkan baik dbo.Customer dan Fred.Customer ada dalam database tunggal, dan untuk sekelompok objek di bawah pemilik yang berbeda.

Bagi anda yang sering menggunakan SQL Server 2000 dan akan menggunakan SQL Server 2005 atau 2008 sebaiknya agar berhati-hati mengenai schema. karena ada perubahan sangat besar dari SQL Server 2000 ke 2005 keatas mengenai schema.

di SQL Server 2000, Ketika seorang administrator membuat user Herman dalam database, SQL Server secara otomatis akan membuat skema Herman yang bersembunyi di balik pengguna Herman tersebut. Jika Herman login ke server yang menjalankan SQL Server tanpa kepemilikan database dan menciptakan Table1, nama sebenarnya dari tabel itu Herman.Table1.

Hal yang sama yang dimiliki Herman untuk objek yang diciptakan Herman, seperti Herman.StoredProcedure1 dan Herman.View1. Jika Herman pemilik database atau sysadmin, obyek yang diciptakan Herman akan menjadi bagian dari skema dbo sebagai gantinya. Walaupun kita sering mengatakan dbo yang memiliki objek, maka hal itu akan mengarah pada hal yang sama.

Masalah dengan penyatuan pengguna dan skema di SQL Server 2000 muncul ketika Anda perlu mengubah kepemilikan objek, seperti ketika Herman meninggalkan perusahaan dan Rudi mengambil alih tugas Herman.

Seorang administrator sistem harus mengubah kepemilikan dari semua objek yang dimiliki oleh Herman menjadi milik Rudi. Lebih dari masalah adalah bahwa administrator harus mengubah Transact-SQL atau kode di aplikasi klien yang merujuk pada Herman.Table1 untuk dirubah menjadi Rudi.Table1.

SQL Server 2005 keatas telah mengatasi masalah ini dan menerapkan skema dengan memisahkan pengguna dari skema.

Bila administrator membuat pengguna baru Herman menggunakan CREATE USER DDL, SQL Server tidak lagi secara otomatis membuat suatu skema dengan nama yang sama. Sebaliknya, Anda secara eksplisit harus membuat dan menetapkan skema kepemilikan ke pengguna. Karena semua objek database yang ditampilkan sekarang terkandung dalam skema.

Schema1, yang awalnya dimiliki Herman, menjadi sederhana untuk mengubah kepemilikan objek semua skema itu dengan hanya mengubah kepemilikan skema untuk Rudi. Setiap pengguna juga dapat memiliki skema default ditugaskan untuk itu, sehingga SQL Server mengasumsikan objek direferensikan oleh nama tanpa referensi skema berada dalam skema default.

Jika Herman telah memiliki Schema1 sebagai skema standar, dia bisa melihat tabel yang berada di Schema1.Table1 atau hanya sebagai Table1.

nama objek yang sempurna sepenuhnya di SQL Server 2005 keatas memiliki struktur empat bagian, mirip dengan yang di versi sebelumnya dari SQL Server:

server.database.schema.object


Gunakan pernyataan CREATE USER, bukannya sp_adduser, untuk membuat pengguna baru. sp_adduser menciptakan skema dengan nama yang sama dengan nama pengguna baru atau peran aplikasi dan memberikan skema sebagai skema default untuk pengguna, meniru perilaku SQL Server 2000 tetapi memberikan skema yang terpisah.

Bersambung kehalaman berikut : http://mugi.or.id/blogs/suherman/archive/2011/01/29/create-a-database-schema.aspx

Leave a Reply