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
works_on eid
prjid
Project 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
order
cid
•
•
pid
Product 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
yearlies cid
AER – 2013/2014
pid
aid
Product 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
Bersambung … 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
course_section
iid
instructor
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) Bersambung … 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