3.1 การทำให้เป็นมาตรฐานของฐานข้อมูล

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

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

เป้าหมายสูงสุดของการทำให้เป็นมาตรฐานคือการลดความไม่สอดคล้องกันที่อาจเกิดขึ้นของข้อมูลที่จัดเก็บไว้ในฐานข้อมูล วัตถุประสงค์ทั่วไปของกระบวนการทำให้เป็นมาตรฐานมีดังนี้:

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

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

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

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

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

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

3.2 รูปแบบปกติครั้งแรก

First normal form (1NF)เป็นรูปแบบปกติพื้นฐานของความสัมพันธ์ในแบบจำลองข้อมูลเชิงสัมพันธ์

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

ในโมเดลเชิงสัมพันธ์ ความสัมพันธ์จะอยู่ในรูปแบบปกติรูปแบบแรกเสมอ ตามนิยามของแนวคิดของความสัมพันธ์

สำหรับตารางต่างๆ อาจไม่ใช่การแสดงความสัมพันธ์ที่ถูกต้อง และอาจไม่อยู่ใน 1NF ตามคำจำกัดความของ Christopher Date สำหรับกรณีดังกล่าว ตารางจะถูกทำให้เป็นมาตรฐาน (เทียบเท่า คืออยู่ในรูปแบบปกติแรก) ก็ต่อเมื่อเป็นการแสดงโดยตรงและเป็นจริงของความสัมพันธ์บางอย่าง โดยเฉพาะอย่างยิ่ง ตารางที่มีปัญหาจะต้องตรงตามเงื่อนไขห้าข้อต่อไปนี้:

  • ไม่มีการเรียงลำดับแถวจากบนลงล่าง (กล่าวคือ ลำดับของแถวไม่ได้สื่อถึงข้อมูลใดๆ)
  • ไม่มีการเรียงลำดับคอลัมน์จากซ้ายไปขวา (กล่าวคือ ลำดับของคอลัมน์ไม่มีข้อมูล)
  • ไม่มีบรรทัดที่ซ้ำกัน
  • แต่ละจุดตัดกันของแถวและคอลัมน์มีค่าหนึ่งค่าจากโดเมนที่เกี่ยวข้อง (และไม่มีอย่างอื่น)
  • คอลัมน์ทั้งหมดเป็น "ปกติ"

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

ตารางต้นฉบับที่ไม่ได้ทำให้เป็นมาตรฐาน (นั่นคือไม่ใช่การแสดงที่ถูกต้องของบางความสัมพันธ์):

พนักงาน หมายเลขโทรศัพท์
Ivanov I.I.

283-56-82

390-57-34

Petrov P.P. 708-62-34
Sidorov S.S.

ตารางลดลงเป็น 1NF ซึ่งเป็นตัวแทนที่ถูกต้องของบางความสัมพันธ์:

พนักงาน หมายเลขโทรศัพท์
Ivanov I.I. 283-56-82
Ivanov I.I. 390-57-34
Petrov P.P. 708-62-34

3.3 รูปแบบปกติที่สอง

ตัวแปรความสัมพันธ์จะอยู่ในรูปแบบปกติที่สองก็ต่อเมื่อมันอยู่ในรูปแบบปกติแรก และทุกแอตทริบิวต์ที่ไม่ใช่คีย์จะขึ้นอยู่กับ (ทุกๆ) คีย์ตัวเลือกของมันอย่างไม่สามารถลดลงได้

การลดไม่ได้หมายความว่าคีย์ที่มีศักยภาพไม่มีชุดย่อยของแอตทริบิวต์ที่เล็กกว่าซึ่งสามารถรับการพึ่งพาการทำงานนี้ได้ สำหรับการพึ่งพาการทำงานที่ลดไม่ได้ มักใช้แนวคิดที่เทียบเท่ากันของ "การพึ่งพาการทำงานเต็มรูปแบบ"

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

ตัวอย่างการแปลงความสัมพันธ์เป็นรูปแบบปกติที่สอง

ให้แอตทริบิวต์คู่ {Company branch, Position} เป็นคีย์หลักในความสัมพันธ์ต่อไปนี้:

สาขาบริษัท ชื่องาน เงินเดือน ความพร้อมใช้งานของคอมพิวเตอร์
สาขาในทอมสค์ ทำความสะอาด 20,000 เลขที่
สาขาในมอสโก โปรแกรมเมอร์ 40000 กิน
สาขาในทอมสค์ โปรแกรมเมอร์ 25000 กิน

สมมติว่าเงินเดือนขึ้นอยู่กับสาขาและตำแหน่ง และความพร้อมใช้งานของคอมพิวเตอร์ขึ้นอยู่กับตำแหน่งเท่านั้น

มีการพึ่งพาการทำงาน ตำแหน่ง -> มีคอมพิวเตอร์ซึ่งด้านซ้าย (ดีเทอร์มีแนนต์) เป็นเพียงส่วนหนึ่งของคีย์หลักซึ่งละเมิดเงื่อนไขของรูปแบบปกติที่สอง

หากต้องการลดเป็น 2NF ความสัมพันธ์ดั้งเดิมควรแยกย่อยออกเป็นสองความสัมพันธ์:

R1
สาขาบริษัท ชื่องาน เงินเดือน
สาขาในทอมสค์ ทำความสะอาด 20,000
สาขาในมอสโก โปรแกรมเมอร์ 40000
สาขาในทอมสค์ โปรแกรมเมอร์ 25000
R2
ชื่องาน ความพร้อมใช้งานของคอมพิวเตอร์
ทำความสะอาด เลขที่
โปรแกรมเมอร์ กิน
โปรแกรมเมอร์ กิน

