Home
Education
Classroom
Knowledge
Blog
TV
ธรรมะ
กิจกรรม
โครงการทรูปลูกปัญญา

แบบจำลองข้อมูลเชิงสัมพันธ์ (Relational Data Model)

Posted By Plookpedia | 21 เม.ย. 60
2,597 Views

  Favorite

แบบจำลองข้อมูลเชิงสัมพันธ์ (Relational Data Model) 

      เป็นแบบจำลองข้อมูลที่ได้รับความนิยมสูงสุดเสนอขึ้นเมื่อปี พ.ศ. ๒๕๑๓ โดยนายเท็ด คอดด์ มีโครงสร้างข้อมูลพื้นฐานแบบเดียวกันเท่านั้นและเป็นแบบที่ง่ายด้วย คือ ตารางความสัมพันธ์ (Relation) มีลักษณะเหมือนกับโครงสร้างตารางนั่นเอง ฐานข้อมูลหนึ่ง ๆ คือ กลุ่มของตารางความสัมพันธ์แต่ละแถวของข้อมูลในตารางหนึ่ง ๆ คือ  ชุดข้อมูลที่มีความสัมพันธ์กันซึ่งอาจจะหมายถึง เอนทิตีหรือความสัมพันธ์ระหว่างเอนทิตีก็ได้โดยที่ข้อมูลแต่ละแถวจะถูกเรียกว่า ทูเปิล (Tuple) และชื่อของแต่ละสดมภ์ (Column) นั้นจะถูกเรียกว่า คุณสมบัติ (Attribute) ตัวอย่างระบบจัดการฐานข้อมูลที่ใช้แบบจำลองข้อมูลเชิงสัมพันธ์ ได้แก่ ดีบีทู (DB2) โอราเคิล (Oracle) อินฟอร์มิกซ์ (Informix) ไซเบส (Sybase) อินเกรส (Ingress) แอ็กเซส (Access) อินเทอร์เบส (Interbase) เป็นต้น 

 

ระบบฐานข้อมูล

 

      คำว่าเค้าร่างตารางความสัมพันธ์ (Relation Schema) ใช้สัญลักษณ์ R(A1 ,A2,....An) ประกอบด้วย ๒ สิ่ง คือ ชื่อของตารางความสัมพันธ์ ซึ่งก็คือ R และกลุ่มของคุณสมบัติของตารางความสัมพันธ์ ซึ่งก็คือ A1,A2,....An ส่วนคำว่าระดับของความสัมพันธ์ (degree of a relation) คือ จำนวนคุณสมบัติทั้งหมดในตารางความสัมพันธ์ =n ตัวอย่างของเค้าร่างความสัมพันธ์ ได้แก่ นักศึกษา (รหัสประจำตัว,ชื่อ,นามสกุล,ที่อยู่,เบอร์ โทรศัพท์, วันเกิด, ชั้นปี, เกรดเฉลี่ยสะสม) ซึ่งมีชื่อตารางความสัมพันธ์ว่านักศึกษามีคุณสมบัติทั้งหมด ๘ ชนิดด้วยกันและระดับความสัมพันธ์ของนักศึกษาคือ ๘
      ส่วนคำว่าข้อมูลจริงของตารางความสัมพันธ์ (Relation instance หรือ Relation) หมายถึง กลุ่มข้อมูลจำนวน m ทูเปิล โดยที่แต่ละทูเปิล t = <V1,V2,....,Vn> แต่ละ Vi, 1 < i < n, เป็นสมาชิกในโดเมนของ Ai หรือเป็นค่าพิเศษที่เรียกกันว่า ค่าว่าง (NULL) ซึ่งหมายถึง ไม่มีค่าหรือมีค่าแต่ยังหาค่ามาใส่ไว้ไม่ได้มักจะนิยมเรียกเค้าร่างตารางความสัมพันธ์ว่า อินเทนชัน (Intension) และเรียกข้อมูลจริงว่า เอกซ์เทนชัน (Extension) ตัวอย่างต่อไปนี้แสดงทูเปิลรายละเอียดต่าง ๆ ของตารางความสัมพันธ์ "นักศึกษา" 

