chapter06 the relational algebra

10
2110422 การออกแบบระบบการจัดการฐานขอมูล 6-1 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย บทที6* พีชคณิตเชิงสัมพันธ The Relational Algebra วัตถุประสงค 1. เพื่อศึกษาตัวอยางฐานขอมูลทางธุรกิจ 2. เพื่อศึกษาโอเปอเรเตอรพีชคณิตเชิงเสน 3. เพื่อศึกษาภาษา QBE 6.1 ฐานขอมูลในธุรกิจ ตัวอยางฐานขอมูลที่ใชในเชิงธุรกิจ ตัวอยางแสดงเคารางของรีเลชันที่มีความสัมพันธกัน โดยแตละรีเลชันจะมีคียหลักซึ่ง แอทตริบิวตจะขีดเสนใต รูปที6.1 ฐานขอมูล EMPLOYEE 6.2 หลักการของพีชคณิตเชิงสัมพันธ การทําโอเปอเรชันสําหรับโมเดลความสัมพันธจะถูกเรียกวาเปนพีชคณิตเชิงเสน ซึ่งจะทําการเรียกใชขอมูลจาก รีเลชันตางๆไดตามความตองการ ผลที่ไดจากการทําโอเปอเรชันพีชคณิต (algebra operations) นั้นจะทําใหเกิดรีเลชันใหม ซึ่งอาจจะเกิดมา จากรีเลชันเดียวหรือหลายรีเลชัน การทําโอเปอเรชันพีชคณิตที่ซอนกัน ก็จะไดผลแสดงเปนคิวรี่ของฐานขอมูล (Database Query) * อางอิงจากบทที6 ของเอกสารอางอิง [1]

Transcript of chapter06 the relational algebra

Page 1: chapter06 the relational algebra

2110422 การออกแบบระบบการจัดการฐานขอมูล 6-1 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

บทที่ 6* พีชคณิตเชิงสัมพันธ

The Relational Algebra

วัตถุประสงค

1. เพื่อศึกษาตัวอยางฐานขอมูลทางธุรกิจ 2. เพื่อศึกษาโอเปอเรเตอรพีชคณิตเชิงเสน

3. เพื่อศึกษาภาษา QBE 6.1 ฐานขอมูลในธุรกิจ

ตัวอยางฐานขอมูลที่ใชในเชิงธุรกิจ ตัวอยางแสดงเคารางของรีเลชันที่มีความสัมพันธกัน โดยแตละรีเลชันจะมีคียหลักซ่ึง แอทตริบิวตจะขีดเสนใต

รูปที่ 6.1 ฐานขอมูล

EMPLOYEE

6.2 หลักการของพีชคณิตเชิงสัมพันธ

• การทําโอเปอเรชันสําหรับโมเดลความสัมพันธจะถูกเรียกวาเปนพีชคณิตเชิงเสน ซ่ึงจะทําการเรียกใชขอมูลจาก

รีเลชันตางๆไดตามความตองการ • ผลที่ไดจากการทําโอเปอเรชันพีชคณิต (algebra operations) น้ันจะทําใหเกิดรีเลชันใหม ซ่ึงอาจจะเกิดมา

จากรีเลชันเดียวหรือหลายรีเลชัน • การทําโอเปอเรชันพีชคณิตที่ซอนกัน ก็จะไดผลแสดงเปนคิวร่ีของฐานขอมูล (Database Query)

* อางอิงจากบทที่ 6 ของเอกสารอางอิง [1]

Page 2: chapter06 the relational algebra

2110422 การออกแบบระบบการจัดการฐานขอมูล 6-2 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

6.3 การจัดแบงประเภทโอเปอเรชันเชิงสัมพันธ (Relational

Operations) • โอเปอเรชันเชิงสัมพันธจากรีเลชันเดียว (Unary Relational operations)

- ตัวโอเปอเรเตอรไดแก SELECT , PROJECT and RENAME • โอเปอเรชันเชิงสัมพันธจาก 2 รีเลชัน (Binary Relational Operations)

