ฐานข้อมูลเชิงสัมพันธ์

Download Report

Transcript ฐานข้อมูลเชิงสัมพันธ์

บทที่ 4 ฐานข้อมูลเชิงสัมพันธ์
(Relational Database)
ฐานข้อมูลเชิงสัมพันธ์ (Relational Database) คิดค้น
โดย E.F. Codd เนือ่ งจากเป็ นรูปแบบของฐานข้อมูลทีเ่ ข้าใจ
ง่าย ไม่ซบั ซ้อน และระบบฐานข้อมูลมีเครือ่ งมือที่ช่วยให้
ผูใ้ ช้สามารถค้นหาปั ญหาทีเ่ กิดขึ้ นจากการออกแบบได้
โดยง่าย
ระบบฐานข้อมูลในปั จจุบนั เป็ นระบบฐานข้อมูลเชิง
สัมพันธ์เป็ นส่วนใหญ่ เช่น Oracle, Foxpro, Access, Ingress
เป็ นต้น
ศัพท์เทคนิคที่เกีย่ วข้อง
ศัพท์เทคนิคใน
ฐานข้อมูลเชิงสัมพันธ์
รีเลชั่น (Relation)
ทัพเพิล (Tuple)
แอททริบิวต์ (Attribute)
คาร์ดินัลลิตี
(Cardinality)
ดีกรี (Degree)
คีย์หลัก (Primary Key)
โดเมน (Domain)
ศัพท์เทคนิคในระบบ
แฟ้ มข้อมูล
แฟ้ มข้ อมูล (File)
ระเบียน (Record)
เขตข้ อมูล (Field)
จานวนระเบียน
ศัพท์ทวั ่ ไป
ตาราง (Table)
แถว (Row)
คอลัมน์ (Column)
จานวนแถว
จานวนเขตข้ อมูล
คีย์หลัก
ขอบเขตของค่าข้ อมูล
จานวนคอลัมน์
ค่าเอกลักษณ์ (Unique)
ขอบเขตของค่าข้ อมูล
ความหมายของรีเลชัน
รีเลชัน หมายถึง การรวบรวมข้ อมูลจัดเก็บในรูปของตาราง 2 มิติ
ประกอบด้ วยแอททริบิวต์ ซึ่งแสดงคุณสมบัติของรีเลชันนั้นๆ
โดยมีคุณสมบัติดังนี้
1. แต่ละแถวใช้ แทนทัพเพิล (Tuple) หรือเรคคอร์ดในรีเลชัน
2. ลาดับของทัพเพิลไม่มีความสาคัญ
3. ลาดับของแอททริบิวต์ หรือคอลัมน์ไม่มีความสาคัญ
4. ทุกทัพเพิลต้ องมีความแตกต่างกันโดยเนื้อหาหรือข้ อเท็จจริง หรือ
ข้ อมูลในแต่ละทัพเพิลต้ องไม่ซา้ กัน
ความหมายของรีเลชัน (ต่อ)
5. แต่ละทัพเพิล(แถว) จะบรรจุข้อมูลเพียงค่าเดียว
6. ค่าที่อยู่ในแต่ละแอตทริบวิ ต์(คอลัมน์) จะเป็ นค่าของ
แอตทริบวิ ต์ท่รี ะบุในหัวแอตทริบวิ ต์น้นั ๆ
7. ชื่อของแต่ละคอลัมน์ คือ ชื่อของแอตทริบิวต์ซ่ึงจะต้ อง
แตกต่างกัน
ตัวอย่ างรีเลชันในฐานข้ อมูลเชิงสั มพันธ์
Department
ทัพเพิล
แอตทริบิวต์
รีเลชัน
Dept_no
Dept_name
Location
10
การเงิน
กรุงเทพฯ
20
วิจยั
เชียงใหม่
30
ขาย
ชลบุรี
40
ปฏิบตั ิการ
กรุงเทพฯ
ภาพ 4.1 รีเลชันในฐานข้อมูลเชิงสัมพันธ์
ความหมายของฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์ หมายถึง การรวบรวมรี เลชันต่างๆ ที่
มีความสัมพันธ์ระหว่างกันเข้าด้วยกัน โดยรี เลชันต่างๆ ได้
ผ่านกระบวนการทารี เลชันให้เป็ นบรรทัดฐาน (Normalized)
แล้ว เพื่อให้การจัดการฐานข้อมูลเป็ นไปอย่างมีประสิ ทธิภาพ
เอนทิทีและรีเลชันชิพ (entity and relationship)
เอนทิตี (Entity) หมายถึง ชื่อของสิง่ ใดสิง่ หนึง่ อยู่
ในรูปของคานาม อาจได้แก่ คน สถานที่ สิง่ ของ การ
กระทา ทีต่ อ้ งการจัดเก็บไว้ เช่น เอนทิตีลูกค้า เอนทิตี
พนักงาน เอนทิตีนกั ศึกษา ซึ่งจะถูกสร้ างขึ้นโดยชุดของแอ
ตทริบิวต์
 รีเลชันชิพ (Relationship) หมายถึง ความสัมพันธ์ระหว่าง
