วันอาทิตย์ที่ 7 สิงหาคม พ.ศ. 2559

7-2 ระบบฐานข้อมูลเชิงสัมพันธ์

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

       ระบบฐานข้อมูลเชิงสัมพันธ์ (Relational Database) เป็นฐานข้อมูลที่ใช้โมเดลเชิงสัมพันธ์ (Relational Database Model) ซึ่งผู้คิดค้นโมเดลเชิงสัมพันธ์นี้คือ Dr. E.F. Codd โดยใช้หลักพื้นฐานทางคณิตศาสตร์ เนื่องด้วยแนวคิดของแบบจำลองแบบนี้มีลักษณะที่คนใช้กันทั่วกล่าวคือมีการเก็บเป็นตาราง ทำให้ง่ายต่อการเข้าใจและการประยุกต์ใช้งาน ด้วยเหตุนี้ ระบบฐานข้อมูลแบบนี้จึงที่ได้รับความนิยมมากที่สุด ในแง่ของ entity แบบจำลองแบบนี้คือ แฟ้มข้อมูลในรูปตาราง และ attribute ก็เปรียบเหมือนเขตข้อมูล ส่วนความสัมพันธ์คือความสัมพันธ์ระหว่าง entity
ฐานข้อมูลเชิงสัมพันธ์ คือ การเก็บข้อมูลในรูปของตาราง (Table) หลายๆตารางที่มีความสัมพันธ์กัน ในแต่ละตารางแบ่งออกเป็นแถวๆ และในแต่ละแถวจะแบ่งเป็นคอลัมน์ (Column) ในทางทฤษฎีจะมีคำศัพท์เฉพาะแตกต่างออกไป เนื่องจากแบบจำลองแบบนี้เกิดจากทฤษฎีทางคณิตศาสตร์เรื่องเซ็ท (Set) ดังนั้น เราจะมีคำศัพท์เฉพาะดังตารางที่ 3.1นี้
ตารางที่ 3.1 คำศัพท์เฉพาะที่ใช้ในระบบฐานข้อมูลเชิงสัมพันธ์

ศัพท์เฉพาะศัพท์ทั่วไป
รีเลชั่น (Relation)ตาราง (Table)
ทูเปิล (Tuple)แถว (Row) หรือ เรคคอร์ด (Record) หรือ ระเบียน
แอททริบิวท์ (Attribute)คอลัมน์ (Column) หรือฟิลด์ (Field)
คาร์ดินัลลิติ้ (Cardinality)จำนวนแถว (Number of rows)
ดีกรี (Degree)จำนวนแอททริบิวท์ (Number of attribute)
คีย์หลัก (Primary key)ค่าเอกลักษณ์ (Unique identifier)
โดเมน (Domain)ขอบข่ายของค่าของข้อมูล (Pool of legal values)

7-2 การประมวลผลแบบทันที

การประมวลผลแบบทันที (real-time processing) คือ การประมวลผลข้อมูลจากสถานที่จริงจากเวลาและเหตุการณ์จริง โดยปกติแล้วจะทำควบคู่กับแบบ On-line processing (On-line processing ก็คือการทำงานแบบตอบสนองหรือให้ Output แบบทันทีทันใด) ซึ่งบางครั้งจะเรียกว่า "on-linereal-time"
การประมวลผลแบบทันที (real-time processing) นี้มีจุดประสงค์เพื่อนำ Output ที่ได้ไปใช้ในการตัดสินใจแก้ปัญหา และดำเนินการต่าง ๆ ได้ทันท่วงที หรือทันกาล ตัวอย่างเช่น การนำคอมพิวเตอร์มาต่อเชื่อมกับเครื่องตรวจจับป้องกันไฟไหม้ (โดยกำหนดว่าถ้ามีควันมากและอุณหภูมิสูงผิดปกติถือว่าเกิดไฟไหม้) ซึ่งคอมพิวเตอร์จะต้องนำข้อมูล (จากสถานที่เหตุการณ์และเวลาจริง) มาประมวลผลอย่างต่อเนื่องตลอดเวลา และถ้าประมวลผลแล้วพบว่าไฟไหม้ คอมพิวเตอร์ก็จะสั่งให้น้ำยาดับเพลิงที่ติดตั้งไว้ทำงาน (ตอบสนองทันที) การที่คอมพิวเตอร์ฉีดทันทีเราอาจกล่าวได้ว่าเป็นผลจากการทำงานแบบ On-line นั่นเอง

