Meng-generate Diagram dari Database yang Sudah Ada
Agustus 4th, 2010 § 5 Komentar
Bagi teman-teman developer yang sedang melanjutkan proyek aplikasi sistem informasi, namun dokumentasi, terutama skema relasi database nya tidak ada tentu sulit. Kita harus membuka database nya menggunakan database admin semisal phpmyadmin (untuk mysql),phppgadmin (untuk postgresql) lalu menerka-nerka relasi antar tabelnya. Cara seperti ini tentu membuang waktu.
Kita mengenal E-R Diagram atau jika sering menggunakan aplikasi Power Designer kita akan mengenal Conceptual Data Model(CDM) dan Physical Data Model(PDM), sebenarnya baik E-R atau CDM maupun PDM itu mirip dan tujuannya sama yaitu memodelkan data.
Sebelum database dibuat, biasanya database dirancang terlebih dahulu dengan E-R Diagram/CDM/PDM, itu idealnya, lalu bagaimana jika database nya sudah ada namun E-R Diagram nya tidak ada/tidak dibuat? Teknik seperti ini dinamakan Reverse Engineering. Ada beberapa software yang bisa melakukan reverse engineering (menghasilkan Diagram dari database), di phpmyadmin kalau tidak salah sudah ada. Pada kesempatan kali ini saya ingin share aplikasi untuk reverse engineering opensource yang small tapi powerfull. Dikatan small karena ukurannya kecil, dikatakan powerfull karena fiturnya cukup lengkap sehingga memudahkan developer dalam memahami database. Aplikasi yang dimaksud adalah SchemaSpy.
Untuk men-download SchemaSpy klik disini.
SchemaSpy adalah aplikasi java (berekstensi jar), sehingga untuk menjalankannya butuh Java Runtime Environment yang bisa di download di situs SUN (pengembang Java). SchemaSpy juga membutuhkan program GraphViz untuk menampilkan output grafik. Selain itu SchemaSpy juga membutuhkan JDBC untuk berkoneksi dengan database server, misalkan database yang akan di reverse adalah postgresql, maka kita membutuhkan JDBC untuk postgresql. JDBC bisa di-download gratis di situs resmi database server, misalkan kita menggunakan postgresql maka JDBC bisa di download di sini.
Berikut software dependencies dari SchemaSpy:
1. JRE -> Download dan instalkan JRE di komputer
2. GraphViz -> Download dan instalkan GraphViz di komputer
3. JDBC -> Dibutuhkan pada saat me-running SchemaSpy.
Setelah semua software terkumpul dan telah diinstalkan, maka SchemaSpy siap untuk di-running. Caranya, jalankan script berikut ini di command prompt/terminal:
java -jar [file schemaspy] -t [dbtype] -host [alamat server] -db [nama database] [-s [nama skema jika ada]] -u [username] [-p [password jika ada]] -dp [path ke JDBC] -o [output folder]
Misalkan database kita adalah postgresql, servernya di lokal komputer, nama databasenya = spp2007, skemanya = public, usernamenya = spp, passwordnya = l3rd0rf, lokasi JDBCnya = C:\schemaspy\postgresql-8.4-701.jdbc4.jar, dan output direktori tempat menyimpan output SchemaSpy nya di = C:\schemaspy, scriptnya menjadi seperti ini:
java -jar schemaSpy_4.1.1.jar -t pgsql -host localhost -db spp2007 -s public -u spp -p l3rd0rf -dp C:\schemaspy\postgresql-8.4-701.jdbc4.jar -o C:\schemaspy
Setelah di-running, SchemaSpy akan menghasilkan file-file HTML di folder C:\schemaspy. Output yang dihasilkan dari SchemaSpy berisi penjelasan tiap objek (tabel,view, dll) di database, diagram relasi antar tabel (bisa kita bilang PDM), dan anomali tabel. Berikut screenshot diagram yang dihasilkan SchemaSpy:
Untuk lebih jelas dan lengkapnya bisa lihat contoh outputnya disini. Selamat mencoba.

unable to accsess jarfile schemaSpy_4.1.1.jar..itu knp mas?
itu mungkin file jar nya corrupt, coba download ulang lagi. atau mungkin path ke JDK / JRE nya belum di set.
classpathnya udh d ubah,dan syntaxnya sprti ini..
c:\>java -jar schemaSpy_4.1.1.1.jar -t mysql -host localhost -db moodle -s -u root -p -dp C:\Schemaspy\mysql-connector-java-2.0.14-bin.jar.
Nb..JDBC sy donlot udh bentuk jar, dan sy copy k folder Schemaspy..apa bner bgtu?
mohon bantuannya
jdbc nya terserah mau ditaruh dimana saja yang penting diarahkan ke file nya.
hmm… coba argumen untuk schema dan password nya dihilangkan, soalnya ga pake schema dan password kan? trus target foldernya ditentukan. kira2 jadinya seperti ini:
java -jar schemaSpy_4.1.1.1.jar -t mysql -host localhost -db moodle -u root -dp C:\Schemaspy\mysql-connector-java-2.0.14-bin.jar -o C:\Schemaspy
semoga bisa…
jdbc udh d setting d classpath, JDK udh d setting d path..tp ttp aja unable to accsess jarfile schemaspy