หน่วยที่ 3 ระบบฐานข้อมูลเชิงสัมพันธ์
3.1. ความหมายของฐานข้อมูลเชิงสัมพันธ์
ระบบฐานข้อมูลเชิงสัมพันธ์(Relational Database) เป็นฐานข้อมูลที่ใช้โมเดลเชิงสัมพันธ์
(Relational Database Model) ซึ่งผู้คิดค้นโมเดลเชิงสัมพันธ์นี้คือDr. E.F.Codd
โดยใช้หลักพื้นฐานทางคณิตศาสตร์
เนื่องด้วยแนวคิดของแบบจาลองแบบนี้มีลักษณะที่คนใช้กันทั่วกล่าวคือมีการเก็บเป็นตาราง
ทาให้ง่ายต่อการเข้าใจและการประยุกต์ใช้งานด้วยเหตุนี้
ระบบฐานข้อมูลแบบนี้จึงที่ได้รับความนิยมมากที่สุดในแง่ของ entity แบบจาลองแบบนี้คือ
แฟ้มข้อมูลในรูปตารางและ attribute ก็เปรียบเหมือนเขตข้อมูล
ส่วนความสัมพันธ์คือความสัมพันธ์ระหว่าง entity
ฐานข้อมูลเชิงสัมพันธ์ คือการเก็บข้อมูลในรูปของตาราง(Table)
หลายๆตารางที่มีความสัมพันธ์กันในแต่ละตารางแบ่งออกเป็นแถวๆ
และในแต่ละแถวจะแบ่งเป็นคอลัมน์(Column)ในทางทฤษฎีจะมีคาศัพท์เฉพาะแตกต่างออกไป
เนื่องจากแบบจาลองแบบนี้เกิดจากทฤษฎีทางคณิตศาสตร์เรื่องเซ็ท(Set)ดังนั้น
เราจะมีคาศัพท์เฉพาะดังตารางที่ 3.1นี้
ตารางที่ 3.1 คาศัพท์เฉพาะที่ใช้ในระบบฐานข้อมูลเชิงสัมพันธ์
ศัพท์เฉพาะ ศัพท์ทั่วไป
รีเลชั่น(Relation) ตาราง(Table)
ทูเปิล(Tuple) แถว(Row) หรือ เรคคอร์ด (Record) หรือ ระเบียน
แอททริบิวท์(Attribute) คอลัมน์ (Column) หรือฟิลด์ (Field)
คาร์ดินัลลิติ้ (Cardinality) จานวนแถว(Number of rows)
ดีกรี (Degree) จานวนแอททริบิวท์(Number of attribute)
คีย์หลัก(Primary key) ค่าเอกลักษณ์(Unique identifier)
โดเมน (Domain) ขอบข่ายของค่าของข้อมูล(Poolof legal values)
รูปที่ 3.1 แสดงรายละเอียดของส่วนประกอบต่าง ๆ ของโมเดลแบบความสัมพันธ์
อาจจะเขียนในรูปสมการดังต่อไปนี้ R(รหัสประจาตัวประชาชน,ชื่อ,นามสกุล,วันเกิด)
เนื่องจากแต่ละตารางสามารถมีความสัมพันธ์กันได้ดังที่กว่าไว้ในข้างต้น
ทาให้การเก็บข้อมูลในรูปแบบนี้ มีความคล่องตัวสูงเพราะเราสามารถแยกเก็บข้อมูลใน
หลายตารางโดยอาศัยความสัมพันธ์ดังกล่าวและสามารถสืบค้นได้จากรหัสพิเศษที่เรียกว่า
กุญแจ(key)ดังรูปที่ 3.2
รูปที่ 3.2 แสดงตัวอย่างการสืบค้นข้อมูลโดยอาศัยความสัมพันธ์
Dr.E.F.Coddได้กาหนดส่วนประกอบของโมเดลเชิงสัมพันธ์นี้ แบ่งเป็น3ส่วนได้แก่
1. ส่วนที่เกี่ยวข้องกับโครงสร้างของข้อมูล
2. ส่วนที่เกี่ยวกับการควบคุมความถูกต้องให้กับข้อมูล
3. ส่วนในการจัดการกับข้อมูล
3.2. โครงสร้างของข้อมูล (Data Structure)
3.2.1. Relation
โครงสร้างของฐานข้อมูลเชิงสัมพันธ์จะอยู่ในลักษณะของตาราง 2มิติ
ประกอบด้วยทางด้านแถวและคอลัมน์ซึ่งจะเรียกว่ารีเลชัน(Relation)โดยทั่ว ๆ ไป Relation
หนึ่ง ๆ จะมีคุณสมบัติต่างๆดังนี้
1) ไม่มี Tuples คู่ใดๆ เลยที่ซ้ากัน(No duplicate tuples)
2) ลาดับที่ของ Tuplesไม่มีความสาคัญ
3) ลาดับที่ของ Attributes ไม่มีความสาคัญ
4) ค่าของAttribute จะเป็นค่าเดี่ยวๆ(Atomic) นั่นคือ
ค่าของข้อมูลที่ปรากฏอยู่ในตารางจะเป็นค่าๆเดียวเป็นลิสต์ของค่าหลายๆค่าไม่ได้ซึ่ง
Relation ที่มีคุณสมบัติข้อนี้จะถูกเรียกว่าเป็นRelationที่อยู่ในรูปแบบ Normal form
5) ค่าของข้อมูลในแต่ละ Attribute จะบรรจุค่าของข้อมูลประเภทเดียวกัน
ชนิดของRelations
ในระบบจัดการฐานข้อมูลทั่วๆไป Relation อาจจาแนกออกได้เป็น2 ประเภทดังนี้คือ
1) Relation หลัก (Base Relation)
เป็น Relation ที่ถูกกาหนดขึ้นเพื่อเก็บข้อมูลและเพื่อนาข้อมูลไปใช้เมื่อมีการสร้าง Relation
โดยใช้Data Definition Language เช่นใน SQL คาสั่งCREATETABLE เป็นการสร้าง Relation
หลักหลังจากนั้นก็จะทาการเก็บข้อมูลเพื่อการเรียกใช้ข้อมูลในภายหลัง Relation
หลักจะเป็นตารางที่จัดเก็บข้อมูลจริงไว้
2) วิว(View) หรืออาจเรียกอีกอย่างหนึ่งว่า Relation สมมุติ (Virtual Relation)
เป็น Relation ที่ถูกสร้างขึ้นตามความต้องการใช้ข้อมูลของผู้ใช้แต่ละคนเนื่องจาก
ผู้ใช้แต่ละคนอาจต้องการใช้ข้อมูลในลักษณะที่แตกต่างกัน
จึงทาการกาหนดวิวของตัวเองขึ้นมาจาก Relationหลักเพื่อความสะดวกในการใช้ข้อมูล
และช่วยให้การรักษาความปลอดภัยของฐานข้อมูลทาได้ง่ายขึ้นRelation
ที่ถูกสมมติขึ้นมานี้จะไม่มีการเก็บข้อมูลจริงๆในระบบฐานข้อมูล
ลักษณะของรีเลชั่นแสดงดังรูปที่ 3.3
รูปที่ 3.3 โครงสร้างของฐานข้อมูลเชิงสัมพันธ์
จากรูปที่ 3.3ตารางข้อมูลทั้งหมดจะเรียกว่าRelationแต่โดยส่วนใหญ่นิยมเรียกว่า Table หรือ
ตารางเนื่องจากโครงสร้างการจัดเก็บเป็นแบบตารางส่วนข้อมูลในแต่ละแถวจะเรียกว่าทูเพิล
(Tuple) ส่วนข้อมูลในแต่ละคอลัมน์จะเรียกว่าแอตทริบิวส์(Attribute) ดังตัวอย่างมี4
แอตทริบิวส์คือ SID, Sname, GPA, Major เขียนเป็นสมการได้ดังนี้
Student(SID,Sname,GPA,Major)
3.2.2. Domain
โดเมน (Domain)
คือการกาหนดขอบเขตและชนิดของข้อมูลเพื่อป้ องกันไม่ให้ข้อมูลที่ผู้ใช้จัดเก็บ
มีความผิดพลาดไปจากความเป็นจริงที่ควรจะเป็นตัวอย่างดังรูปที่ 3.4
รูปที่ 3.4 โดเมนของข้อมูล
จากรูปที่ 3.4เป็นการกาหนดโดเมนให้กับแอตทริบิวส์ข้อมูล GPA ซึ่งเป็นค่าเกรดเฉลี่ย
ของนักศึกษาซึ่งค่าเกรดเฉลี่ยจะต้องมีค่าอยู่ระหว่าง0-4
ดังนั้นจึงต้องกาหนดโดเมนให้กับแอตทริบิวส์GPAเพื่อไม่ให้ข้อมูลผิดพลาดไปจากนี้
3.2.3. คีย์ (Key)
คีย์คือแอตทริบิวส์หรือ กลุ่มของแอตทริบิวส์ที่สามารถแยกความแตกต่างของข้อมูล
ในแต่ละทูเพิลได้หรือแอตทริบิวส์ที่ข้อมูลในแอตทริบิวส์นั้นต้องมีข้อมูลที่ไม่ซ้ากันซึ่งคีย์
มีอยู่หลายชนิดด้วยกันได้แก่
3.2.3.1. คีย์อย่างง่าย(Simple key) หมายถึง keyที่ประกอบด้วยattribute เดียว
3.2.3.2. คีย์ประกอบ (Combine key หรือ Composite key) หมายถึงkey ที่ ประกอบด้วย
attribute มากกว่า1attribute
3.2.3.3. คีย์คู่แข่ง(Candidate Key) คือคีย์ที่เล็กที่สุดที่แยกความแตกต่างของข้อมูล
แต่ละทูเพิลได้ยกตัวอย่างเช่นในรีเลชัน Student มีข้อมูลที่สามารถเป็นคีย์คู่แข่งคือแอตทริบิวส์
รหัสนักศึกษา และการใช้แอตทริบิวส์ชื่อรวมกับนามสกุล
ซึ่งทั้งสองแบบสามารถระบุความแตกต่างของข้อมูลแต่ละทูเพิลได้
3.2.3.4. คีย์หลัก (Primary Key) คือคีย์คู่แข่งซึ่งได้เลือกมาเพื่อใช้กาหนดให้เป็นค่าคีย์หลักของ
รีเลชันซึ่งข้อมูลที่เป็นคีย์หลักนั้นจะต้องมีข้อมูลที่ไม่ซ้ากันและมักจะเลือกคีย์คู่แข่ง
ที่มีขนาดเล็กมาเป็นคีย์หลักตัวอย่างเช่นการเลือกแอตทริบิวส์รหัสนักศึกษามาเป็นค่าคีย์หลัก
เนื่องจากมีขนาดเล็กกว่าแอตทริบิวส์ชื่อรวมกับนามสกุล ซึ่งจะทาให้การทางานเร็วกว่า
เนื่องจากมีขนาดเล็กกว่า
3.2.3.5. คีย์รอง(Alternate Key หรือ Secondarykey) คือคีย์คู่แข่งอื่นๆที่ไม่ได้
ถูกเลือกมาใช้งานยกตัวอย่างเช่นแอตทริบิวส์ชื่อรวมกับนามสกุล
ซึ่งไม่ได้ถูกเลือกให้เป็นคีย์หลักของรีเลชันก็จะกลายเป็น Alternate Key
3.2.3.6. คีย์นอก (Foreign Key)เป็นคีย์ที่ใช้เชื่อมความสัมพันธ์ของรีเลชันตัวอย่างแสดงดังรูปที่
3.5
รูปที่ 3.5 คีย์หลักและคีย์นอก
จากรูปที่ 3.5รีเลชัน Student มีค่าคีย์หลักคือSID ซึ่งเป็นรหัสนักศึกษา
โดยข้อมูลของรหัสนักศึกษาจะต้องมีข้อมูลที่ไม่ซ้ากันและมีคีย์นอกของตารางคือแอตทริบิวส์
Major ซึ่งเชื่อมโยงความสัมพันธ์ไปยังแอตทริบิวส์Major ของรีเลชันMajor
ซึ่งข้อมูลทุกตัวของแอตทริบิวส์Majorในรีเลชัน Student จะต้องมีอยู่ในแอตทริบิวส์Major
ของรีเลชันMajor ส่วนตาราง Major มีคีย์หลักคือแอตทริบิวส์Major
3.2.3.7. ซุปเปอร์คีย์ (Super key) หมายถึง attribute หรือ เซ็ทของ attribute ที่
สามารถบ่งบอกว่าแต่ละแถว(Tuple)แตกต่างกันในทุกๆความสัมพันธ์ จะต้องมีอย่างน้อย
หนึ่ง super key ในเซ็ทของ attributes
3.3. กฎที่เกี่ยวข้องกับการรักษาความถูกต้อง
กฎที่ใช้สาหรับรักษาความถูกต้องของข้อมูลแบ่งออกเป็น 2กฎคือกฎที่เกี่ยวข้องกับเอนทิตี้
และกฎที่เกี่ยวข้องกับการเชื่อมโยงความสัมพันธ์ของเอนทิตี้ )
3.3.1. กฎความบูรณภาพของเอนทิตี้(Entity Integrity Rule)
กฎความบูรณภาพของเอนทิตี้ เป็นกฎที่ใช้กาหนดเพื่อให้ข้อมูลของเอนทิตี้ มีความถูกต้อง
ซึ่งกล่าวไว้ว่า"แอตทริบิวส์ที่ทาหน้าที่เป็นคีย์หลักของรีเลชันไม่สามารถมีค่าเป็นค่าว่างได้
(Null Value)" และจะต้องมีคุณสมบัติที่เป็นเอกลักษณ์(Identity)
คือสามารถระบุข้อมูลแอตทริบิวส์อื่นๆ ที่อยู่ในทูเพิลเดียวกันได้
3.3.2. กฎความบูรณภาพของการอ้างอิง(Referential Integrity Rule)
กฎความบูรณภาพของการอ้างอิง
คือกฎที่ใช้รักษาความถูกต้องของข้อมูลที่มีความสัมพันธ์กันของเอนทิตี้ ซึ่งได้กล่าวไว้ว่า
"ค่าของคีย์นอกในรีเลชันจะต้องมีข้อมูลอยู่ในอีก รีเลชันหนึ่ง
ที่คีย์นอกของรีเลชันนั้นอ้างอิงถึง"
ในบางกรณีคีย์นอกอาจเป็นค่าว่างได้ถ้านโยบายขององค์กรอนุญาตให้ค่าคีย์นอกเป็นค่าว่างได้
กรณีหากมีการลบหรือแก้ไขข้อมูลในรีเลชันที่ถูกอ้างอิงถึง
ซึ่งจะทาให้สูญเสียความบูรณภาพของข้อมูลดังตัวอย่างรูปที่ 3.6
หากมีการแก้ไขหรือลบข้อมูลของรีเลชัน Majorในแอตทริบิวส์Major
ซึ่งมีความสัมพันธ์อยู่กับรีเลชันStudent จะทาให้ความสัมพันธ์ของข้อมูลเสียหาย
ดังนั้นจึงต้องเลือกการกระทาเพื่อไม่ให้ความสัมพันธ์ของข้อมูลสูญเสียไปดังนี้
กรณีการแก้ไขข้อมูล
1. ห้ามทาการแก้ไขข้อมูลในรีเลชันที่ถูกอ้างถึงนั้นเนื่องจากจะทาให้ข้อมูลในรีเลชันที่อ้างอิงมา
ไม่สามารถอ้างอิงข้อมูลได้
2. อนุญาตให้ทาการแก้ไขข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้แต่จะต้องตามไปแก้ไขข้อมูล
ในรีเลชันที่อ้างอิงมาให้ตรงกับข้อมูลที่แก้ไขใหม่ทั้งหมด
3. อนุญาตให้ทาการแก้ไขข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้ โดยการแก้ไขข้อมูลในรีเลชัน
ที่อ้างอิงมาให้มีค่าเป็น ค่าว่าง
รูปที่ 3.6 รีเลชันที่มีความสัมพันธ์กัน
กรณีการลบข้อมูล
1. ห้ามทาการลบข้อมูลในรีเลชันที่ถูกอ้างถึงนั้นเนื่องจากจะทาให้ข้อมูลในรีเลชันที่อ้างอิงมา
ไม่สามารถอ้างอิงข้อมูลได้
2. อนุญาตให้ทาการลบข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้แต่จะต้องตามไปลบข้อมูลในรีเลชัน
ที่อ้างอิงมาทั้งหมด
3. อนุญาตให้ทาการลบข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้โดยการแก้ไขข้อมูลในรีเลชัน
ที่อ้างอิงมาให้มีค่าเป็น ค่าว่าง(Nullvalue)
ค่าว่าง(Null Values)
ค่าของAttribute อาจจะเป็นค่าว่าง(Null) คือไม่มีค่าหรือยังไม่ทราบค่าได้ ตัวอย่างเช่น
จานวนไข่ของนกกระจอกเทศจะสามารถบอกได้เมื่อนกกระจอกเทศออกไข่แล้ว
แต่ยังไม่ทราบค่าในขณะที่จานวนไข่ของช้างนั้นไม่มีค่าเป็นต้น
3.4. การจัดการกับข้อมูล (Data manipulation)
Dr. E.F.Coddได้นาทฤษฎีของเซทซึ่งเป็นทฤษฎีทางคณิตศาสตร์มาใช้ในการจัดการกับ
ข้อมูลของฐานเชิงสัมพันธ์ซึ่งมีอยู่หลายการกระทาด้วยกันในบทนี้จะกล่าวโดยย่อๆเท่านั้น
เนื่องจากเป็นเนื้อหาทางทฤษฎี ซึ่งการนาไปใช้งานจริงนั้นจะพูดถึงในบทที่เกี่ยวกับคาสั่งที่ใช้
จัดการฐานข้อมูลซึ่งเนื้อหาจะมีความใกล้เคียงกันการกระทาเหล่านี้ได้แก่
3.4.1. Restrict
คาว่าRestrict เป็นโอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการเลือกข้อมูลจากรีเลชั่นหนึ่งๆ
ที่มีเงื่อนไขตรงตามที่ระบุไว้กล่าวอีกนัยหนึ่งคือ
ใช้ในการแสดงข้อมูลของทูเพิลที่เป็นไปตามเงื่อนไขที่ระบุไว้้
รูปแบบ
ชื่อรีเลชั่น WHERE<COMPARISION>
COMPARISION ในที่นี้ หมายถึงเงื่อนไขของข้อมูลที่ต้องการเรียกดู ซึ่งจะระบุชื่อแอททริบิวต์
และค่าเฉพาะที่ต้องการดูข้อมูลโดยมีเครื่องหมายที่ประกอบการระบุเงื่อนไขเช่น=(เท่ากับ) <
(น้อยกว่า) > (มากกว่า)<> (ไม่เท่ากับ)เป็นต้น
ในกรณีที่มีเงื่อนไขมากกว่าหนึ่งเงื่อนไขอาจใช้คาว่าOR(หรือ) AND (และ)
ประกอบกันเป็นเงื่อนไขที่ต้องการได้
ตัวอย่างจากตารางให้แสดงรายละเอียดของนักศึกษาที่อยู่นครราชสีมา
นักศึกษา
รหัส ชื่อ จังหวัด
B001 แดง นครราชสีมา
B002 ดา กรุงเทพฯ
B003 เขียว สระบุรี
B004 ขาว นครราชสีมา
นักศึกษา WHERE จังหวัด = 'นครราชสีมา'
ผลที่ได้ ดังนี้
นักศึกษา
รหัส ชื่อ จังหวัด
B001 แดง นครราชสีมา
B004 ขาว นครราชสีมา
3.4.2. Project
คาว่าProject
เป็นโอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการแสดงข้อมูลเพียงบางแอททริบิวต์จากรีเลชั่นหนึ่ง
ๆ ซึ่งการแสดงข้อมูลอาจจะเป็นแบบมีเงื่อนไขหรือไม่มีก็ได้
รูปแบบ
ชื่อรีเลชั่น [ชื่อแอตทริบิวต์1, ชื่อแอตทริบิวต์2, ...]
หรือ
ชื่อรีเลชั่น WHERE<COMPARISION> [ชื่อแอตทริบิวต์1,
...]
ตัวอย่างจากตารางนักศึกษาที่ผ่านมาให้แสดงชื่อจังหวัดที่นักศึกษาอยู่
นักศึกษา [จังหวัด]
ผลที่ได้ ดังนี้
จังหวัด
นครราชสีมา
กรุงเทพฯ
สระบุรี
นครราชสีมา
ตัวอย่างจากตารางนักศึกษาที่ผ่านมาให้แสดงชื่อนักศึกษาและชื่อจังหวัดเฉพาะนครราชสีมา
(นักศึกษา WHERE จังหวัด= 'นครราชสีมา' [ชื่อ,จังหวัด]
ผลที่ได้ ดังนี้
ชื่อ จังหวัด
แดง นครราชสีมา
ขาว นครราชสีมา
3.4.3. Product
Product หรือ Cartesian Product เป็นการกระทาเพื่อแสดงข้อมูลที่เป็นไปได้ทุกกรณีของการ
จับคู่กันระหว่าง 2รีเลชันดังตัวอย่างรูปที่ 3.7
รูปแบบ
ชื่อรีเลชั่นแรกTIMES ชื่อรีเลชั่นสอง]
จากตารางต่อไปนี้
นักศึกษา TIMESวิชา
ผลที่ได้คือ
หรือแสองสมการตามรูปที่ 3.7
รูปที่ 3.7 การกระทา Product
3.4.4. Union คือการแสดงข้อมูลตามลักษณะทฤษฎีการUnionของเซต
คือส่วนของข้อมูลทูเพิลที่ต่างกันของรีเลชันจะนามาทั้งหมด
ส่วนข้อมูลทูเพิลที่เหมือนกันของรีเลชันจะนามาจากรีเลชันเดียวโดยรีเลชั่นที่จะมาUnionกัน
ต้องเป็นรีเลชั่นที่ไปกันได้(Compatible Relation) นั่นคือ
จะต้องมีจานวนและชื่อแอททริบิวต์ที่เหมือนกันและจัดเรียงแอททริบิวต์ในตารางที่เหมือนกัน
(จากซ้ายไปขวา)ดังตัวอย่างรูปที่ 3.8ข้อมูลส่วนที่แรเงาคือข้อมูลผลลัพธ์ของการทา Union
รูปที่ 3.8 การกระทา Union
รูปแบบ
ชื่อรีเลชั่นแรกUNION ชื่อรีเลชั่นสอง
ตัวอย่างจากตาราง AและBเป็นดังนี้ คือ
A
รหัส ชื่อ จังหวัด
B001 แดง นครราชสีมา
B002 ดา กรุงเทพฯ
B003 เขียว สระบุรี
B004 ขาว นครราชสีมา
B
รหัส ชื่อ จังหวัด
B001 แดง นครราชสีมา
B005 ฝน กรุงเทพฯ
AUNION B
ผลที่ได้คือ
รหัส ชื่อ จังหวัด<>/th>
B001 แดง นครราชสีมา
B002 ดา กรุงเทพฯ
B003 เขียว สระบุรี
B004 ขาว นครราชสีมา
B005 ฝน กรุงเทพ
3.4.5. Intersection คาว่าIntersection
เป็นโอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการแสดงข้อมูลที่มีอยู่ในทั้งสองรีเลชั่น หรือมากกว่า
โดยรีเลชั่นที่จะมาIntersection กันจะเป็นรีเลชั่นที่ไปกันได้(Compatible Relation)
ดังตัวอย่างรูปที่ 3.9ข้อมูลส่วนที่แรเงาคือข้อมูลผลลัพธ์ของการทา Intersection
รูปที่ 3.9 การกระทา Intersection
รูปแบบ
ชื่อรีเลชั่นแรกINTERSECTชื่อรีเลชั่นสอง
จากตัวอย่างตาราง AและBที่ผ่านมา
AINTERSECT B
ผลที่ได้คือ
รหัส ชื่อ จังหวัด<>/th>
B001 แดง นครราชสีมา
3.4.6. Difference
คือการแสดงข้อมูลทูเพิลของรีเลชันซึ่งไม่มีอยู่ในอีกรีเลชันหนึ่งตามทฤษฎีการ Difference
ของเซตเช่นถ้านาข้อมูลรีเลชันA- รีเลชัน Bข้อมูลที่ได้คือข้อมูลของรีเลชันAที่ไม่มีในรีเลชัน
B ซึ่งจะให้ผลลัพธ์ที่แตกต่างกันกับ รีเลชันB-รีเลชัน A
โดยที่รีเลชั่นทั้งสองเป็นรีเลชั่นที่ไปกันได้(Compatible Relation) ดังตัวอย่างรูปที่ 3.10
ซึ่งผลลัพธ์ของการทาDifference คือส่วนที่แรเงา
รูปที่ 3.10 การกระทา Difference
รูปแบบ
ชื่อรีเลชั่นแรกMINUS ชื่อรีเลชั่นสอง
จากตัวอย่างตาราง AและBที่ผ่านมา
AMINUS B
ผลที่ได้คือ
รหัส ชื่อ จังหวัด<>/th>
B002 ดา กรุงเทพฯ
B003 เขียว สระบุรี
B004 ขาว นครราชสีมา
3.4.7. Join
เป็นการกระทาเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมดที่เกิดจากการเชื่อมโยงข้อมูลของ 2รีเลชั่น
ที่มีค่าของข้อมูลในAttribute ที่กาหนดเหมือนกันโดยAttribute นี้อาจเป็นเพียงAttribute
เดียวหรือมากกว่าก็ได้แต่ที่สาคัญ Attribute นี้ จะต้องมีชื่อที่เหมือนกันและมีDomain
ของข้อมูลเดียวกัน
รูปแบบ
ชื่อรีเลชั่น JOIN ชื่อรีเลชั่น
ตัวอย่างจากตาราง XและYที่กาหนดให้ต่อไปนี้
XJOIN Y
ผลที่ได้คือ
เมื่อทาคาสั่ง XJOIN Y เนื่องจากมีค่าของแอททริบิวต์"City"ที่เหมือนกัน จึงใช้Attribute นี้
เชื่อมโยงข้อมูล เช่นถ้าพิจารณาเฉพาะทูเพิลของ"B001"ของรีเลชั่นXซึ่งมีค่าแอททริบิวต์
"City" เท่ากับ"Korat" มา Join กับทูเพิลต่างๆในรีเลชั่น Y ผลที่ได้ได้แก่ทุกๆ ทูเพิลในรีเลชั่น
Yที่มีค่าแอททริบิวต์"City" เท่ากับ"Korat"
ในการ Join ระหว่างรีเลชั่นใดๆ นั้น ลาดับในการJoin จะไม่มีผลต่อผลลัพธ์ที่เกิดจากการJoin
นั้น ดังนั้นไม่ว่าจะใช้คาสั่ง XJOIN Y หรือ YJOIN X ย่อมให้ผลลัพธ์เช่นเดียวกัน
3.4.8. Division เป็นการแสดงข้อมูลจากสองรีเลชั่น
โดยที่รีเลชั่นทั้งสองมีแอททริบิวต์อย่างน้อยหนึ่งแอททริบิวต์ที่เหมือนกันผลลัพธ์ที่ได้
จะเป็นค่าของแอททริบิวต์จากรีเลชั่นที่มีจานวนแอททริบิวต์มากกว่า
ซึ่งเป็นค่าของแอททริบิวต์หนึ่งที่มีค่าหนึ่งที่จับคู่ตรงกับทุกค่าของแอททริบิวต์ที่เหมือนกันนี้ใน
อีกรีเลชั่นที่มีแอททริบิวต์น้อยกว่ารูปแบบ
ชื่อรีเลชั่น DIVIDEBY ชื่อรีเลชั่น
ตัวอย่างจากตาราง OและP
ตัวอย่างถ้ารีเลชั่นP คือ
ตัวอย่างถ้ารีเลชั่นP คือ
จัดทาโดย
นายบุญญฤทธิ์ ชอบทาดี เลขที่ 6
นายรัชชานนท์ สุดยอด เลขที่ 8
นายวรวุฒิ แก้วสะอาด เลขที่ 11
นายพีรพัฒน์ สงเคราะห์ เลขที่ 13
นายกฤศอนันต์ ชาญเชี่ยว เลขที่ 16
นายธีรพล กุลวุฒิ เลขที่ 17
ชั้นมัธยมศึกษาปีที่ 5/3

