Weak Entity dan Implementasinya Pada Database

Secara teori Weak Entity adalah sebuah entitas yang tidak memiliki atribute yang unik. tentu kita akan bertanya bagaimana entitas menentukan data nya agar tidak terjadi redudansi data.. ?. Atribut yang dijadikan primary key pada entitas semacam ini diambil dari gabungan beberapa foreign key yang berelasi dengan tabel tersebut.. jadi weak entity memungkinkan memiliki Primary Key lebih dari satu field yang mana field tersebut adalah foreign key dari tabel lain yang berelasi dengan weak entity tersebut.

Dari Contoh yang saya buat pada gambar diatas terlihat terdapat tabel master ITEM dimana tabel item tersebut memiliki item_id sebagai Primary Key nya … dan Juga Terdapat tabel Sales Order (atau Tabel Penjualan).Dimana Pada Tabel Sales order terdapat sales_order_id sebagai Primary Key nya… nah terus mana weak Entity nya…?

Weak Entity nya adalah pada tabel Sales Order Detail. Disana bisa dilihat bahwa Sales Order Detail tidak memiliki Id sendiri (contoh : Sales_Order_Detail_Id) sebagai Primary Key.. melainkan ia menjadikan Sales_Order_Id dan Item_Id sebagai Primary Key nya. Dalam teori Sistem basis data hal ini disebut dengan Composite Primary Key. Dimana Primary Key dibentuk dari gabungan foreign key – foreign key yang ada.  Dan satu hal lagi, bahwa Entitas Sales Order Detail sifatnya bergantung pada tabel masternya (yaitu Sales Order).

Nah bagaimana implementasi nya pada SQL setelah kita mengetahui teori tersebut. berikut ini saya berikan Query SQL untuk membuat tabel Item, Sales Order, Sales Order Detail. saya menggunakan MySQL InnoDB sebagai RDBMS nya :

Tabel Item :

Tabel Sales Order :

Tabel Sales Order Detail :

Nih Contoh Tabel yang udah keisi datanya :

Isi Tabel Item :

data Sales Order (Penjualan) :

Data Sales Order Detail (Penjualan Detail ) :

Sampe Sini Ngerti kan…? Gimana Implementasi nya pada Object Relational Mapping di Java…?bentar ane posting lagi… udah kepanjangan nih…

One thought on “Weak Entity dan Implementasinya Pada Database

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>