More Related Content Similar to ฐานข้อมูลเชิงสัมพันธ์ Similar to ฐานข้อมูลเชิงสัมพันธ์ (20) ฐานข้อมูลเชิงสัมพันธ์2. บทนา
การจัดเก็บฐานข้อมูลเชิงสัมพันธ์ ได้เริ่ มรู ้จกกัน บทความชื่อ A
ั
Relational Model of Data for Large Shared Data Banks ของ Dr.Edgar
Frank Codd หรื อ Dr. E. F. Codd ซึ่งขณะนั้นเป็ นนักวิจยอยูที่บริ ษท
ั ่
ั
IBM ได้ตีพิมพ์ในวารสาร Association of Computer Machinery (ACM)
journal เมื่อเดือนมิถุนายน ปี ค.ศ.1970 การสร้างโมเดลเชิงสัมพันธ์ได้
ใช้ทฤษฎีทางคณิ ตศาสตร์เกี่ยวกับเซต (Set) มาอธิบายการทางาน
แนวคิดของ Codd นี้ได้ถูกพัฒนาเป็ นซอฟต์แวร์ระบบฐานข้อมูลที่ชื่อว่า
Oracle จากบริ ษท Relational Software หรื อ บริ ษท Oracle ในปัจจุบน
ั
ั
ั
3. 3.1 ความหมายของฐานข้ อมูลเชิงสั มพันธ์
ฐานข้อมูลเชิงสัมพันธ์ (Relational
Database) เป็ นการ
รวบรวมข้อมูลในลักษณะตาราง 2 มิติ ประกอบด้วย แถว (Row) และ
คอลัมน์ (Column) ซึ่งแสดงคุณลักษณะและรายละเอียดต่าง ๆ โดย
ข้อมูลในตารางจะต้องผ่านกระบวนการบรรทัดฐานของข้อมูล
(Normalization) เพื่อลดความซ้ าซ้อนของข้อมูล
4. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์
่
3.2.1
รีเลชัน (Relation)
รี เลชัน (Relation) หรื อจะเรี ยกอีกอย่างว่า ตาราง
(table) หรื อในรู ปแบบของความสัมพันธ์ระหว่างข้อมูล (E-R
Model) เรี ยกว่า เอนทิตี (Entity) เป็ นการแสดงถึงรู ปแบบของ
ตาราง 2 มิติ ที่ประกอบด้วยคอลัมน์และแถวของข้อมูล
5. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
3.2.2
แอททริบิวท์ (Attribute)
แอททริ บิวท์ (Attribute) หรื อ คอลัมน์ (Column) เป็ น
การแสดงถึงคุณลักษณะของรี เลชัน อาจจะเรี ยกว่า เขตข้ อมูล เช่น รี เล
ชัน “สิ นค้า” ประกอบด้วยคอลัมน์ที่แสดงถึงแอททริ บิวท์ต่างๆ ได้แก่
รหัสสิ นค้า ชื่อสิ นค้า จานวนสิ นค้าคงเหลือ เป็ นต้น
6. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
3.2.3
ทัพเพิล (tuple)
ทัพเพิล (tuple)จะเรี ยกอีกอย่างว่า แถว (Row) หรื อ เร
คอร์ด (record) แถวจะเป็ นที่เก็บสมาชิกของรี เลชัน ดังนั้น แถว
แต่ละแถวในรี เลชันจะต้องมีคุณสมบัติที่เหมือนกันหมด หรื อ มีขอมูล
้
ตามคอลัมน์ที่เป็ นคุณลักษณะของรี เลชันเดียวกัน
7. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
โมเดลฐานข้อมูลเชิง โมเดลแบบ E-R โปรแกรมเมอร์ ผูใช้งานทัวไป
้
่
สัมพันธ์
รี เลชัน
เอนทิตี
แฟ้ มข้อมูล
ตาราง
แอททริ บิวท์
แอททริ บิวท์
เขตข้อมูล
ทัพเพิลหรื อเรคอร์ด สมาชิกของเอนทิตี ระเบียน
คอลัมน์
แถว
ที่มา (สมจิตร อาจอินทร์ และ งามนิจ อาจอินทร์, 2549, หน้า 128)
ตารางที่ 3.1 แสดงรู ปแบบคาศัพท์พ้ืนฐานของโมเดลเชิงสัมพันธ์
8. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
3.2.4
คาร์ ดินอลลิตี้ (Cardinality)
คาร์ดินอลลิต้ ี (Cardinality) คือ จานวนของทัพเพิลในหนึ่ง
รี เลชัน หรื อ จานวนแถวในหนึ่งตาราง
3.2.5 ดีกรี (Degree)
ดีกรี (Degree) คือ จานวนแอททริ บิวท์ในหนึ่งรี เลชัน หรื อ จานวน
คอลัมน์ในหนึ่งตาราง ยกตัวอย่างข้อมูลพนักงาน เพื่ออธิบาย
องค์ประกอบของรี เลชัน ดังรู ปที่ 3.1
10. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
3.2.6 โดเมน (Domain)
โดเมน (Domain) คือ กลุ่มหรื อขอบเขตของข้อมูลที่เป็ นไปได้ของแต่
ละแอททริ บิวท์ เช่น โดเมนของแอททริ บิวท์กาหนดเพศ ประกอบด้วย เพศหญิง
กับ เพศชาย โดเมนของแอททริ บิวท์อายุของพนักงานมีขอบเขตระหว่าง 18-60 ปี
เป็ นต้น
3.2.7 ค่ าว่ าง (Null Value)
ค่าว่าง (Null Value) ในที่น้ ีไม่ได้หมายถึงการกาหนดให้เป็ นศูนย์ หรื อ
ช่องว่างแต่เป็ นแอททริ บิวท์ที่ยงไม่มีค่าข้อมูลเก็บอยู่ อาจจะยังไม่ทราบค่าข้อมูลที่
ั
จะต้องใส่ ลงไปในแอททริ บิวท์น้ นๆ เมื่อทราบค่าข้อมูลในแอททริ บิวท์น้ น อาจมี
ั
ั
การกลับมาใส่ ขอมูลลงไปใหม่ได้ ยกเว้นแอททริ บิวท์ที่เป็ นคียหลักที่ไม่สามารถ
้
์
ทาให้เป็ นค่าว่างได้
11. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
3.2.8
คีย์หลัก (Primary Key)
คียหลัก (Primary Key) คือ แอททริ บิวท์ที่สามารถใช้
์
เจาะจงแถวใดแถวหนึ่งในรี เลชัน โดยข้อมูลแต่ละแถวจะไม่ซ้ าซ้อนกัน
บางครั้งอาจเรี ยกสั้น ๆ ว่า คีย ์
12. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
คุณสมบัตของคีย์หลัก
ิ
1. ข้อมูลของแอททริ บิ วท์ที่เป็ นคี ย หลัก จะมี ความเป็ นหนึ่ งเดี ยว
์
(uniqueness) กล่าวคือทุกๆ แถวของตารางจะต้องไม่มีขอมูลของแอททริ บิวท์
้
ที่เป็ นคียหลักนี้ซ้ ากัน
์
2. ต้องประกอบด้วยจานวนแอททริ บิวท์ที่นอยที่สุด (minimality)
้
แต่สามารถใช้เป็ นตัวชี้เฉพาะเจาะจงหรื ออ้างอิงถึงแถวใดแถวหนึ่ งในรี เลชัน
ได้
3. ค่าแอททริ บิวท์คียหลักต้องไม่เป็ นค่าว่าง (Not Null)
์
13. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
แอททริ บิวท์เป็ นคียหลักของรี เลชันจะแทนได้ดวยการขีดเส้นใต้แอททริ
์
้
บิวท์ดงกล่าว ดังแสดงในข้อความสัญลักษณ์ต่อไปนี้
ั
พนักงาน (รหัสพนักงาน, ชื่อพนักงาน, แผนก, เงินเดือน, รหัสหัวหน้างาน)
14. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
3.2.9
คีย์ร่วม (Composite Key)
คียร่วม (Composite Key) คือ คียหลักที่ประกอบด้วยแอ
์
์
ททริ บิวท์มากกว่าหนึ่งแอททริ บิวท์ ตัวอย่างดังรู ปที่ 3.2
การทางาน
รหัสพนักงาน รหัสโครงการ
จานวนชัวโมง
่
รู ปที่ 3.2 ตัวอย่าง
ล่วงเวลา
ข้อมูลที่
1001
1002
111
111
50
56
2001
1001
111
112
40
45
1002
112
36
่
เก็บอยูในรี เลชัน
การทางาน
15. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
แอททริ บิวท์เป็ นคียร่วมของรี เลชันจะแทนด้วยการขีดเส้นใต้แอททริ
์
บิวท์ ดังแสดงในข้อความสัญลักษณ์ต่อไปนี้
การทางาน (รหัสพนักงาน, รหัสโครงการ, จานวนชัวโมงล่วงเวลาทั้งหมด)
่
16. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
3.2.10
คีย์คู่แข่ งและคีย์สารอง (Candidate Key and Alternate Key)
แอททริ บิวท์หลายแอททริ บิวท์ที่มีคุณสมบัติที่สามารถเลือกขึ้นมา
เป็ นคียหลักได้ เราเรี ยกว่า คีย์คู่แข่ ง(Candidate Key)
์
นักศึกษา
รหัส
ชื่อนักศึกษา
นักศึกษา
48123623 นายสมปอง ปรี ชา
วิทยาการคอมพิวเตอร์
หมายเลขบัตร
ประชาชน
3 5101 00742 25 9
48123634 นายอานาจ อาจองค์
48123401 น.ส.กัญญา ยาใจ
วิทยาการคอมพิวเตอร์
เทคโนโลยีสารสนเทศ
3 5006 00014 11 7
3 5122 00987 44 8
48123429 น.ส.สายรุ ้ง สี สวย
เทคโนโลยีสารสนเทศ
3 5010 00641 88 3
รู ปที่
สาขาวิชา
่
3.3 ตัวอย่างข้อมูลที่เก็บอยูในรี เลชันนักศึกษา
17. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
3.2.11
นัลคีย์แอททริบิวท์ (Nonkey Attribute)
นัลคียแอททริ บิวท์ คือ แอททริ บิวท์อื่น ๆ ในรี เลชันที่ไม่ใช่ส่วนใด
์
ส่ วนหนึ่งของคียหลัก เช่น จากรู ปที่ 3.3 ถ้ากาหนดให้คียหลักคือแอทท
์
์
ริ บิวท์รหัสนักศึกษา ดังนั้น แอททริ บิวท์ชื่อนักศึกษา สาขาวิชา และ
หมายเลขบัตรประชาชน เป็ นนัลคียแอททริ บิวท์
์
18. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
3.2.12
คีย์นอก (Foreign Key )
คียนอก หรื อ คียอางอิง เป็ นแอททริ บิวท์หรื อกลุ่มแอททริ บิวท์ในรี
์
์้
เลชันหนึ่ง ซึ่งจะไปปรากฏเป็ นคียหลักกับอีกรี เลชันหนึ่ง ดังนั้นค่าคีย ์
์
นอกจะมีค่าเท่ากับค่าคียหลักในแถวในแถวหนึ่งของอีกรี เลชัน หรื อค่า
์
่
ในคียนอกจะต้องมีค่าอยูในโดเมนเดียวกับคียหลัก
์
์
19. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
คุณสมบัตของคีย์นอก
ิ
่
1. คียนอกจะเป็ นแอททริ บิวท์ หรื อกลุ่มของแอททริ บิวท์ที่อยูในรี เลชัน
์
หนึ่ งๆ ที่ค่าของแอททริ บิวท์น้ นไปปรากฏเป็ นคียหลักในอีกรี เลชัน (หรื ออาจเป็ น
ั
์
รี เลชันเดิมก็ได้)
2. คียนอกเปรี ยบเสมือนกาวเชื่อมข้อมูลในรี เลชันหนึ่ งกับอีกรี เลชันหนึ่ ง
์
ซึ่ งเป็ นการสร้างความสัมพันธ์ระหว่างรี เลชัน
ั
3. คียนอกและคียหลักของอีกรี เลชันที่มีความสัมพันธ์กน จะต้องอยู่
์
์
ภายใต้โดเมนเดียวกัน และคียนอกไม่จาเป็ นต้องมีชื่อเหมือนกับคียหลักของอีกรี เล
์
์
ั
ชันที่มีความสัมพันธ์กน
่
็
4. รี เลชันหนึ่งๆ อาจจะมีคียนอกอยูหรื อจะไม่มีกได้ แต่ทุกรี เลชันจะต้อง
์
มีคียหลักเสมอ
์
ที่มา (สมจิตร อาจอินทร์ และ งามนิจ อาจอินทร์, 2549, หน้า 133-135)
20. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
แอททริ บิวท์ที่เป็ นคียนอกของรี เลชันจะแทนได้ดวยการขีดเส้นปะใต้
์
้
แอททริ บิวท์ ดังกล่าว ดังแสดงในข้อความสัญลักษณ์ต่อไปนี้
รายวิชา (รหัสวิชา, ชื่อวิชา, วิชาที่ตองเรี ยนก่อน, รหัสอาจารย์ผสอน)
้
ู้
อาจารย์ผสอน (รหัสอาจารย์ผสอน, ชื่ออาจารย์ผสอน, ห้องพักอาจารย์)
ู้
ู้
ู้
21. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
ชื่อวิชา
วิชาที่ตอง
้
เรี ยนก่อน
รหัสอาจารย์
ผูสอน
้
วิเคราะห์และออกแบบระบบ
COM 2602
C020
COM 1301
การโปรแกรมภาษาคอมพิวเตอร์ 1
COM 1601
โครงสร้างข้อมูล
COM 2602
ระบบการจัดการฐานข้อมูล
C008
COM 3701
อาจารย์
ผู้สอน
รหัสวิชา
COM 2502
รายวิชา
ระบบสื่ อสารข้อมูล
C007
C005
COM 1301
รหัสอาจารย์ผสอน
ู้
ชื่ออาจารย์ผสอน
ู้
ห้องพักอาจารย์
C001
สายใจ พิมพ์ประภา
2111
C005
กิตติ ใจดีงาม
2113
C007
ชานน จงรักษา
2113
C008
อาภรณ์ คงดี
2112
C020
จุติภา รักงานดี
2112
C005
รู ปที่ 3.4 ตัวอย่างข้อมูลที่
่
เก็บอยูในรี เลชันรายวิชา
และรี เลชันอาจารย์ผสอน
ู้
22. 3.2 คาศัพท์ ทเี่ กียวข้ องกับฐานข้ อมูลเชิงสั มพันธ์ (ต่ อ)
่
ตารางที่ 3.2 แสดงตารางสรุ ปความหมายของคาศัพท์ต่างๆ
คาศัพท์
ความหมาย
รี เลชัน (Relation)
ตารางสองมิติที่ประกอบด้วยแถวและคอลัมน์
แอททริ บิวท์ (Attribute)
คอลัมน์ในรี เลชัน
ทัพเพิล (Tuple)
แถวในรี เลชัน
ดีกรี (Degree)
จานวนแอททริ บิวท์ในรี เลชัน
คาร์ดินลลิตี (Cardinality)
ั
จานวนแถวข้อมูลในรี เลชัน
โดเมน (Domain)
กลุ่มของข้อมูลทั้งหมดที่เป็ นไปได้ของแอททริ บิวท์หนึ่งๆ
ค่าว่าง (Null Value)
ค่าที่ให้แก่แอททริ บิวท์หนึ่งๆ ในกรณี ที่ยงไม่พร้อมที่จะใส่ขอมูลหรื อการไม่ทราบค่า
ั
้
ข้อมูลของแอททริ บิวท์น้ นๆ
ั
คียหลัก (Primary Key)
์
คียคู่แข่งที่ถูกเลือกขึ้นมาเป็ นคียของรี เลชัน
์
์
คียร่วม (Composite Key)
์
คียหลักที่ประกอบด้วยแอททริ บิวท์มากกว่าหนึ่งแอททริ บิวท์
์
คียคู่แข่ง (Candidate Key) กลุ่มของแอททริ บิวท์ที่มีสิทธิ์ถูกเลือกให้เป็ นคียหลักของรี เลชัน
์
์
คียนอก (Foreign Key)
์
กลุ่มของแอททริ บิวท์ในรี เลชันหนึ่งๆ ที่มีค่าข้อมูลไปปรากฏเป็ นคียหลักของอีกรี เลชัน
์
(หรื ออาจเป็ นรี เลชันเดียวกัน)
23. 3.3 คุณสมบัตทสาคัญของรีเลชัน
ิ ี่
3.3.1 แต่ละช่องในตารางจะบรรจุขอมูลเพียง 1 ค่าเท่านั้น เช่น
้
การทางาน รหัสพนักงาน รหัสโครงการ
จานวนชัวโมง
่
1001
1002
2001
111
รหัสโครงการ
1001
1002
111
111
จานวนชัวโมง
่
ล่วงเวลา
50
56
2001
1001
111
112
40
45
รู ปที่ 3.5 แสดงข้อมูลใน
รี เลชันการทางานที่มี
มากกว่า 1 ค่า การทางาน
40
รหัสพนักงาน
การทางาน
111, 112
111
ล่วงเวลา
95
56
รู ปที่ 3.6 แสดงข้อมูล
ในรี เลชันการทางานที่
มีเพียง 1 ค่า
24. 3.3 คุณสมบัตทสาคัญของรีเลชัน (ต่ อ)
ิ ี่
3.3.2 ข้อมูลแต่ละแถวของตารางจะต้องแตกต่างกัน เช่น รี เลชันการทางาน ข้อมูล
ในแถวหรื อทัพเพิลจะไม่เก็บข้อมูลเดิมซ้ าอีก
การทางาน
รหัสโครงการ
จานวนชัวโมงล่วงเวลา
่
111
111
111
111
50
56
40
50
รหัสพนักงาน
1001
1002
2001
1001
รู ปที่ 3.7 แสดงตัวอย่างการเก็บข้อมูลรี เลชันการทางานที่ซ้ ากัน
ข้อมูลที่
เหมือนกัน
ควรจัดเก็บ
เพียงแถว
เดียว
เท่านั้น
25. 3.3 คุณสมบัตทสาคัญของรีเลชัน (ต่ อ)
ิ ี่
่
่
3.3.3 ค่าของข้อมูลที่อยูในแอททริ บิวท์ จะต้องอยูในขอบเขตของโดเมนที่
กาหนดไว้สาหรับแอททริ บิวท์น้ น ดังที่ได้อธิบายในคุณสมบัติของคีย ์
ั
นอก
3.3.4 ชื่อของแอททริ บิวท์ในรี เลชันเดียวกัน ต้องใช้ชื่อต่างกัน
3.3.5 การลาดับก่อนหลังของคอลัมน์หรื อแถวในตารางไม่มีความสาคัญ
เนื่องจากสามารถใช้ระบบการจัดการฐานข้อมูลมาจัดเรี ยงภายหลังได้
26. 3.4 กฎของความคงสภาพ (Integrity Rule)
กฎของความคงสภาพ เป็ นข้อกาหนดเพื่อใช้ควบคุมความถูกต้องของ
ฐานข้อมูล ซึ่งจะป้ องกันไม่ให้ขอมูลผิดจากความเป็ นจริ ง จะควบคุม
้
ข้อมูลที่เป็ นคียหลักของรี เลชันให้มีขอมูลที่ไม่ซ้ ากันและมีค่าที่ไม่เป็ นค่า
์
้
ว่าง ข้อมูลที่เกิดการสูญเสี ยความคงสภาพของข้อมูล เกิดมาจากหลาย
สาเหตุ เช่น การเพิ่ม การลบ หรื อการแก้ไขข้อมูลในรี เลชันหนึ่งที่มี
่
ั
ความสัมพันธ์กบรี เลชันอื่น ซึ่งทาให้เกิดความไม่สอดคล้องกันของ
่
ข้อมูลระหว่างรี เลชันที่เกี่ยวข้องกัน
่
กฎที่ใช้ควบคุมความคงสภาพของฐานข้อมูลเชิงสัมพันธ์ให้ขอมูลมี
้
ความถูกต้องจะมี 2 กฎด้วยกัน คือ กฎความคงสภาพของเอนทิตี และกฎ
ความคงสภาพของการอ้างอิง ซึ่งมีรายละเอียดดังนี้
27. 3.4.1 กฎความคงสภาพของเอนทิตี (Entitt Integrity Rule)
3.4.1.1 คีย์หลักของรีเลชั่น จะต้ องมีค่าข้ อมูลทีไม่ ซ้ากัน (unique)
่
เนื่องจากคุณสมบัติของคียหลัก จะเป็ นแอททริ บิวท์ที่ใช้ในการเจาะจงแถวข้อมูลใด
์
แถวข้อมูลหนึ่งในรี เลชัน ดังนั้นจึงจะให้ค่าข้อมูลที่ซ้ ากันไม่ได้
สิ นค้ า
รหัสสิ นค้า
รายการสิ นค้า
หน่วยนับ
จานวนสิ นค้า
คงเหลือ
ราคาสิ นค้า
ต่อหน่วย
S001
PRINTER CANON IP 1000
เครื่ อง
5
2,050
S002
HARDDISK Seagate 80GB
ตัว
20
2,060
S003
MONITOR Philiph CRT
เครื่ อง
10
3,220
S003
MONITOR BenQ LCD
ตัว
17
4,580
(ก) ข้อมูลคียหลักซ้ ากัน
์
28. 3.4 กฎของความคงสภาพ (Integrity Rule) ต่ อ
สิ นค้ า
รหัสสิ นค้า
รายการสิ นค้า
หน่วยนับ
จานวนสิ นค้า
คงเหลือ
ราคาสิ นค้า
ต่อหน่วย
S001
PRINTER CANON IP 1000
เครื่ อง
5
2,050
S002
HARDDISK Seagate 80GB
ตัว
20
2,060
S003
MONITOR Philiph CRT
เครื่ อง
10
3,220
S004
MONITOR BenQ LCD
ตัว
17
4,580
(ข) แก้ไขข้อมูลคียหลักไม่ซ้ ากัน
์
รู ปที่ 3.8 แสดงคียหลักที่ไม่ซ้ าซ้อนกันตามกฏความคงสภาพ
์
29. 3.4.1.2 ค่ าข้ อมูลของคีย์หลักจะต้ องไม่ เป็ นค่ าว่ าง (Null Value)
จะต้ องไม่ มีแอททริบิวท์ ใดทีเ่ ป็ นส่ วนประกอบของคีย์หลักของรีเลชันนั้นเป็ นค่ าว่ าง
เพราะค่ าของข้ อมูลในคีย์หลักจะถูกใช้ เจาะจงถึงข้ อมูลแถวใด ๆ ในรีเลชัน
การซื้อสิ นค้ า
ลาดับที่
วันที่ซ้ือสิ นค้า
รหัสสิ นค้า
จานวนที่สงซื้อ
ั่
รหัสพนักงาน
1
20/02/49
Null Value
5
A01
2
20/02/49
Null Value
10
A01
3
20/02/49
S003
5
A01
4
26/05/49
S001
7
A02
รู ปที่ 3.9 แสดงข้อมูลรี เลชันการซื้อสิ นค้าที่คียหลักมีค่าว่าง
์
30. 3.4 กฎของความคงสภาพ (Integrity Rule) ต่ อ
สมาชิก
3.4.2 กฎความคงสภาพ
ของการอ้างอิง (Referential
Integrity Rule)
ถ้ารี เลชันใดมีแอททริ บิวท์ที่
เป็ นคียนอกอยู่ ข้อมูลที่เป็ น
์
คียนอกนั้นจะต้องไปปรากฏ
์
เป็ นข้อมูลของคียหลักของ
์
อีกรี เลชันที่มีความสัมพันธ์
กัน หรื ออาจให้ขอมูลที่เป็ น
้
คียนอกนั้นจะต้องมีค่าเป็ น
์
ค่าว่าง
รหัส
สมาชิก
วัน
หมดอายุ
รหัส
กิจกรรม
12778
30/11/49
001
14052
28/02/50
004
14288
31/01/50
003
20709
31/12/49
001
ค่ าบริการ
รหัส
กิจกรรม
รายการ
กิจกรรม
ค่าบริ การ
ต่อปี
001
ว่ายน้ า
3,000
002
เทนนิส
2,500
003
แบดมินตัน
1,500
004
ลีลาศ
2,000
005
แอโรบิก
1,500
่
รู ปที่ 3.10 ตัวอย่างข้อมูลที่เก็บอยูในรี เลชันสมาชิกและรี เลชันค่าบริ การ
31. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ
3.5.1 การควบคุมความคงสภาพของข้ อมูลให้ เป็ นตามกฎข้ อที่ 1กฎข้ อที่ 1คือ กฎความคง
สภาพของเอนทิตี ซึ่งให้ คย์หลักมีค่าข้ อมูลทีไม่ ซ้ากัน และต้ องไม่ เป็ นค่ าว่ าง
ี
่
เช่ น
CREATE TABLE GOODS
(CODE_GOODS CHAR(4) NOT NULL
NAME_GOODS VARCHAR(30),
UNIT
VARCHAR(10),
NO_STOCK
NUMBER(3),
COST
NUMBER(7,1),
CONSTRAINT cg_pk PRIMARY KEY(CODE_GOODS) );
32. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
3.5.2 การควบคุมความคงสภาพของข้ อมูลให้ เป็ นตามกฎข้ อที่ 2กฎข้ อที่ 2
คือ กฎความคงสภาพของการอ้ างอิง (Referential Integrity
Rule) ถ้ ารีเลชันใดมีแอททริบวท์ ทเี่ ป็ นคีย์นอกอยู่ ข้ อมูลทีเ่ ป็ นคีย์
ิ
นอกนั้นจะต้ องไปปรากฏเป็ นข้ อมูลของคีย์หลักของอีกรีเลชันทีมี
่
ความสัมพันธ์ กน หรืออาจให้ ข้อมูลทีเ่ ป็ นคีย์นอกนั้นจะต้ องมีค่าเป็ นค่ าว่ าง
ั
ตัวอย่ างของผลกระทบต่ อกฎความคงสภาพในข้ อที่ 2 ได้ แก่
3.5.2.1 การเพิมข้ อมูลทีเ่ ป็ นค่าว่ างลงในแอททริบวท์ ทเี่ ป็ นคีย์นอกของ
่
ิ
รีเลชัน
33. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
รายวิชา
รหัสวิชา
ชื่อวิชา
วิชาที่ตองเรี ยน
้
ก่อน
รหัสอาจารย์
ผูสอน
้
COM 2502
วิเคราะห์และออกแบบระบบ
COM 2602
Null Value
COM 1301
การโปรแกรมภาษาคอมพิวเตอร์ 1
COM 1601
โครงสร้างข้อมูล
COM 2602
ระบบการจัดการฐานข้อมูล
Null Value
COM 3701
ระบบสื่ อสารข้อมูล
C007
C005
COM 1301
C005
รหัสอาจารย์ผสอน
ู้
อาจารย์ ผู้สอน
ชื่ออาจารย์ผสอน
ู้
ห้องพักอาจารย์
C001
สายใจ พิมพ์ประภา
2111
C005
กิตติ ใจดีงาม
2113
C007
ชานน จงรักษา
2113
C008
อาภรณ์ คงดี
2112
C020
จุติภา รักงานดี
2112
รู ปที่ 3.11 ตัวอย่างเพิ่มข้อมูลรี เลชัน
รายวิชาโดยให้คียนอกเป็ นค่าว่าง
์
34. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
3.5.2.2 การลบแถวข้ อมูลในรีเลชันหนึ่ง ซึ่งมีคีย์หลักเป็ นข้ อมูลที่คย์นอกของอีก
ี
รีเลชันมีการอ้ างอิงถึงโดยทั่วไปไม่ ควรลบข้ อมูลในคีย์หลักทีมข้อมูลคีย์นอก
่ ี
อ้ างอิงถึงอยู่ เนื่องจากจะเกิดความขัดแย้ งของข้ อมูลได้ ในกรณีที่ต้องการลบ
ระบบการจัดการฐานข้ อมูลจะต้ องมีวิธีป้องกันเพือจะทาให้ ข้อมูลภายใน
่
ฐานข้ อมูลอยู่ในสถานะทีคงสภาพทีสุด โดยทัวไปจะมีการป้ องกันที่ DBMS
่
่
่
สามารถทาได้ อยู่ 4 วิธี คือ
1) การกระทาแบบต่ อเนื่อง (CASCADE)
ระบบการจัดการฐานข้ อมูล จะอนุญาตให้ ทาการลบแถวข้ อมูลคีย์หลักได้ โดยระบบจะ
ไปลบแถวข้ อมูลทีมคย์นอกอ้ างอิงถึงค่ าข้ อมูลนั้นในอีกเรเลชันออกไปด้ วย
่ ี ี
35. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
สมาชิก
ค่ าบริการ
รหัสสมาชิก
12778
วันหมดอายุ
30/11/49
รหัสกิจกรรม
001
14052
20709
28/02/50
31/12/49
004
001
รหัสกิจกรรม
รายการกิจกรรม
ค่าบริ การต่อปี
001
ว่ายน้ า
3,000
002
003
เทนนิส
แบดมินตัน
2,500
1,500
004
ลีลาศ
2,000
รู ปที่ 3.12 แสดงข้อมูลรี เลชันสมาชิกและค่าบริ การก่อนการลบข้อมูล
36. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
สมาชิก
รหัสสมาชิก
รหัสกิจกรรม
12778
30/11/49
001
20709
ค่ าบริการ
วันหมดอายุ
31/12/49
001
รหัสกิจกรรม รายการกิจกรรม ค่าบริ การต่อปี
001
002
003
ว่ายน้ า
เทนนิส
แบดมินตัน
3,000
2,500
1,500
รู ปที่ 3.13 แสดงข้อมูลรี เลชันสมาชิกและค่าบริ การหลังการลบข้อมูลแบบกระทาต่อเนื่ อง
37. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
2) การกระทาแบบมีข้อจากัด (RESTRICT)
ระบบการจัดการฐานข้อมูล จะไม่อนุญาตให้ทาการลบแถวข้อมูลคีย ์
่
หลักได้ ถ้าข้อมูลที่จะลบนั้นถูกอ้างอิงอยูในรี เลชันอื่น ๆ เช่นจากรู ปที่
3.12 ถ้าต้องการลบรหัสกิจกรรม "004" ในรี เลชันค่าบริ การ ซึ่งถูก
อ้างอิงในรี เลชันสมาชิก ระบบจะไม่อนุญาตให้ลบ ยกเว้นแต่ขอมูลไม่
้
่
ถูกอ้างอิงอยูในรี เลชันอื่น เช่น รหัสกิจกรรม "003" ในรี เลชัน
ค่าบริ การ ไม่ถูกอ้างอิงในรี เลชันสมาชิกจึงสามารถลบข้อมูลได้
38. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
3) การกระทาโดยการใส่ ค่าว่ าง (NULLIFILE/SET NULL)
ระบบการจัดการฐานข้อมูล จะอนุญาตให้ทาการลบแถวข้อมูลคีย ์
หลักได้ แต่ค่าของคียที่อางอิงคียนอกในรี เลชันอื่น ๆ จะถูกใส่ ค่าว่างลง
์ ้
์
ไป (แต่ถามีการกาหนดไว้ต้ งแต่แรกว่าค่าข้อมูลของคียนอกห้ามเป็ นค่า
้
ั
์
ว่าง ก็จะไม่สามารถกระทาการในข้อนี้ได้) ตัวอย่างเช่นการลบข้อมูลของ
รหัสกิจกรรม "004" ออกจากรี เลชันค่าบริ การ
39. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
สมาชิก
รหัสสมาชิก
12778
14052
20709
วันหมดอายุ
30/11/49
28/02/50
31/12/49
รหัสกิจกรรม
001
Null Value
001
รหัสกิจกรรม
รายการกิจกรรม
ค่าบริ การต่อปี
001
002
003
ว่ายน้ า
เทนนิส
แบดมินตัน
3,000
2,500
1,500
ค่ าบริการ
รู ปที่ 3.14 แสดงข้อมูลรี เลชันสมาชิกและค่าบริ การหลังการลบ
ข้อมูลแบบการใส่ ค่าว่าง
40. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
3.5.2.3 การเปลียนแปลงข้ อมูลทีเ่ ป็ นคีย์หลักซึ่งมีรีเลชันอืนอ้างอิงถึง
่
่
จะพิจารณาการเปลียนแปลงแก้ไขข้ อมูลคีย์หลักทีมีข้อมูลคีย์นอกอ้างอิง ถึง
่
่
ซึ่งมีวธีการจัดการโดยทัวไปอยู่ 3 วิธี คือ
ิ
่
1) การกระทาแบบต่ อเนื่อง (CASCADE)
ระบบการจัดการฐานข้ อมูล จะอนุญาตให้ ทาการแก้ไข
ข้ อมูลคีย์หลักได้ โดยระบบจะไปแก้ไขข้ อมูลทีมคย์นอกอ้างอิงถึงค่ า
่ ี ี
ข้ อมูลนั้นในอีกเรเลชัน
41. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
สมาชิก
รหัสสมาชิก
12778
14052
20709
ค่ าบริการ
วันหมดอายุ
30/11/49
28/02/50
31/12/49
รหัสกิจกรรม
001
009
001
รหัสกิจกรรม
รายการกิจกรรม
ค่าบริ การต่อปี
001
002
ว่ายน้ า
เทนนิส
3,000
2,500
003
009
แบดมินตัน
ลีลาศ
1,500
2,000
รู ปที่ 3.14 แสดงข้อมูลรี เลชันสมาชิกและค่าบริ การหลังการเปลี่ยนแปลงข้อมูลแบบการกระทาต่อเนื่ อง
42. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
2) การกระทาแบบมีข้อจากัด (RESTRICT)
ระบบการจัดการฐานข้อมูล จะไม่อนุญาตให้ทาการแก้ไขข้อมูลคีย ์
่
หลักได้ ถ้าข้อมูลที่จะเปลี่ยนแปลงแก้ไขนั้นถูกอ้างอิงอยูในรี เลชันอื่น
ๆ เช่นจากรู ปที่ 3.12 ถ้าต้องการแก้ไขรหัสกิจกรรม "004" เป็ น "009"
ในรี เลชันค่าบริ การ ซึ่งถูกอ้างอิงในรี เลชันสมาชิก ระบบจะไม่อนุญาต
่
ให้แก้ไขได้ ยกเว้นแต่ขอมูลไม่ถูกอ้างอิงอยูในรี เลชันอื่น เช่น รหัส
้
กิจกรรม "003" ในรี เลชันค่าบริ การ ไม่ถูกอ้างอิงในรี เลชันสมาชิกจึง
สามารถแก้ไขข้อมูลได้
43. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
3.) การกระทาโดยการใส่ ค่าว่าง (NULLIFILE/SET NULL)
ระบบการจัดการฐานข้อมูล จะอนุญาตให้ทาการแก้ไข
ข้อมูลคียหลักได้ แต่ค่าของคียที่อางอิงคียนอกในรี เลชันอื่น ๆ จะถูกใส่
์
์ ้
์
ค่าว่างลงไป (แต่ถามีการกาหนดไว้ต้ งแต่แรกว่าค่าข้อมูลของคียนอก
้
ั
์
ห้ามเป็ นค่าว่าง ก็จะไม่สามารถกระทาการในข้อนี้ได้) ตัวอย่างเช่น
ข้อมูลในรู ปที่ 3.12 จะแก้ไขข้อมูลของรหัสกิจกรรมในรี เลชันค่าบริ การ
จากเดิม "004" เปลี่ยนเป็ น "009" โดยกาหนดให้เกิดการกระทาแบบ
การใส่ ค่าว่างไปยังรี เลชันสมาชิก
44. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
สมาชิก
ค่ าบริการ
รหัสสมาชิก
12778
14052
20709
วันหมดอายุ
30/11/49
28/02/50
31/12/49
รหัสกิจกรรม
001
Null Value
001
รหัสกิจกรรม
รายการกิจกรรม
ค่าบริ การต่อปี
001
002
003
ว่ายน้ า
เทนนิส
แบดมินตัน
3,000
2,500
1,500
009
ลีลาศ
2,000
รู ปที่ 3.15 แสดงข้อมูลรี เลชันสมาชิกและค่าบริ การหลังการเปลี่ยนแปลงข้อมูลแบบใส่ ค่าว่าง
45. 3.5 การควบคุมให้ เป็ นไปตามกฎความคงสภาพ (ต่ อ)
4) การกระทาโดยกาหนดค่ าปริยาย (Default)
จะอนุญาตให้แก้ไขค่าของคีย ์ (Key)ที่เกิดขึ้นได้ และค่าของคียที่
์
อ้างอิงคียนอกในรี เลชันอื่น ๆ จะถูกปรับเป็ นค่าโดยปริ ยาย
์
(Default Value) ที่ถูกกาหนดขึ้น
46. 3.6 ประเภทของรีเลชัน
ประเภทของรี เลชันอาจจาแนกเป็ นหลายประเภท ซึ่ งมีดงนี้ (กิตติ ภักดี
ั
วัฒนะกุล และ จาลอง ครู อุตสาหะ, 2545, หน้า 48-50)
3.6.1 Named Relation
เป็ นรี เลชันที่สร้างขึ้นด้วยคาสั่ง SQL อาจเป็ นรี เลชันจริ งใน
ฐานข้อมูล หรื อเป็ นเพียงรี เลชันที่สร้างด้วยคาสั่ง Query Language
3.6.2 Base Relation
เป็ น Named Relation ที่เป็ นรี เลชันจริ งในฐานข้อมูล มี
การจัดเก็บไว้ในหน่วยความจาสารอง ดังนั้นจึงเป็ นรี เลชันที่เกิดขึ้นจากการ
ออกแบบฐานข้อมูล
47. 3.6 ประเภทของรีเลชัน (ต่ อ)
3.6.3 Derived Relation
เป็ น Named Relation ในส่ วนของรี เลชันที่ได้มาจากการใช้เงื่อนไข
กับคาสังของ Query Language กับ Base Relation เช่น รู ปที่ 3.16 เป็ น
่
Base Relation
นักศึกษา
รหัส
นักศึกษา
ชื่อนักศึกษา
สาขาวิชา
หมายเลขบัตร
ประชาชน
48123623
นายสมปอง ปรี ชา
วิทยาการคอมพิวเตอร์
3 5101 00742 25 9
48123634
นายอานาจ อาจองค์
วิทยาการคอมพิวเตอร์
3 5006 00014 11 7
48123401
น.ส.กัญญา ยาใจ
เทคโนโลยี
สารสนเทศ
3 5122 00987 44 8
48123429
น.ส.สายรุ ้ง สี สวย
เทคโนโลยี
สารสนเทศ
3 5010 00641 88 3
รู ปที่ 3.16
แสดงรี เลชัน
นักศึกษาที่เป็ น
Base Relation
48. 3.6 ประเภทของรีเลชัน (ต่ อ)
เมื่อใช้เงื่อนไขแสดงข้อมูลเฉพาะ "นักศึกษาสาขาวิชาวิทยาการคอมพิวเตอร์"
ผลลัพธ์ที่ได้ต้ งชื่อว่า นักศึกษาวิทยาการคอมพิวเตอร์ ดังนั้นจะได้ Derived Relation
ั
ดังรู ปที่ 3.17
นักศึกษา
ชื่อนักศึกษา
สาขาวิชา
หมายเลขบัตรประชาชน
รหัสนักศึกษา
48123623
นายสมปอง ปรี ชา
วิทยาการคอมพิวเตอร์
3 5101 00742 25 9
48123634
นายอานาจ อาจองค์
วิทยาการคอมพิวเตอร์
3 5006 00014 11 7
รู ปที่
3.17 แสดงรี เลชันนักศึกษาที่เป็ น Derived Relation
49. 3.6 ประเภทของรีเลชัน (ต่ อ)
3.6.4 Expressible Relation
เป็ นรี เลชันที่ได้มาจากการกระทากับ Named Relation ด้วยเงื่อนไขทางด้าน
ความสัมพันธ์ของข้อมูลระหว่าง Named Relation ที่ตองการ เมื่อนาเอาทุก
้
Expressible Relation มาประกอบกัน ผลลัพธ์ที่ได้คือ ทุก ๆ Base Relation และ
Derived Relation ที่ Expressible Relation นั้นใช้สร้างขึ้น
3.6.5 View
เป็ น Derived Relation ประเภทหนึ่ ง แต่เป็ นรี เลชันเสมือน (Virtual Relation) ที่ถก
ู
สร้างขึ้นไว้ในฐานข้อมูลตามความต้องการของผูใช้แต่ละคน การสร้าง View จะ
้
สร้างความสะดวกในการใช้ขอมูลและช่วยให้การรักษาความปลอดภัยของ
้
ฐานข้อมูล เนื่องจากเป็ นรี เลชันที่สร้างขึ้นไม่มีการเก็บข้อมูลจริ งในระบบ
50. 3.6.6 Snapshot
เป็ น Derived Relation ประเภทหนึ่งเช่นเดียวกับ View แตกต่างที่
Snapshot เป็ น Relation ในฐานข้อมูลที่สามารถอ่านข้อมูลได้เพียงอย่าง
เดียว และสามารถกาหนดเวลาในการปรับปรุ งค่าของข้อมูลใน Snapshot
ได้ เช่น ทุกวัน ทุกสัปดาห์ เป็ นต้น
3.6.7 Query Result
เป็ นรี เลชันชัวคราว ซึ่งเกิดจากการใช้ประโยคคาสังของ Query
่
่
Language กับ Relation ในฐานข้อมูล ข้อมูลใน Relation ประเภทนี้ จะ
เกิดขึ้นก็ต่อเมื่อมีการเรี ยกใช้เท่านั้น และจะหายไปเมื่อเลิกใช้งาน
51. 3.6 ประเภทของรีเลชัน (ต่ อ)
3.6.8 Immediate Result
เป็ นรี เลชันชัวคราวที่เกิดจากการประมวลผลคาสังของ Query Language
่
่
ที่มีความซับซ้อน เช่น
((S JOIN SP) WHERE P# = 'P2') [S#,CITY]
ในการประมวลผล จะทาจากคาสังในวงเล็บก่อน ซึ่งได้แก่ คาสัง "S
่
่
JOIN SP" จากคาสังนี้ ทาให้เกิดรี เลชันชัวคราวที่ใช้เก็บข้อมูลที่ได้มาจากการ
่
่
รวมกันของ Relation "S" และ "SP" ก่อนที่จะนาไปใช้ในขั้นตอนต่อไป รี เล
ชันที่เกิดขึ้นชัวคราวนี้เราเรี ยกว่า Immediate Result
่
52. 3.6 ประเภทของรีเลชัน (ต่ อ)
3.6.9 Stored Relation
เป็ น Expressible Relation ที่สามารถจัดเก็บค่าของข้อมูลได้ ดังนั้น
บางครั้งรี เลชันประเภทนี้ถือว่าเป็ น Base Relation
54. สมาชิก
นาย นพพร ศรี ทองดี เลขที่ 4
นาย จารุ วิทย์ คุมทองดี เลขที่ 9
้
นาย พรหมชาติ มิระสิ งห์ เลขที่ 17
นาย เมธา ตันติกิจชาญชัย เลขที่ 21
นางสาว ธนัชชา ธระสวัสดิ์ เลขที่ 30
นางสาว ประภัสสร ลาดวล เลขที่ 31
มัธยมศึกษาปี ที่ 5/3