บทที่ 4

การแก้ไขข้อมูล

ความสัมพันธ์ระหว่างตาราง

ความสัมพันธ์ระหว่างตาราง

        การกำหนดความสัมพันธ์ระหว่างตาราง (Table) เพื่อนำตารางที่เกี่ยวข้องมาทำงานร่วมกับตารางที่ทำงานอยู่ โดยเฉพาะข้อมูลที่มีการเรียกใช้อยู่เสมอ ถ้าเรียกใช้บ่อย ๆ จะทำให้ต้องมีการบันทึกข้อมูลที่ซ้ำซ้อนเป็นจำนวนมาก เช่น การบันทึกการจำหน่ายสินค้าที่จะต้องการทราบรหัสสินค้า ประเภท ชื่อสินค้า ราคา/หน่วย สำหรับการจำหน่ายแต่ละรายการ ดังนั้นการแก้ปัญหาโดยการสร้างข้อมูลดังกล่าวไว้ในตารางสินค้าและกำหนดให้เขตข้อมูล รหัสสินค้า เป็นตัวแทนในการจำหน่ายสินค้า หลังจากนั้นให้สร้างความสัมพันธ์ระหว่างตาราง โดยกำหนดรหัสสินค้าใน Table จำหน่ายสินค้าเป็น Foreign Key (คีย์รอง) เชื่อมโยงไปยังรหัสสินค้าในตารางสินค้า โดยกำหนดให้เป็นคีย์หลัก (Primary key) เพื่ออ้างอิงไปยังประเภท ชื่อสินค้า ราคา/หน่วย มาทำงานร่วมโดยไม่ต้องบันทึกซ้ำซ้อนอีกต่อไป

ข้อกำหนดที่ควรทราบ

  • คีย์รอง (Foreign Key) จะต้องเป็นคีย์หลัก (Primary key) ของตารางที่อยู่ทางด้านความสัมพันธ์ที่เป็น 1 ของความสัมพันธ์ชนิดหนึ่งต่อกลุ่ม (One-to-Many) เสมอ
  • จะต้องกำหนดให้ชนิดของเขตข้อมูลเหมือนกันทั้งคีย์หลักและคีย์รอง
  • ตารางที่นำมาสร้างความสัมพันธ์จะต้องเป็นตารางที่อยู่บนแฟ้มข้อมูล Access

กฎการคงสภาพของข้อมูล (Integrity constraint)

       ในตารางที่มีความสัมพันธ์กัน เมื่อมีการแก้ไขหรือการลบข้อมูลในตารางจะมีผลกระทบกับตารางที่เชื่อมความสัมพันธ์อยู่ เพื่อให้ข้อมูลที่เกี่ยวข้องมีความคงสภาพของข้อมูล จึงต้องมีกฎที่ใช้ควบคุมความถูกต้องซึ่งจะกระทำใน 2 ลักษณะ ได้แก่

  • ควบคุมการคงสภาพความถูกต้องของข้อมูลภายใน Table (ตาราง) เดียวกัน กฎที่ใช้คือ Entity Integrity หรือกฎการคงสภาพของเอนทิตี้
  • ควบคุมการคงสภาพความถูกต้องของความสัมพันธ์ระหว่าง Table (ตาราง) กฎที่ใช้คือ Referential Integrity Constraint หรือกฎการคงสภาพอ้างอิง

ขั้นตอนการออกแบบ

  • เลือก Table ชื่อ Person แล้วเลือก Design (ออกแบบ)
  • ชี้ที่เขตข้อมูล Code คลิกขวาเลือก Primary Key (กำหนดให้เป็นคีย์หลัก)
  • คลิกปุ่ม Save (เพื่อบันทึกโครงสร้าง) แล้วคลิกปุ่ม close ดังรูปที่ 4.20
  • เลือกเมนู เครื่องมือฐานข้อมูล (Tools) เลือก ความสัมพันธ์ (Relationships)
  • เลือกตาราง ชื่อ Income และ person เลือก เพิ่ม (Add) เลือก ปิด (Close)
  • จะเข้าสู่หน้าต่างการออกแบบ ความสัมพันธ์ (Relationships)
  • คลิกที่เขตข้อมูล Code จากตารางชื่อ person ลากไปวางบนเขตข้อมูล code บนตารางชื่อ Income
  • เลือกบังคับให้มี Referential Integrity
  • เลือก สร้าง (Create) ก็จะได้เส้นเชื่อมความสัมพันธ์ชนิด one to many หรือหนึ่งต่อกลุ่ม


รูปที่ 4.20 แสดงการกำหนดเขตข้อมูล code ให้เป็นคีย์หลัก (Primary Key)


รูปที่ 4.21 แสดงการสร้างความสัมพันธ์ระหว่างตารางชนิดหนึ่งต่อกลุ่ม