ลักษณะของตารางความสัมพันธ์ 

การเรียงลำดับของทูเปิลในตารางความสัมพันธ์หนึ่งๆ : 
      ตารางความสัมพันธ์ตามนิยาม คือ เซตของทูเปิลซึ่งความหมายของเซตในทางคณิตศาสตร์นั้นจะไม่มีการเรียงลำดับของสมาชิก ดังนั้นทูเปิลในตารางความสัมพันธ์ก็ไม่มีการเรียงลำดับเช่นเดียวกัน แต่เนื่องจากการเก็บข้อมูลในหน่วยความจำจะต้องกำหนดลำดับของข้อมูลแต่ละทูเปิลแน่นอนลงไปดังนั้นเมื่อแสดงชุดของทูเปิลจึงมีลำดับปรากฏมาด้วย 
การเรียงลำดับของค่าต่างๆ ในแต่ละทูเปิล : 
      ในทางปฏิบัติข้อมูลจริงของตารางความสัมพันธ์หนึ่ง ๆ แต่ละค่าในทูเปิลหนึ่ง ๆ ต้องมีการเรียงลำดับ แต่ในระดับทฤษฎีนั้นการเรียงลำดับไม่จำเป็นเลยสามารถทำได้โดยการกำหนดนิยามของทูเปิลใหม่ให้เป็นเซตของคู่ลำดับ (<คุณสมบัติ (attribute)>,<ค่าของข้อมูล (value)>) แทน 
ค่าในทูเปิล : 
      ค่าของทูเปิลจะต้องเป็นค่าไม่สามารถแบ่งแยกได้อีก ดังนั้นคุณสมบัติแบบประกอบ (composite attribute) และคุณสมบัติแบบหลายค่า (multivalued attribute) จึงไม่อนุญาตให้เก็บในแบบจำลองนี้ สำหรับคุณสมบัติแบบประกอบ คือ คุณสมบัติที่ประกอบด้วยคุณสมบัติย่อยอื่น ๆ เช่น คุณสมบัติ "ที่อยู่" อาจประกอบไปด้วยคุณสมบัติย่อย บ้านเลขที่ หมู่ที่ ตำบล อำเภอ จังหวัด เป็นต้น ส่วนคุณสมบัติแบบหลายค่า คือ คุณสมบัติที่สามารถมีได้หลาย ๆ ค่าสำหรับทูเปิลหนึ่ง เช่น คุณสมบัติสีของรถยนต์ รถแต่ละคันอาจจะมีสีได้หลาย ๆ สี บางคันสีดำสลับขาว บางคันสีแดงล้วน เป็นต้น ตัวอย่างของคุณสมบัติแบบแบ่งแยกไม่ได้ เช่น เลขประจำตัวประชาชน , อายุ เป็นต้น 
การแปลความหมายของตารางความสัมพันธ์ : 
      ตารางความสัมพันธ์หนึ่ง ๆ อาจจะแทนเอนทิตีหรือแทนความสัมพันธ์ระหว่างเอนทิตีก็ได้ เป็นหน้าที่ของผู้ใช้ที่จะต้องพิจารณาและแยกเองซึ่งจุดนี้เป็นข้อด้อยของแบบจำลองข้อมูลเชิงสัมพันธ์ 

