นิพจน์เชิงเส้น


Home Page  |   รายการบทความ   |   ลิงค์ที่เกี่ยวข้อง   |   laploy.com  |  เกี่ยวกับผู้เขียน

นิพจน์เชิงเส้น

 

นิพจน์เชิงเส้น (Linear Expression ย่อ LE) คือนิพจน์ที่แสดงการทำงานการเรียงตามลำดับของกระบวนการ เมื่อท่านต้องเขียน RAE ที่ซับซ้อนมากๆ แต่ไม่อยากใช้ RAET ท่านอาจใช้ LE แทนได้ คำว่าเชิงเส้น (Linear) ในที่นี้หมายถึงการเรียงตามลำดับของกระบวนการ คำว่ากระบวนการในที่นี้หมายถึงสิ่งที่เกิดขึ้นในการคิวรี ยกตัวอย่างเช่น RAET ในภาพล่าง  มีซีเลคชันสองสาย คือสายที่อยู่ทางซ้ายมีเงื่อนไข length ≥ 100 และสายที่อยู่ทางขวามีเงื่อนไข studioName = ‘Fox’ การทำงานของสองกระบวนการย่อยนี้ทำให้เกิด DT ที่โปรเจคชันนำไปฉายแสดงเพียงแอตทริบิวต์ title และ year

การแสดงภาพ DT นอกจากจะใช้แบบที่เห็นใน RATET แล้ว ท่านยังสามารถใช้สัญลักษณ์เชิงเส้น (Linear Notation ย่อ LN) ได้ด้วย วิธีทำคือกำหนดชื่อให้แก่โหนดต่างๆ ของต้นไม้ในแต่ละช่วงการทำงาน โดยจะกำหนดเฉพาะโหนดที่ผลิตผลลัพธ์ที่จะถูกนำไปใช้ในระดับถัดไป (คือโหนดที่ทำให้เกิด DT)

เนื่องจากลำดับการทำงานของ RAE ที่ให้ DT ย่อยไม่มีนัยยะสำคัญต่อผลของ DT ในระดับบนสุด ลำดับการกำหนดชื่อแบบ LN จึงค่อนข้างยืดหยุ่น นั่นคือหาก N เป็น DT ขั้นสุดท้าย (ตัวบนสุด) ท่านจะเรียงลำดับโหนดย่อยจะอย่างไรก็ได้ตามใจชอบ ตราบเท่าที่โหนดนั้นเป็นโหนดลูกของ N ซึ่งเป็นโหนดที่ให้ DT ก่อนถึงระดับสุดท้าย

วิธีกำหนดชื่อใน LN มีหลักการดังนี้

  1. ใช้ชื่อของรีเลชันตามด้วยวงเล็บและรายการของแอตทริบิวต์ในรีเลชันนั้น ชื่อของ DT ขั้นสุดท้ายจะใช้คำว่า Answer
  2. การกำหนดค่าให้ใช้เครื่องหมาย :=
  3. ใส่ RAE ไว้ทางขวา ท่านอาจจำกัดให้หนึ่งประโยคหรือหนึ่งบรรทัดมีเพียง RAE เดียว หรือ (ถ้าจำเป็น) จะใส่RAE ไว้หลายนิพจน์ก็ได้
 
ตัวอย่างการเขียนนิพจน์เชิงเส้น

หากนำ RAET ในภาพนี้ที่ผ่านมา มาเขียนใหม่เป็น LE จะได้ RAE ดังนี้

R(t,y,l,i,s,p) := slength100(Movie)

S(t,y,l,i,s,p) := sstudioName=’Fox’(Movie)

T(t,y,l,i,s,p) := R∩S

Answer(title, year) := pt,i(T)

บรรทัดแรกหาความสัมพันธ์ด้วยนิพจน์ slength100 บรรทัดต่อมาหาความสัมพันธ์ด้วยนิพจน์ sstudioName=’Fox และอีกสองบรรทัดสุดท้ายคือการทำอินเตอร์เซคชันและโปรเจคชันตามลำดับ

หากท่านต้องการรวบขั้นตอนบางขั้นตอนไว้ในบรรทัดเดียวก็ทำได้ ยกตัวอย่างเช่นนิพจน์สี่บรรทัดข้างบน จะเขียนรวบให้เหลือเพียงสามบรรทัดก็ได้ ผลลัพธ์จะเป็นดังนี้

R(t,y,l,i,s,p) := slength100(Movie)

S(t,y,l,i,s,p) := sstudioName=’Fox’(Movie)

Answer(title, year) := pt,i(R∩S)

นั่นคือผู้เขียนได้รวบขั้นตอนอินเตอร์เซคชันและโปรเจคชันไว้เป็นบรรทัดเดียวกัน RAE นี้จึงเหลือเพียงแค่สามบรรทัด

ใส่ความเห็น

This site uses Akismet to reduce spam. Learn how your comment data is processed.