คุณพบพื้นฐานทางทฤษฎีใดบ้างสำหรับการออกแบบฐานข้อมูล "รูปแบบพื้นที่เก็บข้อมูล" ฉันคาดเดาไม่ได้ มันเป็นเลเยอร์ของความซับซ้อนที่วางอยู่บนสถานที่ปลอม: "เลเยอร์คงอยู่" เป็นสิ่งที่คุณต้องแยกออกจาก จากสิ่งที่ฉันสามารถบอกได้มันเล่นกับการเขียนโปรแกรมอย่างกว้างขวางไม่รู้หลักการออกแบบเชิงสัมพันธ์และ panders ถึงศูนย์กลางของการออกแบบ OO ของแอปพลิเคชัน แต่มันไม่ได้พิสูจน์ให้เห็นถึงการดำรงอยู่ของเหตุผลเหตุผลทางทฤษฎีเพียงอย่างเดียว
One True Path to to database ออกแบบไม่เปลี่ยนแปลงใน 30 ปี: วิเคราะห์ข้อมูล ค้นหากุญแจและข้อ จำกัด และความสัมพันธ์แบบตัวต่อตัว ออกแบบตารางของคุณตามแบบฟอร์มปกติของ Boyce-Codd ใช้มุมมองและขั้นตอนการจัดเก็บเพื่ออำนวยความสะดวกในการเข้าถึงข้อมูล
แม้ว่าจะไม่มีใครรักก็ตาม SQL DBMS จะให้เลเยอร์การแยกที่ดีกว่าสิ่งที่โปรแกรมเมอร์สามารถให้ได้ เป็นความจริงที่ว่าเมื่อฐานข้อมูลเปลี่ยนแปลง SQL ที่ใช้ในการเข้าถึงอาจต้องเปลี่ยน แต่ทราบว่าที่จริงโดยไม่คำนึงถึงหรือไม่ว่ามีชั้นไกล่เกลี่ย ตราบใดที่แอปพลิเคชันใช้มุมมองและโพรซีเดอร์ที่เก็บไว้เพื่อเข้าถึง DBMS เครื่องมือทางวิศวกรรม SQL ทั่วไปจะระบุเมื่อการเปลี่ยนแปลงในฐานข้อมูลพื้นฐานทำให้มุมมองเหล่านั้นและขั้นตอนการจัดเก็บนั้นใช้ไม่ได้
แน่นอนว่าความท้าทายอยู่ที่นั้น เลเยอร์การไกล่เกลี่ยให้ภาพลวงตาของการแยกและความสะดวกสบายให้กับโปรแกรมเมอร์ของการเขียนโค้ดซึ่งเขารู้วิธีการทำ การเรียนรู้การออกแบบฐานข้อมูลและ SQL ต้องการการเรียนรู้สิ่งใหม่ คนส่วนใหญ่ค่อนข้างจะตายมากกว่าที่คิดและประสบความสำเร็จมากมาย
บางคนในทีมของคุณจะสงสัยว่าการเขียน SQL เพื่อสนับสนุน 200 คลาสของคุณนั้นมีงานมากมาย ไม่ต้องสงสัยเลย แต่อย่างน้อยมันก็เป็นงานที่มีประโยชน์ ถ้าคุณออกแบบฐานข้อมูลด้วยการเลียนแบบการออกแบบ OO ของคุณคุณจะต้องทำงานมาก ๆ โดยส่วนมากจะไร้ประโยชน์และเอาชนะส่วนที่ DBMS ให้มา
ตัวอย่างเช่นคุณพิจารณาไตร่ตรองหน่วยงานในฐานข้อมูล (เช่นฉันคิดว่าเป็นตารางหรือตาราง) หน่วยของการทำงานเป็นตัวในการให้บริการของ DBMS นี้: begin transaction
ฐานข้อมูลการปรับปรุง ... commit transaction
... ไม่มีสิ่งใดที่จะเป็นโมเดลนอกจากการแม็พคลาสของคุณกับตารางฐานข้อมูลใน SQL
คำถามของคุณโพสต์เมื่อ 4 ปีที่ผ่านมา ฉันกำลังตอบเพราะเป็น "อัปเดต" ไม่ทางใดก็ทางหนึ่งซึ่งบ่งบอกว่ามันยังเป็นที่สนใจของใครบางคน ฉันหวังว่าคำตอบของฉันจะกระตุ้นให้ผู้อ่านใช้ทฤษฎีเชิงสัมพันธ์ขั้นพื้นฐานกับปัญหาแทนที่จะใช้วิธีแก้ปัญหาที่ไม่มีจุดหมาย