7-2 SQL

SQL คืออะไร
     SQL ย่อมาจาก structured query language คือภาษาที่ใช้ในการเขียนโปรแกรม เพื่อจัดการกับฐานข้อมูลโดยเฉพาะ เป็นภาษามาตราฐานบนระบบฐานข้อมูลเชิงสัมพันธ์และเป็นระบบเปิด (open system) หมายถึงเราสามารถใช้คำสั่ง sql กับฐานข้อมูลชนิดใดก็ได้ และ คำสั่งงานเดียวกันเมื่อสั่งงานผ่าน  ระบบฐานข้อมูลที่แตกต่างกันจะได้ ผลลัพธ์เหมือนกัน ทำให้เราสามารถเลือกใช้ฐานข้อมูล ชนิดใดก็ได้โดยไม่ติดยึดกับฐานข้อมูลใดฐานข้อมูลหนึ่ง นอกจากนี้แล้ว SQL ยังเป็นชื่อโปรแกรมฐานข้อมูล ซึ่งโปรแกรม SQL เป็นโปรแกรมฐานข้อมูลที่มีโครงสร้างของภาษาที่เข้าใจง่าย ไม่ซับซ้อน มีประสิทธิภาพการทำงานสูง สามารถทำงานที่ซับซ้อนได้โดยใช้คำสั่งเพียงไม่กี่คำสั่ง โปรแกรม SQL จึงเหมาะที่จะใช้กับระบบฐานข้อมูลเชิงสัมพันธ์ และเป็นภาษาหนึ่ง ซึ่งแบ่งการทำงานได้เป็น 4 ประเภท ดังนี้


1. Select query ใช้สำหรับดึงข้อมูลที่ต้องการ
2. Update query ใช้สำหรับแก้ไขข้อมูล
3. Insert query ใช้สำหรับการเพิ่มข้อมูล
4. Delete query ใช้สำหรับลบข้อมูลออกไป


     ปัจจุบันมีซอฟต์แวร์ระบบจัดการฐานข้อมูล (DBMS ) ที่สนับสนุนการใช้คำสั่ง SQL เช่น  Oracle , DB2, MS-SQL, MS-Access 
นอกจากนี้ภาษา SQL ถูกนำมาใช้เขียนร่วมกับโปรแกรมภาษาต่างๆ เช่น ภาษา c/C++ , VisualBasic และ Java 

ประโยชน์ของภาษา SQL
1. สร้างฐานข้อมูลและ ตาราง    
2. สนับสนุนการจัดการฐานข้อมูล ซึ่งประกอบด้วย การเพิ่ม การปรับปรุง และการลบข้อมูล
3. สนับสนุนการเรียกใช้หรือ ค้นหาข้อมูล    
    
ประเภทของคำสั่งภาษา SQL
1. ภาษานิยามข้อมูล(Data Definition Language : DDL) เป็นคำสั่งที่ใช้ในการสร้างฐานข้อมูล กำหนดโครงสร้างข้อมูลว่ามี  Attribute ใด
 ชนิดของข้อมูล รวมทั้งการเปลี่ยนแปลงตาราง และการสร้างดัชนี คำสั่ง : CREATE,DROP,ALTER
