006 - relational database · 2017. 6. 15. · chapter 3 - relational database 2 ฐานข...

37
ฐานขอมูลเชิงสัมพันธ Relational Database โอฬาริก สุรินตะ Cs-Mis

Upload: others

Post on 09-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

ฐานขอมลเชงสมพนธ

Relational Database

โอฬารก สรนตะ

Cs-Mis

Page 2: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 2

ฐานขอมลเชงสมพนธ

ฐานขอมลเชงสมพนธเปนรปแบบของฐานขอมลทคดคนโดย อ เอฟ คอดด (E.F. Codd) เมอป 1970

ฐานขอมลเชงสมพนธเปนรปแบบฐานขอมลทเขาใจงายสาหรบผใช ไมซบซอน

เปนรปแบบฐานขอมลทมระบบจดการฐานขอมล (Database Management Systems: DBMS) สนบสนนในการจดการฐานขอมลมากมาย อาทเชน DB2, ORACLE, INFORMIX, Power-Builder, INGRES

ทาใหการจดการฐานขอมลเชงสมพนธ สามารถตอบสนองความตองการของผใชในเรองการจดการฐานขอมลของระบบไดอยางมประสทธภาพ

Page 3: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 3

ฐานขอมลเชงสมพนธ

โมเดลนมวตถประสงคเพอรกษาความเปนอสระของขอมล (Data Independence) และความเปนอสระของโครงสรางขอมลในแตละระดบ (Structural Independence)

กลาวคอโปรแกรมประยกตใชงานจะไมถกกระทบ หากมการปรบเปลยนสถาปตยกรรมดานกายภาพ เชนการปรบเปลยนโครงสรางการจดเกบหรอเรยกใชขอมลจากแฟมในหนวยความจาสารองกจะไมกระทบโปรแกรมประยกตใชงาน

มคณสมบตทชวยลดความซาซอน ตลอดจนปญหาทเกดจากการปรบปรง เพม ลบขอมล ดวยแนวคดในการทาใหเปนบรรทดฐาน (Normalization) มาใชในการออกแบบ

Page 4: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 4

โครงสรางฐานขอมลเชงสมพนธ

เปนฐานขอมลทมโครงสรางขอมลแบบ Relational Model คอฐานขอมล

จะประกอบดวยตาราง (Relation) ทมความสมพนธกน

ภาพท 3.1 โครงสรางของตาราง

Page 5: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 5

โครงสรางฐานขอมลเชงสมพนธ

Relation

เปนตารางสองมต ทประกอบดวย Tuple และ Attribute เพอจดเกบ

ขอมลตาง ๆ รปแบบของ Relation สามารถเขยนแทนดวย

สญลกษณดงน

Page 6: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 6

โครงสรางฐานขอมลเชงสมพนธ

Attribute

เปนคอลมนใน Relation จากภาพท 5 ประกอบดวย 4 Attribute

Page 7: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 7

โครงสรางฐานขอมลเชงสมพนธ

Tuple

เปนแถวในแตละ Relation จากภาพท 5 ประกอบดวย 5 Tuple

ประกอบดวยตวอยางขอมลดงน

Page 8: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 8

โครงสรางฐานขอมลเชงสมพนธ

Domain

เปนการกาหนดขอบเขตคาขอมลและชนดขอมลของแตละ Attribute ทสามารถ

เปนไปได จากภาพท 5 Domain ของ SEX คอกลมของเพศทงหมดทเปนไปได

คอ M และ F เทานน

Page 9: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 9

โครงสรางฐานขอมลเชงสมพนธ

Degree

เปนจานวนของ Attribute ใน Relation คาของดกรมกจะไมมการ

เปลยนแปลง จากภาพท 3.1 ประกอบดวย 4 Degree

Page 10: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 10

โครงสรางฐานขอมลเชงสมพนธ

Cardinality

เปนจานวน Tuple ทบรรจอยใน Relation และมความสมพนธใน Tuple ของอก

Relation หนง

Page 11: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 11

โครงสรางฐานขอมลเชงสมพนธ

จากตาราง STAFF และ DEPARTMENT จะมความสมพนธระหวางกน

กลาวคอ ในแตละแผนกจะประกอบดวยพนกงานหลายคน ดงนน

ความสมพนธระหวาง Relation ทงสองจะม Cardinality เทากบ 1:M

Page 12: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 12

โครงสรางฐานขอมลเชงสมพนธ

ศพททางเทคนคในฐานขอมลจะมชอเรยกทแตกตางกน แตมความหมายเดยวกน ดงน

Page 13: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 13

ขอดของฐานขอมลเชงสมพนธ

1. เปนโมเดลทสอดคลองกบหลกการของฐานขอมล คอผใชไมตองยงเกยว

