เป้าหมายของ Boyce-Codd Normal Form (BCNF) คือเพิ่มความสมบูรณ์ของข้อมูล (data integrity) โดยจัดระเบียบคอลัมน์และตารางของฐานข้อมูลเชิงสัมพันธ์ (relational database) เพื่อให้ได้การปรับปกติฐานข้อมูล (database normalization) การปรับปกติฐานข้อมูลเกิดขึ้นเมื่อมีความสัมพันธ์ที่กำหนดไว้ระหว่างตาราง และตารางมีกฎที่กำหนดไว้ เพื่อทำให้ฐานข้อมูลยืดหยุ่นมากขึ้น และรักษาข้อมูลไว้ได้

เป้าหมายของการปรับปกติฐานข้อมูลคือกำจัดข้อมูลซ้ำซ้อน และให้แน่ใจว่าการอ้างอิงข้อมูล (data dependencies) สมเหตุสมผล ฐานข้อมูลถูกปรับปกติแล้วเมื่อข้อมูลเดียวกันไม่ได้เก็บไว้ในตารางมากกว่าหนึ่งตาราง และมีเฉพาะข้อมูลที่เกี่ยวข้องเท่านั้นที่เก็บในตาราง
ต้นกำเนิดของ Boyce-Codd Normal Form
การปฏิบัติตามชุดแนวทางต่างๆ เพื่อให้แน่ใจว่าฐานข้อมูลถูกปรับปกติ แนวทางเหล่านี้เรียกว่า normal forms (รูปแบบปกติ) และนับจาก 1 ถึง 5 ฐานข้อมูลเชิงสัมพันธ์จะถูกอธิบายว่า normalized (ปรับปกติแล้ว) หากตรงตาม 3 รูปแบบแรกคือ 1NF, 2NF, และ 3NF
BCNF ถูกสร้างขึ้นเป็นส่วนขยายของรูปแบบปกติที่สาม (Third Normal Form หรือ 3NF) ในปี 1974 โดย Raymond Boyce และ Edgar Codd ทั้งสองทำงานเพื่อสร้างสคีมาฐานข้อมูลที่ลดความซ้ำซ้อนให้น้อยที่สุด โดยมีเป้าหมายลดเวลาการคำนวณ รูปแบบปกติที่สามกำจัดคอลัมน์ที่ไม่ขึ้นอยู่กับคีย์หลัก (primary key) นอกจากจะต้องตรงตามแนวทางในรูปแบบปกติที่หนึ่งและสอง BCNF ซึ่งบางครั้งเรียกว่า 3.5NF ตรงตามข้อกำหนดของ 3NF ทั้งหมด และกำหนดให้คีย์หล보 (candidate keys) ไม่มีการอ้างอิงต่อแอตทริบิวต์อื่นในตาราง
ในขณะที่สร้าง BCNF Boyce เป็นนักพัฒนาหลักของ Structured English Query Language ซึ่งต่อมามาตรฐานเป็น SQL ซึ่งปรับปรุงการดึงข้อมูลโดยใช้โมเดลเชิงสัมพันธ์ของ Codd ในโมเดลนี้ Codd เสนอว่าความซับซ้อนของโครงสร้างฐานข้อมูลสามารถลดลงได้ หมายความว่าแบบสอบถาม (queries) สามารถทรงพลังและยืดหยุ่นได้มากขึ้น
ด้วยข้อมูลเชิงลึกของฐานข้อมูลเชิงสัมพันธ์ Codd กำหนดแนวทาง 1NF, 2NF, และ 3NF เขาทำงานร่วมกับ Boyce เพื่อกำหนด BCNF
Candidate Keys และ BCNF
Candidate key (คีย์หลัก) คือคอลัมน์หรือการรวมกันของคอลัมน์ในตารางที่สร้างคีย์ที่ไม่ซ้ำกันในฐานข้อมูล การรวมแอตทริบิวต์ระบุเรคคอร์ดฐานข้อมูลโดยไม่ต้องอ้างอิงข้อมูลอื่น แต่ละตารางสามารถมี candidate keys หลายตัว ซึ่งตัวไหนก็ตามสามารถเป็น primary key ได้ ตารางมี primary key เพียงตัวเดียวเท่านั้น
Candidate keys ต้องไม่ซ้ำกัน
ความสัมพันธ์ (relation) อยู่ใน BCNF หากทุก determinant (ตัวกำหนด) เป็น candidate key พิจารณาตารางฐานข้อมูลที่เก็บข้อมูลพนักงาน และมีแอตทริบิวต์ Employee_Id, First_name, Last_name, และ Title
ในตารางนี้ ฟิลด์ Employee_Id กำหนด first_name และ last_name เช่นเดียวกัน คู่ (First_name, Last_name) กำหนด Employee_id
| Employee Id | First name | Last name | Title |
|---|---|---|---|
| 13133 | Emily | Smith | Manager |
| 13134 | Jim | Smith | Associate |
| 13135 | Emily | Jones | Associate |
Candidate key สำหรับฐานข้อมูลนี้คือ Employee_Id เนื่องจากเป็นค่าเดียวที่ไม่สามารถใช้โดยแถวอื่นได้
คำถามที่พบบ่อย
ข้อกำหนดสำหรับ Boyce-Codd Normal Form คืออะไร?
ตารางตรงตามข้อกำหนด Boyce-Codd Normal Form (BCNF) หาก determinant ทั้งหมดเป็น candidate keys และ relation อยู่ใน Third Normal Form (3NF) 3NF ตรงตามกฎของ First Normal Form (1NF) และ Second Normal Form (2NF) และคอลัมน์ทั้งหมดขึ้นอยู่กับ primary key
ความแตกต่างระหว่าง Fourth Normal Form และ Boyce-Codd Normal Form คืออะไร?
Fourth Normal Form (4NF) อยู่ระดับถัดจาก Boyce-Codd Normal Form (BCNF) ในการปรับปกติฐานข้อมูล 4NF ตรงตามข้อกำหนด 3NF เช่นเดียวกับ BCNF อย่างไรก็ตาม ตาราง 4NF ไม่มี multivalued dependencies (การอ้างอิงหลายค่า) หรือความสัมพันธ์ many-to-one ในขณะที่ตาราง BCNF อาจมีการอ้างอิงเหล่านี้ได้