RonaldWidha

percaya sama occam razor
See also: Other Geeks@INDC

Visual Studio Database Edition GDR untuk bekerja dengan database dalam development team

Aku merasa Visual Studio Database Edition GDR adalah salah satu tool yang paling berharga untuk bekerja dengan database. Sayangnya tidak banyak team yang memakai tool ini, padahal bisa bener-bener membantu dalam menghadapi software development yang menggunakan database.

Bekerja dengan database dalam team itu gampang-gampang susah. Setiap kali aku masuk team, pasti ada aja cara unik gimana mereka ngatur development database. Ada yang jalur resmi lewat DB Admin, ada yang 1 team nge-share 1 development database dan ada jg yang setiap developernya punya database yang terisolasi di komputer masing2.

Aku paling suka cara yang terakhir aku sebut: setiap developer punya database masing2. Dengan ngelakuin ini kita bisa nyoba-nyoba refactor database tanpa takut ngeganggu kerjaan orang lain. Begitu kita yakin apa yang kita mau ubah, kita bisa generate update scriptnya berupa migration script. Ini cara yang serupa seperti di Rails dengan konsep migration-nya. Program seperti DBDeploy.Net atau Subsonic Migrate Me sangat membantu untuk mengatur migration stepnya, tapi tetap masih mudah mengakibatkan error dan membutuhkan disiplin yang tinggi.image

fig. 1 biasanya kita konsen ke migration steps dari 1 versi database ke yang lainnya

Jeff Atwood Coding Horror menulis approach yang serupa di Get Your Database Under Version Control

Di Sql Management Studio maupun DBDeploy.Net, setiap operasi yang kita lakukan ibaratnya seorang seniman tanah liat yang mengubah permukaan sebuah patung. Bedanya kalo pematung memakai tangan, sementara di dunia database kita memakai T-SQL.

Visual Studio Database Edition GDR dengan fitur2 database-nya berusaha memecahkan masalah yang sama dengan pendekatan yang jauh lebih elegan.

Model based development

Di Visual Studio Database Edition GDR, cara kerja kita sangat berubah walaupun terlihat serupa. Kita selalu bekerja berdasarkan model database itu sendiri.

image
fig.2 di Visual Studio Database Edition GDR kita konsen langsung ke model yang kita tuju

Bekerja dengan model memiliki dua keuntungan yang sangat besar:

Ga perlu mikirin Migration Step

Kita tidak perlu memikirkan bagaimana cara mengubah tabel dengan alter scripts. Kita langsung ngedefinisikan secara deklaratif apa yang mau kita tuju.

Mungkin kamu akan bertanya bagaimana cara mendeklarasi database kalo engga bikin migration step? Apakah kita perlu belajar bahasa baru? Ataukah melalui GUI seperti Access? Untungnya jawabannya tidak untuk keduanya. Microsoft memakai Domain Specific Language yang cocok untuk database dan kita semua sudah kenal yaitu…..drum roll…T-SQL!

Loh? barussan aku bilang ga usah mikirin migration step, tapi koq sekarang pake T-SQL lagi buat ngedeklarasi state sebuah table? Bedanya di sini adalah kita ga pernah bikin alter script lagi, melainkan selalu menggunakan statement Create. Sekelompok statement create kan cuma Data Definition language kan?

image

Lebih kerennya lagi, karena Create statements ini berupa text, kita bisa dengan mudah disimpan di source control untuk kolaborasi. Tampaknya Microsoft sudah belajar dari EF (Vote of no confidence salah satunya mengkritik bagaimana XML model edmx tidak gampang di merge dalam situasi bekerja dengan source control).

Design time validation

Karena semua yang kita bangun adalah model (again, don’t let the T-SQL appearance fool you), Visual Studio mampu melakukan manipulasi pintar untuk nge-validasi error kita saat design time.

Pencet ctrl + shift + b (Build) dan kita akan bisa melihat error dan warning list kita tanpa mengaplikasikan definisi database tersebut ke database instance kita

image fig. 3 Kita bisa melihat bhw Visual Studio mendeteksi 2 column dengan nama yang sama dan warning bhw sebuah stored procedure mereferensi column yang tidak eksis

Reference

Download Visual Studio Team System 2008 Database Edition GDR R2
Home of the Data Dude

Share this post: | | | |

Comments

neonerdy said:

yup, gw pake nih barang di kerjaan sehari2. so helpfull

# November 30, 2009 9:46 AM

ronaldwidha said:

wah ri..ternyata emang handal ya alat ini. Where have I been?

# November 30, 2009 11:16 PM

krisatria said:

Tanya dung :D

Bedanya sama SQL server management studio apa ya?

Masih bingung neh?

Mohon penjelasannnya.

# December 1, 2009 10:28 AM

ronaldwidha said:

Krisatria, bedanya banyak.

SQL Server management studio itu bertujuan sebagai client dari SQL database server.

Visual STudio Database Edition ini bertujuan untuk mengekstraksi konsep objek2 yang ada di sebuah database supaya kita bisa simpan dalam source control.

# December 1, 2009 10:48 PM