Slide SIF201 Week3 ER Lanjutan

Perancangan Basis Data
Pertemuan 3
ER Concept Lanjutan

AER – 2013/2014

Universitas Pembangunan Jaya – SIF_TIF

1

Tujuan Pertemuan
• Mahasiswa akan mampu menjelaskan konsep
dasar relationship antara entity.
• Mahasiswa akan mampu menjelaskan konsep
Cardinality (kardinalitas) sebagai rule untuk
menjaga relationship pada normal database.
• Mahasiswa akan mampu mebuat diagram ER
lengkap dengan cardinality-nya (sebagai rule
untuk menjaga relationship pada normal
database).
AER – 2013/2014


Universitas Pembangunan Jaya – SIF_TIF

2

ER Concept
(Relationships Among Entities)
• Relationship: hubungan atau interaksi antara satu
entity dengan entity lainnya.
• Degree of the Relationship ditentukan
berdasarkan jumlah entity yang terhubung pada
suatu relationship
– Binary Relationship: relationship antara 2 entity
– Ternary Relationship: relationship dari 3 entity
– n-ary Relationship: relationship dengan entity yang
lebih dari 2
AER – 2013/2014

Universitas Pembangunan Jaya – SIF_TIF


SIF1213 - 3

ER Concept
(Relationships Among Entities)
Contoh (binary relationship):
Instructor

teaches

Course_section

• teaches merupakan binary relationship antara
Instructor dan Course_section .
• Relationship teaches dibentuk karena instructor
tertentu mengajarkan kursus tertentu.

AER – 2013/2014

Universitas Pembangunan Jaya – SIF_TIF


SIF1213 - 4

ER Concept
(Relationships Among Entities)
Contoh (relationship dengan atribut):
Employee

Project

works_on
eid

prjid

percent

• works_on merupakan binary relationship antara Employee
dan Project.
• Relationship works_on memiliki attribute percent karena
Employee tertentu ditugaskan bekerja pada Project tertentu

dengan persentase waktu kerja tertentu dalam seminggu.
(percent = persentase waktu Employee bekerja di project terhadap waktu kerja karyawan
dalam seminggu).
AER – 2013/2014

Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 5

ER Concept
(Relationships Among Entities)
Contoh (ring relationship):
manager_of
Employee

manages
reports_to

• manages merupakan binary relationship antara Employee
dan Employee.

• Relationship seperti ini dinamakan recursive relationship atau
ring.
• Pada relationship model ring, garis penghubung biasanya di
beri label dengan nama sesuai peran garis tersebut.
• Ilustrasi;
satu Employee menjadi manager untuk Employee lainnya.
AER – 2013/2014

Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 6

ER Concept
(Relationships Among Entities)
Contoh (relationship yang salah):
Agent

aid
pid


cid
Customer

cid





Product

order

pid

aid

Tabel order adalah bukan relationship terhadap Customer, Agent dan
Product, karena kombinasi id (cid, aid, pid) tidak bisa dijadikan identifier.
Nilai cid, aid dan pid yang sama dapat muncul lebih dari sekali, atau

customer (cid) yang sama bisa order product (pid) yang sama ke agent
(aid) yang sama.

AER – 2013/2014

Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 7

ER Concept
(Relationships Among Entities)
Contoh (perbaikan relationship yang salah):
Agent

aid
pid

cid
Customer


ordNo

Order

cid

Product

pid

aid

• Dengan demikian tabel order akan lebih tepat
sebagai entity dengan atribut identifier ordNo,
daripada sebagai relationship.
AER – 2013/2014

Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 8


ER Concept
(Relationships Among Entities)
Contoh (perbaikan relationship yang salah):
cid

aid

pid

Customer

Agent

Product

put

got


in

Order

ordNo



cid

pid

aid

Meskipun entity order tidak berkaitan langsung ke relationship, namun
jelas bahwa terdapat sejumlah relationship yang mungkin bisa kita
tentukan dalam hal entity order dengan entity Customer, Agent, dan
Product.

AER – 2013/2014


Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 9

Intro ER Concept
(Relationships Among Entities)
Contoh (perbaikan relationship yang salah):
prod_na
me

cust_na
me
pid

buy_price

cid

Customer

buy

cust_na
me

prod_pri
ce

Product

buy_id

cid

cid

Customer
cid

pid

Customer

buy_id

buy

make_a

pid

AER – 2013/2014

Product

pid

Product

prod_name
prod_price

buy_price

Buy

that

cid
cust_name

