ฉันทำบุ๊กมาร์กโพสต์ในบล็อกของ Phil Factor และ Normalization และ 'Anima notitia copia'ในวันนี้เนื่องจากมันสรุปอย่างเป็นกรณีและต่อต้านการทำให้ข้อมูลบางประเภทกลับสู่ปกติ รันเคียวรีต่อไปนี้บนอินสแตนซ์ SQL และดูว่าคุณเห็นด้วยหรือไม่
SELECT * FROM sys.syslanguages
SQL ช่วยให้คุณสร้างฐานข้อมูลเชิงสัมพันธ์ อย่างไรก็ตามแม้ว่าจะมีกลิ่นไม่ดี แต่ก็ไม่มีอาชญากรรมที่จะทำสิ่งที่ไม่เกี่ยวข้องกับฐานข้อมูล SQL เพียงแค่ตราบใดที่จำเป็นและคุณสามารถบอกความแตกต่างได้ ไม่เพียงแค่นั้น แต่ยังเฉพาะในกรณีที่คุณตระหนักถึงความเสี่ยงและผลกระทบ
คุณพูดถึงว่าไฟล์ XML มี "ข้อมูลเพิ่มเติมเกี่ยวกับข้อมูล" มีประโยชน์ในการสร้างแบบจำลองข้อมูลเมตาที่อยู่ในฐานข้อมูลเชิงสัมพันธ์เพื่อวัตถุประสงค์ในการซักถามหรือไม่? ถ้าเป็นเช่นนั้นอาจมีกรณีสำหรับการแยกข้อมูลที่เกี่ยวข้องและคงอยู่ XML ที่เหลือเป็นประเภทเอกสาร XML
... หากคุณผ่านสตริง JSON หรือ XML และจำเป็นต้องเก็บไว้ในฐานข้อมูลสิ่งที่คุณต้องทำคือถามตัวเองในบทบาทของ Anima notitia copia (วิญญาณของฐานข้อมูล) 'ฉันมี สนใจเนื้อหาของรายการข้อมูลนี้หรือไม่? ' หากคำตอบคือ 'ไม่!' หรือ 'nequequam! จากนั้นมันก็เป็นค่าอะตอมมิกอย่างไรก็ตามมันอาจจะซับซ้อน
ข้อโต้แย้งของ Phil Factor คือฟิลด์ที่ไม่มีความสัมพันธ์ในฐานข้อมูลเชิงสัมพันธ์เป็นที่ยอมรับอย่างสมบูรณ์หากฟิลด์นั้นถูกปฏิบัติเสมือนเป็นอะตอมมิเช่นนั้นจะไม่เปลี่ยนแปลงหรือเมื่อมันเปลี่ยนแปลงฟิลด์ทั้งหมดไม่ใช่ส่วนที่เป็นส่วนประกอบ ส่วนขยายตามธรรมชาติของสิ่งนี้คือหากเอกสารของคุณมีองค์ประกอบที่คุณสนใจอาจมีค่าในการใช้แบบจำลองเชิงสัมพันธ์กับองค์ประกอบเหล่านั้น
เกี่ยวข้องกับคำถาม แต่โดยหลักแล้วสำหรับวลีนั้นหนึ่งคำพูดล่าสุดจาก Phil:
โดยธรรมชาติฉันไม่เคยสร้างฐานข้อมูลที่ Codd จะขมวดคิ้วอย่างแน่นอน แต่บริเวณรอบ ๆ นั้นเป็นส่วนต่อประสานและตัวดึงข้อมูลที่ฉันเขียนซึ่งทำให้เกิดความยุ่งเหยิงในกลุ่ม Normalisation
เราทุกคนไม่ได้!