- ตัวโอเปอเรเตอรไดแก JOIN and DIVISION • โอเปอเรชันเชิงสัมพันธจากหลายรีเลชัน (N-Nary Relation Operations)

- จะมีการนําเอาตัวโอเปอเรชั่นหลายตัวมาใชรวมกัน

6.3.1 โอเปอเรชนัเชิงสัมพันธจากรีเลชันเดยีว (Unary Relational operations)

SELECT • จะเปนการเลือกซับเซตของทูเพิลจากรีเลชันตามเงื่อนไขที่ตองการ • จะมีรูปแบบของการทําโอเปอเรชันคือ σ<selection condition>(R) • สัญญลักษณ σ เรียกวา ซิกมา (sigma) เปนสัญลักษณที่ใชในการทํา SELECT • selection condition จะเปนการใสเง่ือนไขที่ตองการ • R เปนชื่อของรีเลชันที่ตองการทําโอเปอเรต ตัวอยาง σSALARY>30000(EMPLOYEE) หมายถึง ตองการเลือกทูเพิลของรีเลชัน EMPLOYEE เฉพาะรายการที่มีเงินเดือนมากกวา 30000 เทาน้ัน

คุณสมบัติของ SELECT • โอเปอเรเตอร SELECT น้ันผลที่ไดจะมีเคาราง (Schema) เหมือนกับรีเลชันตั้งตน

σ<selection condition>(R) กับ R มีเคารางเดียวกัน • โอเปอเรเตอร SELECT มีคุณสมบัติการเรียงสับเปลี่ยน

σ<condition1>(σ<condition2>(R))=σ<condition2>(σ<condition1>(R)) • โอเปอเรเตอร SELECT อาจจะมีการเปลี่ยนลําดับการทําได

σ<condition1>(σ<condition2>(σ<condition3>(R))) =σ<condition2>(σ<condition3>(σ<condition1>(R)))

• โอเปอเรเตอร SELECT สามารถแทนไดโดยการใชตัวเชื่อม σ<condition1>(σ<condition2>(σ<condition3>(R))) =σ<condition1>AND <condition2> AND <condition3>(R)

PROJECT • จะเปนการเลือกเฉพาะคอลัมนที่ตองการจากตารางหรือรีเลชันเทาน้ัน • จะมีรูปแบบของการทําโอเปอเรชันคือ π<attribute list>(R) • โดย π เรียกวา พาย (pi) เปนสัญลักษณที่ใชในการทํา PROJECT • attribute list คือแอทตริบิวตตามท่ีตองการ • R เปนชื่อของรีเลชันที่ตองการทําการโอเปอเรต • โอเปอเรเตอร PROJECT น้ันถามีทูเพิลซํ้ากันก็จะใหลบทูเพิลที่ซํ้าออก ตัวอยาง πLNMAE,FNAME,SALARY(EMPLOYEE) หมายถึง ตองการเลือกเฉพาะแอทตริบิวต LNAME,FNAME และSALARY จากรีเลชัน EMPLOYEE เทาน้ัน

Page 3: chapter06 the relational algebra

2110422 การออกแบบระบบการจัดการฐานขอมูล 6-3 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

คุณสมบัติของ PROJECT • การ PROJECT น้ันผลที่ไดจะมีจํานวนทูเพิลนอยกวาหรือเทากับรีเลชันตั้งตน • ถาแอทตริบิวตที่เปนคียถูกเลือกใน การโอเปอเรชัน PROJECT จะทําให π<attribute list>(R) กับ R มีจํานวนทูเพิลเทากัน

รูปที่ 6.2 การ SELECT

และ PROJECT

รูปที่ 6.2 แสดงการใชคําส่ัง SELECT และ PROJECT (a) σ (DNO=4 AND SALARY>25000) OR (DNO=5 AND SLARY>30000)(EMPLOYEE) (b) πLNMAE,FNAME,SALARY(EMPLOYEE) (c) πSEX,SALARY(EMPLOYEE)

