Database System--บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์

Download Report

Transcript Database System--บทที่ 2 ฐานข้อมูลเชิงสัมพันธ์

ฐานข้ อมูลเชิงสัมพันธ์
Relation Data Model
เนือ้ หา
 Key Rule
 Algebra Rule
 Constraints
 Cartesian Rule
Key Rule
แนวคิดเรื่ องโมเดลเชิงสัมพันธ์
คีย์
พืน
้ ฐาน Relational Algebra
Key Rule
 แนวคิดเรื่ องโมเดลเชิงสัมพันธ์





ความสัมพันธ์ของฐานข้ อมูลจะอยูใ่ นรูปแบบของตาราง
ชื่อของตารางคือ ชื่อของความสัมพันธ์
แต่ละคอลัมน์ของตารางความสัมพันธ์ เรี ยกว่า แอททริบวิ (attribute)
ของความสัมพันธ์
ค่าและขอบเขตของข้ อมูลของแอททริบวิ เรี ยกว่า โดเมน (Domain)
แต่ละแถวของตารางความสัมพันธ์ เรี ยกว่า แถว หรื อ ทูเพิล (tuple) ของ
ความสัมพันธ์
Key Rule
คุณสมบัตขิ องความสัมพันธ์
 ลาดับของแถวและคอลัมน์ไม่ทาให้ ข้อมูลเปลี่ยนไป
 จะไม่มีสองแถวที่ซ ้ากัน
 แอททริ บวิ ต์ทกุ ตัวจะเป็ น atomic เท่านัน้
 ดีกรี ของความสัมพันธ์ คือ จานวนแอททริ บวิ ต์ทม
ี่ ีใน
ความสัมพันธ์นนั ้
Key Rule
 คีย์
คีย์ คือ สิ่งที่ใช้ ในการกาหนดความเป็ นเอกลักษณ์ของแถวใน
ความสัมพันธ์
 ทาให้ การเข้ าถึงข้ อมูลบนฐานข้ อมูลเป็ นไปได้ อย่างรวดเร็ ว
 ทาให้ สามารถแยกแยะข้ อมูลในฐานข้ อมูลให้ เป็ นไปอย่างถูก ต้ อง

Key Rule
ประเภทของคีย์
 คีย์หลัก (Primary Key) คือ คีย์ที่ใช้ ในการอ้ างถึง Entity ใน
ฐานข้ อมูลและไม่มีโอกาสซ ้าซ้ อนกันบนฐานข้ อมูลนัน้
 คีย์รอง (Secondary Key) คือ คีย์เดี่ยวหรื อคีย์ผสม เมื่อใช้ ในการ
ค้ นหาข้ อมูลของความสัมพันธ์จะได้ มากกว่าหนึง่ เรคคอร์ ด
 คีย์นอก (Foreign Key) คือ คีย์เดี่ยวหรื อคีย์ผสม ซึง่ เป็ นคีย์ทวั่ ไป
ของความสัมพันธ์หนึง่ แต่เป็ นคีย์หลักของอีกความสัมพันธ์หนึง่
เป็ นตัวที่ใช้ ในการเชื่อมต่อระหว่างความสัมพันธ์
Key Rule
 ซุปเปอร์ คีย์ (Super key) คือ กลุม
่ ของแอททริ บิวต์ที่สามารถนาไป
ค้ นหาข้ อมูลที่เป็ นเอกลักษณ์ได้
 คีย์แข่งขัน (Candidate key) คือ ซุปเปอร์ คีย์และไม่มีกลุม
่ ย่อยของ
คีย์ใดในคีย์แข่งขันที่สามารถเป็ นซุปเปอร์ คีย์ได้
Key Rule
โครงสร้ างของ Key
ตัวอย่ าง
จากตารางข้ างบน : จงบอกประเภทของคีย์
Algebra Rule
พื ้นฐาน Relational Algebra
Relational Algebra Operations ขันพื
้ ้นฐาน
Relational Calculus
Algebra Rule
 พื ้นฐาน Relational Algebra
Relational Algebra เรี ยกอีกอย่างว่า Relational query
language
 ใช้ ในการจัดการข้ อมูลโดยการระบุตว
ั กระทา กับความสัมพันธ์ที่
ต้ องการจัดการ ผลลัพธ์ที่ได้ คือความสัมพันธ์ใหม่

Algebra Rule
ประเภทการใช้ งานของตัวกระทากับความสัมพันธ์
1. การใช้ งานขันพื
้ ้นฐาน





Selection
Projection
Cross Product
Set Difference
Union
เลือกแถวจากความสัมพันธ์
เลือกเฉพาะคอลัมน์ที่ต้องการจากความสัมพันธ์
สามารถรวมความสัมพันธ์ได้
หาความแตกต่างระหว่าง 2 ความสัมพันธ์
เชื่อม 2 ความสัมพันธ์เข้ าด้ วยกัน
Algebra Rule
 Selection (σ)
 การระบุเงื่อนไขสามารถทาได
