วันเสาร์ที่ 27 กุมภาพันธ์ พ.ศ. 2559
SQLite
สามารถ download ได้ที่ : http://sqlitebrowser.org/
ในส่วนของนี้ผมขอใช้ SQLite สำหรับ Windows นะครับ
เมื่อทำการโหลดและติดตั้งเสร็จแล้วสามารถเปิดจาก command line และพิมพ์คำสั่ง sqlite3 จะได้ผลลัพธ์ตามรูปด้านล่าง
วันจันทร์ที่ 8 กุมภาพันธ์ พ.ศ. 2559
Relation Algebra and Relation Calulus
ในบทนี้จะขอยกตัวอย่างเกี่ยวกับ Relation Algebra นะครับ
มาทำความรู้จักคร่าวๆกับคำสั่งเบื้องต้น Relation Algebra กันก่อนนะครับ
<-- รูปภาพตัวอักษรที่เป็น Select Operation ใช้สำหรับเลือก row

<-- รูปภาพตัวอักษรที่เป็น Project Operation ใช้สำหรับเลือก columns
<-- รูปภาพตัวอักษรที่เป็น Cross-product Operation ใช้สำหรับ คูณกันของ 2 Relation
<-- รูปภาพตัวอักษรที่เป็น Union Operation
<-- รูปภาพตัวอักษรที่เป็น Set-difference Operation
สมมติว่ามีข้อมูลอยู่ R1, S1 และ S2 ดังรูปข้างล่าง
ต่อมา มาลองใช้คำสั่ง Project Operation กันนะครับ
<-- รูปภาพตัวอักษรที่เป็น Project Operation
ในตัวอย่างต่อมาจะมาลองใช้ Project ในการเลือก sname กับ rating จาก S2 กันนะครับ ตามรูปด้านล่าง
ตัวอย่างถัดมาเมื่อนำ Project กับ SELECT มาใช้ร่วมกันโดยปกติตามหลักการคณิตศาสตร์ จะเริ่มทำจากในวงเล็บก่อน ดังนั้น ในตัวอย่างข้างล่างจะเห็นว่า เริ่มทำจาก SELECT ก่อนแล้วไปทำ Project ต่อ
ซึ่งเมื่อทำ SELECT จะได้ค่าตามตัวอย่างข้างบน และเอาค่านั้นมา Project ทำการเลือกแสดง sname และ rating ตามรูปด้านล่าง
ในตัวอย่างต่อมาเป็นเรื่องของการ ลบ ซึ่งจะทำเหมือนเรื่อง set ที่เอา set ตั้งลบด้วย set อีกตัว
จากตัวอย่างจะเห็นว่าเอา Set S1 ตั้ง แล้วลบด้วย S2 จะได้ผลลัพธ์ตามรูปด้านล่าง
ในส่วนของ Union นั้นจะทำแบบเดียวกับ Set คือนำข้อมูลทั้งสอง Set มารวมกันโดยไม่มีตัวซ้ำ
จากรูปด้านล่างจะเห็นว่านำ S1 และ S2 มา Union กันโดยที่ไม่มีข้อมูลซ้ำกัน
การ Join เหมือนการนำ 2 ข้อมูลมา Cross กันก่อน แล้วทำการ Select ออกมา
ในตัวอย่างนี้จะเป็นการ Join กัน โดยนำ S1 และ R1 มา cross กันก่อนแล้วทำการตรวจสอบเงื่อนไขคือ sid ของ S1 ต้องน้องกว่า sid ของ R1 แล้วแสดงเป็น row ดังรูปด้านล่าง
ตัวอย่างการ Join ของ S1 และ R1 โดยที่ sid ของ S1 และ R1 เท่ากัน มาแสดง
มาทำความรู้จักคร่าวๆกับคำสั่งเบื้องต้น Relation Algebra กันก่อนนะครับ
<-- รูปภาพตัวอักษรที่เป็น Select Operation ใช้สำหรับเลือก row