ในเรองของโครงสรางทางกายภาพในระดบภายใน (Internal Level)

เพราะตารางเปนขอมลในระดบความคด

2. สามารถใชแบบสอบถาม (Query) ในลกษณะของการประมวลผลหลาย

รายการขอมล (Record) ไดในครงเดยว

3. ใชภาษาแบบสอบถามทเปนมาตรฐานคอ SQL (Structured Query

Language)

Page 14: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 14

คณสมบตของ Relation (Properties of Relations)

1. Relation ตองมชอกากบ แตละชอตองแตกตางกน ซากนไมได

2. Attribute ของ Relation มไดเพยงคาเดยว (Single Value)

3. ชอใน Attribute ตองแตกตางกน ซากนไมได

4. คาของขอมลใน Attribute เปนไปตามขอกาหนดของ Domain ใน

Attribute นน ๆ

5. การเรยงลาดบของ Attribute ไมมความสาคญใดๆ

6. Tuple ตองมความแตกตางกน จะไมม Tuple ทซากน

7. การเรยงลาดบของ Tuple ไมมความสาคญใด ๆ

Page 15: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 15

คย (Keys)

เมอฐานขอมลมขนาดใหญกจะมขอมลจานวนมากขน ขอมลเหลานอาจม

คาแตกตางกน คลายกน หรอแมกระทงเหมอนกน ทาใหการแยกแยะ

โดยอาศยเพยงตวขอมลอยางเดยวทาไดอยางยากลาบาก

ดงนนจงมการกาหนดคา Keys ประจาขอมลเพอทาใหการแยกแยะ

ขอมลในฐานขอมลเปนไปอยางถกตอง

คณสมบตหนงทสาคญของความสมพนธกคอ ความเปนเอกลกษณ

(Uniqueness property) สงทใชกาหนดความเปนเอกลกษณของแถวใน

ความสมพนธ เรยกวา Keys

Page 16: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 16

คย (Keys)

คยหลก (Primary Key: PK)

Key ทใชในการอางถง Entity ในฐานขอมล โดยท Key นนจะตองไดมาจาก Attribute ทม

คณสมบตของขอมลทเปนคาเอกลกษณ (Unique) หรอมคาทไมซาซอนกน

Primary Key เปนขอมลสาคญทจะทาใหการเขาถงขอมลบนฐานขอมลเปนไปไดอยางรวดเรว

ดงนนผใชจงควรกาหนด Primary Key ใหชดเจนตงแตขนตอนออกแบบฐานขอมล

Page 17: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 17

คย (Keys)

คยผสม (Composite Key)

ใน Relation อาจประกอบดวย Attribute ทมคณสมบตเปน Primary Key ไดมากกวา 1

Attribute ดงนนเมอนา Attribute มารวมกน จะทาให Attribute นนมคณสมบตทเปนเอกลกษณ

Page 18: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 18

คย (Keys)

คยรอง (Secondary Key)

หมายถง Attribute ทไมใช Primary Key แตสามารถใชในการสบคนขอมล

จดเรยงขอมล จาก Relation โดยท Secondary Key ไมจาเปนตองมคาเปน

เอกลกษณ

Page 19: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 19

คย (Keys)

คยคแขง (Candidate Key)

หมายถง Attribute ทมคณสมบตทสามารถนามาเปนคยหลกได ซงสามารถประกอบดวย

Attribute เดยว หรอมากกวา 1 Attribute กได

แตถาประกอบดวย Attribute มากกวา 1 Attribute จะเรยกวา Composite Key ดงนนจงไม

อนญาตใหสวนประกอบของ Key เปนคาวางได (Null Value)

Page 20: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 20

คย (Keys)

คยนอก (Foreign Key)

หมายถง Attribute ใน Relation หนงทใชอางองไปยง Attribute ททาหนาทเปน Primary Key

ของอก Relation หนงทมความสมพนธกน

Page 21: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 21

ภาพท 3.3 ตวอยาง Key แบบตาง ๆ

Page 22: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 22

ความสมพนธระหวาง Entity (Entity Relationship)

รปแบบความสมพนธระหวาง Entity (Entity Relationship) เปนการ

แสดงความสมพนธของรายการขอมลในตารางหนง กบรายการขอมลใน

อกตารางหนง

รปแบบความสมพนธระหวาง Entity แบงออกเปน 3 รปแบบ

Page 23: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 23

ความสมพนธระหวาง Entity (Entity Relationship)

ความสมพนธแบบหนงตอหนง (1:1)

ลกษณะความสมพนธทมเพยง 1 Tuple ใน Entity A มความสมพนธ หรออางองกบ Tuple