3.4 รูปแบบปกติที่สาม (3NF)

ตัวแปรสัมพันธ์ R อยู่ใน 3NF ก็ต่อเมื่อเงื่อนไขต่อไปนี้เป็นจริง:

  • อยู่ในรูปแบบปกติที่สอง
  • ไม่มีแอตทริบิวต์ที่ไม่ใช่คีย์ไม่ได้ขึ้นอยู่กับฟังก์ชันสกรรมกริยาในคีย์ตัวเลือก.

คำอธิบายสำหรับคำจำกัดความ:

แอตทริบิวต์ที่ไม่ใช่คีย์ของรีเลชัน R คือแอตทริบิวต์ที่ไม่ได้อยู่ในคีย์ตัวเลือกใดๆ ของ R

การพึ่งพาการทำงานของชุดแอตทริบิวต์ Z บนชุดของแอตทริบิวต์ X (เขียนด้วย X → Z ออกเสียงว่า “x กำหนด z”) เป็นแบบสกรรมกริยาหากมีชุดของแอตทริบิวต์ Y ที่ X → Y และ Y → Z ในเรื่องนี้ กรณีนี้ ไม่มีชุด X, Y และ Z ใดที่ไม่ใช่ชุดย่อยของชุดอื่น เช่น การพึ่งพาการทำงาน X → Z, X → Y และ Y → Z ไม่สำคัญและยังไม่มีการพึ่งพาการทำงาน Y → X

คำจำกัดความของ 3NF เทียบเท่ากับ Codd แต่ใช้คำต่างกัน โดย Carlo Zaniolo ในปี 1982 ตามนั้น ตัวแปรสัมพันธ์จะอยู่ใน 3NF ก็ต่อเมื่อแต่ละการขึ้นต่อกันของฟังก์ชัน X → A ตรงตามเงื่อนไขต่อไปนี้อย่างน้อยหนึ่งข้อ:

  • X มี A (นั่นคือ X → A เป็นการพึ่งพาการทำงานเล็กน้อย)
  • X - ซูเปอร์คีย์
  • A เป็นแอตทริบิวต์ของคีย์ (นั่นคือ A เป็นส่วนหนึ่งของคีย์ตัวเลือก)

คำจำกัดความของ Zaniolo กำหนดความแตกต่างระหว่าง 3NF และ Boyce-Codd Normal Form (BCNF) ที่เข้มงวดกว่าอย่างชัดเจน กล่าวคือ BCNF ไม่รวมเงื่อนไขที่สาม ("A is a key attribute")

บทสรุปที่น่าจดจำและอธิบายตามธรรมเนียมของคำจำกัดความ 3NF ของ Codd นั้นมอบให้โดย Bill Kent: แอตทริบิวต์ที่ไม่ใช่คีย์แต่ละรายการ "ควรให้ข้อมูลเกี่ยวกับคีย์ คีย์แบบเต็ม และไม่มีอะไรนอกจากคีย์ "

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

Chris Date พูดถึงบทสรุปของ Kent ว่าเป็น "คุณลักษณะที่น่าสนใจโดยสัญชาตญาณ" ของ 3NF และสังเกตว่า การปรับเปลี่ยนเล็กน้อยยังสามารถใช้เป็นคำจำกัดความของรูปแบบปกติของ Boyce-Codd ที่เข้มงวดขึ้น: "แอตทริบิวต์แต่ละรายการต้องให้ข้อมูลเกี่ยวกับคีย์ , คีย์แบบเต็มและไม่มีอะไรนอกจากคีย์

คำจำกัดความ 3NF เวอร์ชันของ Kent นั้นเข้มงวดน้อยกว่าสูตรของ Data เวอร์ชันรูปแบบปกติของ Boyce-Codd เนื่องจากเวอร์ชันก่อนหน้าระบุเพียงว่าแอตทริบิวต์ที่ไม่ใช่คีย์ขึ้นอยู่กับคีย์

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

พิจารณาตัวแปรสัมพันธ์ R1 เป็นตัวอย่าง:

R1
พนักงาน แผนก โทรศัพท์
กริชิน การบัญชี 11-22-33
วาซิลิเยฟ การบัญชี 11-22-33
เปตรอฟ จัดหา 44-55-66

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

ในตัวอย่าง มีการพึ่งพาการทำงานต่อไปนี้: พนักงาน → แผนก, แผนก → โทรศัพท์, พนักงาน → โทรศัพท์

ตัวแปรความสัมพันธ์ R1 อยู่ในรูปแบบปกติที่สอง เนื่องจากแต่ละแอตทริบิวต์มีการพึ่งพาการทำงานที่ลดไม่ได้บนคีย์ที่มีศักยภาพ พนักงาน

ความสัมพันธ์พนักงาน → โทรศัพท์เป็นแบบสกรรมกริยา ดังนั้นความสัมพันธ์นี้จึงไม่ได้อยู่ในรูปแบบปกติที่สาม

การแยก R1 ออกเป็นตัวแปรสัมพันธ์สองตัวที่อยู่ใน 3NF:

R2
แผนก โทรศัพท์
การบัญชี 11-22-33
จัดหา 44-55-66

R3
พนักงาน แผนก
กริชิน การบัญชี
วาซิลิเยฟ การบัญชี
เปตรอฟ จัดหา

หากจำเป็น ความสัมพันธ์เริ่มต้น R1 นั้นสามารถรับได้อย่างง่ายดายอันเป็นผลมาจากการดำเนินการเข้าร่วมความสัมพันธ์ R2 และ R3