ScholarGate
ผู้ช่วย

การออกแบบและการทำให้เป็นบรรทัดฐานของฐานข้อมูล

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

ค้นหาหัวข้อด้วย PaperMindเร็ว ๆ นี้Find papers & topics
Tools & resources
ดาวน์โหลดสไลด์
Learn & explore
วิดีโอเร็ว ๆ นี้

Definition

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

Scope

ขอบเขตนี้ครอบคลุมทฤษฎีและการปฏิบัติของการปรับปรุงสคีมาเชิงสัมพันธ์: การพึ่งพาเชิงฟังก์ชันและการพึ่งพาแบบหลายค่า (functional and multivalued dependencies) ในฐานะข้อจำกัดเชิงความหมายที่เป็นตัวขับเคลื่อนการออกแบบ ลำดับชั้นของรูปแบบบรรทัดฐาน (1NF ถึง BCNF, 4NF) และการแยกความสัมพันธ์เพื่อขจัดความซ้ำซ้อนในขณะที่ยังคงรักษาการเชื่อมโยงแบบไม่สูญเสียข้อมูล (lossless joins) และหากเป็นไปได้ การพึ่งพา (dependencies) ขอบเขตนี้ไม่รวมสัญกรณ์การสร้างแบบจำลองเชิงแนวคิด เช่น แผนภาพเอนทิตี-ความสัมพันธ์ (ครอบคลุมในแบบจำลองข้อมูลและภาษาคิวรี) และทางเลือกการออกแบบทางกายภาพ เช่น การทำดัชนี

Sub-topics

Core questions

  • การพึ่งพาเชิงฟังก์ชันและการพึ่งพาแบบหลายค่าใดบ้างที่เกิดขึ้นระหว่างแอตทริบิวต์ของความสัมพันธ์?
  • ความผิดปกติใดบ้าง — การอัปเดต การแทรก การลบ — ที่เกิดจากความซ้ำซ้อน?
  • เงื่อนไขใดบ้างที่กำหนดรูปแบบบรรทัดฐานแต่ละรูปแบบ และแต่ละรูปแบบขจัดความซ้ำซ้อนใดบ้าง?
  • จะสามารถแยกความสัมพันธ์ได้อย่างไรโดยไม่สูญเสียข้อมูล?
  • เมื่อใดที่ต้องแลกเปลี่ยนการรักษาการพึ่งพา (dependency preservation) กับรูปแบบบรรทัดฐานที่สูงขึ้น?

