Sunday, July 19, 2015

ฐานข้อมูลเชิงสัมพันธ์
ระบบฐานข้อมูลเชิงสัมพันธ์ (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) ขอบข่ายของค่าของข้อมูล (Pool of 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 คำสั่ง CREATE TABLE เป็นการสร้าง 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 มากกว่า 1 attribute

3.2.3.3. คีย์คู่แข่ง (Candidate Key) คือคีย์ที่เล็กที่สุด ที่แยกความแตกต่างของข้อมูล แต่ละทูเพิลได้ ยกตัวอย่างเช่น ในรีเลชัน Student มีข้อมูลที่สามารถเป็นคีย์คู่แข่ง คือแอตทริบิวส์ รหัสนักศึกษา และการใช้แอตทริบิวส์ ชื่อรวมกับนามสกุล ซึ่งทั้งสองแบบสามารถระบุความแตกต่าง ของข้อมูล แต่ละทูเพิลได้

3.2.3.4. คีย์หลัก (Primary Key) คือคีย์คู่แข่งซึ่งได้เลือกมาเพื่อใช้กำหนดให้เป็นค่าคีย์ หลักของ รีเลชัน ซึ่งข้อมูลที่เป็นคีย์หลักนั้นจะต้องมีข้อมูลที่ไม่ซ้ำกัน และมักจะเลือกคีย์คู่แข่ง ที่มีขนาดเล็กมาเป็นคีย์หลัก ตัวอย่างเช่น การเลือกแอตทริบิวส์รหัสนักศึกษา มาเป็นค่าคีย์หลัก เนื่องจาก มีขนาดเล็กกว่าแอตทริบิวส์ ชื่อ รวมกับ นามสกุล ซึ่งจะทำให้การทำงานเร็วกว่า เนื่องจากมีขนาดเล็กกว่า

3.2.3.5. คีย์รอง (Alternate Key หรือ Secondary key) คือคีย์คู่แข่งอื่นๆ ที่ไม่ได้ ถูกเลือกมาใช้งาน ยกตัวอย่างเช่น แอตทริบิวส์ ชื่อรวมกับนามสกุล ซึ่งไม่ได้ถูกเลือกให้เป็นคีย์หลักของรีเลชัน ก็จะกลายเป็น 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. อนุญาตให้ทำการลบข้อมูลในรีเลชันที่ถูกอ้างอิงถึงได้ โดยการแก้ไขข้อมูลในรีเลชัน ที่อ้างอิงมาให้มีค่าเป็น ค่าว่าง (Null value)
ค่าว่าง (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ฝนกรุงเทพฯ
A UNION B
ผลที่ได้คือ

รหัสชื่อจังหวัด<>/th>
B001แดงนครราชสีมา
B002ดำกรุงเทพฯ
B003เขียวสระบุรี
B004ขาวนครราชสีมา
B005ฝนกรุงเทพ
3.4.5. Intersection คำว่า Intersection เป็นโอเปอเรเตอร์ทางคณิตศาสตร์ที่ใช้ในการแสดงข้อมูลที่มีอยู่ในทั้งสองรีเล ชั่น หรือมากกว่า โดยรีเลชั่นที่จะมา Intersection กันจะเป็นรีเลชั่นที่ไปกันได้ (Compatible Relation) ดังตัวอย่างรูปที่ 3.9 ข้อมูลส่วนที่แรเงาคือข้อมูลผลลัพธ์ของการทำ Intersection

รูปที่ 3.9 การกระทำ Intersection
รูปแบบ

ชื่อรีเลชั่นแรก INTERSECT ชื่อรีเลชั่นสอง
จากตัวอย่างตาราง A และ B ที่ผ่านมา
A INTERSECT 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 ที่ผ่านมา
A MINUS B
ผลที่ได้คือ
รหัสชื่อจังหวัด<>/th>
B002ดำกรุงเทพฯ
B003เขียวสระบุรี
B004ขาวนครราชสีมา

3.4.7. Join

เป็นการกระทำเพื่อแสดงข้อมูลที่เป็นไปได้ทั้งหมดที่เกิดจากการเชื่อมโยง ข้อมูลของ 2 รีเลชั่น ที่มีค่าของข้อมูลใน Attribute ที่กำหนดเหมือนกันโดย Attribute นี้อาจเป็นเพียง Attribute เดียวหรือมากกว่าก็ได้ แต่ที่สำคัญ Attribute นี้ จะต้องมีชื่อที่เหมือนกัน และมี Domain ของข้อมูลเดียวกัน
รูปแบบ

ชื่อรีเลชั่น JOIN ชื่อรีเลชั่น
ตัวอย่างจาก ตาราง X และ Y ที่กำหนดให้ต่อไปนี้

X JOIN Y
ผลที่ได้คือ

เมื่อทำคำสั่ง X JOIN Y เนื่องจากมีค่าของแอททริบิวต์ "City" ที่เหมือนกัน จึงใช้ Attribute นี้ เชื่อมโยงข้อมูล เช่นถ้าพิจารณาเฉพาะทูเพิลของ "B001" ของรีเลชั่น X ซึ่งมีค่าแอททริบิวต์ "City" เท่ากับ "Korat" มา Join กับทูเพิลต่าง ๆ ในรีเลชั่น Y ผลที่ได้ ได้แก่ทุก ๆ ทูเพิลในรีเลชั่น Y ที่มีค่าแอททริบิวต์ "City" เท่ากับ "Korat"
ในการ Join ระหว่างรีเลชั่นใด ๆ นั้น ลำดับในการ Join จะไม่มีผลต่อผลลัพธ์ที่เกิดจากการ Join นั้น ดังนั้น ไม่ว่าจะใช้คำสั่ง X JOIN Y หรือ Y JOIN X ย่อมให้ผลลัพธ์เช่นเดียวกัน

3.4.8. Division เป็นการแสดงข้อมูลจากสองรีเลชั่น โดยที่รีเลชั่นทั้งสองมีแอททริบิวต์อย่างน้อยหนึ่งแอททริบิวต์ที่เหมือนกัน ผลลัพธ์ที่ได้ จะเป็นค่าของแอททริบิวต์จากรีเลชั่นที่มีจำนวนแอททริบิวต์มากกว่า ซึ่งเป็นค่าของแอททริบิวต์หนึ่งที่มีค่าหนึ่งที่จับคู่ตรงกับทุกค่าของแอ ททริบิวต์ที่เหมือนกันนี้ในอีกรีเลชั่นที่มีแอททริบิวต์น้อยกว่า รูปแบบ

ชื่อรีเลชั่น DIVIDEBY ชื่อรีเลชั่น
ตัวอย่าง จากตาราง O และ P

ตัวอย่าง ถ้ารีเลชั่น P คือ

ตัวอย่าง ถ้ารีเลชั่น P คือ

0 comments:

Post a Comment

Subscribe to RSS Feed Follow me on Twitter!