เอนทิตี
แอตทริบิวต์ (Attributes) และโดเมน (Domains)
แอตทริบิวต์ หมายถึง คุณลักษณะเฉพาะของแต่ละเอนทิตี และ
ค่าในแต่ละแอตทริบิวต์เป็ นค่าที่นามาจากโดเมนใดโดเมนหนึ่ง
เท่านั้น
โดเมน
ความหมายที่ 1 คือ ขอบเขตของค่าของข้ อมูลในแอตทริบิวต์
หนึ่งๆ เช่น วันที่เริ่มเข้ ารับการศึกษา จะเป็ นค่าวันที่ในปฏิทนิ
หรือนักศึกษาแต่ละคนอาจสมัครเป็ นสมาชิกชมรมใดก็ได้ ท่ตี น
สนใจหรืออาจไม่เป็ นสมาชิกชมรมใดเลยก็ได้
โดเมน
ความหมายที่ 2 โดเมนคือ เซตของค่าที่เป็ นไปได้ ในแอตทริบิวต์น้นั
เช่น โดเมนของแอตทริบิวต์ Location คือค่าที่เป็ นไปได้ ใน
แอตทริบิวต์ Location ดังแสดงในภาพ 4.2 ซึ่งจะไม่สามารถ
นาค่าอื่นที่ไม่อยู่ในโดเมนที่กาหนด เช่น ขอนแก่น มาใส่ไว้ ใน
แอตทริบิวต์น้ ไี ด้
ตัวอย่างโดเมนของแอตทริบวิ ต์
Location
กรุ งเทพฯ
ชลบุรี
เชียงใหม่
ค่าที่เป็ นไปได้ ใน
แอตทริบิวต์
Location
สงขลา
ภาพ 4.2 ตัวอย่างโดเมนของแอตทริบวิ ต์
คุณสมบัติของค่าแอตทริบิวต์
ค่าของแอตทริบวิ ต์ท่จี ะใส่ลงไปในรีเลชันต้ องมีคณ
ุ สมบัติดังนี้
1. เป็ นค่าที่เป็ นอะตอมมิค (atomic) หมายถึง ค่าที่ไม่
สามารถแบ่งย่อยต่อไปอีก
2. ไม่อนุญาตให้ มีแอตทริบวิ ต์ท่ม
ี ีหลายค่า (multivalued
attribute) ซึ่งเป็ นคุณสมบัติท่เี รียกว่า First Narmal Form)
คุณสมบัติของโดเมน
แต่ละโดเมนจะถูกกาหนดด้ วยชื่อ, ชนิดข้ อมูล (Data type)
และรูปแบบ (Format) ดังตัวอย่างภาพที่ 4.3
ชื่อ
ชนิดข้ อมูล
รูปแบบ
Dept_name
String
15 chars
Salary
Integer
8 digits
ภาพ 4.3 คุณสมบัติของโดเมน
การใช้งานโดเมน
การหาความสัมพันธ์ในแบบจาลองข้ อมูลเชิงสัมพันธ์ ทาได้
โดยการเปรียบเทียบค่าของแอตทริบวิ ต์ท่ใี ช้ ร่วมกัน โดยที่คู่
ของค่าเหล่านี้จะมีความหมายก็ต่อเมื่อเป็ นค่าทีม่ าจากโดเมน
เดียวกัน ดังตัวอย่างในภาพ 4.4
การใช้งานโดเมน (ต่อ)
Flight
โดเมน
Airport
โดเมน
time
Flight_no Dep_time Arr_time Origination Destination
TG042 0900
1000
BKK
KK
TG092
1200
1350
BKK
CM
TG053
1400
1530
CM
BKK
ภาพ 4.4 ตัวอย่างการใช้งานโดเมน
การใช้งานโดเมน (ต่อ)
Airport
Airport_code
City
BKK
Bangkok
KK
Khon Kaen
CM
Chiangmai
ภาพ 4.4 ตัวอย่างการใช้งานโดเมน
(ต่อ)
ดีกรี (Degree) และคาร์ดินลั ลิตี (Cardinality) ของรีเลชัน
ดีกรีของรีเลชัน หมายถึง จานวนของแอตทริบิวต์ (คอลัมน์)
ในรีเลชันนั้น
คาร์ดินัลลิตีของรีเลชัน หมายถึง จานวนของทัพเพิล(แถว)
ในรีเลชันนั้น ดังภาพที่ 4.5
ตัวอย่างดีกรี และคาร์ดินลั ลิตี
ดีกรี =3
Department
Dept_no
Dept_name
Location
10
การเงิน
กรุงเทพฯ
20
วิจัย
เชียงใหม่
30
ขาย
ชลบุรี
40
ปฏิบัติการ
กรุงเทพฯ
คาร์
ดินลั ลิตี
=4
เงือ่ นไข (Constrains)
เงือ่ นไขในฐานข้อมูล หมายถึง การกาหนดคุณสมบัติเพื่อจากัดว่า
ข้ อมูลชนิดใดบ้ างที่จะสามารถนามาจัดเก็บไว้ ได้ ในแต่ละ
คอลัมน์(แอตทริบิวต์) ของฐานข้ อมูล
เงื่อนไขที่มีมาโดยธรรมชาติของรีเลชันในระบบฐานข้ อมูลเชิงสัมพันธ์
คือ
1. ลาดับของคอลัมน์(แอตทริบิวต์) ไม่มีความสาคัญ
2. ลาดับของแถว(ทัพเพิล) ไม่มีความสาคัญ
3. รีเลชันต้ องประกอบด้ วยทัพเพิลที่ไม่ซา้ กัน
คีย ์ (key)
คีย ์ หมายถึง แอตทริบวิ ต์ท่สี ามารถบ่งบอกความแตกต่าง
ของแต่ละทัพเพิลในรีเลชันได้ แอตทริบวิ ต์ท่เี ป็ นส่วนหนึ่ง
ของคีย์เรียกว่า คียแ์ อตทริบิวต์ และคีย์แอตทริบวิ ต์ท่เี กิดจาก
การนาเอาหลายแอตทริบิวต์มารวมกันเรียกว่า คอมโพสิตคีย ์
(Composite key)
ซู เปอร์คีย ์ (Superkey)
คือ แอตทริบวิ ต์หรือกลุ่มของแอตทริบวิ ต์ ที่สามารถบ่งบอก
ความแตกต่างของแต่ละทัพเพิลในรีเลชันได้ ในหนึ่งรีเลชันจะ
มีซเู ปอร์คีย์ได้ หลายตัว
เช่น จากรีเลชันนักศึกษา ประกอบด้ วย
นักศึกษา(รหัสนักศึกษา,ชื่อ,ที่อยู่,วันเดือนปี เกิด,เลขที่บตั ร
ประชาชน)
ซู เปอร์คีย ์ (Superkey) (ต่อ)
รีเลชันนักศึกษา มีซเู ปอร์คีย์ได้ หลายตัว เช่น
รหัสนักศึกษา
รหัสนักศึกษา, ชื่อ
รหัสนักศึกษา, ชื่อ, ที่อยู่
เลขที่บตั รประชาชน
แคนดิเดตคีย ์ (Candidate key)
คือ ซูเปอร์คีย์ท่นี ้ อยที่สดุ ที่สามารถบ่งบอกความแตกต่างของ
แต่ละทัพเพิลในรีเลชันได้ ในหนึ่งรีเลชันอาจจะมีแคนดิเดต
คีย์หลายตัว จากตัวอย่างรีเลชันนักศึกษา มีแคนดิเดตคีย์ 2
ตัว คือ
รหัสนักศึกษา และเลขที่บตั รประชาชน
คียห์ ลัก (Primary key)
คือ แคนดิเดตคีย์ท่ถี ูกเลือกเพื่อใช้ บอกความแตกต่างของแต่
ละทัพเพิลในรีเลชัน และต้ องไม่มีค่าเป็ น null
คีย์หลักอาจเกิดจากแอตทริบิวต์เดียวหรือหลายแอตทริบิวต์
รวมกันได้
คียน์ อก (Foreign key)
คือแอตทริบวิ ต์ท่ใี ช้ ในการเชื่อมต่อกับรีเลชันอื่นหรือกับตัว
มันเอง เพื่อแสดงความสัมพันธ์ระหว่างรีเลชัน โดยคีย์นอก
สามารถมีค่าซา้ กันหรือเป็ น null ได้ และถ้ าไม่เป็ น null จะ
เป็ นค่าที่ช้ ีไปที่คีย์หลักของรีเลชันที่มคี วามสัมพันธ์อยู่
คีย์นอก
ตัวอย่างคียน์ อก
คีย์รอง
นักศึกษา
รหัสนักศึกษา
รหัสที่ปรึกษา
ชื่อ
GPA
หน่วยกิต
10001
สม ใจดี
200
20
2.53
12345
เก่ง รักเรี ยน
205
60
3.62
แคนดิเดตคีย ์
ที่ปรึกษา
รหัสที่ปรึ กษา
ชื่อ
เลขที่บตั รประชาชน
200
ดร.สมชาย
1234567890123
205
ดร.วิเชียร
3456789012345
คียร์ อง (Secondary key)
คือ แอตทริบวิ ต์หรือกลุ่มของแอตทริบวิ ต์ท่ใี ช้ ในการเข้ าถึง
หรือค้ นคืนข้ อมูลในฐานข้ อมูล คีย์รองไม่มีความจาเป็ นต้ อง
เป็ นเอกลักษณ์ คือสามารถมีค่าซา้ ได้ เช่น การค้ นข้ อมูล
พนักงานที่ต้องการเฉพาะพนักงานที่มีไปรษณีย์ตามที่กาหนด
เท่านั้น
อินทิกริตี (Integrity)
หมายถึง การควบคุมความถูกต้ องต่างๆ ในระบบฐานข้ อมูล
โดยในระบบฐานข้ อมูลเชิงสัมพันธ์มีการควบคุมดังต่อไปนี้
1. เอนทิทีอินทิกริตี (Entity integrity) เป็ นการกาหนดว่า แต่
ละเอนทิทใี นแต่ละรีเลชันต้ องมีค่าไม่ซา้ กัน สามารถทาได้ โดย
การกาหนดให้ ทุกรีเลชันต้องมีคียห์ ลัก และคียห์ ลักต้ องมีค่า
ไม่เป็ น null
อินทิกริตี (Integrity) (ต่อ)
2. เรเฟอเรนเชียลอินทิกริตี (referential integrity) เป็ น
กระบวนการตรวจสอบเพื่อหลีกเลี่ยงการป้ อนข้ อมูลเข้าที่
ผิดพลาด หรือป้ องกันการลบทัพเพิลใดๆ ทิ้งไปทั้งที่มี
คีย์นอก จากรีเลชันอื่นมาอ้ างอิงถึงอยู่ ทาได้ โดยการ
กาหนดให้ คีย์นอกมีค่าเป็ น null
ตัวอย่างเรเฟอเรนเชียลอินทิกริ ตี
R1 : Supplier(S#,..)
R2 : Parts(P#,…)
R3 : Supply(S#,P#,…)
R4 : Order(S#,P#,Date)
ถ้ าบริษัท A ต้ องการใช้ รีเลชัน R4 เพื่อควบคุมสารสนเทศที่
มีการสั่งซื้อ ทุกรายการในใบสั่งซื้อ (order) ต้ องมีสนิ ค้ า (parts) และ
ผู้ขาย (supplier) ด้ วย จึงต้ องกาหนดเรเฟอเรนเชียลอินทิกริตีซ่ึงเป็ น
การกาหนดตามความต้ องการของผู้ใช้
โอเปอเรเตอร์ในแบบจาลองเชิงสัมพันธ์
ชนิดของโอเปอเรเตอร์แบ่งเป็ น 2 กลุ่ม ดังนี้
1. โอเปอเรเตอร์ในการจัดการฐานข้อมู ล (Manipulative
Operators) ได้ แก่ INSERT, DELETE, UPDATE
2. โอเปอเรเตอร์พนฐาน
ื้
(Basic Operators) ได้ แก่
SELECTION, PROJECTION, JOIN, DIVISION,
UNION, INTERSECTION, DIFFERENCE,
CARTESIAN, PRODUCT
1. โอเปอเรเตอร์ในการจัดการฐานข้อมูล
INSERT เป็ นโอเปอเรเตอร์ที่ใช้ในการเพิม่ ข้อมูลเข้าไปในรี เลชัน
Dept_no
Dept_name
Location
10
วิจยั
กรุ งเทพฯ
20
ขาย
ภูเก็ต
30
การเงิน
เชียงใหม่
40
วางแผน
ลาปาง
INSERT(40,’วางแผน’,’ลาปาง’) into Department
จากภาพ
(Dept_no) มีค่า = 10 ซึ่งไป
ซา้ กับค่าที่มีในรีเลชัน ไม่สามารถกระทาได้ ต้ อง
แก้ ปัญหาโดยกระทาดังนี้
1. ยกเลิกการเพิ่มข้ อมูล
2. แก้ ไขสาเหตุของความผิดพลาดให้ ถูกต้ อง เช่น
เปลี่ยนค่าของคีย์หลักไม่ให้ ซา้ กับค่าที่มีอยู่ใน
ฐานข้ อมูล
 ถ้ าต้ องการเพิ่มค่าคีย์หลัก
1. โอเปอเรเตอร์ในการจัดการฐานข้อมูล (ต่อ)
DELETE เป็ นโอเปอเรเตอร์ที่ใช้ในการลบทัพเพิลออกจากรี เลชัน
Dept_no
Dept_name
Emp_no Emp_name
Dept_no
10
วิจยั
2001
สมชาย
10
20
ขาย
2002
กรรณิ กา
20
DELETE
ละเมิดเงื่อนไขเรเฟอเรนเชียลอินทิกริ ตี
จากภาพ
ถ้ าต้ องการลบทัพเพิลที่มี Dept_no = 20 ซึ่งทาไม่ได้ มี
แนวทางในการแก้ ไขปัญหาคือ
1. ยกเลิกการ DELETE
2. ทาการลบข้ อมูลแบบที่มีผลกระทบต่อเนื่อง (Cascading)
คือ ไปลบทุกทัพเพิลที่อ้างอิงมาที่ข้อมูลนี้ด้วย
3. แก้ ไขค่าในแอตทริบวิ ต์ท่อ
ี ้ างอิงมา
1. โอเปอเรเตอร์ในการจัดการฐานข้อมูล (ต่อ)
UPDATE เป็ นโอเปอเรเตอร์ท่ใี ช้ ในการเปลี่ยนแปลงแก้ ไข
ข้ อมูลในทัพเพิลของรีเลชัน อาจเกิดปัญหาได้ ถ้ามีการแก้ ไข
แอตทริบวิ ต์ท่เี ป็ นคีย์หลักหรือคีย์นอก
การใช้ UPDATE โอเปอเรเตอร์เพื่อแก้ ไขคีย์นอกจะถูกต้ อง
เมื่อค่าใหม่ท่ใี ส่ลงไปมีความสอดคล้ องกันกับค่าที่มอี ยู่ในรีเล
ชันที่มันอ้ างอิงไป
โอเปอเรเตอร์พนฐาน
ื้
(Basic Operators)
1.
ơ (SELECT) เป็ นโอเปอเรเตอร์ท่ใี ช้ ในการเลือกชุดของทัพเพิล
ในรีเลชันที่มีค่าเป็ นไปตามเงื่อนไขที่กาหนดให้ ơ
โอเปอเรเตอร์มีรูปภาพแบบดังนี้
ơ<เงื่อนไข>(<ชื่อรี เล
ชั
น
>)
เงื่อนไขที่ใช้ จะเป็ นนิพจน์ทางบูลีน โดยอาจประกอบด้ วย
1.
2.
โอเปอเรเตอร์ดังนี้
โอเปอเรเตอร์ท่ใี ช้ ในการเปรียบเทียบ ได้ แก่ =, <>, >, >=, <, <=
บูลีนโอเปอเรเตอร์ ได้ แก่ AND, OR, NOT
โอเปอเรเตอร์พนฐาน
ื้
(Basic Operators) (ต่อ)
ผลที่ได้ จากการใช้ ơ คือ รีเลชันที่มีจานวนแอตทริบิวต์
เช่นเดียวกันกับรีเลชันที่กาหนด เช่น ต้ อการเลือกทุกทัพเพิล
ในรีเลชัน EMPLOYEE ที่มี Salary มากกว่า 10,000 บาท
Employee
Emp_no
Emp_name
Job
3001
สมชาย
ผูจ้ ดั การ
3456
มรกต
กรรมการผูจ้ ดั การ
4000
เป็ นหนึ่ง
พนักงานขาย
Employee
Manager
3456
Salary
15000
30000
3001
8500
ơSalary >10000(Employee)
Emp_no Emp_name
Job
สมชาย
ผูจ้ ดั การ
3001
กรรมการผูจ้ ดั การ
มรกต
3456
Manager
3456
Salary
15000
30000
โอเปอเรเตอร์พนฐาน
ื้
(Basic Operators) (ต่อ)
2. π (PROJECT) เป็ นโอเปอเรเตอร์ที่ใช้ในการเลือกชุ ด
ของคอลัมน์ ทตี่ ้ องการ π โอเปอเรเตอร์มีรูปแบบดังนี้
π<ชุดของแอตทริบิวต์>(<ชื่อรีเลชัน>)
ผลลัพธ์ท่ไี ด้ จากการใช้ π คือ รีเลชันที่มีจานวนแอตทริบิวต์
ตามกาหนดในชุดของแอตทริบิวต์ เช่น ต้ องการเลือกเฉพาะ
คอลัมน์ Job และ Salary นามาแสดงผล
Employee
Emp_no
Emp_name
Job
Manager
Salary
3001
สมชาย
ผูจ้ ดั การ
3456
15000
3456
มรกต
กรรมการผูจ้ ดั การ
4000
เป็ นหนึ่ง
พนักงานขาย
30000
3001
πJob, Salary(Employee)
Employee
Job
ผูจ้ ดั การ
กรรมการผูจ้ ดั การ
พนักงานขาย
Salary
15000
30000
8500
8500
โอเปอเรเตอร์พนฐาน
ื้
(Basic Operators) (ต่อ)
3. U(UNION) การใช้ UNION, INTERSECT และ
DIFFERENCE เป็ นโอเปอเรเตอร์ท่ใี ช้ ในการทางานตามทฤษฎี
ของเซต การใช้ โอเปอเรเตอร์เหล่านี้ โอเปอแรนด์จะต้ องเข้ากัน
ได้
ผลลัพธ์ท่ไี ด้ จากการ UNION ระหว่างรีเลชัน R1 และ
R2 (R1 U R2) คือรีเลชันที่ประกอบด้ วยทุกทัพเพิลใน R1 และ
R2 แต่ไม่มีค่าที่ซา้ กัน และมีจานวนแอตทริบิวต์เท่ากับจานวน
แอตทริบิวต์ของ R1 หรือ R2
Employee
Emp_
no
Emp_n
ame
Manager
Salary
3001 สมชาย
15000
3456 มรกต
30000
U
Emp_no
Emp_n
ame
Salary
4001
วรพจน์
16000
5001
บุญมาก
17000
Staff
Emp_no
3001
3456
4001
5001
Emp_name
สมชาย
มรกต
วรพจน์
บุญมาก
Salary
15000
30000
16000
17000
โอเปอเรเตอร์พนฐาน
ื้
(Basic Operators) (ต่อ)
4. ∩ (INTERSECTION) ผลลัพธ์ท่ไี ด้ จากการ
INTERSECTION ระหว่างรีเลชัน R1 และ R2 (R1 ∩ R2) คือ
รีเลชันที่ประกอบด้ วยเฉพาะทัพเพิลที่มีอยู่ทง้ั ใน R1 และ R2
และมีจานวนแอตทริบิวต์เท่ากับจานวนแอตทริบิวต์ของ R1
และ R2
Employee
Manager
Emp_nam
e
Salary
3001
3456
4001
5001
สมชาย
มรกต
วรพจน์
บุญมาก
15000
30000
16000
17000
Emp_n Emp_n Salary
o
ame
U
Emp_no
4001
วรพจน์
16000
5001
บุญมาก
17000
Manager-Employee
Emp_no
Emp_name
Salary
4001
วรพจน์
16000
5001
บุญมาก
17000
โอเปอเรเตอร์พนฐาน
ื้
(Basic Operators) (ต่อ)
5. – (DIFFERENCE) ผลลัพธ์ท่ไี ด้ จากการ DIFFERENCE
ระหว่างรีเลชัน R1 และ R2 (R1-R2) คือ รีเลชันที่
ประกอบด้ วยเฉพาะทัพเพิลที่มีอยู่ใน R1 แต่ไม่มีอยู่ใน R2
และมีจานวน แอตทริบิวต์เท่ากับจานวนแอตทริบิวต์ของ R1
หรือ R2
Employee
Manager
Emp_nam
e
Salary
3001
3456
4001
5001
สมชาย
มรกต
วรพจน์
บุญมาก
15000
30000
16000
17000
-
Emp_no
Emp_no
Emp_ Salary
name
4001
วรพจน์
16000
5001
บุญมาก
17000
Non-Manager-Employee
Emp_no
Emp_name
Salary
3001
สมชาย
15000
3456
มรกต
30000
โอเปอเรเตอร์พนฐาน
ื้
(Basic Operators) (ต่อ)
6. X (CARTESIAN PRODUCT) ผลลัพธ์ท่ไี ด้ จากการ
CARTESIAN PRODUCT ระหว่างรีเลชัน R1 และ R2
(R1xR2) คือ รีเลชันที่เกิดจากการนาเอาทุกทัพเพิลที่อยู่ใน
R1 และ R2 มาเรียงต่อกันในทุกโอกาสที่เป็ นไปได้ และมี
จานวนแอตทริบิวต์เท่ากับผลบวกของจานวนแอตทริบวิ ต์ของ
R1 กับ R2 และจานวนทัพเพิลทั้งหมดเท่ากับผลคูณของ
จานวนทัพเพิลใน R1 กับ R2
DEPARTMENT
Dept_no
10
20
30
EMPLOYEE
Emp_no
2345
3000
4000
DEPARTMENT
X EMPLOYEE
Dept_no
Emp_no
10
2345
10
3000
10
4000
20
2345
20
3000
20
4000
30
2345
30
3000
30
4000
โอเปอเรเตอร์พนฐาน
ื้
(Basic Operators) (ต่อ)
7. JOIN ผลลัพธ์ของการ JOIN สองรีเลชัน คือ
R1(A1,A2,..An) และ R2(B1,B2,..Bm) จะได้ รีเลชัน R3 ที่มีดีกรี
k= n+m และแอตทริบิวต์ (A1,A2,..An, B1,B2,..Bm) ที่เป็ นไป
ตามเงื่อนไขของ JOIN
R1 X <เงื่อนไขการ JOIN>R2
Employee
Department
Emp_no Emp_name Emp_loc
5001
5200
5234
5326
5400
5556
บุญเสริ ม
วรากร
สุ ชาติ
สมรักษ์
มารวย
มีชยั
กรุ งเทพฯ
เชียงใหม่
กรุ งเทพฯ
เชียงใหม่
ภูเก็ต
เชียงใหม่
Dept_no Dept_loc
10
20
30
40
ภูเก็ต
กรุ งเทพฯ
เชียงใหม่
สงขลา
SAME-LOCATION = EMPLOYEE X
(Emp_loc = Dept_loc) DEPARTMENT
SAME-LOCATION
Emp_no Emp_name Emp_loc Dept_no Dept_loc
5001
บุญเสริ ม
กรุ งเทพฯ
20
กรุ งเทพฯ
5200
วรากร
เชียงใหม่
30
เชียงใหม่
5234
สุ ชาติ
กรุ งเทพฯ
20
กรุ งเทพฯ
5326
สมรักษ์
เชียงใหม่
30
เชียงใหม่
5400
มารวย
ภูเก็ต
10
ภูเก็ต
5556
มีชยั
เชียงใหม่
30
เชียงใหม่
โอเปอเรเตอร์พนฐาน
ื้
(Basic Operators) (ต่อ)
8. ÷ (DIVISION) ผลลัพธ์ของการ DIVISION สองรีเลชัน
ได้ แก่ R1(A1,A2,..An) ที่มีคาร์ดินัลลิตีเท่ากับ i และ
R2(B1,B2,..Bm) ที่มีคาร์ดินัลลิตีเท่ากับ j คือ รีเลชัน R3 ที่มี
ดีกรี k= n-m และคาร์ดินัลลิตีท่เี ป็ นไปตามเงื่อนไขการ
DIVISION
AB
A#
A1
A1
A1
A1
A2
A2
A2
A3
A4
A4
A4
B#
B1
B2
B4
B5
B2
B4
B6
B3
B1
B2
B3
C
B#
B1
AB ÷ C
A#
A1
A4
C
B#
B2
B4
A#
A1
A2
A4