วันจันทร์ที่ 8 กุมภาพันธ์ พ.ศ. 2559

Example of queries in relational algebra


            (relational algebra)  เป็นภาษาที่ใช้ในการเขียนขั้นตอนต่างๆของ Query ซึ่งจะพิจารณาว่าจะทำอย่างไร เพื่อให้ได้มาซึ่งผลลัพธ์ตามที่ต้องการในการจัดการข้อมูล โดยการระบุตัวกระทำกับความสัมพันธ์ที่ต้องการจัดการ ผลลัพธ์ที่ได้คือ ความสัมพันธ์ใหม่ และนอกจากนี้ยังเป็นภาษาที่ใช้เป็นพื้นฐานในการเขียน SQL อีกด้วย

คำสั่งพื้นฐานต่างๆ
โอเปอเรชั่นแบบยูนารี (Unary Operations)
Select( σ) หรือ Restrict  เลือกแถวจากความสัมพันธ์
Project(Π)  เลือกเฉพาะคอลัมน์ที่ต้องการจากความสัมพันธ์
 โอเปอเรชั่นแบบเซต (Set Operations)
 Product(×) สามารถรวมความสัมพันธ์ได้
 Union ( ∪) เชื่อม 2 ความสัมพันธ์เข้าด้วยกัน
  Intersection (∩)
 Difference(-) หาความแตกต่างระหว่าง 2 ความสัมพันธ์
 โอเปอเรชั่นการ Join (Join Operations)
 Join ()
 โอเปอเรชั่นการหาร (Division Operations)
  Division (÷)
Select(σ) 
          เป็นการดึงข้อมูลจาก Relation โดยจะเลือกเฉพาะแถวที่ต้องการตามเงื่อนไขที่ระบุเอาไว้ และมีลักษณะการทำงานเหมือนกับคำสั่ง where ของภาษา SQL
syntax 
σ condition (R)


 σ                           อ่านว่า ซิกม่า (sigma) เป็นสัญลักษณ์แทนการ Select
 condition              คือ ประโยคที่ใช้เป็นเงื่อนไข
 R                           คือ ชื่อ Relation (ชื่อตาราง)

Project(Π)
            เป็นการเลือกเฉพาะ column ที่ต้องการ โดยจะมีเซตของแต่ละแถวเป็นผลลัพธ์ที่ได้

syntax

Π col1,col2,col3,...,coln (R)

P (pi)                            คือ สัญลักษณ์ของการ Projection
col1,col2,…,coln         คือ คอลัมน์ที่ต้องการแสดง
R                                  คือ ชื่อ Relation (ชื่อตาราง)

Product(×)
           product หรือ Cartesian Product เป็นการแสดงความสัมพันธ์ด้วยการคูณ Cartesian ระหว่าง 2 รีเลชั่น  เช่น ต้องการนำรีเลชั่น R และ S มาคูณกันแบบ Cartesian ผลลัพธ์ที่ได้ในรีเลชั่นใหม่จะประกอบด้วยจำนวนแถวของ R×S ในรูปแบบของผลคูณ Cartesian
syntax
× S

    ×               อ่านว่าไทมส์ (times) เป็นสัญลักษณ์ของการ Product
    R และ S    คือ Relation ที่ต้องการนำมาคูณกัน

Union (∪)
           เป็นนำข้อมูลจาก 2 Relation มารวมกัน และถ้ารายการไหนซ้ำหลายแถวก็จะแสดงเพียงแถวเดียว  โดยการ Union นี้มีข้อกำหนดว่า แอตทริบิวต์ในลำดับที่ตรงกันจาก 2 Relation ต้องมีชนิดของข้อมูลตรงกันด้วยไม่อย่างนั้นจะ Union กันไม่ได้

syntax

R ∪ S
    ∪               คือสัญลักษณ์ของการยูเนียน
    R และ S    คือ Relation ที่ต้องการนำมายูเนียนกัน

Intersection (∩)
         เป็นการนำข้อมูลจาก 2 Relation มารวมกันคล้ายกับ Union แต่จะต่างกันที่ผลลัพธ์ซึ่ง Intersection จะเลือกผลลัพธ์เฉพาะรายการที่เหมือนกันจาก 2 Relation

syntax

 S
                   คือสัญลักษณ์ของการยูเนียน
    R และ S    คือ Relation ที่ต้องการนำมายูเนียนกัน

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

R - S
-   คือสัญลักษณ์แทนการ Difference
R และ S คือชื่อรีเลชั่นที่ต้องการนำมา Difference กัน
Join ()



syntax

 S
   คือสัญลักษณ์แทนการ Join
R และ S คือชื่อรีเลชั่นที่ต้องการนำมา Join กัน

Division (÷)
             เป็นการหาผลลัพธ์จาก 2 Relation โดยตัวตั้งมี Attribute มากกว่าตัวหารและทั้งสองมี Attribute อย่างน้อยหนึ่งตัวที่เหมือนกัน โดยผลลัพธ์ที่ได้จะมาจาก Attribute ตัวใดตัวหนึ่งของตัวตั้ง

syntax

R÷ S
÷    คือสัญลักษณ์แทนการ Division
R และ S คือชื่อรีเลชั่นที่ต้องการนำมา Division กัน





What is an inner join? outer join?
Ans  inner join คือ การ joint ชนิดหนึ่งที่มีการนำเอาตารางสาองตารางมารวมกัน แล้วเลือกผลลัพธ์โดยเอามาเฉพาะข้อมูลที่ตรงกันทั้งสองตาราง ส่วน outer join  คือ การ join อีชนิดหนึ่งที่จะนำเอาตารางสองตารางมารวมกันเช่นเดียวกับ inner join แต่จะให้ผลลัพธ์โดยเอาทั้งข้อมูลที่ตรงกันและไม่ตรงกัน โดยค่าที่ไม่ตรงกันเราแสดงข้อมูลที่ไม่ตรงกันเป็น null

What is a division operation?
          SSN_PNOS ÷ SMITH_PNOS
why it is not in the complete set of relational algebra operations
Ans  

related info/link/reference : 
                 - http://mathcom.uru.ac.th/~nerissa/DB/DB_05.ppt
              - https://www.gotoknow.org/posts/97459

ไม่มีความคิดเห็น:

แสดงความคิดเห็น