RENAME ถาในบางครั้งเราจําเปนที่จะตองนําผลลัพธ จากการทําโอเปอเรชันพีชคณิตเชิงสัมพันธ ไปหาผลลัพธอยางตอเนื่อง

ดังน้ันเราจึงจําเปนที่จะตองสรางรีเลชันที่เปนส่ือกลาง (intermediate result relation) ที่จะนํารีเลชันส่ือกลางที่ไดน้ีไปหาผลลัพธตอไป ซ่ึงมีสัญลักษณที่ใชแทนคือ ρ เรียกวา โรห (rho) ตัวอยาง ถาตองการขอมูลชื่อ นามสกุล และเงินเดือน ที่อยูในแผนกหมายเลข 5 เราจะสามารถเขียนไดเปน

πFNAME, LNAME, SALARY(σ DNO=5(EMPLOYEE)) หรือถาตองการใหแสดงอยูในรูปของรีเลชันส่ือกลางจะไดเปน DEP5_EMPS ← σ DNO=5(EMPLOYEE) RESULT ← π FNAME, LNAME, SALARY (DEP5_EMPS)

จากคําส่ังขางบน จะมีการสรางรีเลชันชื่อ DEP5_EMPS เพื่อดึงขอมูลของแผนก 5 ออกมากอนแลวจึงสรางรเีลชนั

ชื่อ RESULT เพื่อดึงขอมูลเฉพาะชื่อ นามสกุลและเงินเดือน ออกมาจากรีเลชันชื่อDEP5_EMPS อีกครั้งหน่ึง ดังแสดงไวในรูปที่ 6.2

รูปที่ 6.3 การใชรีเลชัน

ส่ือกลางและ

RENAME

Page 4: chapter06 the relational algebra

2110422 การออกแบบระบบการจัดการฐานขอมูล 6-4 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 6.3 แสดงการสรางรีเลชันส่ือกลางและคําส่ัง RENAME (a) πFNAME, LNAME, SALARY(σ DNO=5(EMPLOYEE)) (b) TEMP ← σ DNO=5(EMPLOYEE)

R ← π FNAME, LNAME, SALARY (TEMP)

โอเปอเรชันพีชคณิตเชิงสัมพันธโดยใชทฤษฏีของเซต UNION การ UNION แทนดวยสัญลักษณ R ∪ S หมายถึง จะมีการสรางรีเลชันใหม โดยจะนําทูเพิลของ R และทูเพิลของ S มารวมกัน โดยถามีทูเพิลที่ซํ้ากัน ก็จะ

นําทูเพิลน้ันมาลงในรีเลชันใหมเพียงทูเพิลเดียว ดังตัวอยางรูปที่ 6.4

รูปที่ 6.4 การสรางรีเลชัน

RESULT

รูปที่ 6.4 แสดงการสรางรีเลชัน RESULT ที่เกิดจาก RESULT1 ∪ RESULT2 จะเห็นไดวา คา 333445555 มีอยูทั้งใน RESULT1 และ RESULT2 แตเม่ือมีทําการ UNION จะปรากฏอยู

ใน RESULT เพียงคาเดียว Type ที่สามารถใชได (Type Compatibility) • แอทตริบิวตที่จะนํามา UNION กัน จําเปนตองมีจํานวนแอทตริบิวตและโดเมนที่เขากันได • รีเลชันที่เปนผลลัพทธของ R1 ∪ R2 , R1 ∩ R2 , R1 – R2 น้ันจะมีชื่อแอทตริบิวตตามรีเลชันตัวแรก

(R1)

INTERSECTION สัญลักษณการ INTERSECTION แทนดวย R ∩ S หมายถึง จะมีการสรางรีเลชันใหม โดยจะนําทูเพิลของ R และทูเพิลของ S มาเลือกเฉพาะทูเพิลที่ซํ้ากัน ก็จะนําทู

เพิลน้ันมาลงในรีเลชันใหมซ่ึงถาทูเพิลไมซํ้ากันก็ใหตัดทิ้ง