prod_pri
ce

buy_price

buy

cid

pid

pid

cid
cust_name

prod_na
me

buy_price

pid
prod_name

Customer

Product
Universitas Pembangunan Jaya – SIF_TIF

prod_price

SIF1213 - 10

ER Concept
(Relationships Among Entities)
Contoh (ternary relationship):



Misal akan dibuat tabel yearlies sebagai berikut:
create table yearlies (cid char(4), aid char(3), pid char(3), totqty integer, totdoll float);
insert into yearlies
select cid, aid, pid, sum(qty), sum(dollars) from orders group by cid, aid, pid;




Berdasarkan sql di atas maka yearlies merupakan relationship terhadap
Customer, Agent, Product.
Relationship yearlies dikatakan ternary relationship, karena merupakan
relasi terhadap 3 entity.
Agent

aid

cid

pid

Customer
cid
AER – 2013/2014

Product

yearlies
pid

aid

totDoll

totQty

Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 11

ER Concept
(Relationships Among Entities)
Contoh (ternary relationship):
cid

Agent

Customer

yearlies

cid

pid

aid

aid

pid
Product

totDoll

totQty

• n-ary Relationship (dengan n > 2) biasanya dipecah
menjadi sejumlah binary relationship yang berbedabeda.
• Dalam beberapa kasus, n-ary relationship tidak dapat
dipecah menjadi binary relationship (contohnya:
yearlies).
AER – 2013/2014

Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 12

ER Concept
(Kesimpulan)
• Entities dan Attributes
Classification
Entity
Attribute
Identifier (set of
attributes)

Description
A collection of distinguishable real-world
objects with common properties
A data item that describes a property of an
entity or relationship
Uniquely identifies an entity or relationship
occurrence

Descriptor

Non-key attribute, describing an entity or
relationship

Composite
attribute
Multi-valued
attribute

A group of simple attributes that together
describe a property of an object
An entity attribute that takes on multiple
values for a single entity instance

AER – 2011/2012

Universitas Pembangunan Jaya – SIF_TIF

Example
Customers, Agents, Products,
Employees
cid, cust_name, pid,
prod_name, prode_price
customer identifier: cid,
employee identifier: eid
prod_price (for Product),
Percent (for work_on),
totDoll, totQty (for yearlies)
student_name
hobbies
SIF1213 - 13

ER Concept
(Kesimpulan)
• Relationships
Classification

Relationship

Binary
relationship

Ring, recursive
relationship
Ternary
relationship
AER – 2011/2012

Description
Example
Named set of m-tuples, identifies subset of the
Cartesian product E1 × E2 × . . . × Em
A relationship on two distinct entities
Teaches (for Instructor
and Course_section),
works_on (for Employee
and Project)
A relationship relating an entity to itself
manages (for Employee)

A relationship on three distinct entities

Universitas Pembangunan Jaya – SIF_TIF

yearlies (for Customer,
Agent dan Product)
SIF1213 - 14

ER Concept
(Kesimpulan)
• Hal yang harus diperhatikan dalam membuat diagram ER:

– Atribut multivalue dirubah menjadi entity dengan menyertakan
atribut identifier entity asal dan atribut multivalue tersebut
sebagai atribut pada entity tersebut.
– Relationship yang memiliki atribut harus ditambahkan atribut
identifier entity-entity yang terelasi, sebagai penghubung
relationship dengan entity-entity tersebut dan atribut identifier
entity-entity tersebut menjadi identifier kombinasi pada
relationship.
– Relationship yang identifiernya bukan kombinasi identifier dari
identifier entity-entity (yang terelasi) tidak bisa dijadikan
relationship, harus dirubah menjadi Entity dan dibuatkan
relationship yang menghubungkan entity baru tersebut dengan
entity-entity yang sebelumnya terelasi.

AER – 2011/2012

Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 15

ER Concept
(Kesimpulan)
• Hal yang harus diperhatikan pada transformasi ER menjadi
tabel:
– Semua entity ditansformasi menjadi tabel.
– Kolom pada tabel dibuat dari atribut dan subset atribut
komposit, kecuali;
• atribut multivalue (karena akan menjadi entity).
• atribut komposit (hanya subset-nya yang menjadi kolom).

