ฐานข้อมูลเชิงสัมพันธ์ Relational...
Transcript of ฐานข้อมูลเชิงสัมพันธ์ Relational...
Chapter 04 ฐานขอมลเชงสมพนธ Relational Database
ความหมายของฐานขอมลเชงสมพนธ
เปนการจดเกบรวบรวมขอมลเปนแถวและคอลมนในลกษณะตารางสองมต ทประกอบไปดวย Attribute ทแสดงคณสมบตของ Relation หนงๆ โดย Relation ตางๆ ไดผานกระบวนการท าให Relation เปนบรรทดฐาน (Normalized) ในระหวางการออกแบบเพอลดความซ าซอน และเพอใหการจดการฐานขอมลเปนไปอยางมประสทธภาพ
ความหมายของฐานขอมลเชงสมพนธ
เปนฐานขอมลซงใหภาพของขอมลในระดบภายนอก (External Level) และระดบแนวคด(Conceptual Level) Relations ตางๆ ในฐานขอมลจะประกอบดวย attributes ตางๆ ทถกออกแบบเพอลดความซ าซอนของขอมลและสามารถเรยกใชขอมลไดอยางมประสทธภาพ โดยมระบบจดการฐานขอมลเปนผจดการฐานขอมล (RDBMS) ตามทฐานขอมลไดออกแบบไว
Relation และ Table ทงสองค าสามารถใชรวมกนเพอใชแทน ความหมายเดยวกนไดในเรองของฐานขอมล
ความเปนมาของ Relational Database
ฐานขอมลเชงสมพนธเปนรปแบบของฐานขอมลทคดคนโดย อ เอฟ คอดด (E.F. Codd) เมอป 1970
Codd สราง Relational Model ขนโดยมทฤษฎเซต ทางคณตศาสตรมารองรบ
สามารถแกไขปญหา Data Redundancy, Data Inconsistency, Data Independence, Security
น าเสนอวธเรยกใชขอมลทงาย ไมจ าเปนตองรเลยวาขอมลถกเกบอยางไร
แนวคดของ Codd ถกน ามาพฒนาเปน DBMS ตวแรกคอ Oracle
ฐานขอมลเชงสมพนธ
ฐานขอมลเชงสมพนธเปนรปแบบฐานขอมลทเขาใจงายส าหรบผใช ไมซบซอน
เปนรปแบบฐานขอมลทมระบบจดการฐานขอมล (Database Management Systems: DBMS) สนบสนนในการจดการฐานขอมลมากมาย อาทเชน DB2, ORACLE, INFORMIX, Power-Builder, INGRES
ท าใหการจดการฐานขอมลเชงสมพนธ สามารถตอบสนองความตองการของผใชในเรองการจดการฐานขอมลของระบบไดอยางมประสทธภาพ
ขอดของระบบฐานขอมลเชงสมพนธ
1. เปนกลมของ Relation หรอตารางทถกจดเกบเปนแถวและคอลมนท าใหผใชงานมองเหนภาพของขอมลไดงาย
2. ผใชไมจ าเปนตองรวาขอมลถกจดเกบจรงอยางไร รวมถงวธการเรยกใชขอมล (Access Approach)
3. การเรยกใชหรอเชอมโยงขอมลสามารถท าไดงาย 4. ภาษาทใชในการเรยกดขอมลเปนลกษณะคลายภาษาองกฤษ และไมจ าเปนตองเขยนเปนล าดบขนตอน เชน ภาษา SQL
โครงสรางฐานขอมลเชงสมพนธ
ภาพท 3.1 โครงสรางของตาราง
มการใชโครงสรางขอมลในเชงตรรกะเพยงรปแบบเดยวเทานน คอ รเลชน โดยทรเลชนจะถกมองเหนในลกษณะของตาราง (table) ทมคณสมบต ดงน 1. แตละแถวใชแทน Tuple หรอ Record ใน Relation 2. ล าดบของ Tuple ไมส าคญ 3. ล าดบของ Column ไมมความส าคญ 4. ขอมลในแตละ Tuple ตองไมซ ากน
โครงสรางฐานขอมลเชงสมพนธ
เปนฐานขอมลทมโครงสรางขอมลแบบ Relational Model คอฐานขอมลจะประกอบดวยตาราง (Relation) ทมความสมพนธกน
ภาพท 3.1 โครงสรางของตาราง
โครงสรางฐานขอมลเชงสมพนธ
Relation เปนตารางสองมต ทประกอบดวย Tuple และ Attribute เพอจดเกบขอมลตาง ๆ รปแบบของ Relation สามารถเขยนแทนดวยสญลกษณดงน
Attribute หมายถง คณลกษณะเฉพาะของแตละ Entity เปนคอลมนใน Relation จากภาพประกอบดวย 4 Attribute
โครงสรางฐานขอมลเชงสมพนธ
Tuple เปนแถวในแตละ Relation จากภาพท 5 ประกอบดวย 5 Tuple
ประกอบดวยตวอยางขอมลดงน
โครงสรางฐานขอมลเชงสมพนธ
Domain เซตของคาทเปนไปไดในแอตทรบวตนน แตละโดเมนจะถกก าหนดดวย ชอ, ชนดขอมล(data type) และ รปแบบ (Format) ซงเปนการก าหนดขอบเขตคาขอมลและชนดขอมลของแตละ Attribute ทสามารถเปนไปได จากภาพ Domain ของ SEX คอกลมของเพศทงหมดทเปนไปไดคอ M และ F เทานน
โครงสรางฐานขอมลเชงสมพนธ
Degree เปนจ านวนของ Attribute (คอลมน) ใน Relation นน คาของดกรมกจะไมมการเปลยนแปลง จากภาพ ประกอบดวย 4 Degree
โครงสรางฐานขอมลเชงสมพนธ
Cardinality เปนจ านวน Tuple (แถว) ทบรรจอยใน Relation และมความสมพนธใน Tuple ของอก Relation หนง
โครงสรางฐานขอมลเชงสมพนธ
จากตาราง STAFF และ DEPARTMENT จะมความสมพนธระหวางกนกลาวคอ ในแตละแผนกจะประกอบดวยพนกงานหลายคน ดงนนความสมพนธระหวาง Relation ทงสองจะม Cardinality เทากบ 1:M
โครงสรางฐานขอมลเชงสมพนธ
ศพททางเทคนคในฐานขอมลจะมชอเรยกทแตกตางกน แตมความหมายเดยวกน ดงน
โครงสรางฐานขอมลเชงสมพนธ
เปรยบเทยบศพททเกยวของทวไป
ศพทเทคนค ศพททวไป รเลชน(Relation) ตาราง(Table)
ทเพล(Tuple) แถว(Row) หรอ เรคคอรด(Record)
แอททรบวต(Attribute) คอลมน(Column) หรอ ฟลด(Field)
คารดนาลลต(Cardinality) จ านวนแถว(Number of rows)
ดกร(Degree) จ านวนคอลมน(Number of columns)
โดเมน(Domain) ขอบเขตคาของขอมล
18
ประเภทของ Relation
1. รเลชนหลก (Base Relation) เปนตารางทใชในการเกบขอมลจรงเพอน าขอมลไปใช ถกสรางดวยภาษาส าหรบนยามขอมล(DDL) เชน ภาษา SQL ค าสง Create Table เปนการสราง Relation หลก
2. วว (View) เปนตารางทถกสรางขนตามความตองการของผใชแตละคน โดยท าการววจากรเลชนหลก ชวยใหการรกษาความปลอดภยของฐานขอมลท าไดโดยงาย เพราะฉะนนววจงเปนตารางสมมตหรอตารางทแปลคามา (Virtual Table หรอ Derives Table) จะไมถกจดเกบจรง ๆ ในระบบ
19
Relation Operators หมายถง Operators ทสามารถด าเนนการหรอใชไดในฐานขอมลเชงสมพนธ การใช Relational Operators จะใหผลลพธทไดเปน Relatioเสมอไมวาจะเปน Operators ทการกระท ากบ 1 หรอ 2 Relation และผลลพธดงกลาวสามารถใชเปนโอเปอแรนดของกจกรรมทจะเกดขนในภายหลงไดอกดวย
20
Relation Operators
ชนดของ Operator 1. โอเปอเรเตอรในการจดการขอมล (mainpulative operators) ไดแก Insert, Delete, Update
2. โอเปอเรเตอรพนฐาน (basic operators) เปนโอเปอเรเตอรทมาจากพชคณตเชงสมพนธ (Relational algebra) ไดแก Selection, Projection, Join, Division, Union, Intersection, Difference, Cartesian, Product
Relation Operators
กฎ 12 ขอของ Codd 1. กฎสารสนเทศ (The information rule) : สารสนเทศทงหมดในฐานขอมลตองแสดงอยในรปแบบเดยวเทานน คอ Relation ซงถอวาเปนหลกการพนฐานของแบบจ าลองเชงสมพนธ 2. กฎการรบประกนการเขาถง (The quaranteed access rule) : คาทกคาทถกจดเกบไวในฐานขอมล ตองสามารถอางองไดในทางตรรกะโดยการใช ชอตาราง ชอคอลมน และคาของคยหลก 3. การจดการคา Null อยางเปนระบบ (Systematic treatment of null values) ระบบจดการฐานขอมลตองมการใชคา Null แทน “สารสนเทศทขาดหายไป (missing information) หรอไมมคาสารสนเทศทเหมาะสม (in applicable information)” อยางเปนระบบ
22
Relation Operators
4. แอคทพออนไลนแคททาลอคทอยบนพนฐานของแบบจ าลองเชงสมพนธ (Active online catalog based on the relational model) ระบบตองสนบสนนRelationแบบOnlineทสามารถเขาถงไดโดยผใชทมสทธผานทางภาษาควร
5. กฎภาษาขอมล (The Comprehensive data sublanguage rule) ระบบตองสนบสนนภาษาทเปน Relation อยางนอย 1 ภาษา ทสามารถใชไดทงแบบโตตอบและผานทางโปรแกรมสนบสนนการนยามขอมลรวมทงการจดการขอมล ความมนคงและเงอนไข Integrity การจดการ Transaction
6. กฎการแกไขวว (The view update rule) ววทกววสามารถเปลยนแปลงแกไขไดทางทฤษฎตองสามารถเปลยนแปลงแกไขโดยระบบ
23
Relation Operators
7. การแทรก แกไข และลบในระดบสง (High-level insert, update and
delete) ระบบตองสนบสนนการแทรก แกไข และลบขอมลในลกษณะของเซต
8. ความเปนอสระของขอมลเชงกายภาพ (Physical data independence)
การเปลยนแปลงใดๆ ในระดบ Schema ทางกายภาพจะไมมผลกระทบตอ
Schema ทางตรรกะ
9. ความเปนอสระของขอมลเชงตรรกะ (Logical data independence) การ
เปลยนแปลงใดๆ ใน Schema ทางตรรกะจะไมมผลกระทบตอโปรแกรมประยกต
24
Relation Operators
10. ความเปนอสระของอนทกรต (Integrity independence) เงอนไขของ
Integrity ตองมการก าหนดแยกตางหากจากโปรแกรมประยกต และจดเกบไวใน
แคททาลอค ทงนท าใหเกดความเปนไปไดในการทจะเปลยนแปลงเงอนไขของ
Integrity โดยไมมผลกระทบตอโปรแกรมประยกตทมอย
11. ความเปนอสระของการกระจาย (Distribution independence) โปรแกรม
ทมอยแลวสามารถท างานตอไปได เมอ Version การกระจายเรมถกท ามาใช
12. กฎการไมมเวอรชนยอย (The nonsubversion rule) ถาระบบอนญาตใหม
การตดตอไดในระดบต าสด คอ ครงละ Record และการตดตอนตองไมถกใชเพอ
เปนทางลดโดยไมผานระบบความมนคงหรอเงอนไข Integrity
คณสมบตของ Relation (Properties of Relations)
1. Relation ตองมชอก ากบ แตละชอตองแตกตางกน ซ ากนไมได 2. Attribute ของ Relation มไดเพยงคาเดยว (Single Value) 3. ชอใน Attribute ตองแตกตางกน ซ ากนไมได 4. คาของขอมลใน Attribute เปนไปตามขอก าหนดของ Domain ใน
Attribute นน ๆ 5. การเรยงล าดบของ Attribute ไมมความส าคญใดๆ 6. Tuple ตองมความแตกตางกน จะไมม Tuple ทซ ากน 7. การเรยงล าดบของ Tuple ไมมความส าคญใด ๆ
คณลกษณะในการจดเกบขอมลของรเลชน
1. ขอมลในแตละแถวจะไมซ ากน
2. การเรยงล าดบของขอมลในแตละแถวไมเปนสาระส าคญ
คณลกษณะในการจดเกบขอมลของรเลชน
3. การเรยงล าดบของ Attribute จะเรยงล าดบกอนหลงอยางไรกได
คณลกษณะในการจดเกบขอมลของรเลชน
4. คาของขอมลในแตละ Attribute ของ Tuple หนงๆ จะบรรจขอมลไดเพยงคาเดยว (Single Value)
คณลกษณะในการจดเกบขอมลของรเลชน
5. คาของขอมลในแตละ Attribute จะบรรจคาของขอมลประเภทเดยวกน
คณลกษณะในการจดเกบขอมลของรเลชน
คย (Keys)
คอ สงทใชในการก าหนดความเปนเอกลกษณ (Uniqueness property) ของแถวในความสมพนธ
ท าใหการเขาถงขอมลบนฐานขอมลเปนไปไดอยางรวดเรว ท าใหสามารถแยกแยะขอมลในฐานขอมลใหเปนไปอยางถกตอง
คย (Keys)
คยหลก (Primary Key: PK) Key ทใชในการอางถง Entity ในฐานขอมล โดยท Key นนจะตองไดมาจาก
Attribute ทมคณสมบตของขอมลทเปนคาเอกลกษณ (Unique) หรอมคาทไมซ าซอนกน
Primary Key เปนขอมลส าคญทจะท าใหการเขาถงขอมลบนฐานขอมลเปนไปไดอยางรวดเรว ดงนนผใชจงควรก าหนด Primary Key ใหชดเจนตงแตข นตอนออกแบบฐานขอมล
คยรอง (Secondary Key) หมายถง Attribute ทไมใช Primary Key แตสามารถใชในการสบคนขอมล จดเรยงขอมล จาก Relation โดยท Secondary Key ไมจ าเปนตองมคาเปนเอกลกษณ
คย (Keys)
คยผสม (Composite Key) ใน Relation อาจประกอบดวย Attribute ทมคณสมบตเปน Primary
Key ไดมากกวา 1 Attribute ดงนนเมอน า Attribute มารวมกน จะท าให Attribute นนมคณสมบตทเปนเอกลกษณ
การน าฟลดตงแต 2 ฟลดขนไปมารวมกน เพอใหมคณสมบตเปน Primary Key
เนองจากหากใชฟลดใดฟลดหนงเปน PK จะสงผลใหขอมลในแตละเรคอรดซ าซอนได
คย (Keys)
คย (Keys) คยผสม (Composite Key)
คยคแขง (Candidate Key) หมายถง Attribute ทมคณสมบตทสามารถน ามาเปนคยหลกได ซงสามารถ
ประกอบดวย Attribute เดยว หรอมากกวา 1 Attribute กได แตถาประกอบดวย Attribute มากกวา 1 Attribute จะเรยกวา Composite
Key ดงนนจงไมอนญาตใหสวนประกอบของ Key เปนคาวางได (Null Value)
คย (Keys)
คยคแขง (Candidate Key) ในแตละ Relation อาจม Attribute ทท าหนาทเปนคยหลกไดมากกวาหนง
Attribute โดยเรยก Attribute เหลานวา คยคแขง (Candidate Key)
เชน นกศกษาแตละคน ม รหสประจ าตวนกศกษา รหสประจ าตวบตรประชาชน
โดยปกตแลวจะเลอก Candidates Key ทเลกทสดเปน Primary Key โดยเราจะเรยก Candidate Key ทถกเลอกมาใชเปนคยหลกในตารางวา
“Primary Key” และเรยก Candidate Key ทไมถกเลอกเปนคยหลกวา “คยส ารอง (Alternate Key)”
Candidate Key สามารถเปน Primary Key และ Alternate Key ได
คย (Keys)
รหส ชอ สกล บตรประชาชน
ชนเรยน สาขา
คยคแขง Candidate Key
คยหลก (Primary Key) คยส ารอง Alternate Key
คย (Keys)
คยนอก (Foreign Key) หมายถง Attribute ใน Relation หนงทใชอางองไปยง Attribute ทท าหนาทเปน Primary Key ของอก Relation หนงทมความสมพนธกน
คย (Keys)
คยนอก (Foreign Key) คอคยซงประกอบดวยแอทรบวตหรอกลมของแอตทรบวตในรเลชนหนงซงมคณสมบตเปนคยหลก และไปปรากฏอกรเลชนหนง เพอประโยชนในการเชอมโยงขอมลซงกนและกน
เปน Key ทใชในการเชอมโยงขอมลระหวางตารางเขาดวยกน เชน ฐานขอมลของธนาคารแหงหนงประกอบดวย 2 ตาราง คอ ตารางบญชทลกคาเปด (เลขประจ าตวลกคา, ชอ-นามสกล และ
ประเภทของบญช ) ตารางลกคา (เลขประจ าตวลกคา, ชอ-นามสกล และทอย)
หากตองการทราบวาลกคารายหนงเปดบญชใดบาง กเชอมโยงขอมล 2 ตารางเขาดวยกน โดยใชเลขประจ าตวลกคาเปน Foreign Key
คย (Keys)
ตวอยาง Key แบบตาง ๆ
เลขประจ าตวประชาชน
ชอ
นามสกล
อาย
3501552150054
สมชาย
แซตง
25
3210077565107
สมศร
แซอง
42
4110597520235
สมฤทย
แซตง
23
2156800512473
สมปอง
แซแต
16
7812350453784
สมชย
แซเอง
50
Primary Key ?
ID
ชอ
นามสกล
อาย
เพศ 1
สมชาย
แซตง
25
ชาย 2
สมศร
แซอง
42
หญง 3
สมฤทย
แซตง
23
ชาย 4
สมปอง
แซแต
16
ชาย 5
สมชย
แซเลง
50
ชาย
Primary Key ?
ID เพศ
รหสสนคา ชอสนคา จ านวน
รหสพนกงาน รหสสนคา ยอดขาย
Foreign Key ? ตารางสนคา
ตารางยอดขาย
กฎเกยวของกบคยในฐานขอมลเชงสมพนธ คอขอบงคบหรอเงอนไขในการอนญาตใหเกบเฉพาะขอมลทเหมาะสมลงในฐานขอมล
เพอใหการเลอกขอมลจากฐานขอมลมความถกตองประเภทของเงอนไข
Key constraint ม 2 รปแบบ คอ คยหลก คาจะไมเปน NULL Null ไมใชคาทเปน 0 (กรณเปนตวเลข) และไมใช space (ในกรณเปนขอความ)
Null หมายถงไมทราบคาหรอไมรคาแนชด
มคาเปน Null หมายถงอะไร ? Null เปนศพทเฉพาะใน Relational Database หมายถง ไมทราบคาขอมลทรแนชด เราสามารถก าหนดใหคาของคอลมนใดๆ เปน Null ได (ถาเปนไปไดควรใสใหครบจะดทสด ) ยกเวนคอลมนทเปน Primary Key เพราะจะไมสามารถน า Primary Key มาใชเขาถงขอมลในแตละแถวได
ตวอยางตารางทแสดงคา Null
รหสนกศกษา รหสวชา เกรดทได
4900222 E182
4900123 M117 C
4900125 P210 B+
4900236 E182 A
กฎการควบคมความถกตองของขอมล (Data Integrity) ฐานขอมลไมสามารถรไดเองวาขอมลทเกบอยนนสอดคลองกบความเปนจรงหรอไม เราจงตองบอกใหฐานขอมลรดวยสงทเรยกวา กฎการควบคมความถกตองของขอมล หรอ เปนกฎเกณฑทก าหนดขนเพอใชควบคมความถกตองใหกบขอมลในฐานขอมลใดฐานขอมลหนงโดยเฉพาะ
ตวอยางงานระบบทะเบยนนกศกษาจะม Integrity Rule ดงตอไปน นกศกษาทกคนตองสงกดคณะทมอยเทานน วชาทลงทะเบยนตองเปนวชาทเปดสอนเทานน เกรดเฉลยแตละเทอมจะอยระหวาง 0.00-4.00 เทานน เกรดทไดจะตองเปน A,B+,B,C+,C,D+,D หรอ F เทานน
เปนตน
กฎความคงสภาพ (Integrity Rule) หมายถงกฎเกณฑทก าหนดขนมาส าหรบรกษาคณสมบตของความเปนตาราง และความสมพนธระหวางตาราง แบงออกเปน 2 แบบคอ
1. กฎความคงสภาพของ Entity (Entity Integrity Rule) Attribute ใดทจะเปนคยหลก(PK) ขอมลใน Attribute นนจะเปนคาเอกลกษณ
และเปนคาวาง(Null) ไมได
กฎความคงสภาพ (Integrity Rule) 2. กฎความคงภาพของการอางอง (Referential Integrity Rule)
คาของคยหลก(PK)ได จงจะเชอมโยงหรออางองขอมลระหวาง 2 Relation ได Foreign Key จะตองสามารถอางองใหตรงกบคาของ Primary Key ได จงจะ
อางองขอมลระหวางสอง Relation ได คาของ Foreign Key ตองมาจากคาของ Primary Key จากตารางทเกยวของ
เทานน นนคอ ถา R1 เปน Relation ทม Foreign Key ทอางองถง Primary Key ใน
Relation R2 คาของ Foreign Key ใน R1 จะตองมคาเทากบ Primary Key ของ Tuple ใด Tuple หนงใน R2
กฎความคงสภาพ (Integrity Rule)
รหสสนคา ชอสนคา จ านวน
bk00198 เสอยด 100
cd00034 กางเกงขายาง 250
รหสพนกงาน รหสสนคา ยอดขาย
HY001 bk00198 80
HY002 cd00034 200
ตารางยอดขาย
ตารางสนคา
กฎความคงสภาพ (Integrity Rule)
การรกษากฎความคงสภาพ แบงออกเปน 3 ประเภทคอ 1. กระท าแบบเปนทอด ๆ (Cascade)
เปนการอนญาตให ลบ หรอแกไขขอมลของ Primary Key ในตารางทถกอางองจากตารางอน ซง DBMS จะอนญาตใหท าการลบ หรอแกไขขอมลนนได แต DBMS จะท าการแกไข หรอลบขอมลในตารางทมความสมพนธทงหมด
เชน ถารหสแผนกถกแกไขหรอลบ ขอมลพนกงานทกคนทสงกดแผนกนนจะถกลบหรอแกไขไปดวย
การรกษากฎความคงสภาพ
1. กระท าแบบเปนทอด ๆ (Cascade)
2. ยอมแบบมเงอนไข (Restricted) การอนญาตให ลบ หรอแกไขขอมลจะท าไดกตอเมอ ขอมลของ Primary Key ใน Relation หนงไมมขอมลทถกอางองในอก Relation หนง
เชน รหสแผนกจะถกแกไขหรอลบไดกตอเมอไมมพนกงานคนใดสงกดแผนกนน
การรกษากฎความคงสภาพ
3. เปลยนเปนคาวาง (Nullify) ถาตองการลบ หรอแกไขขอมลของ Primary Key ตว DBMS เปลยนแปลงคา
Foreign Key ของตารางทอางอง ใหกลายเปนคาวาง เชน พนกงานทสงกดแผนกขายจะถกเปลยนคาเปนคาวางกอน หลงจากนน
การลบขอมลของแผนกขายจงจะถกลบหรอแกไข
การรกษากฎความคงสภาพ
ค าถามทายบท 1. โครงสรางขอมลเชงสมพนธประกอบดวยอะไรบาง จงอธบาย 2. คณสมบตในการจดเกบขอมลของรเลชนมอะไรบาง 3. รเลชนประกอบดวยคยประเภทตางๆ อะไรบาง จงอธบายพรอมยกตวอยางประกอบประเภทคยดงกลาว 4. Null หมายถงอะไรใน Relational Database 5. เหตใดจงตองมการน า Integrity rule มาใชในฐานขอมล 6. ความสมพนธระหวางรเลชนมกประเภท อะไรบาง จงยกตวอยางประกอบ (หามยกตวอยางซ ากบสไลดประกอบการเรยน)