Relational algebra
Sponsored Links
This presentation is the property of its rightful owner.
1 / 133

Relational Algebra PowerPoint PPT Presentation


  • 254 Views
  • Uploaded on
  • Presentation posted in: General

DBMS. Database Management System. Relational Algebra. 4122206A ระบบจัดการฐานข้อมูล 3(2-2) อ.ชนิดา คำเพ็ง สาขาวิชาเทคโนโลยีสารสนเทศ. Outline. Relational Database วิธีจัดการข้อมูลใน Relational Database. ฐานข้อมูลเชิงสัมพันธ์. ทำให้ผู้ใช้เห็นภาพของข้อมูลได้ง่าย

Download Presentation

Relational Algebra

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


DBMS

Database Management System

Relational Algebra

4122206A ระบบจัดการฐานข้อมูล 3(2-2)อ.ชนิดา คำเพ็งสาขาวิชาเทคโนโลยีสารสนเทศ


Outline

  • Relational Database

  • วิธีจัดการข้อมูลใน Relational Database

Database Management System


ฐานข้อมูลเชิงสัมพันธ์

  • ทำให้ผู้ใช้เห็นภาพของข้อมูลได้ง่าย

  • ผู้ใช้ไม่ต้องรู้ว่าข้อมูลถูกจัดเก็บจริงอย่างไรและวิธีการเรียกใช้ข้อมูล

  • ภาษาที่ใช้ในการเรียกดูข้อมูล คล้ายภาษาอังกฤษ

  • การเรียกใช้ข้อมูลทำได้ง่าย โดยใช้โอเปอเรเตอร์ทางคณิตศาสตร์ เช่น Join, intersect , Union

Database Management System


โครงสร้างการจัดเก็บข้อมูลของฐานข้อมูลเชิงสัมพันธ์(Structure of Relational Databases)

  • มีโครงสร้างข้อมูลเป็นตาราง(Relation) 2 มิติ ประกอบด้วย Row และ Column

Database Management System


Attribute

โครงสร้างฐานข้อมูลเชิงสัมพันธ์

Employee

Cardinality

Relation

Degree

Primary Key

Foreign Key

Payroll

Database Management System


คุณสมบัติของรีเลชั่น

  • ข้อมูลในแต่ละคอลัมน์เก็บได้เพียงค่าเดียวเท่านั้น

  • ข้อมูลในแต่ละแถวภายในรีเลชั่นเดียวกันต้องไม่ซ้ำกัน

  • คอลัมน์จะเรียงลำดับอย่างไรก็ได้

  • แต่ละแถวจะเรียงลำดับอย่างไรก็ได้

Database Management System


วิธีจัดการข้อมูลใน Relational Database

  • Relational Database มีภาษาที่ใช้สำหรับจัดการกับข้อมูล 2 ภาษาคือ

    • Relational Algebra

      • ภาษาที่ DBMS ใช้อยู่ภายในระบบฐานข้อมูล

    • Relational Calculus

      • ภาษาที่ใช้กำหนดว่าต้องการอะไร

      • ถูกพัฒนาจนเป็นภาษา SQL ในปัจจุบัน

Database Management System


ภาษาที่ใช้สำหรับจัดการข้อมูล

User Program

Relational Calculus

DBMS

Relational Algebra

Database

Database Management System


Relational Algebra

  • Relational Algebra เรียกอีกอย่างว่า Relational query language

  • ใช้ในการจัดการข้อมูล โดยการระบุตัวกระทำ กับความสัมพันธ์ที่ต้องการจัดการ ผลลัพธ์ที่ได้คือ ความสัมพันธ์ใหม่

  • มีคำสั่งพื้นฐาน 8 ตัว

Database Management System


คำสั่งพื้นฐาน 8 ตัว

  • Select()หรือ Restrict เลือกแถวจากความสัมพันธ์

  • Project() เลือกเฉพาะคอลัมน์ที่ต้องการจากความสัมพันธ์

  • Product() สามารถรวมความสัมพันธ์ได้

  • Difference(-) หาความแตกต่างระหว่าง 2 ความสัมพันธ์

  • Union () เชื่อม 2 ความสัมพันธ์เข้าด้วยกัน

Database Management System


คำสั่งพื้นฐาน 8 ตัว(ต่อ)

  • Intersection ()

  • Join (⋈)

  • Division ()

Database Management System


Select or Restrict

  • การดึงข้อมูลจากรีเลชั่นเฉพาะแถวที่ต้องการ

  • ตัวอย่าง ต้องการสินค้าที่ราคาต่ำกว่า 1000 บาท

