ฐานขอมลเชงสมพนธ
Relational Database
โอฬารก สรนตะ
Cs-Mis
Chapter 3 - Relational Database 2
ฐานขอมลเชงสมพนธ
ฐานขอมลเชงสมพนธเปนรปแบบของฐานขอมลทคดคนโดย อ เอฟ คอดด (E.F. Codd) เมอป 1970
ฐานขอมลเชงสมพนธเปนรปแบบฐานขอมลทเขาใจงายสาหรบผใช ไมซบซอน
เปนรปแบบฐานขอมลทมระบบจดการฐานขอมล (Database Management Systems: DBMS) สนบสนนในการจดการฐานขอมลมากมาย อาทเชน DB2, ORACLE, INFORMIX, Power-Builder, INGRES
ทาใหการจดการฐานขอมลเชงสมพนธ สามารถตอบสนองความตองการของผใชในเรองการจดการฐานขอมลของระบบไดอยางมประสทธภาพ
Chapter 3 - Relational Database 3
ฐานขอมลเชงสมพนธ
โมเดลนมวตถประสงคเพอรกษาความเปนอสระของขอมล (Data Independence) และความเปนอสระของโครงสรางขอมลในแตละระดบ (Structural Independence)
กลาวคอโปรแกรมประยกตใชงานจะไมถกกระทบ หากมการปรบเปลยนสถาปตยกรรมดานกายภาพ เชนการปรบเปลยนโครงสรางการจดเกบหรอเรยกใชขอมลจากแฟมในหนวยความจาสารองกจะไมกระทบโปรแกรมประยกตใชงาน
มคณสมบตทชวยลดความซาซอน ตลอดจนปญหาทเกดจากการปรบปรง เพม ลบขอมล ดวยแนวคดในการทาใหเปนบรรทดฐาน (Normalization) มาใชในการออกแบบ
Chapter 3 - Relational Database 4
โครงสรางฐานขอมลเชงสมพนธ
เปนฐานขอมลทมโครงสรางขอมลแบบ Relational Model คอฐานขอมล
จะประกอบดวยตาราง (Relation) ทมความสมพนธกน
ภาพท 3.1 โครงสรางของตาราง
Chapter 3 - Relational Database 5
โครงสรางฐานขอมลเชงสมพนธ
Relation
เปนตารางสองมต ทประกอบดวย Tuple และ Attribute เพอจดเกบ
ขอมลตาง ๆ รปแบบของ Relation สามารถเขยนแทนดวย
สญลกษณดงน
Chapter 3 - Relational Database 6
โครงสรางฐานขอมลเชงสมพนธ
Attribute
เปนคอลมนใน Relation จากภาพท 5 ประกอบดวย 4 Attribute
Chapter 3 - Relational Database 7
โครงสรางฐานขอมลเชงสมพนธ
Tuple
เปนแถวในแตละ Relation จากภาพท 5 ประกอบดวย 5 Tuple
ประกอบดวยตวอยางขอมลดงน
Chapter 3 - Relational Database 8
โครงสรางฐานขอมลเชงสมพนธ
Domain
เปนการกาหนดขอบเขตคาขอมลและชนดขอมลของแตละ Attribute ทสามารถ
เปนไปได จากภาพท 5 Domain ของ SEX คอกลมของเพศทงหมดทเปนไปได
คอ M และ F เทานน
Chapter 3 - Relational Database 9
โครงสรางฐานขอมลเชงสมพนธ
Degree
เปนจานวนของ Attribute ใน Relation คาของดกรมกจะไมมการ
เปลยนแปลง จากภาพท 3.1 ประกอบดวย 4 Degree
Chapter 3 - Relational Database 10
โครงสรางฐานขอมลเชงสมพนธ
Cardinality
เปนจานวน Tuple ทบรรจอยใน Relation และมความสมพนธใน Tuple ของอก
Relation หนง
Chapter 3 - Relational Database 11
โครงสรางฐานขอมลเชงสมพนธ
จากตาราง STAFF และ DEPARTMENT จะมความสมพนธระหวางกน
กลาวคอ ในแตละแผนกจะประกอบดวยพนกงานหลายคน ดงนน
ความสมพนธระหวาง Relation ทงสองจะม Cardinality เทากบ 1:M
Chapter 3 - Relational Database 12
โครงสรางฐานขอมลเชงสมพนธ
ศพททางเทคนคในฐานขอมลจะมชอเรยกทแตกตางกน แตมความหมายเดยวกน ดงน
Chapter 3 - Relational Database 13
ขอดของฐานขอมลเชงสมพนธ
1. เปนโมเดลทสอดคลองกบหลกการของฐานขอมล คอผใชไมตองยงเกยว
ในเรองของโครงสรางทางกายภาพในระดบภายใน (Internal Level)
เพราะตารางเปนขอมลในระดบความคด
2. สามารถใชแบบสอบถาม (Query) ในลกษณะของการประมวลผลหลาย
รายการขอมล (Record) ไดในครงเดยว
3. ใชภาษาแบบสอบถามทเปนมาตรฐานคอ SQL (Structured Query
Language)
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 ไมมความสาคญใด ๆ
Chapter 3 - Relational Database 15
คย (Keys)
เมอฐานขอมลมขนาดใหญกจะมขอมลจานวนมากขน ขอมลเหลานอาจม
คาแตกตางกน คลายกน หรอแมกระทงเหมอนกน ทาใหการแยกแยะ
โดยอาศยเพยงตวขอมลอยางเดยวทาไดอยางยากลาบาก
ดงนนจงมการกาหนดคา Keys ประจาขอมลเพอทาใหการแยกแยะ
ขอมลในฐานขอมลเปนไปอยางถกตอง
คณสมบตหนงทสาคญของความสมพนธกคอ ความเปนเอกลกษณ
(Uniqueness property) สงทใชกาหนดความเปนเอกลกษณของแถวใน
ความสมพนธ เรยกวา Keys
Chapter 3 - Relational Database 16
คย (Keys)
คยหลก (Primary Key: PK)
Key ทใชในการอางถง Entity ในฐานขอมล โดยท Key นนจะตองไดมาจาก Attribute ทม
คณสมบตของขอมลทเปนคาเอกลกษณ (Unique) หรอมคาทไมซาซอนกน
Primary Key เปนขอมลสาคญทจะทาใหการเขาถงขอมลบนฐานขอมลเปนไปไดอยางรวดเรว
ดงนนผใชจงควรกาหนด Primary Key ใหชดเจนตงแตขนตอนออกแบบฐานขอมล
Chapter 3 - Relational Database 17
คย (Keys)
คยผสม (Composite Key)
ใน Relation อาจประกอบดวย Attribute ทมคณสมบตเปน Primary Key ไดมากกวา 1
Attribute ดงนนเมอนา Attribute มารวมกน จะทาให Attribute นนมคณสมบตทเปนเอกลกษณ
Chapter 3 - Relational Database 18
คย (Keys)
คยรอง (Secondary Key)
หมายถง Attribute ทไมใช Primary Key แตสามารถใชในการสบคนขอมล
จดเรยงขอมล จาก Relation โดยท Secondary Key ไมจาเปนตองมคาเปน
เอกลกษณ
Chapter 3 - Relational Database 19
คย (Keys)
คยคแขง (Candidate Key)
หมายถง Attribute ทมคณสมบตทสามารถนามาเปนคยหลกได ซงสามารถประกอบดวย
Attribute เดยว หรอมากกวา 1 Attribute กได
แตถาประกอบดวย Attribute มากกวา 1 Attribute จะเรยกวา Composite Key ดงนนจงไม
อนญาตใหสวนประกอบของ Key เปนคาวางได (Null Value)
Chapter 3 - Relational Database 20
คย (Keys)
คยนอก (Foreign Key)
หมายถง Attribute ใน Relation หนงทใชอางองไปยง Attribute ททาหนาทเปน Primary Key
ของอก Relation หนงทมความสมพนธกน
Chapter 3 - Relational Database 21
ภาพท 3.3 ตวอยาง Key แบบตาง ๆ
Chapter 3 - Relational Database 22
ความสมพนธระหวาง Entity (Entity Relationship)
รปแบบความสมพนธระหวาง Entity (Entity Relationship) เปนการ
แสดงความสมพนธของรายการขอมลในตารางหนง กบรายการขอมลใน
อกตารางหนง
รปแบบความสมพนธระหวาง Entity แบงออกเปน 3 รปแบบ
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
Chapter 3 - Relational Database 24
ความสมพนธระหวาง Entity (Entity Relationship)
ภาพท 3.4 ความสมพนธแบบ 1:1
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
Chapter 3 - Relational Database 26
ความสมพนธระหวาง Entity (Entity Relationship)
ภาพท 3.5 ความสมพนธแบบ 1:M
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
Chapter 3 - Relational Database 28
Chapter 3 - Relational Database 29
ความสมพนธระหวาง Entity (Entity Relationship)
ภาพท 3.6 ความสมพนธแบบ M:N
Chapter 3 - Relational Database 30
กฎความคงสภาพ (Integrity Rule)
หมายถงกฎเกณฑทกาหนดขนมาสาหรบรกษาคณสมบตของความเปน
ตาราง และความสมพนธระหวางตาราง
แบงออกเปน 2 แบบคอ
กฎความคงสภาพของ Entity (Entity Integrity Rule)
กฎความคงภาพของการอางอง (Referential Integrity Rule)
Chapter 3 - Relational Database 31
กฎความคงสภาพ (Integrity Rule)
กฎความคงสภาพของ Entity (Entity Integrity Rule)
ใชสาหรบรกษาคณสมบตของความเปน Relation นนคอ Attribute ทเปน
Primary Key จะตองมคาทมความเปนเอกลกษณ และเปนคาวางไมได หมายถง
Primary Key จะไมมคาไมได
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 ได
Chapter 3 - Relational Database 33
กฎความคงสภาพ (Integrity Rule)
Chapter 3 - Relational Database 34
การรกษากฎความคงสภาพ
แบงออกเปน 3 ประเภทคอ
กระทาแบบเปนทอด ๆ (Cascade)
ยอมแบบมเงอนไข (Restricted)
เปลยนเปนคาวาง (Nullify)
Chapter 3 - Relational Database 35
การรกษากฎความคงสภาพ
กระทาแบบเปนทอด ๆ (Cascade)
เปนการอนญาตให ลบ หรอแกไขขอมลของ Primary Key ในตารางทถกอางองจากตารางอน
ซง DBMS จะอนญาตใหทาการลบ หรอแกไขขอมลนนได แต DBMS จะทาการแกไข หรอลบ
ขอมลในตารางทมความสมพนธทงหมด
Chapter 3 - Relational Database 36
การรกษากฎความคงสภาพ
ยอมแบบมเงอนไข (Restricted)
การอนญาตให ลบ หรอแกไขขอมลจะทาไดกตอเมอ ขอมลของ Primary Key ใน Relation
หนงไมมขอมลทถกอางองในอก Relation หนง
Chapter 3 - Relational Database 37
การรกษากฎความคงสภาพ
เปลยนเปนคาวาง (Nullify)
ถาตองการลบ หรอแกไขขอมลของ Primary Key ตว DBMS เปลยนแปลงคา Foreign Key
ของตารางทอางอง ใหกลายเปนคาวาง