โดย ใช เครื่ องหมายในการเปรี ยบเทียบและ
ตัวกระทาทางตรรกะร วมกันได
= (เท ากับ), ≠ (ไม เท ากับ), < (น อยกว า), ≤ (น อยกว าหรื อเท ากับ), > (มากกว า), > (มากกว าหรื อ
เท ากับ)
- ตัวกระทาทางตรรกะ ได แก (and) , (or) และ (not)
ตัวอย่าง
σ height > 178 Player
Name
Position
Age
Height
weight
สุเมธ
กองหน้า
28
180
80
SELECT name, position, age, height, weight
FROM Player
Algebra Rule
 Projection operator
(¶)
การเลือกเฉพาะบางคอลัมน์ของความสัมพันธ์ที่สนใจขึ ้นมา
แสดง เขียนในรูปแบบของ ¶ attributes r
 ตัวอย่าง ¶ weight, height Player

Height
Weight
SELECT weight, height
FROM Player
80
178
65
170
71
169
Algebra Rule
 การใช้ Selection (σ) ร่ วมกับ Projection operator
 ตัวอย่าง
¶ name, position (σheight > 178 Player)
SELECT name, position
FROM Player
WHERE height > 178
Name
Position
สุเมธ
กองหน้า
ก้องเกียรติ
กองกลาง
(¶)
Algebra Rule
 Union
(⋃) เชื่อม 2 ความสัมพันธ์เข้ าด้ วยกัน
 ตัวอย่าง Player 2000 ⋃ Player 2001
Name
Position
สุเมธ
กองหน้า
ผลดี
ปี กซ้าย
ก้องเกียรติ
Age
Weight
Height
26
70
175
21
69
168
กองกลาง
24
75
180
พิเชษฐ์
ปี กซ้าย
22
71
169
ชาติชาย
กองหลัง
weight
29
80
185
weight
SELECT name, position, age, height,
FROM Player2000
UNION
SELECT name, position,age, height,
FROM Player2001
Algebra Rule
 Difference (-) ความสัมพันธ์ที่มีความแตกต่าง
 ตัวอย่ าง Player2000 − Player2001 (อยู่ใน player 2000 แต่ไม่อยู่ใน 2001)
Name
Position
Age
Weight
Height
ผลดี
ปี กซ้าย
21
69
168
ก้อง
เกียรติ
กองกลาง
24
75
180
SELECT name, position, age, height, weight
FROM Player2000
MINUS
SELECT name, position, age, height, weight
FROM Player2001
ตัวอย่ าง
Name
Position
Age
Weight
Height
สุเมธ
กองหน้า
26
70
175
ผลดี
ปี กซ้าย
21
69
168
ก้อง
เกียรติ
กองกลาง
24
75
180
Name
Position
Age
Weight
สุเมธ
กองหน้า
26
70
175
พิเชษฐ์
ปี กซ้าย
22
71
169
ชาติชาย
กองหลัง
29
80
185
Player 2000
Height
Player 2001
Algebra Rule
2. การใช้ งานขันสู
้ ง
Intersection การเลือกสิ่งที่ซ ้า
 Join การรวมตาราง

Algebra Rule
 Intersection

(∩) ความสัมพันธ์ที่เกิดจากแถวที่ซ ้ากัน
ตัวอย่าง Player2000 ∩ Player2001
Name
Position
Age
Weight
Height
สุเมธ
กองหน้า
26
70
175
SELECT name, position, age, height, weight
FROM Player2000
INTERSECT
SELECT name, position, age, height, weight
Algebra Rule
ประเภทการกระทากับความสัมพันธ์ มี 2 รูปแบบ คือ
 Unary Operators คือ ตัวกระทาที่ต้องการเพียงความสัมพันธ์
เดียว เช่น select, project (เลือกจากตารางเดียว)
 Binary Operators คือ ตัวกระทาที่ต้องการ 2 ความสัมพันธ์
เช่น union, intersection, difference และ Cartesian
product (เลือกตังแต่
้ 2 ตาราง)
Algebra Rule
 Relational Algebra Operations ขันพื
้ ้นฐาน ได้ แก่