ข้อบังคับแบบจำลองข้อมูลเชิงสัมพันธ์ 

      ๑. ข้อบังคับโดเมน (Domain Constraint) กำหนดว่าค่าของแต่คุณสมบัติต้องเป็นค่าที่แบ่งแยกไม่ได้ (Atomic Value) อีกแล้ว 
      ๒. ข้อบังคับกุญแจ (Key Constraint) กำหนดว่าทูเปิลทั้งหมดของตารางความสัมพันธ์หนึ่ง ๆ จะต้องมีค่าไม่ซ้ำกันเลยซึ่งหมายความว่าไม่มีทูเปิลคู่ใดที่จะมีค่าของคุณสมบัติทั้งหมดเหมือนกัน 
      ๓. ข้อบังคับบูรณภาพเอนทิตี (Entity inte- grity constraint) กำหนดว่าค่าของกุญแจหลัก (primary key) เป็นค่าว่าง (NULL) ไม่ได้โดยเด็ดขาดเพราะถ้าเป็นค่าว่างได้กุญแจหลักจะไม่สามารถเป็นตัวระบุถึงทูเปิลที่กำลังกล่าวถึงได้เลย
      ๔. ข้อบังคับบูรณภาพอ้างถึง (Referential integrity constraint) กำหนดว่า ทูเปิลในตารางความสัมพันธ์หนึ่งซึ่งอ้างถึงตารางความสัมพันธ์อีกตารางหนึ่งนั้นจะต้องอ้างถึงข้อมูลที่มีอยู่ในตารางนั้น ข้อบังคับนี้มีขึ้นเพื่อรักษาความถูกต้องของข้อมูลระหว่าง ๒ ตารางความสัมพันธ์ซึ่งการกำหนดข้อบังคับนี้ได้นั้นต้องใช้หลักการของกุญแจเทศ (foreign key) เข้ามากำกับ กุญแจหลัก คือกลุ่มของคุณสมบัติที่สามารถใช้ระบุทูเปิลในตารางความสัมพันธ์หนึ่ง ๆ ได้ นั่นคือค่าของกลุ่มคุณสมบัติในทุก ๆ ทูเปิลของตารางนั้นจะต้องไม่ซ้ำกันเลย ส่วนกุญแจเทศ คือกลุ่มของคุณสมบัติ FK ในตารางความสัมพันธ์ R ที่มีคุณสมบัติว่า

      ๑. คุณสมบัติ FK มีโดเมนเหมือนกับโดเมนของกุญแจหลัก PK ของตารางความสัมพันธ์ S

      ๒. ค่าของ FK ในทูเปิล r ของ R นั้นจะต้องปรากฏเป็นค่าของ PK ในทูเปิล s ของ S หรือเป็นค่าว่าง

กุญแจทั้งสองชนิดนี้มีความสำคัญในแบบจำลองนี้เป็นอย่างยิ่งสำหรับการจัดการกับข้อมูลในฐานข้อมูล

ภาษาสอบถามเชิงโครงสร้าง (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 ระบุ รายการเงื่อนไขของข้อมูล
      GROUP BY ระบุ คุณสมบัติที่ใช้ในการจัดกลุ่มข้อมูล
      HAVING ระบุ เงื่อนไขของการจัดกลุ่มข้อมูล
      ORDER BY ระบุ คุณสมบัติที่ใช้ในการเรียงลำดับข้อมูล

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

 

SELECT เบอร์โทรศัพท์ FROM นักศึกษา WHERE ชื่อ = "สมชาย" AND นามสกุล = "รักไทย" ;

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

      SELECT ชั้นปี, AVG (เกรดเฉลี่ยสะสม)
      FROM นักศึกษา
      GROUP BY ชั้นปี
      HAVING AVG (เกรดเฉลี่ยสะสม) 2.0
      ORDER BY ชั้นปี DESC

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

เว็บไซต์ทรูปลูกปัญญาดอทคอมเป็นเพียงผู้ให้บริการพื้นที่เผยแพร่ความรู้เพื่อประโยชน์ของสังคม ข้อความและรูปภาพที่ปรากฏในบทความเป็นการเผยแพร่โดยผู้ใช้งาน หากพบเห็นข้อความและรูปภาพที่ไม่เหมาะสมหรือละเมิดลิขสิทธิ์ กรุณาแจ้งผู้ดูแลระบบเพื่อดำเนินการต่อไป
  • Posted By
  • Plookpedia
  • 15 Followers
  • Follow