วันอาทิตย์ที่ 2 พฤศจิกายน พ.ศ. 2557

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

เป็นรูปแบบของฐานข้อมูลที่นิยมใช้ในปัจจุบัน โดยถูกคิดค้นและพัฒนาโดย E.F. Codd เป็นรูปแบบที่เข้าใจง่ายสำหรับผู้ใช้ ไม่ซับซ้อนมีเครื่องมือที่ช่วยในการเรียกดูข้อมูล โดยใช้คำสั่งง่าย เช่น SQL
โมเดลนี้ใช้ relation หรือตาราง 2 มิติ แทน entity
ศัพท์ที่เกี่ยวข้อง
  • Relation = Table
  • Tuple = Row or Record
  • Attribute = Column or Field
  • Cardinality = Number of Rows
  • Primary = Unique Identifier
  • Domain = ขอบข่ายของค่าข้อมูล เช่น วันที่เริ่มทำงาน
ให้แต่ละ column ของตารางแทน attribute ให้แต่ละ row แทนค่าจริงของ 1 record (เรียก tuple)ฐานข้อมูลเชิงสัมพันธ์ เป็นการจัดเก็บรวบรวมข้อมูลเป็นแถวและคอลัมน์ในลักษณะตารางสองมิติ ที่ประกอบด้วย attribute ที่แสดงคุณสมบัติที่แสดงคุณสมบัติของ Relationship โดยผ่านกระบวนการทำให้เป็นบรรทัดฐาน (Normalized) ในระหว่างการออกแบบ เพื่อลดความซ้ำซ้อน และการจัดฐานข้อมูลอย่างมีประสิทธิภาพ
เป็นฐานข้อมูลซึ่งให้ภาพของข้อมูล ทั้งในระดับภายนอก(External Level) และ ระดับแนวคิด (Conceptual Level) แก่ผู้ใช้ฐานข้อมูลได้เป็นอย่างดี

คุณลักษณะในการจัดเก็บข้อมูล
ในแต่ละ Relation ประกอบด้วยข้อมูลของ Attribyte ต่างๆที่จัดเก็บในรูปตาราง 2 มิติ คือ Row, Column
  1. ข้อมูลในแต่ละแถวจะไม่ซ้ำกัน
  2. การจัดเรียงลำดับของข้อมูลในแต่ละแถวไม่เป็นสาระสำคัญ
  3. การจัดเรียงลำดับของ Attribute จะเรียงลำดับก่อนหลังอย่างไรก็ได้
  4. ค่าของข้อมูลในแต่ละ Attribute ของ Tuple หนึ่งๆ จะบรรจุได้เพียงค่าเดียว
  5. ค่าของข้อมูลในแต่ละ Attribute จะบรรจุค่าของข้อมูลประเภทเดียวกัน