หน่วยที่ 3 ระบบฐานข้อมูลเชิงสัมพันธ์

  • 1.
    หน่วยที่ 3 ระบบฐานข้อมูลเชิงสัมพันธ์ 3.1.ความหมายของฐานข้อมูลเชิงสัมพันธ์ ระบบฐานข้อมูลเชิงสัมพันธ์(Relational Database) เป็นฐานข้อมูลที่ใช้โมเดลเชิงสัมพันธ์ (Relational Database Model) ซึ่งผู้คิดค้นโมเดลเชิงสัมพันธ์นี้คือDr. E.F.Codd โดยใช้หลักพื้นฐานทางคณิตศาสตร์ เนื่องด้วยแนวคิดของแบบจาลองแบบนี้มีลักษณะที่คนใช้กันทั่วกล่าวคือมีการเก็บเป็นตาราง ทาให้ง่ายต่อการเข้าใจและการประยุกต์ใช้งานด้วยเหตุนี้ ระบบฐานข้อมูลแบบนี้จึงที่ได้รับความนิยมมากที่สุดในแง่ของ entity แบบจาลองแบบนี้คือ แฟ้มข้อมูลในรูปตารางและ attribute ก็เปรียบเหมือนเขตข้อมูล ส่วนความสัมพันธ์คือความสัมพันธ์ระหว่าง entity ฐานข้อมูลเชิงสัมพันธ์ คือการเก็บข้อมูลในรูปของตาราง(Table) หลายๆตารางที่มีความสัมพันธ์กันในแต่ละตารางแบ่งออกเป็นแถวๆ และในแต่ละแถวจะแบ่งเป็นคอลัมน์(Column)ในทางทฤษฎีจะมีคาศัพท์เฉพาะแตกต่างออกไป เนื่องจากแบบจาลองแบบนี้เกิดจากทฤษฎีทางคณิตศาสตร์เรื่องเซ็ท(Set)ดังนั้น เราจะมีคาศัพท์เฉพาะดังตารางที่ 3.1นี้ ตารางที่ 3.1 คาศัพท์เฉพาะที่ใช้ในระบบฐานข้อมูลเชิงสัมพันธ์ ศัพท์เฉพาะ ศัพท์ทั่วไป รีเลชั่น(Relation) ตาราง(Table) ทูเปิล(Tuple) แถว(Row) หรือ เรคคอร์ด (Record) หรือ ระเบียน แอททริบิวท์(Attribute) คอลัมน์ (Column) หรือฟิลด์ (Field) คาร์ดินัลลิติ้ (Cardinality) จานวนแถว(Number of rows) ดีกรี (Degree) จานวนแอททริบิวท์(Number of attribute) คีย์หลัก(Primary key) ค่าเอกลักษณ์(Unique identifier)
  • 2.
    โดเมน (Domain) ขอบข่ายของค่าของข้อมูล(Pooloflegal values) รูปที่ 3.1 แสดงรายละเอียดของส่วนประกอบต่าง ๆ ของโมเดลแบบความสัมพันธ์ อาจจะเขียนในรูปสมการดังต่อไปนี้ R(รหัสประจาตัวประชาชน,ชื่อ,นามสกุล,วันเกิด) เนื่องจากแต่ละตารางสามารถมีความสัมพันธ์กันได้ดังที่กว่าไว้ในข้างต้น ทาให้การเก็บข้อมูลในรูปแบบนี้ มีความคล่องตัวสูงเพราะเราสามารถแยกเก็บข้อมูลใน หลายตารางโดยอาศัยความสัมพันธ์ดังกล่าวและสามารถสืบค้นได้จากรหัสพิเศษที่เรียกว่า กุญแจ(key)ดังรูปที่ 3.2 รูปที่ 3.2 แสดงตัวอย่างการสืบค้นข้อมูลโดยอาศัยความสัมพันธ์
  • 3.
    Dr.E.F.Coddได้กาหนดส่วนประกอบของโมเดลเชิงสัมพันธ์นี้ แบ่งเป็น3ส่วนได้แก่ 1. ส่วนที่เกี่ยวข้องกับโครงสร้างของข้อมูล 2.ส่วนที่เกี่ยวกับการควบคุมความถูกต้องให้กับข้อมูล 3. ส่วนในการจัดการกับข้อมูล 3.2. โครงสร้างของข้อมูล (Data Structure) 3.2.1. Relation โครงสร้างของฐานข้อมูลเชิงสัมพันธ์จะอยู่ในลักษณะของตาราง 2มิติ ประกอบด้วยทางด้านแถวและคอลัมน์ซึ่งจะเรียกว่ารีเลชัน(Relation)โดยทั่ว ๆ ไป Relation หนึ่ง ๆ จะมีคุณสมบัติต่างๆดังนี้ 1) ไม่มี Tuples คู่ใดๆ เลยที่ซ้ากัน(No duplicate tuples) 2) ลาดับที่ของ Tuplesไม่มีความสาคัญ 3) ลาดับที่ของ Attributes ไม่มีความสาคัญ 4) ค่าของAttribute จะเป็นค่าเดี่ยวๆ(Atomic) นั่นคือ ค่าของข้อมูลที่ปรากฏอยู่ในตารางจะเป็นค่าๆเดียวเป็นลิสต์ของค่าหลายๆค่าไม่ได้ซึ่ง Relation ที่มีคุณสมบัติข้อนี้จะถูกเรียกว่าเป็นRelationที่อยู่ในรูปแบบ Normal form 5) ค่าของข้อมูลในแต่ละ Attribute จะบรรจุค่าของข้อมูลประเภทเดียวกัน ชนิดของRelations ในระบบจัดการฐานข้อมูลทั่วๆไป Relation อาจจาแนกออกได้เป็น2 ประเภทดังนี้คือ 1) Relation หลัก (Base Relation) เป็น Relation ที่ถูกกาหนดขึ้นเพื่อเก็บข้อมูลและเพื่อนาข้อมูลไปใช้เมื่อมีการสร้าง Relation โดยใช้Data Definition Language เช่นใน SQL คาสั่งCREATETABLE เป็นการสร้าง Relation หลักหลังจากนั้นก็จะทาการเก็บข้อมูลเพื่อการเรียกใช้ข้อมูลในภายหลัง Relation หลักจะเป็นตารางที่จัดเก็บข้อมูลจริงไว้
  • 4.
    2) วิว(View) หรืออาจเรียกอีกอย่างหนึ่งว่าRelation สมมุติ (Virtual Relation) เป็น Relation ที่ถูกสร้างขึ้นตามความต้องการใช้ข้อมูลของผู้ใช้แต่ละคนเนื่องจาก ผู้ใช้แต่ละคนอาจต้องการใช้ข้อมูลในลักษณะที่แตกต่างกัน จึงทาการกาหนดวิวของตัวเองขึ้นมาจาก Relationหลักเพื่อความสะดวกในการใช้ข้อมูล และช่วยให้การรักษาความปลอดภัยของฐานข้อมูลทาได้ง่ายขึ้นRelation ที่ถูกสมมติขึ้นมานี้จะไม่มีการเก็บข้อมูลจริงๆในระบบฐานข้อมูล ลักษณะของรีเลชั่นแสดงดังรูปที่ 3.3 รูปที่ 3.3 โครงสร้างของฐานข้อมูลเชิงสัมพันธ์ จากรูปที่ 3.3ตารางข้อมูลทั้งหมดจะเรียกว่าRelationแต่โดยส่วนใหญ่นิยมเรียกว่า Table หรือ ตารางเนื่องจากโครงสร้างการจัดเก็บเป็นแบบตารางส่วนข้อมูลในแต่ละแถวจะเรียกว่าทูเพิล (Tuple) ส่วนข้อมูลในแต่ละคอลัมน์จะเรียกว่าแอตทริบิวส์(Attribute) ดังตัวอย่างมี4 แอตทริบิวส์คือ SID, Sname, GPA, Major เขียนเป็นสมการได้ดังนี้ Student(SID,Sname,GPA,Major) 3.2.2. Domain โดเมน (Domain) คือการกาหนดขอบเขตและชนิดของข้อมูลเพื่อป้ องกันไม่ให้ข้อมูลที่ผู้ใช้จัดเก็บ มีความผิดพลาดไปจากความเป็นจริงที่ควรจะเป็นตัวอย่างดังรูปที่ 3.4
  • 5.
    รูปที่ 3.4 โดเมนของข้อมูล จากรูปที่3.4เป็นการกาหนดโดเมนให้กับแอตทริบิวส์ข้อมูล GPA ซึ่งเป็นค่าเกรดเฉลี่ย ของนักศึกษาซึ่งค่าเกรดเฉลี่ยจะต้องมีค่าอยู่ระหว่าง0-4 ดังนั้นจึงต้องกาหนดโดเมนให้กับแอตทริบิวส์GPAเพื่อไม่ให้ข้อมูลผิดพลาดไปจากนี้ 3.2.3. คีย์ (Key) คีย์คือแอตทริบิวส์หรือ กลุ่มของแอตทริบิวส์ที่สามารถแยกความแตกต่างของข้อมูล ในแต่ละทูเพิลได้หรือแอตทริบิวส์ที่ข้อมูลในแอตทริบิวส์นั้นต้องมีข้อมูลที่ไม่ซ้ากันซึ่งคีย์ มีอยู่หลายชนิดด้วยกันได้แก่ 3.2.3.1. คีย์อย่างง่าย(Simple key) หมายถึง keyที่ประกอบด้วยattribute เดียว 3.2.3.2. คีย์ประกอบ (Combine key หรือ Composite key) หมายถึงkey ที่ ประกอบด้วย attribute มากกว่า1attribute 3.2.3.3. คีย์คู่แข่ง(Candidate Key) คือคีย์ที่เล็กที่สุดที่แยกความแตกต่างของข้อมูล แต่ละทูเพิลได้ยกตัวอย่างเช่นในรีเลชัน Student มีข้อมูลที่สามารถเป็นคีย์คู่แข่งคือแอตทริบิวส์ รหัสนักศึกษา และการใช้แอตทริบิวส์ชื่อรวมกับนามสกุล ซึ่งทั้งสองแบบสามารถระบุความแตกต่างของข้อมูลแต่ละทูเพิลได้ 3.2.3.4. คีย์หลัก (Primary Key) คือคีย์คู่แข่งซึ่งได้เลือกมาเพื่อใช้กาหนดให้เป็นค่าคีย์หลักของ รีเลชันซึ่งข้อมูลที่เป็นคีย์หลักนั้นจะต้องมีข้อมูลที่ไม่ซ้ากันและมักจะเลือกคีย์คู่แข่ง ที่มีขนาดเล็กมาเป็นคีย์หลักตัวอย่างเช่นการเลือกแอตทริบิวส์รหัสนักศึกษามาเป็นค่าคีย์หลัก เนื่องจากมีขนาดเล็กกว่าแอตทริบิวส์ชื่อรวมกับนามสกุล ซึ่งจะทาให้การทางานเร็วกว่า เนื่องจากมีขนาดเล็กกว่า
  • 6.
    3.2.3.5. คีย์รอง(Alternate Keyหรือ Secondarykey) คือคีย์คู่แข่งอื่นๆที่ไม่ได้ ถูกเลือกมาใช้งานยกตัวอย่างเช่นแอตทริบิวส์ชื่อรวมกับนามสกุล ซึ่งไม่ได้ถูกเลือกให้เป็นคีย์หลักของรีเลชันก็จะกลายเป็น Alternate Key 3.2.3.6. คีย์นอก (Foreign Key)เป็นคีย์ที่ใช้เชื่อมความสัมพันธ์ของรีเลชันตัวอย่างแสดงดังรูปที่ 3.5 รูปที่ 3.5 คีย์หลักและคีย์นอก จากรูปที่ 3.5รีเลชัน Student มีค่าคีย์หลักคือSID ซึ่งเป็นรหัสนักศึกษา โดยข้อมูลของรหัสนักศึกษาจะต้องมีข้อมูลที่ไม่ซ้ากันและมีคีย์นอกของตารางคือแอตทริบิวส์ Major ซึ่งเชื่อมโยงความสัมพันธ์ไปยังแอตทริบิวส์Major ของรีเลชันMajor ซึ่งข้อมูลทุกตัวของแอตทริบิวส์Majorในรีเลชัน Student จะต้องมีอยู่ในแอตทริบิวส์Major ของรีเลชันMajor ส่วนตาราง Major มีคีย์หลักคือแอตทริบิวส์Major 3.2.3.7. ซุปเปอร์คีย์ (Super key) หมายถึง attribute หรือ เซ็ทของ attribute ที่ สามารถบ่งบอกว่าแต่ละแถว(Tuple)แตกต่างกันในทุกๆความสัมพันธ์ จะต้องมีอย่างน้อย หนึ่ง super key ในเซ็ทของ attributes 3.3. กฎที่เกี่ยวข้องกับการรักษาความถูกต้อง กฎที่ใช้สาหรับรักษาความถูกต้องของข้อมูลแบ่งออกเป็น 2กฎคือกฎที่เกี่ยวข้องกับเอนทิตี้ และกฎที่เกี่ยวข้องกับการเชื่อมโยงความสัมพันธ์ของเอนทิตี้ )
  • 7.
    3.3.1. กฎความบูรณภาพของเอนทิตี้(Entity IntegrityRule) กฎความบูรณภาพของเอนทิตี้ เป็นกฎที่ใช้กาหนดเพื่อให้ข้อมูลของเอนทิตี้ มีความถูกต้อง ซึ่งกล่าวไว้ว่า"แอตทริบิวส์ที่ทาหน้าที่เป็นคีย์หลักของรีเลชันไม่สามารถมีค่าเป็นค่าว่างได้ (Null Value)" และจะต้องมีคุณสมบัติที่เป็นเอกลักษณ์(Identity) คือสามารถระบุข้อมูลแอตทริบิวส์อื่นๆ ที่อยู่ในทูเพิลเดียวกันได้ 3.3.2. กฎความบูรณภาพของการอ้างอิง(Referential Integrity Rule) กฎความบูรณภาพของการอ้างอิง คือกฎที่ใช้รักษาความถูกต้องของข้อมูลที่มีความสัมพันธ์กันของเอนทิตี้ ซึ่งได้กล่าวไว้ว่า "ค่าของคีย์นอกในรีเลชันจะต้องมีข้อมูลอยู่ในอีก รีเลชันหนึ่ง ที่คีย์นอกของรีเลชันนั้นอ้างอิงถึง" ในบางกรณีคีย์นอกอาจเป็นค่าว่างได้ถ้านโยบายขององค์กรอนุญาตให้ค่าคีย์นอกเป็นค่าว่างได้ กรณีหากมีการลบหรือแก้ไขข้อมูลในรีเลชันที่ถูกอ้างอิงถึง ซึ่งจะทาให้สูญเสียความบูรณภาพของข้อมูลดังตัวอย่างรูปที่ 3.6 หากมีการแก้ไขหรือลบข้อมูลของรีเลชัน Majorในแอตทริบิวส์Major ซึ่งมีความสัมพันธ์อยู่กับรีเลชันStudent จะทาให้ความสัมพันธ์ของข้อมูลเสียหาย ดังนั้นจึงต้องเลือกการกระทาเพื่อไม่ให้ความสัมพันธ์ของข้อมูลสูญเสียไปดังนี้ กรณีการแก้ไขข้อมูล 1. ห้ามทาการแก้ไขข้อมูลในรีเลชันที่ถูกอ้างถึงนั้นเนื่องจากจะทาให้ข้อมูลในรีเลชันที่อ้างอิงมา ไม่สามารถอ้างอิงข้อมูลได้ 2. อนุญาตให้ทาการแก้ไขข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้แต่จะต้องตามไปแก้ไขข้อมูล ในรีเลชันที่อ้างอิงมาให้ตรงกับข้อมูลที่แก้ไขใหม่ทั้งหมด 3. อนุญาตให้ทาการแก้ไขข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้ โดยการแก้ไขข้อมูลในรีเลชัน ที่อ้างอิงมาให้มีค่าเป็น ค่าว่าง
  • 8.
    รูปที่ 3.6 รีเลชันที่มีความสัมพันธ์กัน กรณีการลบข้อมูล 1.ห้ามทาการลบข้อมูลในรีเลชันที่ถูกอ้างถึงนั้นเนื่องจากจะทาให้ข้อมูลในรีเลชันที่อ้างอิงมา ไม่สามารถอ้างอิงข้อมูลได้ 2. อนุญาตให้ทาการลบข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้แต่จะต้องตามไปลบข้อมูลในรีเลชัน ที่อ้างอิงมาทั้งหมด 3. อนุญาตให้ทาการลบข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้โดยการแก้ไขข้อมูลในรีเลชัน ที่อ้างอิงมาให้มีค่าเป็น ค่าว่าง(Nullvalue) ค่าว่าง(Null Values) ค่าของAttribute อาจจะเป็นค่าว่าง(Null) คือไม่มีค่าหรือยังไม่ทราบค่าได้ ตัวอย่างเช่น จานวนไข่ของนกกระจอกเทศจะสามารถบอกได้เมื่อนกกระจอกเทศออกไข่แล้ว แต่ยังไม่ทราบค่าในขณะที่จานวนไข่ของช้างนั้นไม่มีค่าเป็นต้น 3.4. การจัดการกับข้อมูล (Data manipulation) Dr. E.F.Coddได้นาทฤษฎีของเซทซึ่งเป็นทฤษฎีทางคณิตศาสตร์มาใช้ในการจัดการกับ ข้อมูลของฐานเชิงสัมพันธ์ซึ่งมีอยู่หลายการกระทาด้วยกันในบทนี้จะกล่าวโดยย่อๆเท่านั้น เนื่องจากเป็นเนื้อหาทางทฤษฎี ซึ่งการนาไปใช้งานจริงนั้นจะพูดถึงในบทที่เกี่ยวกับคาสั่งที่ใช้ จัดการฐานข้อมูลซึ่งเนื้อหาจะมีความใกล้เคียงกันการกระทาเหล่านี้ได้แก่
  • 9.
    3.4.1. Restrict คาว่าRestrict เป็นโอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการเลือกข้อมูลจากรีเลชั่นหนึ่งๆ ที่มีเงื่อนไขตรงตามที่ระบุไว้กล่าวอีกนัยหนึ่งคือ ใช้ในการแสดงข้อมูลของทูเพิลที่เป็นไปตามเงื่อนไขที่ระบุไว้้ รูปแบบ ชื่อรีเลชั่นWHERE<COMPARISION> COMPARISION ในที่นี้ หมายถึงเงื่อนไขของข้อมูลที่ต้องการเรียกดู ซึ่งจะระบุชื่อแอททริบิวต์ และค่าเฉพาะที่ต้องการดูข้อมูลโดยมีเครื่องหมายที่ประกอบการระบุเงื่อนไขเช่น=(เท่ากับ) < (น้อยกว่า) > (มากกว่า)<> (ไม่เท่ากับ)เป็นต้น ในกรณีที่มีเงื่อนไขมากกว่าหนึ่งเงื่อนไขอาจใช้คาว่าOR(หรือ) AND (และ) ประกอบกันเป็นเงื่อนไขที่ต้องการได้ ตัวอย่างจากตารางให้แสดงรายละเอียดของนักศึกษาที่อยู่นครราชสีมา นักศึกษา รหัส ชื่อ จังหวัด B001 แดง นครราชสีมา B002 ดา กรุงเทพฯ B003 เขียว สระบุรี B004 ขาว นครราชสีมา นักศึกษา WHERE จังหวัด = 'นครราชสีมา' ผลที่ได้ ดังนี้
  • 10.
    นักศึกษา รหัส ชื่อ จังหวัด B001แดง นครราชสีมา B004 ขาว นครราชสีมา 3.4.2. Project คาว่าProject เป็นโอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการแสดงข้อมูลเพียงบางแอททริบิวต์จากรีเลชั่นหนึ่ง ๆ ซึ่งการแสดงข้อมูลอาจจะเป็นแบบมีเงื่อนไขหรือไม่มีก็ได้ รูปแบบ ชื่อรีเลชั่น [ชื่อแอตทริบิวต์1, ชื่อแอตทริบิวต์2, ...] หรือ ชื่อรีเลชั่น WHERE<COMPARISION> [ชื่อแอตทริบิวต์1, ...] ตัวอย่างจากตารางนักศึกษาที่ผ่านมาให้แสดงชื่อจังหวัดที่นักศึกษาอยู่ นักศึกษา [จังหวัด] ผลที่ได้ ดังนี้ จังหวัด นครราชสีมา กรุงเทพฯ สระบุรี นครราชสีมา
  • 11.
    ตัวอย่างจากตารางนักศึกษาที่ผ่านมาให้แสดงชื่อนักศึกษาและชื่อจังหวัดเฉพาะนครราชสีมา (นักศึกษา WHERE จังหวัด='นครราชสีมา' [ชื่อ,จังหวัด] ผลที่ได้ ดังนี้ ชื่อ จังหวัด แดง นครราชสีมา ขาว นครราชสีมา 3.4.3. Product Product หรือ Cartesian Product เป็นการกระทาเพื่อแสดงข้อมูลที่เป็นไปได้ทุกกรณีของการ จับคู่กันระหว่าง 2รีเลชันดังตัวอย่างรูปที่ 3.7 รูปแบบ ชื่อรีเลชั่นแรกTIMES ชื่อรีเลชั่นสอง] จากตารางต่อไปนี้ นักศึกษา TIMESวิชา ผลที่ได้คือ
  • 12.
    หรือแสองสมการตามรูปที่ 3.7 รูปที่ 3.7การกระทา Product 3.4.4. Union คือการแสดงข้อมูลตามลักษณะทฤษฎีการUnionของเซต คือส่วนของข้อมูลทูเพิลที่ต่างกันของรีเลชันจะนามาทั้งหมด ส่วนข้อมูลทูเพิลที่เหมือนกันของรีเลชันจะนามาจากรีเลชันเดียวโดยรีเลชั่นที่จะมาUnionกัน ต้องเป็นรีเลชั่นที่ไปกันได้(Compatible Relation) นั่นคือ จะต้องมีจานวนและชื่อแอททริบิวต์ที่เหมือนกันและจัดเรียงแอททริบิวต์ในตารางที่เหมือนกัน (จากซ้ายไปขวา)ดังตัวอย่างรูปที่ 3.8ข้อมูลส่วนที่แรเงาคือข้อมูลผลลัพธ์ของการทา Union รูปที่ 3.8 การกระทา Union
  • 13.
    รูปแบบ ชื่อรีเลชั่นแรกUNION ชื่อรีเลชั่นสอง ตัวอย่างจากตาราง AและBเป็นดังนี้คือ A รหัส ชื่อ จังหวัด B001 แดง นครราชสีมา B002 ดา กรุงเทพฯ B003 เขียว สระบุรี B004 ขาว นครราชสีมา B รหัส ชื่อ จังหวัด B001 แดง นครราชสีมา B005 ฝน กรุงเทพฯ AUNION B ผลที่ได้คือ รหัส ชื่อ จังหวัด<>/th> B001 แดง นครราชสีมา B002 ดา กรุงเทพฯ B003 เขียว สระบุรี B004 ขาว นครราชสีมา B005 ฝน กรุงเทพ
  • 14.
    3.4.5. Intersection คาว่าIntersection เป็นโอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการแสดงข้อมูลที่มีอยู่ในทั้งสองรีเลชั่นหรือมากกว่า โดยรีเลชั่นที่จะมาIntersection กันจะเป็นรีเลชั่นที่ไปกันได้(Compatible Relation) ดังตัวอย่างรูปที่ 3.9ข้อมูลส่วนที่แรเงาคือข้อมูลผลลัพธ์ของการทา Intersection รูปที่ 3.9 การกระทา Intersection รูปแบบ ชื่อรีเลชั่นแรกINTERSECTชื่อรีเลชั่นสอง จากตัวอย่างตาราง AและBที่ผ่านมา AINTERSECT B ผลที่ได้คือ รหัส ชื่อ จังหวัด<>/th> B001 แดง นครราชสีมา 3.4.6. Difference คือการแสดงข้อมูลทูเพิลของรีเลชันซึ่งไม่มีอยู่ในอีกรีเลชันหนึ่งตามทฤษฎีการ Difference ของเซตเช่นถ้านาข้อมูลรีเลชันA- รีเลชัน Bข้อมูลที่ได้คือข้อมูลของรีเลชันAที่ไม่มีในรีเลชัน B ซึ่งจะให้ผลลัพธ์ที่แตกต่างกันกับ รีเลชันB-รีเลชัน A โดยที่รีเลชั่นทั้งสองเป็นรีเลชั่นที่ไปกันได้(Compatible Relation) ดังตัวอย่างรูปที่ 3.10 ซึ่งผลลัพธ์ของการทาDifference คือส่วนที่แรเงา
  • 15.
    รูปที่ 3.10 การกระทาDifference รูปแบบ ชื่อรีเลชั่นแรกMINUS ชื่อรีเลชั่นสอง จากตัวอย่างตาราง AและBที่ผ่านมา AMINUS B ผลที่ได้คือ รหัส ชื่อ จังหวัด<>/th> B002 ดา กรุงเทพฯ B003 เขียว สระบุรี B004 ขาว นครราชสีมา 3.4.7. Join เป็นการกระทาเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมดที่เกิดจากการเชื่อมโยงข้อมูลของ 2รีเลชั่น ที่มีค่าของข้อมูลในAttribute ที่กาหนดเหมือนกันโดยAttribute นี้อาจเป็นเพียงAttribute เดียวหรือมากกว่าก็ได้แต่ที่สาคัญ Attribute นี้ จะต้องมีชื่อที่เหมือนกันและมีDomain ของข้อมูลเดียวกัน
  • 16.
    รูปแบบ ชื่อรีเลชั่น JOIN ชื่อรีเลชั่น ตัวอย่างจากตารางXและYที่กาหนดให้ต่อไปนี้ XJOIN Y ผลที่ได้คือ เมื่อทาคาสั่ง XJOIN Y เนื่องจากมีค่าของแอททริบิวต์"City"ที่เหมือนกัน จึงใช้Attribute นี้ เชื่อมโยงข้อมูล เช่นถ้าพิจารณาเฉพาะทูเพิลของ"B001"ของรีเลชั่นXซึ่งมีค่าแอททริบิวต์ "City" เท่ากับ"Korat" มา Join กับทูเพิลต่างๆในรีเลชั่น Y ผลที่ได้ได้แก่ทุกๆ ทูเพิลในรีเลชั่น Yที่มีค่าแอททริบิวต์"City" เท่ากับ"Korat" ในการ Join ระหว่างรีเลชั่นใดๆ นั้น ลาดับในการJoin จะไม่มีผลต่อผลลัพธ์ที่เกิดจากการJoin นั้น ดังนั้นไม่ว่าจะใช้คาสั่ง XJOIN Y หรือ YJOIN X ย่อมให้ผลลัพธ์เช่นเดียวกัน
  • 17.
    3.4.8. Division เป็นการแสดงข้อมูลจากสองรีเลชั่น โดยที่รีเลชั่นทั้งสองมีแอททริบิวต์อย่างน้อยหนึ่งแอททริบิวต์ที่เหมือนกันผลลัพธ์ที่ได้ จะเป็นค่าของแอททริบิวต์จากรีเลชั่นที่มีจานวนแอททริบิวต์มากกว่า ซึ่งเป็นค่าของแอททริบิวต์หนึ่งที่มีค่าหนึ่งที่จับคู่ตรงกับทุกค่าของแอททริบิวต์ที่เหมือนกันนี้ใน อีกรีเลชั่นที่มีแอททริบิวต์น้อยกว่ารูปแบบ ชื่อรีเลชั่นDIVIDEBY ชื่อรีเลชั่น ตัวอย่างจากตาราง OและP ตัวอย่างถ้ารีเลชั่นP คือ
  • 18.
  • 19.
    จัดทาโดย นายบุญญฤทธิ์ ชอบทาดี เลขที่6 นายรัชชานนท์ สุดยอด เลขที่ 8 นายวรวุฒิ แก้วสะอาด เลขที่ 11 นายพีรพัฒน์ สงเคราะห์ เลขที่ 13 นายกฤศอนันต์ ชาญเชี่ยว เลขที่ 16 นายธีรพล กุลวุฒิ เลขที่ 17 ชั้นมัธยมศึกษาปีที่ 5/3