Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER...

22
Perancangan Basis Data Pertemuan 3 ER Concept Lanjutan AER – 2013/2014 1 Universitas Pembangunan Jaya – SIF_TIF

Transcript of Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER...

Page 1: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

Perancangan Basis Data

Pertemuan 3 ER Concept Lanjutan

AER – 2013/2014 1 Universitas Pembangunan Jaya – SIF_TIF

Page 2: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

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 2 Universitas Pembangunan Jaya – SIF_TIF

Page 3: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

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

Page 4: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

ER Concept (Relationships Among Entities)

• 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

Course_section Instructor teaches

Contoh (binary relationship):

Page 5: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

ER Concept (Relationships Among Entities)

• 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

Contoh (relationship dengan atribut):

Project Employee works_on

percent prjid eid

Page 6: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

ER Concept (Relationships Among Entities)

• 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

Contoh (ring relationship):

Employee manages

reports_to

manager_of

Page 7: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

ER Concept (Relationships Among Entities)

• 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

Contoh (relationship yang salah):

Product Customer order

Agent

cid pid aid

cid pid aid

Page 8: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

ER Concept (Relationships Among Entities)

• 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

Contoh (perbaikan relationship yang salah):

Product Customer

Agent

Order

cid pid aid

cid pid aid ordNo

Page 9: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

ER Concept (Relationships Among Entities)

• 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

Contoh (perbaikan relationship yang salah):

Product Customer Agent

Order

cid pid aid

cid pid aid ordNo

put got in

Page 10: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

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

AER – 2013/2014 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 10

buy Customer Product

cid

cust_name

buy_price pid

prod_name

prod_price

buy Customer Product

cid

cust_name

buy_price

pid

prod_name

prod_price

cid pid

buy Customer Product

cid

cust_name

buy_price pid

prod_name

prod_price

cid pid buy_id

make_a

Customer Product

cid

cust_name

buy_price

pid

prod_name

prod_price

cid pid buy_id

Buy that

Page 11: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

ER Concept (Relationships Among Entities)

• 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.

AER – 2013/2014 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 11

Contoh (ternary relationship):

Product Customer yearlies

Agent cid pid

aid

cid pid aid totQty totDoll

Page 12: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

ER Concept (Relationships Among Entities)

• n-ary Relationship (dengan n > 2) biasanya dipecah menjadi sejumlah binary relationship yang berbeda-beda.

• Dalam beberapa kasus, n-ary relationship tidak dapat dipecah menjadi binary relationship (contohnya: yearlies).

AER – 2013/2014 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 12

Contoh (ternary relationship):

Product Customer yearlies

Agent cid pid aid

cid pid aid totQty totDoll

Page 13: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

ER Concept (Kesimpulan) • Entities dan Attributes

AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 13

Classification Description Example

Entity A collection of distinguishable real-world

objects with common properties

Customers, Agents, Products,

Employees

Attribute A data item that describes a property of an

entity or relationship

cid, cust_name, pid,

prod_name, prode_price

Identifier (set of

attributes)

Uniquely identifies an entity or relationship

occurrence

customer identifier: cid,

employee identifier: eid

Descriptor Non-key attribute, describing an entity or

relationship

prod_price (for Product),

Percent (for work_on),

totDoll, totQty (for yearlies)

Composite

attribute

A group of simple attributes that together

describe a property of an object student_name

Multi-valued

attribute

An entity attribute that takes on multiple

values for a single entity instance hobbies

Page 14: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

ER Concept (Kesimpulan)

• Relationships

AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 14

Classification Description Example

Relationship Named set of m-tuples, identifies subset of the

Cartesian product E1 × E2 × . . . × Em

Binary

relationship

A relationship on two distinct entities Teaches (for Instructor

and Course_section),

works_on (for Employee

and Project)

Ring, recursive

relationship

A relationship relating an entity to itself manages (for Employee)

Ternary

relationship

A relationship on three distinct entities yearlies (for Customer,

Agent dan Product)

Page 15: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

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

Page 16: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

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

Page 17: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

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.

AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 17

iid

teaches Instructor Course_section

i_name cid co_name iid

Bersambung …

Page 18: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

Cardinality Partisipasi Entity dalam suatu Relationship

AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 18

iid i_name

001 Budi

002 Ani

003 Dedi

cid co_name iid

C01 Database 1 001

C02 Database 2 001

C03 Analysis 002

iid

teaches Instructor Course_section

i_name cid co_name iid

Ilustrasi untuk Memahami Cardinality

instructor course_section

iid

001

002

003

iid

001

001

002

instructor course_section teaches teaches

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

teaches Instructor Course_section (0, N) (1, 1)

Page 19: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

Cardinality Partisipasi Entity dalam suatu Relationship

One-to-one relationship

min-card(E, R) = 0

max-card(E, R) = 1

min-card(F, R) = 0

max-card(F, R) = 1

AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 19

E R F E R F E R F

E dan F adalah entity, dan R adalah relationship

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

Many-to-many relationship

min-card(E, R) = 0

max-card(E, R) = N

min-card(F, R) = 0

max-card(F, R) = N

(a) (b) (c) Bersambung …

Page 20: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

Cardinality Partisipasi Entity dalam suatu Relationship

AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 20

E R F E R F E R F

E dan F adalah entity, dan R adalah relationship

E R F (0, 1) (0, 1)

E R F (0, N) (1, 1)

E R F (0, N) (0, N)

One-to-one relationship

min-card(E, R) = 0

max-card(E, R) = 1

min-card(F, R) = 0

max-card(F, R) = 1

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

Many-to-many relationship

min-card(E, R) = 0

max-card(E, R) = N

min-card(F, R) = 0

max-card(F, R) = N

Page 21: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

Quiz

AER – 2011/2012 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 21

E R F E R F E R F

Tentukan cardinality

E R F (?, ?) (?, ?)

?

min-card(E, R) = ?

max-card(E, R) = ?

min-card(F, R) = ?

max-card(F, R) = ?

?

min-card(E, R) = ?

max-card(E, R) = ?

min-card(F, R) = ?

max-card(F, R) = ?

?

min-card(E, R) = ?

max-card(E, R) = ?

min-card(F, R) = ?

max-card(F, R) = ?

E R F (?, ?) (?, ?)

E R F (?, ?) (?, ?)

Page 22: Perancangan Basis Data - ocw.upj.ac.idocw.upj.ac.id/files/Slide-SIF201-Week3-ER-Lanjutan.pdf · ER Concept (Relationships Among Entities) • Tabel order adalah bukan relationship

See You Next Session

• Thank’s

AER – 2013/2014 Universitas Pembangunan Jaya – SIF_TIF SIF1213 - 22