Key concepts

  • การพึ่งพาเชิงฟังก์ชัน (functional dependency)
  • สัจพจน์ของอาร์มสตรองและการปิด (Armstrong's axioms and closure)
  • คีย์ผู้สมัครและแอตทริบิวต์หลัก (candidate keys and prime attributes)
  • ความผิดปกติในการอัปเดต การแทรก การลบ (update, insertion, deletion anomalies)
  • รูปแบบบรรทัดฐานที่หนึ่ง ที่สอง ที่สาม (first, second, third normal form)
  • รูปแบบบรรทัดฐาน Boyce-Codd (Boyce-Codd normal form)
  • การพึ่งพาแบบหลายค่าและ 4NF (multivalued dependencies and 4NF)
  • การแยกแบบไม่สูญเสียการเชื่อมโยง (lossless-join decomposition)
  • การรักษาการพึ่งพา (dependency preservation)

Key theories

การพึ่งพาเชิงฟังก์ชันและการปิด
การพึ่งพาเชิงฟังก์ชัน X → Y ยืนยันว่า X กำหนด Y; สัจพจน์ของอาร์มสตรองช่วยให้สามารถคำนวณการปิดของชุดของการพึ่งพา ซึ่งเป็นพื้นฐานของการค้นหาคีย์และการทดสอบรูปแบบบรรทัดฐาน
รูปแบบบรรทัดฐาน
รูปแบบบรรทัดฐานที่หนึ่งถึงสามและรูปแบบบรรทัดฐาน Boyce-Codd กำหนดเงื่อนไขที่เข้มงวดขึ้นเรื่อยๆ สำหรับการพึ่งพาเชิงฟังก์ชันเพื่อขจัดความซ้ำซ้อน; รูปแบบบรรทัดฐานที่สี่ขยายแนวคิดนี้ไปยังการพึ่งพาแบบหลายค่า
การแยกแบบไม่สูญเสียการเชื่อมโยงและการรักษาการพึ่งพา
การแยกส่วนจะพึงประสงค์ก็ต่อเมื่อไม่สูญเสียข้อมูล (ความสัมพันธ์ดั้งเดิมสามารถสร้างขึ้นใหม่ได้โดยการเชื่อมโยงส่วนต่างๆ) และโดยหลักการแล้วจะรักษาการพึ่งพา (การพึ่งพาเดิมทั้งหมดสามารถบังคับใช้กับส่วนต่างๆ ได้) ซึ่งเป็นเกณฑ์ที่จำกัดวิธีการแบ่งสคีมา

Clinical relevance

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

History

Codd ได้นำเสนอรูปแบบบรรทัดฐานที่หนึ่ง ที่สอง และที่สามในช่วงต้นทศวรรษ 1970 และร่วมกับ Boyce ได้นำเสนอรูปแบบบรรทัดฐาน Boyce-Codd ที่เข้มงวดกว่า ต่อมา Ronald Fagin ได้กำหนดรูปแบบบรรทัดฐานที่สี่และที่ห้าโดยอิงจากการพึ่งพาแบบหลายค่าและการพึ่งพาการเชื่อมโยง (join dependencies) ผลลัพธ์เหล่านี้ได้เปลี่ยนการออกแบบสคีมาจากการเป็นศิลปะไปสู่ทฤษฎีที่มีพื้นฐานมาจากข้อจำกัดการพึ่งพา

Debates

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

Key figures

  • Edgar F. Codd
  • Raymond F. Boyce
  • Ronald Fagin

Related topics

Seminal works

  • codd1972
  • silberschatz2019
  • garciamolina2008

Frequently asked questions

เหตุใดความซ้ำซ้อนจึงก่อให้เกิดปัญหาหากฉันระมัดระวัง?
การจัดเก็บข้อเท็จจริงเดียวกันซ้ำซ้อนในหลายแถวทำให้เกิดความผิดปกติ: การอัปเดตอาจเปลี่ยนแปลงสำเนาบางส่วนแต่ไม่ใช่ทั้งหมด (ความผิดปกติในการอัปเดต) คุณอาจไม่สามารถบันทึกข้อเท็จจริงได้หากไม่มีข้อมูลที่ไม่เกี่ยวข้อง (ความผิดปกติในการแทรก) หรือการลบแถวอาจทำให้ข้อมูลที่คุณต้องการเก็บไว้สูญหายไป (ความผิดปกติในการลบ) การทำให้เป็นบรรทัดฐานจะขจัดความซ้ำซ้อนที่ทำให้สิ่งเหล่านี้เป็นไปได้
ความแตกต่างระหว่าง BCNF และรูปแบบบรรทัดฐานที่สามคืออะไร?
ทั้งสองรูปแบบจัดการกับความซ้ำซ้อนจากการพึ่งพาเชิงฟังก์ชัน แต่ BCNF เข้มงวดกว่า: กำหนดให้ด้านซ้ายของการพึ่งพาที่ไม่ใช่เรื่องเล็กน้อยทุกรายการต้องเป็นซูเปอร์คีย์ สคีมาอาจอยู่ใน 3NF แต่ไม่อยู่ใน BCNF BCNF ให้การแยกส่วนแบบไม่สูญเสียข้อมูลเสมอ แต่อาจไม่รักษาการพึ่งพา ซึ่งเป็นเหตุผลว่าทำไมบางครั้งจึงยังคงใช้ 3NF

Methods for this concept

Related concepts