Database Management System


ตัวอย่างคำสั่ง Select

  • ตัวอย่าง ต้องการสินค้าที่ราคาต่ำกว่า 1000 บาท

Database Management System


Selection (Restrict)

Database Management System


Selection (Restrict)

รูปแบบ

ชื่อรีเลชั่น WHERE<CONDITION>

เงื่อนไข(ตาราง)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นคราชสีมา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นคราชสีมา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

ชื่อ=‘แดง’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

ชื่อ=‘แดง’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

ชื่อ=‘แดง’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

ชื่อ=‘แดง’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

รหัส=‘B001’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’AND สาขาวิชา=‘โยธา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’AND สาขาวิชา=‘โยธา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’AND สาขาวิชา=‘โยธา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’AND สาขาวิชา=‘โยธา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’OR สาขาวิชา=‘โยธา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’OR สาขาวิชา=‘โยธา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’OR สาขาวิชา=‘โยธา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’OR สาขาวิชา=‘โยธา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’OR สาขาวิชา=‘โยธา’(นักศึกษา)

Database Management System


Selection (Restrict)

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’OR สาขาวิชา=‘โยธา’(นักศึกษา)

Database Management System


Project

การเลือกเฉพาะบางคอลัมน์ของความสัมพันธ์ขึ้นมาแสดง

ตัวอย่างเลือกเฉพาะชื่อสินค้าและราคา

Database Management System


Project

Database Management System


Project

รูปแบบ

ชื่อรีเลชั่น [ชื่อแอททริบิวต์ 1, ชื่อแอททริบิวต์ 2, …]

 ชื่อแอททริบิวต์ 1, ชื่อแอททริบิวต์ 2, …(ตาราง)

Database Management System


Project

รูปแบบ

ชื่อรีเลชั่น WHERE <CONDITION> [ชื่อแอททริบิวต์ 1, …]

condition(ชื่อแอททริบิวต์ 1, …(Relation))

Database Management System


Project

นักศึกษา

ตัวอย่าง

Database Management System


Project

นักศึกษา

ตัวอย่าง

จังหวัด(นักศึกษา)

Database Management System


Project

นักศึกษา

ตัวอย่าง

จังหวัด(นักศึกษา)

Database Management System


Project

นักศึกษา

ตัวอย่าง

จังหวัด(นักศึกษา)

Database Management System


Project

นักศึกษา

ตัวอย่าง

จังหวัด(นักศึกษา)

Database Management System


Project

นักศึกษา

ตัวอย่าง

ชื่อ, จังหวัด, สาขาวิชา(นักศึกษา)

Database Management System


Project

นักศึกษา

ตัวอย่าง

ชื่อ,จังหวัด(นักศึกษา)

Database Management System


Project

นักศึกษา

ตัวอย่าง

ชื่อ,จังหวัด(นักศึกษา)

Database Management System


Project

นักศึกษา

ตัวอย่าง

ชื่อ,รหัส,สาขาวิชา(นักศึกษา)

Database Management System


Project

ตัวอย่าง

ชื่อ,รหัส,สาขาวิชา(นักศึกษา)

Database Management System


Project

นักศึกษา

ตัวอย่าง

ชื่อ,รหัส,สาขาวิชา(นักศึกษา)

Database Management System


Project

นักศึกษา

ตัวอย่าง

ชื่อ,รหัส,สาขาวิชา(นักศึกษา)

Database Management System


Project & Restrict

นักศึกษา

ตัวอย่าง

ชื่อ=‘แดง’(รหัส,ชื่อ,สาขาวิชา(นักศึกษา))

Database Management System


Project & Restrict

นักศึกษา

ตัวอย่าง

จังหวัด=‘นครราชสีมา’(รหัส,ชื่อ,สาขาวิชา(นักศึกษา))

Database Management System


Project & Restrict

นักศึกษา

ตัวอย่าง

ชื่อ=‘แดง’(รหัส,ชื่อ,สาขาวิชา(นักศึกษา))

Database Management System


Project & Restrict

นักศึกษา

ตัวอย่าง

ชื่อ=‘แดง’(รหัส,ชื่อ,สาขาวิชา(นักศึกษา))

Database Management System


Project & Restrict

นักศึกษา

ตัวอย่าง

ชื่อ=‘แดง’(รหัส,ชื่อ,สาขาวิชา(นักศึกษา))

Database Management System


Project & Restrict

นักศึกษา

ตัวอย่าง

