Transcript บทที่ 3
บทที่ 3 แบบจำลองข้ อมูล Data Models Algebra 1 Relational Algebra พีชคณิตเชิงสัมพันธ์หรื อ Procedural Query Language เป็ นการ ปฏิบตั ิการที่เกิดขึ ้นกับ Relation เพื่อสร้ าง Relation ใหม่ขึ ้นมาเป็ น แบบจาลองของการกระทาต่างๆ ที่สามารถเกิดขึ ้นกับข้ อมูลในฐานข้ อมูล ซึง่ เป็ นการกระทาพื ้นฐานที่จะนามาประกอบกันเป็ น Procedure เพื่อ กาหนดให้ ฐานข้ อมูลทางานตามที่ต้องการ 1. Unary Operations 2. Set Operation 3. Join Operation 2 Relational Algebra 1. Unary Operations จะปฏิบัตงิ ำนภำยใต้ รีเลชั่นเดียว มีโอเปอร์ เรชั่น 1. Restrict (Or Selection) 2. Projection () 3 Relational Algebra 1. Restrict (Or Selection) •เป็ นการกระทาเพื่อแสดงข้ อมูลของ Tuple ใน Relation ที่มี ค่าตรงตามเงื่อนไขที่ระบุ •คาสัง่ ที่ใช้ ได้ แก่ WHERE รูปแบบคือ A WHERE X operator Y 4 Relational Algebra Restrict 5 Relational Algebra B WHERE CITY = ‘New York’ S# S1 SNAME Smith STATUS 20 CITY New York 6 Relational Algebra 2. Projection () •เป็ นการกระทาเพื่อกาหนดรายชื่อของ Attribute ของRelation ที่ต้องการให้ แสดงผลออกมา •คาสัง่ ที่ใช้ มีรูปแบบคือ A [X, Y,…., Z] 7 Relational Algebra Project 8 Relational Algebra A [SNAME, STATUS] SNAME STATUS Smith 20 Clark 20 (B WHERE CITY = ‘New York’) [S#] S# S1 9 Set Operations • ในการทางานกับข้อมูลจริ ง ๆ จะต้องนารี เลชัน่ หลายรี เลชัน่ เข้ามา ประกอบกัน set operation ทาให้เราสามารถปฏิบตั ิบนหลาย รี เลชัน่ (สามารถเรี ยกอีกชื่อหนึ่งว่า Binary Operation) – Union, Set Difference, Intersection, Cartesian product 10 Relational Algebra 1. Union () • เป็ นการรวมกันของข้ อมูลของ 2 Relation เพื่อแสดงข้ อมูลของ ทุก Tuple ในรูปแบบของ Union ตามทฤษฎีของเซต • คาสัง่ ที่ใช้ คือ UNION รูปแบบคือ A UNION B 11 Relational Algebra UNION 12 Relational Algebra •Example A S# S1 S4 B S# S1 S2 SNAME Smith Clark STATUS 20 20 CITY New York New York SNAME Smith Jones STATUS 20 10 CITY New York Chicago 13 Relational Algebra A UNION B S# S1 S4 S2 SNAME Smith Clark Jones STATUS 20 20 10 CITY New York New York Chicago 14 Relational Algebra 2. Difference เป็ นการกระทาเพื่อแสดงข้ อมูลของ Tuple ที่ปรากฎอยูใ่ น Relation หนึง่ แต่ไม่ปรากฏอยูใ่ นอีก Relation หนึง่ ในรูปแบบ ของ A-B ตามทฤษฎีของเซต คาสัง่ ที่ใช้ คือ MINUS รูปแบบคือ A MINUS B 15 Relational Algebra Difference 16 Relational Algebra A MINUS B S# S4 SNAME Clark STATUS 20 CITY New York B MINUS A S# S2 SNAME Jones STATUS 10 CITY Chicago 17 Relational Algebra 3. Intersection () • เป็ นการกระทาเพื่อแสดงข้ อมูลของ Tuple ที่ปรากฎทัง้ 2 Relation ที่นามารวมกันในรูปแบบของ Intersection ตาม ทฤษฎีของเซต • คาสัง่ ที่ใช้ คือ INTERSECT รูปแบบคือ A INTERSECT B 18 Relational Algebra Intersection 19 Relational Algebra A INTERSECT B S# S1 SNAME Smith STATUS 20 CITY New York 20 Relational Algebra 4. Cartesian Product • เป็ นการกระทาเพื่อแสดงข้ อมูลของทุก Tuple ที่สามารถ เป็ นไปได้ ที่เกิดจากการจับคูก่ นั ของข้ อมูล 2 Relation แบบ ผลคูณ Cartesian • คาสัง่ ที่ใช้ คือ TIMES มีรูปแบบคือ A TIMES B 21 Relational Algebra Product a b c x y a a b b c c x y x y x y 22 Relational Algebra • Example A S# S1 S2 S3 B P# P1 P2 P3 A TIMES B S# S1 S1 S1 S2 S2 S2 S3 S3 S3 P# P1 P2 P3 P1 P2 P3 P1 P2 P3 23 3. Join Operation • Join กาเนิดมาจากผลคูณ Cartesian ที่ถือว่าเป็ นหนึง่ ใน โอเปอร์ เรชัน่ ที่มีประสิทธิภาพสูง และถือว่าเป็ นโอเปอร์ เรชัน่ ที่ยากที่สดุ ในการนาไปใช้ งานบน RDBMS • ระบบฐานข้ อมูลเชิงสัมพันธ์จงึ มักเกิดปั ญหาเกี่ยวกับประสิทธิภาพ ซึง่ ส่วนหนึง่ ก็อาจเกิดจากกระบวนการ join รี เลชัน่ ที่ผิดพลาด • โอเปอร์ เรชัน่ join ประกอบด้ วย – – – – – Theta Join Equi Join Natural join Outer Join Semi Join 24 Theta Join • Theta-Join เป็ นโอเปอเรชัน่ ที่นิยามถึงรี เลชัน่ ที่บรรจุไปด้ วย ทัปเพิลที่ต้องการตามเงื่อนไขจากผลคูณ Cartesian ระหว่าง 2 รี เลชัน่ โดยกาหนดเงื่อนไขที่ต้องการ โดยใช้ โอเปอร์ เรเตอร์ <, > , , , = , 25 Equi Join • Equi-Join คือ การ Join แบบที่เงื่อนไขเท่ากับ = เท่านัน้ และผลลัพธ์ที่ได้ คอลัมน์ที่ซ ้ากันจะถูกแสดงเพียงแค่ครัง้ เดียว 26 Natural join • Natural-Join คือ Equi-Join ที่ Join ทุกคอลัมน์แต่ขจัด คอลัมน์ที่ซ ้ากันออกไป A B B C A B C a 1 1 X a 1 X b 2 1 Y 3 Z a 1 Y Natural-Join 27 Outer Join • การ join เป็ นตรวจสอบคีย์ที่ตรงกัน แต่บางครัง้ เราต้ องการ ทัปเพิลในรี เลชัน่ หนึง่ ไม่สามารถจับคูก่ บั อีกรี เลชัน่ หนึง่ ได้ แต่ ต้ องการทัปเพิลจากรี เลชัน่ หนึง่ เพื่อไปปรากฏในผลลัพธ์ จึง จาเป็ นต้ องใช้ การ join แบบ Outer Join 28 Semi Join • รี เลชัน่ ที่บรรจุอยูใ่ นทัปเพิล R ที่มีสว่ นร่วมในการ Join ของ R กับ S A a b B 1 2 B C A B 1 1 3 X Y Z a 1 Semi Join 29 Relational Algebra 4. Divide •เป็ นการกระทาเพื่อแสดงข้ อมูลที่เป็ นไปได้ ทงหมด ั้ ซึง่ เกิดจากการ นาเอา Relation A ไปเปรี ยบเทียบค่ากับ Relation B โดยที่ Relation A จะต้ องมี Degree ที่สงู กว่า Relation B และทุก Attribute ใน Relation B ต้ องปรากฎอยูใ่ น Relation A แต่ในการแสดงผลจะแสดงเฉพาะ Attribute ที่ปรากฏใน Relation A แต่ไม่ปรากฎใน Relation B •คาสัง่ ที่ใช้ มีรูปแบบคือ A DIVIDEBY B 30 Relational Algebra Divide R R/S S 31 Relational Algebra Divide a a a b c x y z x y x z a 32 โอเปอเรชั่นกำรรวมและกำรจำแนกกลุ่ม aggregation and Grouping • aggregation – – – – – Count Sum Avg Min Max • Grouping – Grouping 33