1.9.8 การใช้กฎ Normalization
เราสามารถใช้กฎ Normalization ข้อมูล (บางครั้งเรียกแค่ว่า กฎ Normalization) ใน
ขั้นต่อไปของการออกแบบ การใช้กฎเหล่านี้เพื่อดูว่าตารางมีโครงสร้างที่ถูกต้องหรือไม่
กระบวนการใช้กฎเหล่านี้กับการออกแบบฐานข้อมูลเรียกว่าการ Normalizing ฐานข้อมูล หรือ
Normalization
Normalization จะมีประโยชน์มากที่สุดหลังจากที่ได้แสดงรายการข้อมูลทั้งหมดและ
ออกแบบเบื้องต้นแล้ว ความคิดคือช่วยตรวจสอบให้แน่ใจว่าได้แบ่งรายการข้อมูลออกเป็นตารางที่
เหมาะสม สิ่งที่ Normalization ทำไม่ได้ก็คือการตรวจสอบว่ามีข้อมูลที่ถูกต้องทั้งหมดแล้วตั้งแต่เริ่ม
การใช้กฎ Normalization ไปตามลำดับในแต่ละขั้นเพื่อตรวจสอบให้แน่ใจว่าการ
ออกแบบตรงกับสิ่งที่รู้จักกันว่าเป็น “รูปแบบปกติ” โดยรูปแบบปกติที่ยอมรับกันอย่างกว้างขวางมี
อยู่ 5 แบบ นั่นคือรูปแบบปกติที่หนึ่งจนถึงรูปแบบปกติที่ห้า ในที่นี้จะกล่าวถึงรูปแบบปกติในสาม
รูปแบบแรก เนื่องจากเป็นสิ่งที่ต้องมีสำหรับการออกแบบฐานข้อมูลส่วนมาก
รูปแบบปกติแบบที่หนึ่งระบุว่าทุกตำแหน่งที่แถวและคอลัมน์ตัดกันในตาราง
ต้องเก็บค่าเพียงค่าเดียว ไม่ใช่รายการของค่า ตัวอย่างเช่น เราไม่สามารถมีเขตข้อมูลชื่อ 'ราคา' ไว้
เก็บราคามากกว่าราคาเดียวได้ ถ้าลองนึกว่าตำแหน่งที่ตัดกันของแถวและคอลัมน์คือเซลล์ แต่ละ
เซลล์ต้องเก็บค่าเพียงค่าเดียวเท่านั้น
2.
รูปแบบปกติที่สอง
รูปแบบปกติที่สองบังคับว่าคอลัมน์แต่ละคอลัมน์ที่ไม่ใช่คีย์ต้องขึ้นกับคีย์หลัก
ทั้งหมด ไม่ใช่เพียงบางส่วนของคีย์หลัก กฎนี้ใช้เมื่อมีคีย์หลักซึ่งประกอบด้วยคอลัมน์มากกว่าหนึ่ง
คอลัมน์ ตัวอย่างเช่น สมมติว่ามีตารางซึ่งมีคอลัมน์ต่อไปนี้ โดยที่ ID ใบสั่งซื้อและหมายเลข
ผลิตภัณฑ์รวมกันเป็นคีย์หลัก
หมายเลขผลิตภัณฑ์ (คีย์หลัก)
ชื่อผลิตภัณฑ์
การออกแบบนี้ละเมิดรูปแบบปกติที่สอง เนื่องจากชื่อผลิตภัณฑ์ขึ้นอยู่กับ หมายเลขผลิตภัณฑ์ แต่ไม่ขึ้นกับ ID ใบสั่งซื้อ ดังนั้นจึงไม่ขึ้นกับคีย์หลักทั้งหมด ต้องเอาชื่อ ผลิตภัณฑ์ออกจากตารางเพราะเป็นของตารางอื่น (ผลิตภัณฑ์)
3. รูปแบบปกติที่สาม
รูปแบบปกติที่สามบังคับว่าไม่เพียงแต่คอลัมน์ที่ไม่ใช่คีย์ต้องขึ้นกับคีย์หลัก ทั้งหมดเท่านั้น แต่คอลัมน์ที่ไม่ใช่คีย์ต้องเป็นอิสระจากกันด้วย
อธิบายได้อีกอย่างว่า แต่ละคอลัมน์ที่ไม่ใช่คีย์ต้องขึ้นกับคีย์หลักทั้งหมดและ ต้องขึ้นกับคีย์หลักอย่างเดียวเท่านั้น ตัวอย่างเช่น สมมติว่าคุณมีตารางซึ่งมีคอลัมน์ต่อไปนี้ คือ
หมายเลขผลิตภัณฑ์ (คีย์หลัก)
ชื่อ
ราคาขายปลีก
ส่วนลด
สมมติว่าส่วนลดขึ้นกับราคาขายปลีก ตารางนี้ละเมิดรูปแบบปกติที่สาม
เนื่องจากคอลัมน์ที่ไม่ใช่คีย์คือส่วนลดขึ้นกับราคาขายปลีกซึ่งไม่ใช่คอลัมน์คีย์ ความเป็นอิสระของ
คอลัมน์หมายความว่าเราควรสามารถเปลี่ยนแปลงคอลัมน์ที่ไม่ใช่คีย์ได้โดยไม่มีผลต่อคอลัมน์อื่น
ถ้าคุณเปลี่ยนค่าในเขตข้อมูลราคาขายปลีกแล้ว ส่วนลดก็จะเปลี่ยนตามด้วย ดังนั้นจึงละเมิดกฎ ใน
กรณีนี้ควรย้ายส่วนลดไปอยู่อีกตารางหนึ่งซึ่งมีราคาขายปลีกเป็นคีย์อยู่
0 ความคิดเห็น:
แสดงความคิดเห็น