2. ภาษาจัดการข้อมูล (Data Manipulation Language :DML) เป็นคำสั่งที่ใช้ในการเรียกใช้ เพิ่ม ลบ และเปลี่ยนแปลงข้อมูลในตาราง    คำสั่ง : SELECT,INSERT,UPDATE,DELETE
3. ภาษาควบคุมข้อมูล (Data Control Language : DCL) เป็นคำสั่งที่ใช้ในการกำหนดสิทธิการอนุญาติ หรือ ยกเลิก การเข้าถึงฐานข้อมูล เพื่อป้องกันความปลอดภัยของฐานข้อมูล คำสั่ง : GRANT,REVOKE

7-2 ฐานข้อมูลแบบเครือข่าย

แบบจำลองข้อมูลเชิงเครือข่าย (Network Data Mode)

แบบจำลองข้อมูลนี้ถูกเสนอขึ้นโดยกลุ่มโคดาซิล (CODASYL Database Task Group) ใน ปี พ.ศ. ๒๕๑๔ บางคนจึงเรียกแบบจำลองนี้ว่า ดีบีทีจี (DBTG Mode) โครงสร้างพื้นฐานของข้อมูลแบ่งได้เป็น ๒ ประเภท ได้แก่ ระเบียน (Record) และเซต (Sets) โดยที่ระเบียนสำหรับแบบจำลองนี้คือ ที่เก็บรวบรวมข้อมูล ระเบียนแต่ละอัน จะประกอบด้วยกลุ่มของค่าต่างๆ ที่มีความสัมพันธ์กัน มีลักษณะเหมือนกับระเบียนของแบบจำลองข้อมูลเชิงลำดับชั้น ส่วนเซตคือ ความสัมพันธ์แบบ ๑ ต่อมาก (1:N relationship) ระหว่าง ๒ ระเบียนใดๆ เซตหนึ่งจะประกอบ ด้วย ๓ ส่วนคือ ๑. ชื่อของเซต ๒. ชนิดของ ระเบียนที่เป็นเจ้าของ (Owner of set type) และ ๓. ชนิดของระเบียนที่เป็นสมาชิกของเซต (Member of set type)

ตัวอย่างแสดงระเบียนและเซต ซึ่งมี ๒ ระเบียน ได้แก่ ระเบียนวิชา และระเบียนนักศึกษา และ ๒ เซต ได้แก่ เซตลงทะเบียนเรียน ซึ่งมีระเบียนวิชาเป็นระเบียนเจ้าของ และมีระเบียนนักศึกษา เป็นระเบียนสมาชิก แสดงความสัมพันธ์ว่า วิชาหนึ่งๆ มีนักศึกษาคนใดลงทะเบียนเรียนบ้าง ข้อสังเกต การกำหนดเซตนี้ จะทำให้เกิดข้อจำกัดที่ว่า นักศึกษาแต่ละคน ลงทะเบียนเรียนได้คนละ ๑ วิชาเท่านั้น ส่วนเซตผู้ช่วยสอนในวิชานั้น ระเบียนเจ้าของ และระเบียนสมาชิกตรงกันข้ามกับเซตแรก แสดงความสัมพันธ์ว่า นักศึกษาคนใดเป็นผู้ช่วยสอนในวิชาใดบ้าง

7-2 ฐานข้อมูลแบบกระจาย

ฐานข้อมูลแบบกระจาย (Distributed Database)

ระบบฐานข้อมูลแบบรวมศูนย์ (Centralized Database System) ประกอบด้วย ฐานข้อมูล ซอฟต์แวร์จัดการฐานข้อมูล และหน่วยความจำ ที่ใช้ในการจัดเก็บฐานข้อมูล ซึ่งอาจจะเป็นจาน บันทึก (Disk) สำหรับการจัดเก็บแบบเชื่อมตรง (on-line) หรืออาจจะเป็นแถบบันทึก (Tape) สำหรับ การจัดเก็บแบบไม่เชื่อมตรง (off-line) เพื่อใช้เป็น หน่วยเก็บสำรอง ระบบฐานข้อมูลแบบนี้สามารถ ถูกเรียกใช้งานได้จากจุดอื่นๆ ที่มีเครื่องปลายทาง (Terminal) ประจำอยู่ แต่ละฐานข้อมูลและ ซอฟต์แวร์จะอยู่รวมกันที่จุดเดียวเท่านั้น ซึ่งเมื่อ ระบบคอมพิวเตอร์เจริญมากขึ้น พร้อมทั้งพัฒนาการ ในเรื่องเครือข่ายสำหรับการติดต่อดีมากขึ้น ทำให้ มีการศึกษาและพัฒนาระบบฐานข้อมูลแบบ กระจายขึ้น เหตุจูงใจสำหรับการพัฒนาฐานข้อมูล แบบกระจายมีอยู่ด้วยกันหลายประการ ได้แก่