<-- รูปภาพตัวอักษรที่เป็น Project Operation ใช้สำหรับเลือก columns
<-- รูปภาพตัวอักษรที่เป็น Cross-product Operation ใช้สำหรับ คูณกันของ 2 Relation
<-- รูปภาพตัวอักษรที่เป็น Union Operation
<-- รูปภาพตัวอักษรที่เป็น Set-difference Operation
สมมติว่ามีข้อมูลอยู่ R1, S1 และ S2 ดังรูปข้างล่าง
รูปข้อมูล
ต่อมา มาลองใช้คำสั่ง Project Operation กันนะครับ
<-- รูปภาพตัวอักษรที่เป็น Project Operation
ในตัวอย่างต่อมาจะมาลองใช้ Project ในการเลือก sname กับ rating จาก S2 กันนะครับ ตามรูปด้านล่าง
รูป เลือก sname กับ rating จาก S2
หรือว่า จะเลือก age จาก S2 ตามรูปด้านล่าง
รูป เลือก age จาก S2
ต่อมา จะเป็นตัวอย่างการใช้ SELECT ซึ่งไม่ใช่ select ใน SQL นะครับ
ในตัวอย่างต่อมา จะใช้ SELECT ในการเลือก rating ที่มากกว่า 8 ใน Relation S2 ตามรูปด้านล่าง
รูปตัวอย่าง การเลือก rating ที่มากกว่า 8 ใน Relation S2
ตัวอย่างถัดมาเมื่อนำ Project กับ SELECT มาใช้ร่วมกันโดยปกติตามหลักการคณิตศาสตร์ จะเริ่มทำจากในวงเล็บก่อน ดังนั้น ในตัวอย่างข้างล่างจะเห็นว่า เริ่มทำจาก SELECT ก่อนแล้วไปทำ Project ต่อ
ซึ่งเมื่อทำ SELECT จะได้ค่าตามตัวอย่างข้างบน และเอาค่านั้นมา Project ทำการเลือกแสดง sname และ rating ตามรูปด้านล่าง
รูปตัวอย่างการ SELECT และ Project จาก Relation S2
ในตัวอย่างต่อมาเป็นเรื่องของการ ลบ ซึ่งจะทำเหมือนเรื่อง set ที่เอา set ตั้งลบด้วย set อีกตัว
จากตัวอย่างจะเห็นว่าเอา Set S1 ตั้ง แล้วลบด้วย S2 จะได้ผลลัพธ์ตามรูปด้านล่าง
รูปตัวอย่าง Set-difference S1-S2
ในส่วนของ Union นั้นจะทำแบบเดียวกับ Set คือนำข้อมูลทั้งสอง Set มารวมกันโดยไม่มีตัวซ้ำ
จากรูปด้านล่างจะเห็นว่านำ S1 และ S2 มา Union กันโดยที่ไม่มีข้อมูลซ้ำกัน
รูปตัวอย่าง Union S1 กับ S2
ในส่วนของ Intersect นั้นจะนำแสดงข้อมูลที่เหมือนกันระหว่าง 2 ข้อมูล
ดังรูปด้านล่างนี้นำข้อมูลที่เหมือนกัน จาก S1 และ S2 ออกมาแสดง
รูปตัวอย่าง Intersect S1 กับ S2
มาพูดถึงเรื่อง Cross คือการนำข้อมูลมา คูณกันของข้อมูล
มาดูตัวอย่างกันดีกว่าอาจจะเข้าใจมากขึ้น
ในตัวอย่างนี้คือการ Cross กันระหว่าง R1 และ S1 ซึ่ง จะนำข้อมูลทุกตัวที่อยู่ใน S1 คูณกับ ข้อมูลทุกตัวที่อยู่ใน R1 ได้ผลลัพธ์ดังรูปด้านล่าง
รูปตัวอย่างการ cross S1 กับ R1
ในตัวอย่างนี้จะเป็นการ Join กัน โดยนำ S1 และ R1 มา cross กันก่อนแล้วทำการตรวจสอบเงื่อนไขคือ sid ของ S1 ต้องน้องกว่า sid ของ R1 แล้วแสดงเป็น row ดังรูปด้านล่าง
รูปตัวอย่างการ Join โดย S1.sid < R1.sid
ตัวอย่างการ Join ของ S1 และ R1 โดยที่ sid ของ S1 และ R1 เท่ากัน มาแสดง
รูปตัวอย่างการ Join โดย sid เท่ากันใน R1 และ S1
ต่อมา มารู้จักกับ Inner Join และ Outer Join กัน
INNER JOIN จะรวมข้อมูลที่เลือกเชื่อมต่อ
OUTER JOIN จะรวมข้อมูลที่เลือกเชื่อมต่อ
รูปตัวอย่างข้อมูล
จากข้อมูลจะเห็นว่า มี cate_id ของข้อมูลทั้ง 2 ตารางที่ตรงกัน ซึ่งจะใช้จุดนั้นเป็นตัวเชื่อมระหว่าง 2 ข้อมูล ใน inner join และ outer join นั้นเอง
รูปตัวอย่าง Inner Join
รูปตัวอย่าง Outer Join
อ้างอิงจาก : http://www.genstyles.com/tips-19.html
ต่อมา เป็นตัวอย่างเรื่อง Division
ซึ่งจะมีข้อมูล A และ B โดยที่ ข้อมูล A เป็นตัวตั้ง ส่วนข้อมูล B เป็นตัวหาร
รูปข้อมูล A
รูปข้อมูล B
รูป A หารด้วย B1
รูป A หารด้วย B2
รูป A หารด้วย B3
อ้างอิงตัวอย่างข้อมูลจาก : www.cs.cornell.edu/projects/btr/.../slides/gehrke.pdf
วันจันทร์ที่ 1 กุมภาพันธ์ พ.ศ. 2559
สมัครสมาชิก:
บทความ (Atom)

























