410 likes | 531 Views
Chapter 2. ฐานข้อมูลเชิงสัมพันธ์ (The Relational Model). Relational Model. ฐานข้อมูลเชิงสัมพันธ์ (Relational Model) คือ รูปแบบแนวคิดที่ได้พื้นฐานมาจากแนวคิดของคณิตศาสตร์ในเรื่องของ relation Relation คือ ตารางที่มีแถวกับคอลัมน์ Attribute คือ ชื่อของคอลัมน์ของ relation
E N D
Chapter 2 ฐานข้อมูลเชิงสัมพันธ์ (The Relational Model)
Relational Model • ฐานข้อมูลเชิงสัมพันธ์ (Relational Model)คือ รูปแบบแนวคิดที่ได้พื้นฐานมาจากแนวคิดของคณิตศาสตร์ในเรื่องของ relation • Relationคือ ตารางที่มีแถวกับคอลัมน์ • Attributeคือ ชื่อของคอลัมน์ของrelation • Domainคือ กลุ่มของค่าข้อมูลที่เป็นไปได้สำหรับ attribute หนึ่งหรือหลายๆ attribute • Tuplesคือ แถวของ relation1 แถว • Degree ของ relationคือ จำนวนของ attributeที่มีอยู่ใน relation • Cardinality ของ relationคือ จำนวน tuple ใน relationนั้นๆ • Relational databaseคือ กลุ่มของrelationที่ทำการลดความซ้ำซ้อนของข้อมูลแล้ว จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Mathematical relations • ให้เซต D1 = { 2, 4 } D2={1 ,3} • D1xD2 ={ (2,1) , (2,3) , (2,5), (4,1), (4,3), (4,5) } • R= {(2,1) (4,1) } เป็น subset ของ D1xD2 ก็มีคุณสมบัติเป็น relation มาจากเงื่อนไข R={(x,y) |x E D1 , y E D2 , and y=1 } • ถ้าเงื่อนไขคือ สมาชิกคู่ลำดับ y ต้องมีค่าเป็นครึ่งหนึ่งของ x • จะได้ S={(x,y) |xED1 , yED2 , and x=2y} • ได้ S={(2,1)} จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Database Relation • Relation Schemaคือ ชื่อ relation ตามด้วยกลุ่มของคู่ attribute และชื่อ domain • ถ้าให้ A1,A2,…,An เป็น attribute • D1,D2,…,Dn เป็น domain • relation schema คือ {A1:D1,A2:D2,…,An:Dn} • R คือ เซตของ n-tuple • (A1:D1,A2:D2,…,An:Dn) ซึ่ง d1 อยู่ใน D1 ,d2 อยู่ใน D2 , … , dn อยู่ใน Dn จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Database Relation • เขียนในรูปตารางได้ • {(หมายเลขสินค้า : PG21,ที่อยู่: 18หมู่ 10 ต.ท่าโพธิ์ ,อำเภอ: เมืองพิษณุโลก ,จังหวัด:พิษณุโลก , รหัสไปรษณีย์:65000 ,ค่าเช่า:2000)} จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
คุณสมบัติของ Relation • Relation ต้องมีชื่อไม่ซ้ำกับ relation อื่นๆ • แต่ละช่องของ relation จะมีค่าได้เพียงค่าเดียว • แต่ละattribute ต้องมีชื่อไม่ซ้ำกัน • ค่าของ attribute ต้องมาจาก domain เดียวกัน • ลำดับของ attribute ไม่สำคัญ • แต่ละ tuples(row) ต้องไม่ซ้ำกัน • ลำดับของ tuples ไม่สำคัญ จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
คุณสมบัติของ Relation • ซึ่งคุณสมบัติของ relation เป็นผลจากคุณสมบัติของ relation ในทางคณิตศาสตร์ ดังนี้ • ลำดับสมาชิกในเซตไม่สำคัญ • ในเซตห้ามมีสมาชิกซ้ำกัน • ค่าของ relation ทางคณิตศาสตร์ขึ้นอยู่กับ domain จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Key • Superkey คือ attribute หรือเซตของ attribute ซึ่งทำให้สามารถแยกความแตกต่างของ tuples ใน relation ได้ • Candidate key คือ superkey ที่มีจำนวน attribute น้อยที่สุด ซึ่งจะต้องมีคุณสมบัติ คือ uniqueness และ irreducibility • Primary key คือ candidate key ที่ถูกเลือกมาเพื่อบ่งชี้ความแตกต่างของ tuples • Foreign key คือ attribute หรือเซตของ attribute ใน 1 relation ที่ตรงกันกับ candidate key ของบาง relation จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Relational Database Schemas branch จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Relational Database Schemas staff จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Relational Database Schemas Property_for_rent จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Relational Database Schemas Renter จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Relational Database Schemas Owner จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Relational Database Schemas Viewing จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Integrity • Null คือค่าของ attribute ซึ่งหมายถึงไม่ทราบค่า ณ ปัจจุบัน หรือหมายถึงไม่มีค่าที่ใช้ได้กับ tuple นี้ • Entity integrity กำหนดว่า attribute ของ primary key ห้ามมีค่าเป็น Null • Referential integrity กำหนดว่าถ้ามี foreign key ใน relation ค่าของ foreign key จะต้องตรงกันกับค่าของ candidate key ของบาง tuple ใน home relation หรือไม่ค่าของ foreign key ก็ต้องเป็น null จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Integrity • Enterprise constraints หมายความว่า กฏเกณฑ์ต่างๆสามารถสร้างเพิ่มเติมโดยผู้ใช้หรือ DBA ก็ได้ จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Lanaguages • Relational Algebra • Relational Calculus • Other languages จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • คือ ภาษาทฤษฎีกับการดำเนินการ ซึ่งทำงานบน relation หนึ่ง หรือหลาย relation เพื่อทำให้เกิด relationอื่นๆ โดยไม่มีการเปลี่ยนแปลง relation เดิม • Closure เป็นคุณสมบัติที่มาจากการเกิด relationใหม่โดยไม่มีการเปลี่ยนแปลง relation เดิมแล้วผลลัพธ์ที่ได้ยังสามารถเป็น input ให้กับการดำเนินการอื่นๆได้อีกด้วย จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Selection • Projection • Cartesian product • Union • Set difference • Join • Intersection • Division จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Selection or Restriction • กระทำบน relation เดียวทำให้เกิด relation ซึ่งประกอบด้วยแถวของ relation ที่ตรงกับเงื่อนไขอย่างที่ต้องการ • ตัวอย่าง แสดงข้อมูล staff ที่มีเงินเดือนมากกว่า 10000 จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Selction จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Projection • กระทำบน relation เดียวทำให้เกิด relation ซึ่งประกอบด้วยคอลัมน์ของ relation ที่ตรงกับเงื่อนไขอย่างที่ต้องการ • ตัวอย่าง แสดงข้อมูลเงินเดือนทั้งหมดของ staff ทุกคน แสดงเฉพาะ Sno,FName,LName และ Salary details จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Projection จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Cartesian Product • ทำให้เกิด relation ซึ่งเป็นการนำข้อมูลของทุกๆแถวของ relation R กับ relation S มาต่อกันโดย 1 แถวของ R จะต่อกับทุกแถวของ s ไปเรื่อยๆจนหมดแถวของ R • ตัวอย่าง แสดงข้อมูลชื่อและคอมเมนท์ของผู้เช่าทั้งหมดที่ได้ดูรายการสินค้าแล้ว x จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Cartesian Product จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Union • การ union ของ relation 2 relation คือ R กับ S และมี I , J แถว จะเป็นการนำข้อมูลแถวของ R ต่อด้วยแถวทั้งหมดของ S ซึ่งจำนวนแถวสูงสุดคือ I+J แถว และแถวที่ซ้ำจะถูกตัดออก • ตัวอย่าง แสดงข้อมูลพื้นที่ทั้งหมดที่มีทั้งของสาขาและสินค้า จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Union จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Set different • R-S ทำให้เกิด relation ซึ่งประกอบด้วยแถวที่อยู่ใน R แต่ไม่อยู่ใน S และ R กับ S จะต้องเข้ากันได้ด้วย • ตัวอย่าง แสดงข้อมูลเมืองทั้งหมดที่มีสาขาแต่ไม่มีสินค้าอยู่ จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Set Different จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Join Operations • ถูกพัฒนาต่อจาก cartesian product ซึ่งจะนำการ selection เข้ามาใช้ร่วมด้วย โดยมีการ join หลายแบบ • Theta-join • Natural join • Outer join • Semi-join จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Theta-join ทำให้เกิด relation ซึ่งประกอบด้วยแถวที่มาจากcartesian product แต่มีการใช้เงื่อนไขในการเลือก(selection) โดยที่มีเงื่อนไขนั้นอาจจะใช้ comparison operators ได้ จำพวก < ,<= ,> ,>= , = , ~ = • กรณีที่ใช้ = จะเรียกว่า equi-join • ตัวอย่าง แสดงข้อมูลชื่อและคอมเมนท์ของผู้เช่าทั้งหมดที่ได้ดูสินค้าแล้ว จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง equi-join จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Natural join คือ equi-join ของ relation R กับ S บนทุกๆ attribute ที่กำหนด • degree ของ natural join คือผลรวมของ degree ของ relation R,S แต่น้อยกว่าจำนวน attribute ที่กำหนดไว้ • ตัวอย่าง แสดงข้อมูลชื่อและคอมเมนท์ของผู้เช่าทั้งหมดที่ได้ดูสินค้าแล้ว จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Natural join จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Outer join ทำให้เกิด relation ที่เมื่อทำการ join แล้วถึงแม้ว่าจะไม่มีค่าใน tuple ใดแต่ก็สามารถที่จะแสดงผลลัพธ์ได้ • Left outer join คือการ join ซึ่งถึงแม้ว่า tuple ของ relation R จะไม่มีค่าที่ตรงกันกับค่าใน relation S แต่ก็ยังถูกแสดงผลลัพธ์ได้ • ตัวอย่าง แสดงข้อมูลสินค้าทั้งหมดทั้งที่ถูกดูรายละเอียดแล้วและยังไม่ได้ดู จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Left outer join จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Right outer join คือการ join ซึ่งถึงแม้ว่า tuple ของ relation S จะไม่มีค่าที่ตรงกันกับค่าใน relation R แต่ก็ยังถูกแสดงผลลัพธ์ได้ • Full outer join คือการ join ซึ่งถึงแม้ว่า tuple ของ ทั้ง relation R และ S จะไม่มีค่าที่ตรงกันแต่ก็ยังถูกแสดงผลลัพธ์ทั้งหมด จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Semi-join ทำให้เกิด relation ที่ประกอบด้วยแถวของ R ที่ใช้เงื่อนไขในการ join ของ relation R กับ S • ตัวอย่าง แสดงข้อมูลทั้งหมดของ staff ที่ทำงานสาขาใน partick จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Semi-join จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
Relational Algebra • Intersection ทำให้เกิด relation ที่ประกอบด้วยเซตของทุกแถวที่อยู่ในทั้ง relation R และ S ซึ่งทั้งสอง relation นี้ต้องมี attribute เข้ากันได้ • Division ทำให้เกิด relation ที่ประกอบด้วยเซตของแถวจาก relation R ที่สร้างจาก attribute C ซึ่งมีค่าตรงกันกับการรวมกันของทุกๆ tuple ใน relation S • เมื่อกำหนดให้ relation R มี attribute เป็นเซต A • Relation S มี attribute เป็นเซต B แล้ว B เป็นเซตย่อยของ A และให้ C = A- B จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร
ตัวอย่าง Division แสดงข้อมูลผู้เช่าทั้งหมดที่ได้ดูรายละเอียดสินค้าที่มีห้อง 3 ห้องแล้ว Output S R จัดทำโดย อาจารย์จิราพร พุกสุข มหาวิทยาลัยนเรศวร