6-1
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
บทที่ 6* พีชคณิตเชิงสัมพันธ The Relational Algebra วัตถุประสงค 1. เพื่อศึกษาตัวอยางฐานขอมูลทางธุรกิจ 2. เพื่อศึกษาโอเปอเรเตอรพีชคณิตเชิงเสน 3. เพื่อศึกษาภาษา QBE
6.1
ฐานขอมูลในธุรกิจ ตัวอยางฐานขอมูลที่ใชในเชิงธุรกิจ ตัวอยางแสดงเคารางของรีเลชันที่มีความสัมพันธกัน โดยแตละรีเลชันจะมีคียหลักซึ่ง แอทตริบิวตจะขีดเสนใต
รูปที่ 6.1 ฐานขอมูล EMPLOYEE
6.2
หลักการของพีชคณิตเชิงสัมพันธ • • •
การทําโอเปอเรชันสําหรับโมเดลความสัมพันธจะถูกเรียกวาเปนพีชคณิตเชิงเสน ซึ่งจะทําการเรียกใชขอมูลจาก รีเลชันตางๆไดตามความตองการ ผลที่ไดจากการทําโอเปอเรชันพีชคณิต (algebra operations) นั้นจะทําใหเกิดรีเลชันใหม ซึ่งอาจจะเกิดมา จากรีเลชันเดียวหรือหลายรีเลชัน การทําโอเปอเรชันพีชคณิตที่ซอนกัน ก็จะไดผลแสดงเปนคิวรี่ของฐานขอมูล (Database Query)
* อางอิงจากบทที่ 6 ของเอกสารอางอิง [1]
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
6.3
6-2
การจัดแบงประเภทโอเปอเรชันเชิงสัมพันธ (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 มีคุณสมบัติการเรียงสับเปลี่ยน σ
(σ(R))=σ(σ(R)) •
โอเปอเรเตอร SELECT อาจจะมีการเปลี่ยนลําดับการทําได
•
σ(σ(σ(R))) =σ(σ(σ(R))) โอเปอเรเตอร SELECT สามารถแทนไดโดยการใชตัวเชื่อม σ(σ(σ(R))) =σAND AND (R)
PROJECT
• • • • • •
จะเปนการเลือกเฉพาะคอลัมนที่ตองการจากตารางหรือรีเลชันเทานั้น จะมีรูปแบบของการทําโอเปอเรชันคือ π(R) โดย π เรียกวา พาย (pi) เปนสัญลักษณที่ใชในการทํา PROJECT attribute list คือแอทตริบิวตตามที่ตองการ R เปนชื่อของรีเลชันที่ตองการทําการโอเปอเรต โอเปอเรเตอร PROJECT นั้นถามีทูเพิลซ้ํากันก็จะใหลบทูเพิลที่ซ้ําออก ตัวอยาง πLNMAE,FNAME,SALARY(EMPLOYEE) หมายถึง ตองการเลือกเฉพาะแอทตริบิวต LNAME,FNAME และSALARY จากรีเลชัน EMPLOYEE
เทานั้น
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
6-3
คุณสมบัติของ PROJECT • •
การ PROJECT นั้นผลที่ไดจะมีจํานวนทูเพิลนอยกวาหรือเทากับรีเลชันตั้งตน ถาแอทตริบิวตที่เปนคียถูกเลือกใน การโอเปอเรชัน PROJECT จะทําให π(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
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
6-4
รูปที่ 6.3 แสดงการสรางรีเลชันสื่อกลางและคําสั่ง RENAME (a) (b)
πFNAME, LNAME, SALARY(σ DNO=5(EMPLOYEE)) 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
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย (a) (b) (c) (d) (e)
6-5
แสดงรีเลชัน STUDENT กับ รีเลชัน INSTRUCTOR แสดงผลลัพธของ STUDENT INSTRUCTOR แสดงผลลัพธของ STUDENT ∩ INSTRUCTOR แสดงผลลัพธของ STUDENT - INSTRUCTOR แสดงผลลัพธของ 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
รูปที่ 6.6b ผลการ CARTESIAN
FEMALE_EMPS ← σ SEX=’F’(EMPLOYEE) EMPNAMES ← π FNAME, LNAME, SSN (FEMALE_EMPS)
6-6
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
รูปที่ 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 •
เปนการเชื่อมโยงขอมูลที่สนใจ “ชื่อแอทตริบิวต” โดยรีเลชันที่จะนํามาเชื่อมโยงกัน จะตองมีชื่อแอทตริบิวตที่ เหมือนกัน โดยแทนดวยเครื่องหมาย *
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
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)
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
6-9
ฟงกชันนัลโอเปอเรชัน • • •
การหาคาสูงสุดในแอทตริบิวต สามารถเขียนไดเปน ℱ MAX (R) การหาคาต่ําสุดในแอทตริบิวต สามารถเขียนไดเปน ℱ MIN (R) การหาคาผลรวมในแอทตริบิวต สามารถเขียนไดเปน ℱ SUM (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 ในคาใดคาหนึ่ง
2110422 การออกแบบระบบการจัดการฐานขอมูล ภาควิชาวิศวกรรมคอมพิวเตอร คณะวิศวกรรมศาสตร จุฬาลงกรณมหาวิทยาลัย
แบบฝกหัด 1. 2. 3. • •
จงอธิบายความสําคัญของการทําโอเปอรเรชัน rename จงอธิบายความแตกตางระหวาง JOIN กับ OUTER JOIN จงพิจารณาฐานขอมูล Companyในรูป เพื่อตอบคําถามตอไปนี้ แอทตริบิวตใดในรีเลชั่น WORKS_ON ใน ไมสามารถเปนคา NULL ได เพราะเหตุใด แอทตริบิวตใดในรีเลชั่น PROJECT เปนคียนอก และคียดังกลาวเปนคียหลักของรีเลชั่นใด
6-10