ชื่อ=‘แดง’(รหัส,ชื่อ,สาขาวิชา(นักศึกษา))

Database Management System


Product

  • เป็นการจับคู่ข้อมูลระหว่างรีเลชั่นตั้งแต่ 2 รีเลชั่นขึ้นไป โดยหลักการดังนี้

    • จำนวนแถวข้อมูลในผลลัพธ์จะเท่ากับจำนวนแถวข้อมูลจากรีเลชั่นแรกคูณกับจำนวนแถวข้อมูลของรีเลชั่นที่สอง

    • วิธีการจับคู่ จะทำโดยนำแถวข้อมูลจากรีเลชั่นแรกไปจับคู่กับข้อมูลทุกแถวในอีกรีเลชั่นหนึ่ง ผลลัพธ์จะแสดงทุก แอตทริบิวต์

Database Management System


ตัวอย่างคำสั่ง Product

คารางลูกค้า

คารางสินค้า

ผลลัพธ์

Database Management System


Product

Database Management System


Product

Database Management System


Product

Database Management System


Product

Database Management System


Product

Database Management System


Product

Database Management System


Product

รูปแบบ

ชื่อรีเลชั่นแรกชื่อรีเลชั่นสอง

Relation  Relation

Database Management System


Product

วิชา

นักศึกษา

ตัวอย่าง

Database Management System


Product

วิชา

นักศึกษา

ตัวอย่าง

นักศึกษาวิชา

Database Management System


Product

วิชา

นักศึกษา

นักศึกษาวิชา

Database Management System


Product

วิชา

นักศึกษา

นักศึกษาวิชา

Database Management System


Union

  • นำข้อมูลจาก 2 รีเลชั่นมารวมกัน โดยถ้ารายการซ้ำจะแสดงเพียงแถวเดียว

  • การ Union มีข้อกำหนดว่า แอตทริบิวต์ในลำดับที่ตรงกันจาก 2 รีเลชั่น ต้องมีชนิดของข้อมูลตรงกัน มิฉะนั้นจะ Union ไม่ได้

Database Management System


ตัวอย่าง Union

Union

Database Management System


Union

รูปแบบ

ชื่อรีเลชั่นแรก UNION ชื่อรีเลชั่นสอง

Relation  Relation

Database Management System


Union

A

ตัวอย่าง

Database Management System


Union

B

ตัวอย่าง

Database Management System


Union

A

ตัวอย่าง

B

Database Management System


Union

ตัวอย่าง

A

B

Database Management System


Union

ตัวอย่าง

A

B

Database Management System


Union

ตัวอย่าง

A

B

Database Management System


Union

ตัวอย่าง

A

B

Database Management System


Union

ตัวอย่าง

A U B

Database Management System


Intersect

  • คล้าย Union ต่างกันเฉพาะผลลัพธ์จะเลือกเฉพาะรายการที่เหมือนกันจาก 2 รีเลชั่น

Database Management System


ตัวอย่าง Intersect

Intersect

Database Management System


Intersection

รูปแบบ

ชื่อรีเลชั่นแรก INTERSECT ชื่อรีเลชั่นสอง

Relation  Relation

Database Management System


Intersection

A

ตัวอย่าง

B

Database Management System


Intersection

A

ตัวอย่าง

B

Database Management System


Intersection

ตัวอย่าง

A

B

Database Management System


Intersection

ตัวอย่าง

A

B

Database Management System


Intersection

ตัวอย่าง

A

B

Database Management System


Intersection

ตัวอย่าง

A

B

Database Management System


Intersection

ตัวอย่าง

A

B

A  B

Database Management System


Difference

  • เป็นการแสดงข้อมูลเฉพาะแถวของรีเลชั่นแรกที่ต่างจากแถวข้อมูลในรีเลชั่นที่สอง

Database Management System


ตัวอย่าง Difference

Difference

Database Management System


Difference

รูปแบบ

ชื่อรีเลชั่นแรก MINUS ชื่อรีเลชั่นสอง

Relation - Relation

Database Management System


Difference

A

ตัวอย่าง

B

Database Management System


Difference

A

ตัวอย่าง

B

Database Management System


Difference

A

ตัวอย่าง

B

Database Management System


Difference

ตัวอย่าง

A - B

Database Management System


Division

  • เป็นการหาผลลัพธ์จาก 2 รีเลชั่น โดยที่รีเลชั่นตัวตั้งจะมีแอตทริบิวต์มากกว่าอีกรีเลชั่นที่เป็นตัวหาร โดยที่รีเลชั่นทั้งสองมีแอททริบิวต์อย่างน้อยหนึ่ง

    แอททริบิวต์ที่เหมือนกัน

  • ผลลัพธ์ที่ได้ จะเป็นค่าของแอททริบิวต์จากรีเลชั่นที่มีจำนวนแอททริบิวต์มากกว่า

