1.9.8 การใช้กฎ Normalization

1.9.8 การใช้กฎ Normalization


เราสามารถใช้กฎ Normalization ข้อมูล (บางครั้งเรียกแค่ว่า กฎ Normalization) ใน ขั้นต่อไปของการออกแบบ การใช้กฎเหล่านี้เพื่อดูว่าตารางมีโครงสร้างที่ถูกต้องหรือไม่ กระบวนการใช้กฎเหล่านี้กับการออกแบบฐานข้อมูลเรียกว่าการ Normalizing ฐานข้อมูล หรือ Normalization

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

การใช้กฎ Normalization ไปตามลำดับในแต่ละขั้นเพื่อตรวจสอบให้แน่ใจว่าการ ออกแบบตรงกับสิ่งที่รู้จักกันว่าเป็น “รูปแบบปกติ” โดยรูปแบบปกติที่ยอมรับกันอย่างกว้างขวางมี อยู่ 5 แบบ นั่นคือรูปแบบปกติที่หนึ่งจนถึงรูปแบบปกติที่ห้า ในที่นี้จะกล่าวถึงรูปแบบปกติในสาม รูปแบบแรก เนื่องจากเป็นสิ่งที่ต้องมีสำหรับการออกแบบฐานข้อมูลส่วนมาก

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

2. รูปแบบปกติที่สอง 
รูปแบบปกติที่สองบังคับว่าคอลัมน์แต่ละคอลัมน์ที่ไม่ใช่คีย์ต้องขึ้นกับคีย์หลัก ทั้งหมด ไม่ใช่เพียงบางส่วนของคีย์หลัก กฎนี้ใช้เมื่อมีคีย์หลักซึ่งประกอบด้วยคอลัมน์มากกว่าหนึ่ง คอลัมน์ ตัวอย่างเช่น สมมติว่ามีตารางซึ่งมีคอลัมน์ต่อไปนี้ โดยที่ ID ใบสั่งซื้อและหมายเลข ผลิตภัณฑ์รวมกันเป็นคีย์หลัก 
ID ใบสั่งซื้อ (คีย์หลัก)
หมายเลขผลิตภัณฑ์ (คีย์หลัก)
ชื่อผลิตภัณฑ์

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

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

อธิบายได้อีกอย่างว่า แต่ละคอลัมน์ที่ไม่ใช่คีย์ต้องขึ้นกับคีย์หลักทั้งหมดและ ต้องขึ้นกับคีย์หลักอย่างเดียวเท่านั้น ตัวอย่างเช่น สมมติว่าคุณมีตารางซึ่งมีคอลัมน์ต่อไปนี้ คือ
หมายเลขผลิตภัณฑ์ (คีย์หลัก)
ชื่อ
ราคาขายปลีก
ส่วนลด

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

0 ความคิดเห็น:

แสดงความคิดเห็น