ฉันควรปรับฐานข้อมูลของฉันให้เป็นปกติหรือไม่?

การสร้างมาตรฐานในโลกแห่งความเป็นจริง

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

ถึงเวลาที่จะท้าทายความจริงที่ว่า บางครั้งก็ OK เพื่อ denormalize ฐานข้อมูลของคุณ!

เมื่อไหร่ที่คุณควรปรับให้เข้ากับ?

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

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

เหตุผลที่ดีที่จะไม่ทำให้เป็นปกติ

ที่กล่าวว่ามีเหตุผลที่ดีที่จะไม่ทำให้ฐานข้อมูลของคุณเป็นแบบปกติ ลองดูที่ไม่กี่:

  1. การเข้าร่วมมีราคาแพง การสร้างฐานข้อมูลของคุณตามปกติจะเกี่ยวข้องกับการสร้างตารางมากมาย ในความเป็นจริงคุณสามารถตัดกับสิ่งที่คุณคิดว่าควรเป็นแบบสอบถามง่ายๆที่ครอบคลุมห้าหรือ 10 ตาราง ถ้าคุณเคยพยายามเข้าร่วมโต๊ะห้าโต๊ะคุณก็รู้ว่าการทำงานเป็นไปตามหลักการ แต่ก็ช้าลงอย่างมากในทางปฏิบัติ หากคุณกำลังสร้างแอพพลิเคชันบนเว็บที่อาศัยการสืบค้นหลายรายการร่วมกับตารางขนาดใหญ่คุณอาจพบว่าตัวเองคิดว่า "ถ้าฐานข้อมูลนี้ไม่ได้รับการปรับให้เป็นแบบอย่าง!" เมื่อคุณได้ยินความคิดในหัวของคุณว่าเป็นเวลาที่เหมาะสม พิจารณา denormalizing ถ้าคุณสามารถติดข้อมูลทั้งหมดที่ใช้โดยแบบสอบถามนั้นลงในตารางเดียวโดยไม่ส่งผลต่อความสมบูรณ์ของข้อมูลของคุณให้หมดไปเลย! เป็นกบฏและ denormalize ฐานข้อมูลของคุณ คุณจะไม่มองย้อนกลับไป!
  2. การออกแบบตามปกติเป็นเรื่องยาก หากคุณกำลังทำงานกับ สคีมา ฐานข้อมูลที่ซับซ้อนคุณอาจพบว่าคุณกำลังโผงศีรษะกับตารางเหนือความซับซ้อนของการทำให้เป็นบรรทัดฐาน ถ้าคุณใช้เวลาทั้งวันพยายามหาวิธีย้ายไปใช้รูปแบบปกติที่สี่คุณอาจจะใช้การทำให้เป็นเรื่องปกติมากเกินไป ย้อนกลับไปและถามตัวเองว่ามันคุ้มค่าหรือไม่?
  1. รวดเร็วและสกปรกควรจะรวดเร็วและสกปรก ถ้าคุณเพิ่งพัฒนาต้นแบบเพียงแค่ทำสิ่งที่ได้ผลเร็ว ๆ จริงๆ. ไม่เป็นไร. การพัฒนาแอพพลิเคชันอย่างรวดเร็วมีความสำคัญมากกว่าการออกแบบที่หรูหรา อย่าลืมกลับไปดูอย่างรอบคอบในการออกแบบของคุณเมื่อคุณพร้อมที่จะก้าวไปไกลกว่าขั้นตอนการสร้างต้นแบบ ราคาที่คุณจ่ายสำหรับการออกแบบฐานข้อมูลอย่างรวดเร็วและสกปรกคือคุณอาจต้องทิ้งมันและเริ่มต้นใหม่เมื่อถึงเวลาที่จะสร้างสำหรับการผลิต
  2. ถ้าคุณกำลังใช้ฐานข้อมูล NoSQL การทำ normalization แบบเดิมไม่เป็นที่น่าพอใจ แทนที่จะออกแบบฐานข้อมูลของคุณโดยใช้แบบจำลอง ฐาน ซึ่งอยู่ไกลอภัยมากขึ้น นี่เป็นประโยชน์เมื่อคุณจัดเก็บข้อมูลที่ไม่มีโครงสร้างเช่นอีเมลรูปภาพหรือวิดีโอ

บางคำเตือน

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

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