– Relationship yang memiliki atribut ditransformasi menjadi tabel.
• Relationship yang identifier-nya bukan kombinasi identifier dari
identifier entity-entity yang terelasi, harus dirubah menjadi entity dan
dibuatkan beberapa relationship baru yang menghubungkannya
dengan entity-entity yang sebelumnya terelasi.
• Relationship yang tidak memiliki atribut tidak ditransformasi menjadi
tabel, namun atribut identifier entity yang dirujuk dijadikan atribut
pada entity yang merujuk. Dengan demikian berarti menjadi kolom
pada tabel hasil transformasi entity yang merujuk.

AER – 2011/2012

Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 16

Cardinality
Partisipasi Entity dalam suatu Relationship
Ilustrasi untuk Memahami Cardinality
Perhatikan diagram ER dan rule berikut;
• Pada relationship teaches (Instructor, teaches, Course_section) memiliki
aturan bahwa;
– Setiap Course_section harus memiliki setidak-tidaknya satu instructor yang
ditugaskan mengajar.
– Setiap Course_section hanya boleh diajar oleh satu instructor (maksimum
diajar oleh satu instructor).
– Seorang instructor dimungkinkan untuk tidak mengajar suatu course.
– Seorang instructor dimungkinkan untuk mengajar lebih dari satu course.
Instructor
iid

Course_section

teaches
i_name

cid

co_name

iid

Bersa bu g …
AER – 2011/2012

Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 17

Cardinality
Partisipasi Entity dalam suatu Relationship
Ilustrasi untuk Memahami Cardinality
Instructor
i_name

iid

Course_section

teaches

instructor

cid

teaches

co_name

iid

instructor

course_section

teaches

course_section

iid

i_name

cid

co_name

iid

iid

iid

001

Budi

C01

Database 1

001

001

001

002

Ani

C02

Database 2

001

002

001

003

Dedi

C03

Analysis

002

003

002

(0, N)
Instructor

AER – 2011/2012

(1, 1)
teaches

Course_section

min-card(instructor, teaches) = 0
max-card(instructor, teaches) = n
min-card(course_section, teaches) = 1
max-card(course_section, teaches) = 1
Many-to-one Relationship, dengan
course_section pada posisi many

Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 18

Cardinality
Partisipasi Entity dalam suatu Relationship
E dan F adalah entity, dan R adalah relationship
E

R

F

One-to-one relationship
min-card(E, R) = 0
max-card(E, R) = 1
min-card(F, R) = 0
max-card(F, R) = 1

(a)
AER – 2011/2012

E

R

F

Many-to-one relationship
min-card(E, R) = 0
max-card(E, R) = N
min-card(F, R) = 1
max-card(F, R) = 1
F is the "many" side here

E

R

F

Many-to-many
relationship
min-card(E, R) = 0
max-card(E, R) = N
min-card(F, R) = 0
max-card(F, R) = N

(b)
Universitas Pembangunan Jaya – SIF_TIF

(c)
Bersa bu g …
SIF1213 - 19

Cardinality
Partisipasi Entity dalam suatu Relationship
E dan F adalah entity, dan R adalah relationship
E

R

F

E

One-to-one relationship
min-card(E, R) = 0
max-card(E, R) = 1
min-card(F, R) = 0
max-card(F, R) = 1

E

(0, 1)

R

AER – 2011/2012

(0, 1)

F

R

F

E

Many-to-one relationship
min-card(E, R) = 0
max-card(E, R) = N
min-card(F, R) = 1
max-card(F, R) = 1
F is the "many" side here

E

(0, N)

R

(1, 1)

R

F

Many-to-many relationship
min-card(E, R) = 0
max-card(E, R) = N
min-card(F, R) = 0
max-card(F, R) = N

F

Universitas Pembangunan Jaya – SIF_TIF

E

(0, N)

R

(0, N)

F

SIF1213 - 20

Quiz
Tentukan cardinality
E

R

F

E

?
min-card(E, R) = ?
max-card(E, R) = ?
min-card(F, R) = ?
max-card(F, R) = ?

E

(?, ?)

R

AER – 2011/2012

R

F

E

?
min-card(E, R) = ?
max-card(E, R) = ?
min-card(F, R) = ?
max-card(F, R) = ?
(?, ?)

F

E

(?, ?)

R

R

F

?
min-card(E, R) = ?
max-card(E, R) = ?
min-card(F, R) = ?
max-card(F, R) = ?
(?, ?)

F

Universitas Pembangunan Jaya – SIF_TIF

E

(?, ?)

R

(?, ?)

F

SIF1213 - 21

See You Next Session
• Thank’s

AER – 2013/2014

Universitas Pembangunan Jaya – SIF_TIF

SIF1213 - 22