Di ruangan tampak buku-buku analisa disain yang lumayan tebal. Kebanyakan tentang analisa dan disain sistem berorientasi obyek. Buku yang ternyata milik rekan yang digunakan ketika ambil S2 belasan tahun yang lalu itu cukup menarik dan “wajib” dibaca oleh pemerhati mata kuliah analisa dan disain sistem informasi, khususnya yang tertarik dengan pemrograman berbasis obyek.
Ada satu bab yang menarik yaitu pembahasan mengenai penggunaan RDBMS ketika mengimplementasikan pemrograman berbasis obyek. Ivar Jacobson, pengarang buku berjudul “Object Oriented Software Engineering” sekaligus salah satu pencetus UML menyarankan beberapa teknik berikut ini.
-
Problem utama ketika menerapkan konsep obyek ke sistem basis data relasional adalah masalah impedansi. Di sini aplikasi berbasis obyek harus melekat dengan basis data. Padahal konsep RDBMS bebas platform aplikasi. Untuk itu perlu mengurangi kelekatannya dengan sedikit mengatur pentabelannya.
-
Konversikan atribut menjadi field atau kolom dalam tabel. Jika tidak cukup, buat satu tabel baru yang mengakomodasi atribut yang kompleks yang dimiliki oleh aplikasi berbasis obyek.
-
Instansiasi pada aplikasi berbasis obyek dikonversikan menjadi record atau baris pada tabel RDBMS.
-
Ketika dijumpai satu relasi [0..N], buat satu tabel baru dengan kunci diambil dari bagian yang bukan “many”. Kasus ini sering dijumpai ketika membuat tabel “detil pemesanan” ketika dijumpai jumlah pesanan yang lebih dari satu untuk satu orang pelanggan.
-
Kasus yang terberat adalah masalah inheritance dimana ada sedikit sudut pandang dalam mengkonversikan menjadi RDBMS. Dua pilihan yang mungkin diambil antara lain: 1) membuat kelas abstrak dalam satu tabel, dan 2) tidak membuat kelas abstrak. Masing-masing punya kelemahan dan kelebihan. Untuk kecepatan akses, pembuatan kelas abstrak menjadi tabel tersendiri (pilihan 1), mengakibatkan lambatnya proses ketika melakukan proses “join” pada instruksi SQL.
Memang dari sudut pandang pemrograman berbasis obyek, RDBMS terlihat sangat primitif karena membatasi kelas dalam tipe data tertentu, ditambah lagi tidak bisa menyimpan method/operasi dalam suatu tabel, dan mengandalkan aplikasi. Demikian, resensi singkat, semoga bermanfaat.