Friday, September 28, 2012

Perbedaan SQL Server Express dan Standard Edition


SQL Server Express Edition adalah produk database yang mudah dipakai dan dibuat berdasarkan teknologi SQL Server. Kemudahan pakainya bisa dilihat mulai dari antarmuka program setup yang memandu pengguna dalam melalui proses instalasi.

Tool berbasis GUI (graphical user interface) yang hadir menyertai SQL Server Express Edition memang sangat minim, hanya ada SQL Server Configuration Manager dan SQL Server Surface Area Configuration. Akan tetapi, kita bisa men-download tool untuk mengelola instance database SQL Server Express Edition, yaitu SQL Server Management Studio Express Edition (SSMS-EE), secara cuma-cuma! Integrasi yang sangat erat antara SQL Server Express Edition dengan Visual Studio juga akan sangat membantu kita dalam mengembangkan aplikasi database.

SQL Server Express Edition menggunakan engine database dan API untuk mengakses data yang sama seperti versi SQL Server lainnya. Perbedaannya, antara lain adalah:
  • Tidak ada dukungan untuk fitur-fitur yang dibutuhkan oleh kalangan enterprise.
  • Hanya mendukung satu processor.
  • Memory untuk buffer pool dibatasi hingga 1 GB.
  • Ukuran maksimal database dibatasi sampai 4 GB saja.

Absennya fitur-fitur untuk kalangan enterprise seperti high availability dan business intelligence di SQL Server Express Edition bukanlah masalah besar, karena aplikasi yang dikembangkan di atas SQL Server  Express Edition dapat bekerja secara seamless di SQL Server Workgroup Edition, Standard Edition, dan tentunya juga di SQL Server Enterprise Edition. 

Dengan demikian, scalability dari aplikasi database yang dikembangkan menggunakan SQL Server Meneruskan tradisi dalam menghadirkan produk database yang mudah dipakai dan tersedia untuk semua kalangan, Microsoft menghadirkan SQL Server  Express Edition sebagai produk penerus Microsoft SQL Server 2000 Desktop Engine (MSDE 2000). Sebagai produk yang disediakan secara cuma-cuma, apa saja kelebihan dan kekurangannya? Express Edition dapat terjamin dan implementasinya dapat disesuaikan dengan kebutuhan saat ini.

Keunikan Engine Database SQL Server Express Edition
Berbeda dengan edisi produk SQL Server lainnya, jumlah pengguna yang dapat terhubung ke database berbasis SQL Server Express Edition tidak dibatasi. Keterbatasan akan dukungan jumlah processor, besar memory, dan ukuran database saja yang nantinya akan membatasi penggunaan “praktis” dari SQL Server Express Edition ini.

Walau bisa diinstal di komputer yang menggunakan lebih dari satu processor, SQL Server Express Edition hanya bisa memanfaatkan satu processor saja. Pembatasan besar memory 1 GB adalah pada memory yang digunakan sebagai buffer pool, sedangkan memory yang dibutuhkan untuk memantau koneksi, lock, dan lainnya tidak dihitung ke dalam batasan buffer pool tersebut.

Ukuran maksimal database yang dibatasi sampai 4 GB saja hanya berlaku untuk file penyimpanan data, dan tidak berlaku untuk ukuran file log database. Kemudian, jumlah database yang bisa dihubungkan ke satu server yang menjalankan SQL Server Express Edition juga tidak dibatasi. Yang dibatasi adalah pada jumlah instance SQL Server Express Edition yang bisa berjalan di atas satu server—yaitu 16 instance.

API (application programming interface) yang tersedia untuk membuat aplikasi di atas SQL Server Express Edition, sama dengan API yang tersedia di edisi SQL Server lainnya, sehingga seluruh fitur SQL Server seperti integrasi dengan CLR (common language runtime), tipe data baru (VARCHAR(MAX) dan XML), user-defined type dan user-defined aggregate juga didukung oleh SQL Server Express Edition. Kemudian, database yang dibuat dengan SQL Server Express Edition dapat dihubungkan ke edisi SQL Server lainnya, dan aplikasi yang dikembangkan untuk berjalan di instance SQL Server Express Edition juga akan berjalan sama baiknya di instace edisi SQL Server  lainnya.

Dukungan Tool dan Kemampuan Jaringan, Sekuriti, dan Replikasi
Demi kemudahan pakai bagi pengguna awam sekalipun, SQL Server Express Edition menghadirkan tool untuk mengelola database dan melakukan analisis query, yaitu SQL Server Management Studio Express Edition (SSMS-EE). Tool yang disediakan secara cuma-cuma ini harus di-download secara terpisah—akan tetapi bisa didistribusikan kembali secara bebas.

