ภาษามาตรฐานบนระบบฐานข้อมูลเชิงสัมพันธ์

ภาษาสอบถามเชิงโครงสร้าง

 

 

ภาษาสอบถามเชิงโครงสร้าง (Structured Query Language)

          คนทั่วไปมักจะเรียกกันว่า  ภาษาเอสคิวแอล (SQL)  แต่เดิมเรียกว่า ซีเควล  (Structured  English Query  Language : SEQUEL) เป็นภาษาที่ใช้ในการสอบถามข้อมูลจากฐานข้อมูลสำหรับแบบจำลองข้อมูลเชิงสัมพันธ์ที่ได้รับความนิยมสูงสุด    เนื่องจากมีความสามารถในการสอบถามข้อมูลเทียบเท่าพีชคณิตเชิงสัมพันธ์  (Relational  Algebra) หรือมากกว่าในบางคำสั่ง  ภาษานี้เป็นผลงานการวิจัยของไอบีเอ็ม  (IBM  Research)  โดยพัฒนาขึ้นครั้งแรก  เพื่อเป็นเครื่องมือในการติดต่อ  สำหรับระบบฐานข้อมูลเชิงสัมพันธ์ที่เรียกว่า  ซิสเทมอาร์ (System  R)  และปัจจุบันนำมาใช้ในระบบจัดการฐานข้อมูลดีบีทู (DB2)  ของบริษัทไอบีเอ็ม  และระบบจัดการฐานข้อมูลเชิงสัมพันธ์อีกมากมาย


ภาษาเอสคิวแอลมีหลายแบบแตกต่างกันไปตามผู้ผลิตระบบจัดการฐานข้อมูลแต่ละราย  แบบที่ค่อนข้างได้รับความนิยมให้ใช้เป็นมาตรฐานคือ  เอสคิวแอลที่กำหนดขึ้นโดยสถาบันมาตรฐานแห่งชาติของสหรัฐอเมริกา  หรือ แอนซี American National  Standards  Institute  :  ANSI)เรียกกันว่า  เอสคิวแอล  ๑  (SQL 1)  กำหนดขึ้นเมื่อปี  พ.ศ.  ๒๕๒๙  ต่อมาได้มีการปรับปรุง
แก้ไขและขยายมาตรฐานอีกเมื่อปี  พ.ศ.  ๒๕๓๕ เรียกว่า  เอสคิวแอล ๒  (SQL 2 หรือ  SQL-92) ขณะนี้กำลังมีการร่างมาตรฐานสำหรับเอสคิวแอล ๓  ซึ่งคาดว่า  จะรวมแนวคิดในเรื่องการโปรแกรมเชิงวัตถุเข้าไว้ด้วย

โครงสร้างภาษาเอสคิวแอล 
          ภาษาเอสคิวแอลเป็นภาษาที่กระชับ  มีชุดคำสั่งที่ใช้ในการกำหนดโครงสร้างข้อมูล  การสอบถามข้อมูล  และการปรับปรุงข้อมูลด้วยดังนั้น  ภาษานี้จึงจัดเป็นทั้งภาษากำหนดโครงสร้าง  ข้อมูล (DDL) และภาษาจัดดำเนินการข้อมูล (DML)  นอกจากนี้  ยังมีคำสั่งสำหรับสร้างและยกเลิกดัชนี (Index)  ของแฟ้มข้อมูล  และคำสั่งสำหรับนำเอสคิวแอลไปใช้ร่วมกับภาษาโปรแกรมคอมพิวเตอร์อื่น ๆ ได้อีกด้วย  เช่น  ภาษาซี  ภาษาปาสกาล  เป็นต้น

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

          ระบบจัดการฐานข้อมูลก็จะค้นหาข้อมูลเบอร์โทรศัพท์จากตารางนักศึกษา  โดยดูว่าระเบียนข้อมูลใดบ้างที่มีคุณสมบัติ "ชื่อ" เท่ากับ สมชาย  และมีคุณสมบัติ "นามสกุล" เท่ากับ รักไทย  ผลลัพธ์ที่ได้จากตัวอย่างนี้  จะเป็นตารางความสัมพันธ์ใหม่ที่มีคุณสมบัติ ๑ คุณสมบัติเท่านั้นคือ  เบอร์โทรศัพท์  และจำนวนระเบียนจะขึ้นอยู่กับว่ามีข้อมูลที่มีชื่อและนามสกุลนั้นเป็นจำนวนเท่าไร หรือเป็น ๐ ระเบียน (ถ้าไม่มีข้อมูลใดสอดคล้องกับเงื่อนไขที่ระบุเลย)  สำหรับตัวอย่างที่  ๒ เป็นการสอบถามรายละเอียดเกรดเฉลี่ยสะสม (average : AVG)  ของนักศึกษาในแต่ละชั้นปีโดยขอดูเฉพาะชั้นปีที่มีเกรดเฉลี่ยสะสมของนักศึกษาสูงกว่า ๒.๐  โดยให้ผลลัพธ์ที่ออกมามีการเรียงลำดับของระเบียนจากมากไปหาน้อย (descend    ing : DESC)  ของชั้นปี  ซึ่งเขียนเป็นภาษาเอส คิวแอลได้ดังนี้

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