MINUS สัญลักษณการ MINUS แทนดวย R - S หมายถึง จะมีการสรางรีเลชันใหม โดยจะนําทูเพิลเฉพาะที่อยูใน R แตไมอยูใน S มาลงในรีเลชันใหมเทาน้ัน ซ่ึงถา

ทูเพิลน้ันอยูเฉพาะใน S อยางเดียวหรือทูเพิลน้ันอยูทั้งใน R และ S ใหตดทิ้ง

รูปที่ 6.5 UNION

INTERSECTION และ MINUS

รูปที่ 6.5 แสดงการ UNION INTERSECTION และ MINUS

Page 5: chapter06 the relational algebra

2110422 การออกแบบระบบการจัดการฐานขอมูล 6-5 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

(a) แสดงรีเลชัน STUDENT กับ รีเลชัน INSTRUCTOR (b) แสดงผลลัพธของ STUDENT INSTRUCTOR (c) แสดงผลลัพธของ STUDENT ∩ INSTRUCTOR (d) แสดงผลลัพธของ STUDENT - INSTRUCTOR (e) แสดงผลลัพธของ INSTRUCTOR - STUDENT

จากรูป 6.5 จะเห็นวาชื่อแอทตริบิวตของผลลัพธของ (d) กับ (e) จะขึ้นอยูกับรีเลชันตัวแรก

• UNION กับ INTERSECTION มีคุณสมบัติการเรียงสับเปลี่ยน

R ∪ S = S ∪ R และ R ∩ S = S ∩ R • UNION กับ INTERSECTION มีคุณสมบัติการจัดกลุม R ∪ (S ∪ T) = (R ∪ S) ∪ T และ R ∩ (S ∩ T) = (R ∩ S) ∩ T • MINUS ไมมีคุณสมบัติการสลับที่ R - S ≠ S - R

CARTESIAN สัญลักษณการ CARTESIAN แทนดวย R x S หมายถึง จะมีการสรางรีเลชันใหม โดยจะเกิดจากการนําแอทตริบิวตของ R มารวมกับแอทตริบิวตของ S โดยนําทูเพิลทุกตัวของ R มาตอกันกับทูเพิลทุกตัวของ S ดังน้ันจํานวนแอทตริบิวตของ R x S จะเทากับ จํานวนแอทตริบิวต R + จํานวนแอทตริบิวต S และ จํานวนทูเพิลของ R x S ซ่ึงเขียนแทนไดเปน ⎢R x S ⎢ = จํานวนทูเพิล R * จํานวนทูเพิล S

รูปที่ 6.6a UNION

INTERSECTION และ MINUS

รูปที่ 6.6a FEMALE_EMPS ← σ SEX=’F’(EMPLOYEE) EMPNAMES ← π FNAME, LNAME, SSN (FEMALE_EMPS)

รูปที่ 6.6b ผลการ

CARTESIAN

Page 6: chapter06 the relational algebra

2110422 การออกแบบระบบการจัดการฐานขอมูล 6-6 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 6.6b แสดงผลการ UNION INTERSECTION และ MINUS EMP_DEPENDENTS ← EMPNAMES x DEPENDENT

รูปที่ 6.6c ผลลัพธของ

UNION INTERSECTION

และ MINUS

รูปที่ 6.6c แสดงผลลัพธ ACTUAL_DEPENDENTS ← σ SSN=ESSN(EMP_DEPENDENTS ) RESULT ← π FNAME, LNAME,DEPENDENT_NAME (ACTUAL_DEPENDENTS)

6.3.2 โอเปอเรชนัเชิงสัมพันธจาก 2 รีเลชัน (Binary Relational Operations) JOIN • ถาตองการดึงขอมูลจาก 2 รีเลชันที่มีทูเพิลอางอิงถึงกันเราเรียกวา JOIN • โอเปอเรเตอร JOIN น้ีมีความสําคัญอยางมากในการสรางความสัมพันธของฐานขอมูลที่มีมากกวา 1 รีเลชัน