Seluruh fungsionalitas manajemen database bisa dilakukan menggunakan SSMS-EE, dan fitur-fitur untuk membuat dan mengubah database, tabel, view, atau pengaturan sekuriti, dan pembuatan stored procedure berbasis T-SQL di SSMS-EE mirip dengan SQL Server Management Studio yang tersedia di edisi SQL Server lainnya. Dengan demikian, kemampuan yang sudah dipelajari dalam menggunakan SSMS-EE dapat dimanfaatkan sesegera mungkin saat beralih ke versi penuh dari SSMS.

Selain SSMS-EE, SQL Server Express Edition secara default akan menginstal tool berbasis GUI seperti SQL Server Configuration Manager dan SQL Server Surface Area Configuration, dan juga tool berbasis command line seperti SQL Command (sqlcmd) dan BCP (Bulk Copy Program. SQL Server Configuration Manager digunakan untuk mengaktifkan dan mematikan service yang berhubungan dengan SQL Server dan untuk mengaktifkan dan mematikan dukungan protokol jaringan tertentu.

SQL Server Surface Area Configuration dapat digunakan untuk melakukan hardening terhadap sekuriti dari server yang menjalankan SQL Server. SQL Command (sqlcmd) merupakan versi OLE DB dari tool yang sudah dikenal sebelumnya, osql. Selain menjaga kompatibilitas dengan osql, sqlcmd memberikan dukungan terhadap tipe data baru yang ada di SQL Server, sehingga penggunaannya lebih disarankan. Sedangkan, BCP sendiri merupakan tool yang dapat digunakan untuk menyalin data dalam jumlah besar secara sekaligus (bulk copy).

Secara default, tipe koneksi yang aktif di SQL Server Express Edition hanyalah tipe koneksi shared memory—demi keamanan dan juga diasumsikan bahwa aplikasi akan berjalan secara lokal di server yang sama. Tipe koneksi lainnya (seperti TCP/IP dan Named Pipes) dapat diaktifkan secara manual melalui SQL Server Configuration Manager atau dengan menggunakan SQL Server Surface Area Configuration. Dalam membangun aplikasi yang mengakses database, disarankan untuk menggunakan data provider SqlClient dan ADO.NET 2.0, agar dapat memanfaatkan fitur-fitur baru di SQL Server seperti MARS (multiple active resultsets), tipe data XML, asynchronous Input Output (I/O), dan lainnya.

Di sisi sekuriti, selain mematikan konektivitas jaringan secara default, di SQL Server Express Edition, account SA (System Admin) secara default juga tidak diaktifkan karena otentifikasi dilakukan dengan menggunakan metode Windows Authentication.

SQL Server Express Edition menghadirkan dukungan replikasi model publisher-subscriber yang cukup luas, mulai dari metode subscriptions to merge, snapshot, dan transactional publications. Karena tidak disediakannya SQL Agent di SQL Server Express Edition, penjadwalan subscription dari replikasi data hanya bisa dilakukan secara manual dengan melakukan sinkronisasi secara terprogram menggunakan Replication Management Objects (RMO) atau menggunakan Windows Sync Manager.

SQL Service Broker, User Instance, dan Integrasi dengan Visual Studio.
SQL Server secara teknologi menghadirkan infrastruktur reliable messaging baru yang dinamakan SQL Server Broker (SSB), di mana komunikasi antaraplikasi terjadi melalui kontrak pertukaran pesan secara peer-to-peer yang disebut sebagai dialog. SSB hanya bisa digunakan di SQL Server Express Edition asalkan dialog yang dilakukan terjadi dengan edisi SQL Server lainnya.

Fitur baru di SQL Server Express Edition adalah User Instance, di mana memberikan kemampuan untuk memperlakukan database seperti file biasa. Dengan ini, database lokal bisa dipindahkan, disalin, atau dikirimkan melalui e-mail berikut aplikasi yang menggunakannya. Di lokasi yang baru, aplikasi yang menggunakan database tersebut bisa dijalankan tanpa perlu melakukan konfigurasi apapun.

Tentu ada syarat-syarat tertentu agar fitur User Instance ini bisa berjalan semestinya. Pertama, diasumsikan bahwa instance SQL Server Express Edition bernama SQLEXPRESS telah diinstal di komputer yang menjadi target, dan kemudian aplikasi tersebut harus dikembangkan dengan menggunakan .NET SQL Data Provider—managed code. Beranjak dari sini kita bisa melihat bahwa banyak kemudahan yang diberikan dari integrasi SQL Server Express Edition dengan Visual Studio .

Saat kita menginstal edisi manapun dari Visual Studio, maka SQL Server Express Edition juga akan turut diinstal menggunakan SQLEXPRESS sebagai nama dari instance SQL Server Express Edition tersebut. Tujuan dari standardisasi penamaan instance ini tidak lain adalah untuk mendukung fitur User Instance.

Menggunakan User Instance, maka file database bisa diperlakukan seperti file Windows biasa di dalam proyek Visual Studio. Cukup tambahkan item baru menggunakan template SQL Database, berikan nama file database yang kita inginkan, maka secara otomatis database tersebut akan dihubungkan dengan instance SQLEXPRESS dan objek database connection pun akan dibuatkan tanpa perlu campur tangan pengguna.

Instalasi SQL Server Express Edition
Ada dua tipe instalasi yang didukung oleh SQL Server Express Edition, yaitu dengan menggunakan GUI atau menggunakan silent install mode. Prasyarat agar instalasi SQL Server Express Edition bisa dilakukan adalah bahwa .NET Framework 2.0 sudah terinstal sebelumnya. Untuk mencegah kegagalan instalasi, program setup SQL Server Express Edition menyertakan komponen System Configuration Check (SCC) yang digunakan untuk memeriksa apakah suatu komputer memenuhi syarat untuk instalasi atau tidak. Setelah melalui SCC, maka proses instalasi yang sebenarnya dimulai.

Secara default, proses instalasi dibuat sesederhana mungkin, dengan melibatkan layar konfigurasi yang seminim mungkin, sehingga instalasi dapat dilakukan oleh pengguna yang awam sekalipun. Apabila ingin melakukan konfigurasi yang lebih detail, maka pilihan Hide Advanced Configuration bisa dimatikan, sehingga akan ditampilkan layar konfigurasi yang lebih lengkap—bisa mengatur nama instance dari SQL Server Express Edition yang akan diinstal, dukungan collation yang akan digunakan, tipe otentifikasi yang ingin dipilih, dan lainnya.

Instalasi menggunakan GUI lebih disarankan saat Anda ingin menginstal sendiri SQL Server Express Edition tersebut. Apabila instalasi SQL Server Express Edition merupakan bagian dari instalasi sebuah aplikasi, sebaiknya dipilih untuk menggunakan silent setup mode. Dalam mengintegrasikan proses instalasi SQL Server Express Edition dengan instalasi dari aplikasi yang Anda kembangkan, maka bisa digunakanmetode Setup bootstraping atau memanfaatkan teknologi “Click Once” yang tersedia di Visual Studio.

Kesimpulan
SQL Server Express Edition adalah produk yang dirancang sedemikian rupa untuk para pengembang aplikasi yang sekedar iseng atau hobi membuat aplikasi database, dan juga bisa digunakan para ISV (independent software vendor) sebagai platform database awal dari aplikasi yang mereka jual ke khalayak umum. Hak untuk mendistribusikan kembali SQL Server Express Edition bisa didapatkan secara cuma-cuma, cukup melalui proses pendaftaran saja.

Walau tersedia secara cuma-cuma, SQL Server Express Edition tetap memberikan banyak fitur yang canggih, karena dibangun menggunakan database engine yang sama seperti edisi SQL Server lainnya. Manfaat tambahan yang didapatkan adalah bahwa aplikasi yang dikembangkan di atas SQL Server Express Edition dapat dengan mudah ditingkatkan skalabilitasnya, karena bisa dipindahkan ke edisi SQL Server lainnya secara seamless. Tentu saja ada perbedaan, salah satunya adalah fitur User Instance yang hanya ada di SQL Server Express Edition.

Sekuriti juga mendapat perhatian yang cukup, karena secara default instalasi SQL Server Express Edition sudah “aman”, dengan dimatikannya fitur-fitur konektivitas saat instalasi awal. Fitur User Instance memungkin tipe pengguna biasa untuk menghubungkan database ke SQL Server Express Edition tanpa perlu menggunakan hak administrator.

Dengan berbagai fitur baru yang lebih canggih dari versi sebelumnya—MSDE 2000, maka SQL Server Edition layak untuk dijadikan sebagai platform database awal dalam mengembangkan aplikasi database. Melalui integrasi yang sangat erat dengan Visual Studio  (dan tentunya .NET Framework 2.0), maka kita dapat dengan mudah mengembangkan aplikasi database, menjadikan SQL Server Express Edition sebagai platform database yang sangat menyenangkan bagi kita semua.