๑. งานฐานข้อมูลบางอย่างมีข้อมูลกระจัดกระจายอยู่ตามแหล่งต่างๆ หน่วยงานบางแห่ง อาจจะมีสาขาอยู่ตามจังหวัด ตัวอย่างเช่น ธนาคาร จะมีสาขาอยู่ทั่วประเทศ ข้อมูลของแต่ละสาขา ก็จะถูกเก็บไว้ที่สาขานั้นๆ แต่ในบางครั้งผู้บริหาร หน่วยงานที่ส่วนกลางอาจต้องการข้อมูลสรุป ซึ่ง ต้องใช้ข้อมูลจากหลายๆ สาขาทั่วประเทศ ซึ่งใน กรณีนี้ ระบบจัดการฐานข้อมูลควรจะมีความ สามารถในการดึงข้อมูลจากสาขาต่างๆ ได้ด้วย

๒. เพิ่มความน่าเชื่อถือและความทันสมัย ของข้อมูล สำหรับข้อมูลที่กระจายอยู่ตามจุดต่างๆ เมื่อมีการเปลี่ยนแปลงค่าของข้อมูล ณ จุดนั้น ข้อมูลใหม่จะถูกบันทึกแทนข้อมูลเก่าทันที และสามารถนำมาใช้งานได้ ณ เวลานั้น เนื่องจากซอฟต์แวร์สำหรับจัดการฐานข้อมูล กระจายอยู่ตามจุดต่างๆ นอกจากนี้ ถ้าระบบในบางจุดย่อยเสียหาย และไม่สามารถทำงานได้ ระบบ ณ จุดอื่นๆ ก็ยังคงสามารถทำงานต่อไปได้ แต่ถ้าเป็นแบบรวมศูนย์ เมื่อระบบเสียหาย เครื่องปลายทางใดๆ ก็ไม่สามารถทำงานได้เลย

๓. เพื่อควบคุมการเข้าใช้ข้อมูล ทั้งนี้ เนื่องจากข้อมูลกระจัดกระจายอยู่ตามจุดต่างๆ ทำให้ผู้ดูแลระบบ สามารถกำหนดได้ว่า ผู้ใช้จากจุดใด สามารถเข้าใช้ข้อมูลจากจุดใดได้บ้าง และได้มากระดับใดด้วย 

7-2 มุมมองเชิงตรรกะ

มุมมองเชิงตรรกะ

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

7-2 ฟิลด์

ฟิลด์ (Field) ฟิลด์ หมายถึงการเก็บข้อมูล 1 ตัวอักษรหรือมากกว่าที่มีความสัมพันธ์กันมารวมกันไว้ สามารถสื่อความหมายและบอกคุณลักษณะที่เราสนใจได้ เช่น ใช้ตัวอักขระจำนวน 8 ตัว มาประกอบกันเป็นชื่อคนเช่น ชื่อบุญสืบ ประกอบด้วยตัวอักษร BOONSUEP ตั้งชื่อฟิลด์นี้ว่าฟิลด์ NAME เพื่อใช้ในการเก็บชื่อ ข้อมูลชนิดฟิล์นี้จะใช้แทนข้อเท็จจริง คุณลักษณะของสิ่งที่เราสนใจศึกษา เช่น รหัสพนักงานชื่อ ที่อยู่ วันเกิด เงินเดือน ฯลฯ เป็นต้น