กฎที่เกี่ยวข้องกับคีย์ในฐานข้อมูลเชิงสัมพันธ์
1. กฎความบูรณภาพของเอนทิตี้ (The Entity Intergrity Rule)
กฎนี้ระบุไว้ว่าแอททริบิวต์ใดที่เป็นคีย์หลัก ข้อมูลในแอททริบิวต์นั้นจะเป็นค่าว่าง(Null) ไม่ได้ ความหมายของการเป็นค่าว่างไม่ได้(Not Null) หมายความถึง ข้อมูลของแอททริบิวต์ที่เป็นคีย์หลักจะไม่ทราบค่าที่แน่นอนหรือไม่มีค่าไม่ได้
2. กฎความบูรณภาพของการอ้างอิง (The Referential IntegrityRule)
การอ้างอิงข้อมูลระหว่างรีเลชั่นในฐานข้อมูลเชิงสัมพันธ์จะใช้คีย์นอกของรีเลชั่นหนึ่งไปตรวจสอบกับค่าของแอททริบิวต์ที่เป็นคีย์หลักของอีกรีเลชั่นหนึ่งเพื่อเรียกดูข้อมูลอื่นๆที่เกี่ยวข้องหรือค่าของคีย์นอกจะต้องอ้างอิงให้ตรงกับค่าของคีย์หลักได้จึงจะสามารถเชื่อมโยงข้อมูลระหว่างสองรีเลชั่นได้สำหรับคีย์นอกจะมีค่าว่างได้หรือไม่ขึ้นอยู่กับกฎเกณฑ์การออกแบบฐานข้อมูล เช่น ในกรณีที่รีเลชั่นพนักงานมี Depnoเป็นคีย์นอกอาจจะถูกระบุว่าต้องทราบค่าแต่ในกรณีพนักงานทดลองงานอาจยังไม่มีค่า Depno เพราะยังไม่ได้ถูกบรรจุในกรณีที่มีการลบหรือแก้ใขข้อมูลของแอททริบิวต์ที่เป็นคีย์หลักซึ่งมีคีย์นอก จากอีกรีเลชั่นหนึ่งอ้างอิงถึง จะทำการลบหรือแก้ใขข้อมูลได้หรือไม่ ขึ้นอยู่กับการออกแบบฐานข้อมูล ว่าได้ระบุให้แอททริบิวต์มีคุณสมบัติอย่างไร ซึ่งมีโอกาสเป็นไปได้ 4 ทางเลือก
  1. การลบหรือแก้ใขข้อมูลแบบมีข้อจำกัด (Restrict) การลบหรือแก้ไขข้อมูลจะกระทำได้ เมื่อข้อมูลของคีย์หลักในรีเลชั่นหนึ่งไม่มีข้อมูลที่ถูกอ้างอิง โดยคีย์นอกของอีกรีเลชั่นหนึ่งเช่น รหัสแผนก Depno ในรีเลชั่นDepจะถูกแก้ใขหรือลบทิ้งต่อเมื่อไม่มีพนักงานคนใดสังกัดอยู่ในแผนกนั้น
  2. การลบหรือแก้ไขข้อมูลแบบต่อเรียง (Cascade) การลบหรือการแก้ใขข้อมูล จะทำแบบเป็นลูกโซ่ คือ หากมีการแก้ไขหรือลบข้อมูลของคีย์หลักในรีเลชั่นหนึ่งระบบจะทำการลบหรือแก้ใขข้อมูลของคีย์นอกในอีกรีเลชั่นหนึ่งที่อ้างอิงถึงข้อมูลของคีย์หลักที่ถูกลบให้ด้วย เช่น ในกรณีที่ยกเลิกแผนก 9 ในEntityแผนก ข้อมูลของพนักงานที่อยู่แผนก 10 ในEntityพนักงานจะถูกลบออกไปด้วย
  3. การลบหรือแก้ไขข้อมูลโดยเปลี่ยนเป็นค่าว่าง (Nullify) การลบหรือแก้ใขข้อมูลจะทำได้เมื่อมีการเปลี่ยนค่าของคีย์นอกในข้อมูลที่ถูกอ้างอิงให้เป็นค่าว่างเสียก่อน เช่น พนักงานที่อยู่ในแผนกที่ 9 จะถูกเปลี่ยนค่าเป็นค่าว่างก่อนหลังจากนั้น การลบข้อมูลของแผนกที่มีรหัส 9 จะถูกลบทิ้งหรือแก้ไขทันที ภายใน Entity แผนก
  4. การลบหรือแก้ไขข้อมูลแบบใช้ค่าโดยปริยาย ( Default) การลบหรือแก้ไขข้อมูลของคีย์หลัก สามารถทำได้โดยถ้าหากมีคีย์นอกที่อ้างอิงถึงคีย์หลักที่ถูกลบหรือแก้ไข ก็จะทำการปรับค่าของคีย์นอกนั้นโดยปริยาย (Default Value) ที่ถูกกำหนดขึ้นเช่น ในกรณีที่ยกเลิกแผนก 9 ในEntity แผนก ข้อมูลของพนักงานที่อยู่แผนก 9 ใน Entity พนักงานจะถูกเปลี่ยนค่าเป็น 00 ซึ่งเป็นค่าโดยปริยาย ที่หมายความว่า ไม่ได้สังกัดแผนกใด

ไม่มีความคิดเห็น:

แสดงความคิดเห็น