Selection operator คือ การเลือกข้ อมูลความสัมพันธ์จากเงื่อนไขที่
กาหนด เทียบได้ กบั SELECT...FROM...WHERE ในคาสัง่ SQL
Projection Operator คือ การเลือกเฉพาะบางคอลัมน์ของ
ความสัมพันธ์ขึ ้นมาแสดง
Union ความสัมพันธ์ที่จะนามาทา Union กันได้ ก็ตอ่ เมื่อรูปแบบ
ของความสัมพันธ์เหมือนกัน เทียบได้ กบั
SELECT…FROM…WHERE…UNION
SELECT…FROM…WHERE…
Algebra Rule
Difference คือ ความสัมพันธ์ที่มีความแตกต่างกัน โดยมี
รูปแบบความสัมพันธ์ที่เหมือนกัน เทียบได้ กบั
SELECT…FROM…WHERE…MINUS
SELECT…FROM…WHERE
 Intersection คือ ความสัมพันธ์ ที่เกิดจากแถวที่ซ ้ากัน เทียบ
ได้ กบั SELECT…FROM…WHERE…INTERSECTION
SELECT…FROM…WHERE

Algebra Rule
 Relational Calculus


เป็ นการใช้ คณิตศาสตร์ ของตรรกะเข้ ามาช่วยในการค้ นหาข้ อมูล
คาตอบที่ได้ คือแถวของข้ อมูลจากความสัมพันธ์ที่ทาให้ คา่ ของสมการ
คณิตศาสตร์ มีคา่ เป็ น จริง
Constraints
 คือ ข้ อบังคับหรื อเงื่อนไขในการอนุญาตให้ เก็บเฉพาะข้ อมูลที่เหมาะสม
ลงในฐานข้ อมูล เพื่อให้ การเลือกข้ อมูลจากฐานข้ อมูลมีความถูกต้ อง
ได้ แก่





Key constraint
Not Null constraint
Referential Integrity constraint
Check
Assertion constraint
Constraints
ประเภทของเงื่อนไข
 Key constraint มี 2 รู ปแบบ คือ
คีย์หลัก ค่าจะไม่เป็ น NULL และถูกใช้ เป็ นดัชนีในการเรี ยงลาดับ
เสมอ
 Unique เป็ น key เอกลักษณ์ อาจมีเพิ่ม นอกเหนือจาก คีย์หลัก
โดยจะถูกใช้ เป็ นดัชนีในการเรี ยงรายการต่อจากคีย์หลัก โดย
อัตโนมัติ

 Referential Integrity

เป็ นการอ้ างอิงข้ อมูลจากความสัมพันธ์อื่น
Constraints
 Check เป็นการตรวจสอบค่าของข้ อมูลในความสัมพันธ์ ให้
เป็ นไปตามเงื่อนไข เพื่อกรองเฉพาะข้ อมูลที่เหมาะสมลงไป
ในฐานข้ อมูล
 Assertion เป็ นการตรวจสอบค่าของข้ อมูลโดยรวมของทุก
ความสัมพันธ์ให้ เป็ นไปตามเงื่อนไข
Cartesian Rule
Cartesian Product
Join
Cartesian Rule
 Cartesian Product คือ การนาแถวจากความสัมพันธ์ที่ 1
มาต่อกับแถวจากความสัมพันธ์ที่ 2

จานวนแถวของความสัมพันธ์ผลลัพธ์ จะเท่ากับจานวนแถว
ของความสัมพันธ์ที่ 1 คูณจานวนแถวของความสัมพันธ์ที่ 2
Cartesian Rule
R
RXS
First
Last
Age
ดา
สนิท
22
แดง
แจ๋
35
ม่วง
เข้ม
28
S
Dinner
Dessert
สเต๊ก
ผลไม้
อาหารทะเล
รวมมิตร
First
Last
Age
Dinner
Dessert
ดา
สนิท
22
สเต๊ก
ผลไม้
ดา
สนิท
22
อาหารทะเล
รวมมิตร
แดง
แจ๋
35
สเต๊ก
ผลไม้
แดง
แจ๋
35
อาหารทะเล
รวมมิตร
ม่วง
เข้ม
28
สเต๊ก
ผลไม้
ม่วง
เข้ม
28
อาหารทะเล
รวมมิตร
Cartesian Rule
 Join คือ การรวมข้ อมูลจากหลายความสัมพันธ์ เข้ าด้ วยกัน มีหลายแบบ
ดังนี ้



Theta-Join คือ การ join แบบปกติซงึ่ ทาให้ เกิดชื่อคอลัมน์ที่ซ ้ากัน
Equi-Join คือ การ join แบบมีเงื่อนไข “เท่ากับ” (=) เท่านัน้ และคอลัมน์ที่ซ ้า
กันจะถูกแสดงเพียงครัง้ เดียว
Natural-Join คือ Equi-Join ที่ join ทุกคอลัมน์ที่ซ ้ากัน
Cartesian Rule
EMP
ใช้ Join เพื่อค นหารายละเอียดเกี่ยวกับที่ทางานของพนักงานทุก
คน
DEPT
EMP
ผลลัพธ จากการ Join ความสัมพันธ EMP และ DEPTINFO โดยใช เงื่อนไข DEPT=DEPT
Question…