เพราะถือวาโอเปอเรเตอร JOIN น้ีทําใหรีเลชันมีการเชื่อมโยงกันภายในฐานขอมูลเดียวกัน • สัญลักษณการ JOIN จะถูกแทนดวย R <join condition> S

รูปที่ 6.7 ผลลัพธของ JOIN

รูปที่ 6.7 DEPT_MGR ← DEPARTMENT MGRSSN=SSN EMPLOYEE

จากรูปที่ 6.7 น้ี เปนการดึงขอมูลของผูจัดการประจําแผนกโดยการโอเปอเรชัน JOIN ของรีเลชัน

DEPARTMENT มา JOIN กับ รีเลชัน EMPLOYEE โดยเชื่อมโยงจากคาของ MGRSSN ตองเทากับคาของ SSN EQUI JOIN • เปนการเชื่อมโยงขอมูลที่สนใจ “คาของขอมูล” ที่อยูในแอทตริบิวตที่เชื่อมโยงกันใหมีคาเทากัน โดยใช

เครื่องหมาย = เชื่อมกันระหวางชื่อแอทตริบิวตของแตละรีเลชัน ที่มีความเชื่อมโยงกัน

NATURAL JOIN • เปนการเชื่อมโยงขอมูลที่สนใจ “ชื่อแอทตริบิวต” โดยรีเลชันที่จะนํามาเชื่อมโยงกัน จะตองมีชื่อแอทตริบิวตที่

เหมือนกัน โดยแทนดวยเครื่องหมาย *

Page 7: chapter06 the relational algebra

2110422 การออกแบบระบบการจัดการฐานขอมูล 6-7 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 6.7 ผลลัพธของ

NATURAL JOIN

รูปที่ 6.7 แสดงถึงผลลัพธของการทํา NATURAL JOIN (a) PROJ_DEPT ← PROJECT * DEPT. (b) DEPT_LOCS ← DEPARTMENT * DEPT_LOCATIONS

เซตสมบูณของโอเปอเรชันเชิงสัมพันธ ประกอบดวย SELECT σ , PROJECT π ,UNION ∪ INTERSECTION ∩ , MINUS – และ CARTESIAN X ซ่ึงถือวาเปนเซตสมบูรณ เพราะวา ในความสัมพันทางพีชคณิตน้ันสามารถนําทั้ง 5

โอเปอเรเตอรมาจัดการหาคาของขอมูลได

ตัวอยาง R ∩ S = (R ∪ S) – ((R – S) ∪ (S - R)) R <join condition>S = σ<join condition>( R x S )

DIVISION สัญลักษณการ DIVISION แทนดวย R(Z) ÷ S(X) โดย X เปนซับเซตของ Z หมายถึง จะมีการสรางรีเลชันใหม โดยมีแอทตริบิวตที่ไดจะเปนแอทตริบิวตที่อยูใน R แตไมอยูใน S สวนทูเพิลที่ไดน้ัน จะตองเปรียบเทียบกับทูเพิลของ R กับ S ใหมีคาในแอทตริบิวตที่เหมือนกัน แลวคาในแอทตริบิวตอื่น (ที่อยู

ใน R แตไมอยูใน S)ของ R จะตองเหมือนกัน จึงนําคาที่ไดน้ันไปใสในรีเลชันใหม ดังตัวอยางรูปที่ 6.8

รูปที่ 6.8 ผลลัพธของ

DIVISION

รูปที่ 6.8 แสดงคาผลลัพธ (a) Dividing SSN_PNOS by SMITH_PNOS (b) T ← R ÷ S

Page 8: chapter06 the relational algebra

2110422 การออกแบบระบบการจัดการฐานขอมูล 6-8 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

รูปที่ 6.9 ตารางแสดงโอเปอ

เรชันของพีชคณิต

เชิงสัมพันธ

