Generalisasi dan Spesialisasi Database

orezomi April 1, 2012 1

Dalam mendesain database ada salah satu hal penting yang harus kita perhatikan yaitu Generalisasi dan Spesialisasi database. Proses spesialisasi adalah proses yang memperhatikan perbedaan setiap anggota dari sebuah entitas sehingga anggota dari sebuah entitas bisa dikelompokkan ke dalam kelompok yang lebih kecil. Contoh, entitas buah bisa dipecah menjadi pisang, jambu dan mangga. Sedangkan proses Generalisasi adalah proses meminimalkan perbedaan dari beberapa entitas dan kemudian mengelompokkannya ke dalam sebuah entitas dengan mengidentifikasi karakteristik umum dari setiap entitas. Contoh, entitas pisang, mangga dan jambu dikelompokkan dalam sebuah entitas bernama buah.

Dalam proses Generalisasi/Spesialisasi akan muncul dua istilah baru yaitu superclass dan subclass. Superclass adalah himpunan hasil dari proses generalisasi sedangkan subclass adalah himpunan hasil dari proses spesialisasi yang isinya lebih spesifik daripada superclass.

Constraint pada Generalisasi/Spesialisasi

Terdapat dua buah constraint yang bisa diterapkan pada proses Generalisasi/Spesialisasi yaitu Participation Constraint dan Disjoint Constraint.

Participation Constraint

Participation Constraint menggambarkan apakah setiap anggota dari sebuah superclass harus berpartisipasi sebagai anggota dari sebuah subclass atau tidak. Sebuah Participation Constraint memiliki dua opsi yaitu Mandatory atau Optional.

Sebuah participation constraint dikatakan Mandatory Participation jika setiap anggota dari superclass harus menjadi anggota di subclass. Contohnya, pada himpunan karyawan (superclass) yang memiliki subclass bernama ‘majager’, ’staff’ dan ‘office boy’. Maka disini setiap anggota superclass akan menjadi anggota dari subclass.

Sebuah participation constraint dikatakan Optional Participation jika setiap anggota superclass tidak semuanya menjadi aggota di setiap subclassnya. Contohnya, pada himpunan buah (superclass) yang memiliki subclass bernama ‘mangga’, ‘pisang’ dan ‘jambu’. Maka disini terdapat subclass lain yang mungkin menjadi anggota dari superclass namun tidak dijadikan sebagai subclass misalnya adalah himpunan ‘pepaya’ yang menjadi anggota himpunan buah namun tidak dijadikan sebagai subclass.

Disjoint Constraint

Disjoint Constraint menggambarkan hubungan antara anggota subclass, apakah setiap anggota dari subclass bisa menjadi anggota dari subclass yang lain atau tidak. Disjoint constraint memiliki dua opsi yaitu Disjoint atau Nondisjoint.

Sebuah Disjoint constraint dikatakan Disjoint atau OR jika anggota dari sebuah subclass tidak dapat menjadi anggota dari subclass lainnya. Contoh, pada himpunan buah (superclass) dengan subclass ‘pisang’ dan ‘mangga’, maka anggota pisang tidak dapat menjadi anggota mangga atau sebaliknya.

Sebuah Disjoint Constraint dikatakan Nondisjoint atau AND jika anggota dari sebuah subclass bisa juga menjadi anggota dari subclass yang lain.

Dengan demikian terdapat empat buah constraint generalisasi/spesialisasi yaitu

  • Mandatory and disjoint
  • Mandatory and nondisjoint
  • Optional and disjoint
  • Optional and nondisjoint

One Comment »

  1. Gopar April 1, 2012 at 8:07 PM - Reply

    Nice Posting

Leave A Response »