Implementing an REA Model in a Relational Database
IMPLEMENTING AN REA DIAGRAM IN A RELATIONAL DATABASE Ada tiga tahap dalam mengimplementasikan diagram REA ke dalam database relasional: Membuat sebuah tabel untuk: Setiap entitas yang berbeda Setiap hubungan banyak ke banyak Memberikan atribut ke tabel yang tepat Menggunakan kunci luar (foreign key) untuk mengimplementasikan hubungan satu ke satu (one-to-one) dan satu ke banyak (one-to-many)
EXAMPLE Below is a sample REA diagram for a very simple revenue cycle. Customer Inventory Sale Employee Cash Receive Cash Customer 3
EXAMPLE Our first step is to create a table for each event, resource, agent, and many-to-many relationship. Customer Inventory Sale Employee Cash Receive Cash Customer 4
EXAMPLE 5 There are two events. Customer Inventory Sale Employee Cash Receive Cash Customer 5
EXAMPLE 6
EXAMPLE 7 There are two resources. Customer Inventory Sale Employee Cash Receive Cash Customer 7
EXAMPLE 8
EXAMPLE 9 There are two types of agents: customers and employees. Inventory Sale Employee Cash Receive Cash Customer 9
EXAMPLE 10
EXAMPLE 11 There is one many-to-many relationship. Customer Inventory Sale Employee Cash Receive Cash Customer 11
EXAMPLE 12
EXAMPLE Langkah berikutnya adalah memberikan atribut ke tabel yang tepat Atribut pertama merupakan kunci utama (primary key), yang terdiri dari sebuah atribut atau kombinasi dari beberapa atribut yang secara unik mengidentifikasi setiap baris dalam tabel tersebut. 13
EXAMPLE 14
EXAMPLE Atribut lainnya yang perlu diidentifikasi merupakan fakta-fakta yang ingin dikumpulkan yang menggambarkan masing-masing entitas. 15
EXAMPLE 16
EXAMPLE Langkah terakhir adalah menggunakan kunci luar untuk mengimplementasikan hubungan 1 : 1 dan 1 : N Hubungan satu ke banyak, diimplementasikan dengan cara memasukkan kunci utama tabel yang berderajat 1 ke tabel yang berderajat N Hubungan 1 : 1, diimplementasikan dengan cara: Masukkan kunci utama dari entitas yang berderajat minimum 1 ke dalam entitas yang berderajat minimum 0 Masukkan kunci utama dari entitas (kegiatan) yang terjadi pertama kali ke dalam entitas yang terjadi kemudian. 17
EXAMPLE 18 Customer Inventory Sale Employee Receive Cash Customer Cash The relationship between customer and sales is a 1:N relationship. We make the primary key for the entity that occurs only once (customer) serve as a foreign key in the entity that can occur many times (sale). Customer Inventory Sale Employee Cash Receive Cash Customer 18
EXAMPLE 19
EXAMPLE Likewise, the primary key for employee should be a foreign key in the sales table. Customer Inventory Sale Employee Cash Receive Cash Customer 20
EXAMPLE 21
EXAMPLE The primary key for employee should also be a foreign key in the receive cash table. Customer Inventory Sale Employee Cash Receive Cash Customer 22
EXAMPLE 23
EXAMPLE The primary key for customer should also be a foreign key in the receive cash table. Customer Inventory Sale Employee Cash Receive Cash Customer 24
EXAMPLE 25
EXAMPLE 26 Customer Inventory Sale Employee Receive Cash Customer Cash The relationship between sales and receive cash is 1:1. Two guidelines will produce the same result. Put the primary key of the event with the minimum of one (sales) as a foreign key in the event with the minimum of zero (receive cash); or Customer Inventory Sale Employee Cash Receive Cash Customer 26
EXAMPLE 27 Customer Inventory Sale Employee Receive Cash Customer Cash Put the primary key of the event that occurs first (sales) as a foreign key in the event that occurs second (receive cash). Customer Inventory Sale Employee Cash Receive Cash Customer 27
EXAMPLE 28
EXAMPLE 29 Customer Inventory Sale Employee Receive Cash Customer Cash The relationship between sales and inventory is a many-to-many relationship and was already implemented by the creation of a separate table. Customer Inventory Sale Employee Cash Receive Cash Customer 29
EXAMPLE 30 Customer Inventory Sale Employee Receive Cash Customer Cash In the relationship between cash and receive cash, the primary key for the event that occurs once (cash) should be a foreign key in the event that occurs many times (receive cash). Customer Inventory Sale Employee Cash Receive Cash Customer 30
EXAMPLE 31