6.3.3 โอเปอเรชนัเชิงสัมพันธอืน่ๆ (Additional Relational Operations

การจัดกลุมและหาผลรวม การใชงานของฐานขอมูลน้ัน ในสวนที่เปนตัวเลขสามารถที่จะนํามาใชได โดยมีการจัดกลุมตามคาโดเมนของแตละ

แอทตริบิวต แลวสามารถนํามาโอเปอเรชันทางคณิตศาสตรได ซ่ึงในแตละกลุมจะมีการคํานวณไดคือ ผลรวม

(sum) , คาเฉลี่ย (average) , คาสูงสุด (maximum) , คาต่ําสุด (minimum) และการนับ (count)

รูปที่ 6.10 การนับจํานวน

พนักงานและการหา

คาเฉลี่ยของ

เงินเดือน

รูปที่ 6.10 แสดงการหาการนับของจํานวนพนักงานและการหาคาเฉลี่ยของเงินเดือน DNO ℱCOUNT SSN, AVERAGE Salary (Employee)

Page 9: chapter06 the relational algebra

2110422 การออกแบบระบบการจัดการฐานขอมูล 6-9 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

ฟงกชันนัลโอเปอเรชัน • การหาคาสูงสุดในแอทตริบิวต สามารถเขียนไดเปน ℱ MAX <Attribute> (R)

• การหาคาต่ําสุดในแอทตริบิวต สามารถเขียนไดเปน ℱ MIN <Attribute> (R)

• การหาคาผลรวมในแอทตริบิวต สามารถเขียนไดเปน ℱ SUM <Attribute> (R)

Outer JOIN • ใน Natural JOIN น้ันถาขอมูลในการเชื่อมโยงกันน้ันไมตรงกันก็จะถูกตัดทิ้ง ซ่ึงจะทําใหขอมูลเกิดการสูญ

หาย ดังน้ันจึงเกิดเปน Outer JOIN ที่จะเก็บคาทั้งหมดที่เกิดจากโอเปอเรชั่น JOIN โดยถาคาในขอมูลใดไมมีก็จะใหเปนคาวาง (null)

• สัญลักษณ R S หมายถึงเก็บขอมูลทุกคาใน R แลว ขอมูลใน S บางคาที่ไมมีจะใสคาวาง • สัญลักษณ R S หมายถึงเก็บขอมูลทุกคาใน S แลว ขอมูลใน R บางคาที่ไมมีจะใสคาวาง

รูปที่ 6.11 ผลการ JOINที่มี

คา NULL

รูปที่ 6.11 แสดงถึงรีเลชันที่ JOIN แลวทําใหเกิดคาวาง (null)

Outer UNION โอเปอเรเตอร Outer UNION ถูกพัฒนาขึ้นมาจากการที่ไมสามารถนํารีเลชัน 2 รีเลชันมาทําการ UNION ไดเน่ืองจากแอทตริบิวต ของทั้ง 2 รีเลชันน้ัน ไมเหมือนกันทั้งหมด ดังน้ันถามีรีเลชัน R(X,Y) กับ S(X,Z) ซ่ึงจะไดรีเลชันใหมเปน T(X,Y,Z) ซ่ึงจะทําใหในแตละทูเพิลของรีเลชัน T มีคาวาง (null) ในแอทตริบิวต Y หรือ แอทตริบิวต Z ในคาใดคาหนึ่ง

Page 10: chapter06 the relational algebra

2110422 การออกแบบระบบการจัดการฐานขอมูล 6-10 ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย

แบบฝกหัด 1. จงอธิบายความสําคัญของการทําโอเปอรเรชัน rename 2. จงอธิบายความแตกตางระหวาง JOIN กับ OUTER JOIN 3. จงพิจารณาฐานขอมูล Companyในรูป เพื่อตอบคําถามตอไปนี้ • แอทตริบิวตใดในรีเลชั่น WORKS_ON ใน ไมสามารถเปนคา NULL ได เพราะเหตุใด • แอทตริบิวตใดในรีเลชั่น PROJECT เปนคียนอก และคียดังกลาวเปนคียหลักของรีเลชั่นใด