เพยง 1 Tuple ใน Entity B และในทางกลบกน มเพยง 1 Tuple ใน Entity B มความสนพนธ

กบ Tuple เพยง 1 Tuple ใน Entity A

Page 24: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 24

ความสมพนธระหวาง Entity (Entity Relationship)

ภาพท 3.4 ความสมพนธแบบ 1:1

Page 25: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 25

ความสมพนธระหวาง Entity (Entity Relationship)

ความสมพนธแบบหนงตอกลม (1:M)

ลกษณะความสมพนธท 1 Tuple ใน Entity A มความสมพนธ หรออางองกบ Tuple ใน Entity

B ไดมากกวา 1 Tuple และในทางกลบกน มเพยง 1 Tuple ใน Entity B มความสนพนธกบ

Tuple เพยง 1 Tuple ใน Entity A

Page 26: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 26

ความสมพนธระหวาง Entity (Entity Relationship)

ภาพท 3.5 ความสมพนธแบบ 1:M

Page 27: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 27

ความสมพนธระหวาง Entity (Entity Relationship)

ความสมพนธแบบกลมตอกลม (M:N)

ลกษณะความสมพนธท 1 Tuple ใน Entity A มความสมพนธ หรออางองกบ

Tuple ใน Entity B ไดมากกวา 1 Tuple และในทางกลบกน 1 Tuple ใน Entity

B มความสนพนธกบ Tuple มากกวา 1 Tuple ใน Entity A

Page 28: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 28

Page 29: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 29

ความสมพนธระหวาง Entity (Entity Relationship)

ภาพท 3.6 ความสมพนธแบบ M:N

Page 30: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 30

กฎความคงสภาพ (Integrity Rule)

หมายถงกฎเกณฑทกาหนดขนมาสาหรบรกษาคณสมบตของความเปน

ตาราง และความสมพนธระหวางตาราง

แบงออกเปน 2 แบบคอ

กฎความคงสภาพของ Entity (Entity Integrity Rule)

กฎความคงภาพของการอางอง (Referential Integrity Rule)

Page 31: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 31

กฎความคงสภาพ (Integrity Rule)

กฎความคงสภาพของ Entity (Entity Integrity Rule)

ใชสาหรบรกษาคณสมบตของความเปน Relation นนคอ Attribute ทเปน

Primary Key จะตองมคาทมความเปนเอกลกษณ และเปนคาวางไมได หมายถง

Primary Key จะไมมคาไมได

Page 32: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 32

กฎความคงสภาพ (Integrity Rule)

กฎความคงภาพของการอางอง (Referential Integrity Rule)

ใชสาหรบรกษาความสมพนธระหวาง Relation

นนคอ ถา R1 เปน Relation ทม Foreign Key ทอางองถง Primary Key ใน

Relation R2 คาของ Foreign Key ใน R1 จะตองมคาเทากบ Primary Key ของ

Tuple ใด Tuple หนงใน R2

หมายถงคาของ Foreign Key จะตองสามารถอางองใหตรงกบคาของ Primary

Key ได จงจะอางองขอมลระหวางสอง Relation ได

Page 33: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 33

กฎความคงสภาพ (Integrity Rule)

Page 34: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 34

การรกษากฎความคงสภาพ

แบงออกเปน 3 ประเภทคอ

กระทาแบบเปนทอด ๆ (Cascade)

ยอมแบบมเงอนไข (Restricted)

เปลยนเปนคาวาง (Nullify)

Page 35: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 35

การรกษากฎความคงสภาพ

กระทาแบบเปนทอด ๆ (Cascade)

เปนการอนญาตให ลบ หรอแกไขขอมลของ Primary Key ในตารางทถกอางองจากตารางอน

ซง DBMS จะอนญาตใหทาการลบ หรอแกไขขอมลนนได แต DBMS จะทาการแกไข หรอลบ

ขอมลในตารางทมความสมพนธทงหมด

Page 36: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 36

การรกษากฎความคงสภาพ

ยอมแบบมเงอนไข (Restricted)

การอนญาตให ลบ หรอแกไขขอมลจะทาไดกตอเมอ ขอมลของ Primary Key ใน Relation

หนงไมมขอมลทถกอางองในอก Relation หนง

Page 37: 006 - Relational Database · 2017. 6. 15. · Chapter 3 - Relational Database 2 ฐานข อมูลเชงสิัมพันธ ฐานข อมูลเชิงสัมพันธ

Chapter 3 - Relational Database 37

การรกษากฎความคงสภาพ

เปลยนเปนคาวาง (Nullify)

ถาตองการลบ หรอแกไขขอมลของ Primary Key ตว DBMS เปลยนแปลงคา Foreign Key

ของตารางทอางอง ใหกลายเปนคาวาง