Database Management System


ตัวอย่าง Division

ตัวตั้ง

ตัวหาร

Database Management System


ตัวอย่าง2 Division

ตัวตั้ง

ตัวหาร

Database Management System


Division

V  W

Database Management System


Division

รูปแบบ

ชื่อรีเลชั่น DIVIDEBY ชื่อรีเลชั่น

Relation  Relation

Database Management System


Division

ตัวอย่าง

O  P

Database Management System


Division

ตัวอย่าง

O  P

Database Management System


Division

ตัวอย่าง

O  P

Database Management System


Division

ตัวอย่าง

O  P

Database Management System


Division

ตัวอย่าง

O  P

Database Management System


Division

ตัวอย่าง

O  P

Database Management System


Division

ตัวอย่าง

O  P

Database Management System


Division

ตัวอย่าง

O  P

Database Management System


Join

  • เป็นการจับคู่ข้อมูลระหว่างรีเลชั่นตั้งแต่ 2 รีเลชั่นขึ้นไป คล้าย product ต่างกันที่การ join จะแสดงผลลัพธ์เฉพาะแถวที่ตรงกับเงื่อนไขที่กำหนดไว้

  • การ Join มีหลายแบบดังนี้

    • Natural-Join คือ Equi-Join ที่ join ทุกคอลัมน์ที่ซ้ำกัน

    • Outer Join

Database Management System


Natural Join

  • จับคู่ระหว่าง 2 รีเลชั่น

  • ผลลัพธ์ของ Natural Join จะได้แถวข้อมูลที่แอตทริบิวต์ที่ใช้จับคู่มีค่าเท่ากัน และตัดแอตทริบิวต์ที่ซ้ำกันออกไป 1 ตัว

Database Management System


ตัวอย่าง Natural Join

รีเลชั่นสินค้า

รีเลชั่นการสั่งซื้อ

Database Management System


ตัวอย่าง Natural Join(ต่อ)

ขั้น 1ทำงานเหมือนการทำ product

Database Management System


ตัวอย่าง Natural Join(ต่อ)

ขั้น 2 เลือกแถวที่มีค่ารหัสสินค้าเท่ากัน

Database Management System


ตัวอย่าง Natural Join(ต่อ)

ขั้น 3 ตัดแอตทริบิวต์ที่ซ้ำกันออกไป

Database Management System


Outer Join

  • เป็นการ join ที่นอกจากจะให้ผลลัพธ์ของแถวข้อมูลที่มีเงื่อนไขตรงกันแล้ว ยังให้ผลลัพธ์ของแถวที่ข้อมูลไม่สามารถจับคู่กันได้ออกมาด้วย

  • โดยค่าของแอตทริบิวต์ทางฝั่งรีเลชั่นที่มีค่าไม่ตรงกันนั้นจะแสดงเป็นค่า Null

Database Management System


ตัวอย่าง Outer Join

รีเลชั่นสินค้า

รีเลชั่นการสั่งซื้อ

Database Management System


ตัวอย่าง Outer Join(ต่อ)

Database Management System


Join

Database Management System


Join

Database Management System


Join

Database Management System


Join

Database Management System


Join

Database Management System


Join

Database Management System


Join

Database Management System


Join

รูปแบบ

ชื่อรีเลชั่น JOIN ชื่อรีเลชั่น

Relation ⋈Relation

Database Management System


Join

Y

X

Database Management System


Join

Y

X

Database Management System


Join

Y

X

Database Management System


Join

Y

X

X⋈Y

Database Management System


แบบฝึกหัด

  • Player (Name, position, age, height, weight)

  • จากตาราง จงเขียนความสัมพันธ์ในรูปแบบของ Relational Algebra และหาผลลัพธ์ดังต่อไปนี้

  • เมื่อต้องการแสดงข้อมูลผู้เล่นที่มีอายุมากกว่า 23 ปี

  • เมื่อต้องการแสดงข้อมูลผู้เล่นที่มีความสูงตั้งแต่ 180 ขึ้นไป หรือ มีน้ำหนักน้อยว่า 80

  • เมื่อต้องการแสดงชื่อผู้เล่นที่เป็นกองหน้า และมีอายุน้อยกว่า 25 ปี

Database Management System


  • Login