Konsep Baru Pemodelan Database dengan Anchor Modeling
1. Konsep Baru Pemodelan Database dengan Anchor Modeling Bowo Prasetyo Contoh Kasus Perubahan Struktur dan Konten Database 10 Desember 2011 http://www.scribd.com/prazjp http://www.slideshare.net/bowoprasetyo
2. Anchor Modeling Teknik pemodelan database agile yang cocok untuk informasi yang berubah seiring waktu baik struktur maupun konten-nya.
3. Berbasis pada empat konstruksi permodelan: anchor , attribute , tie dan knot .
4. Hasilnya dapat diterjemahkan ke desain relational database, di mana hampir semua tabelnya akan berada pada bentuk sixth normal form (6NF).
5. Online Resources Official site http://www.anchormodeling.com/ Online tutorial http://www.anchormodeling.com/?page_id=186 Online anchor modeler http://www.anchormodeling.com/modeler/
7. Peringatan Contoh aplikasi HelloEnterprise ini memiliki beberapa aspek yang tidak baik, antara lain: Menggunakan database MySQL yang tidak mendukung fitur “ table elimination ”. Seharusnya menggunakan database yang mendukung fitur ini, mis. PostgreSQL. Mengakses database langsung dari halaman JSP yang seharusnya hanya untuk tampilan. Seharusnya mengakses database dari komponen domain atau model pada pola MVC (model-view-controller) atau PM (presentation-model).
8. Mencatat Masukan Salam Aplikasi HelloEnterprise *) dimodifikasi untuk: menerima masukan sebuah salam dari user,
10. dan menampilkan tiga salam terakhir. *) Lihat tutorial “Konsep Baru Pemodelan Database dengan Anchor Modeling – Teknik Pemodelan Database Agile untuk Struktur dan Konten yang Berubah Seiring Waktu”
12. Berarti ada anchor baru yang sesuai, dengan satu attribute teks salam.
13. Dan tie baru yang menghubungkannya dengan anchor US_User . Greeting was said by user . Untuk melacak salam apa yang diucapkan user pada waktu tertentu, maka untuk tie di atas perlu dibuatkan sejarah.
20. Masukan Salam Menggunakan tag <form> di file /jdbc/index.jsp <form method="POST" action="greeting.jsp"> <ul> <li>Masukkan salam anda: <input type="text" name="greeting" /></li> </ul> <input type="submit" value="Kirim" /> </form>
21. Menampilkan Salam Yang perlu diambil dari database adalah: Teks salam (di tabel attribute ge_txt_greeting_text )
22. Waktu pengucapan salam (di table tie ge_wassaid_us_by ) From clause utama terdiri dari tabel-tabel anchor terkait yang di join tanpa syarat : us_user us JOIN ge_greeting ge Dilanjutkan join dengan tabel-tabel attribute terkait: JOIN ge_txt_greeting_text ge_txt ON ge_txt.GE_ID = ge.GE_ID
23. Menampilkan Salam Dilanjutkan join dengan tabel-tabel tie terkait: JOIN ge_wassaid_us_by ge_us ON ge_us.GE_ID = ge.GE_ID AND ge_us.US_ID = us.US_ID Where clause dilakukan terhadap anchor : WHERE us.US_ID = '<%= username %>' Diakhiri dengan order dan limit : ORDER BY ge_us.GE_wasSaid_US_by_ChangedAt DESC LIMIT 3
24. Menampilkan Salam Menggunakan <sql:query> untuk meng ambil salam dari database. <sql:query var="result" dataSource="jdbc/security"> SELECT ge_txt.GE_TXT_Greeting_Text, ge_us.GE_wasSaid_US_by_ChangedAt FROM us_user us JOIN ge_greeting ge JOIN ge_txt_greeting_text ge_txt ON ge_txt.GE_ID = ge.GE_ID JOIN ge_wassaid_us_by ge_us ON ge_us.GE_ID = ge.GE_ID AND ge_us.US_ID = us.US_ID WHERE us.US_ID = '<%= username %>' ORDER BY ge_us.GE_wasSaid_US_by_ChangedAt DESC LIMIT 3 </sql:query>
25. Menampilkan Salam Dan <c:forEach> untuk me loop semua hasil. <table border="1"> <!-- column headers --> <tr> <c:forEach var="columnName" items="${result.columnNames}"> <th><c:out value="${columnName}"/></th> </c:forEach> </tr>
35. Lalu cek salam di tabel attribute . Salam masukan user bisa didapat dari variabel JSTL ${param.greeting} . Kalau tidak ada, insert salam di tabel anchor dan attribute .
50. Referensi Tutorial “Konsep Baru Pemodelan Database dengan Anchor Modeling – Teknik Pemodelan Database Agile untuk Struktur dan Konten yang Berubah Seiring Waktu”
54. The NetBeans E-commerce Tutorial - Connecting the Application to the Database, http://netbeans.org/kb/docs/javaee/ecommerce/connect-db.html