Skip to main content

มรดกเดี่ยวคืออะไร?

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

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

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

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

ปัญหาสองประเภทอาจทำให้การสืบทอดตารางเดี่ยวไม่ทำงานอย่างถูกต้องหนึ่งคือถ้าวัตถุแสดงค่า NULLหากสิ่งนี้เกิดขึ้นค่า NULL จะถูกโรยด้วยข้อมูลที่มีค่าในตารางการสืบทอดซึ่งหมายความว่าตารางจะแสดงข้อมูลที่เกี่ยวข้อง แต่ทุก ๆ สองสามบรรทัดหรือบ่อยครั้งที่ค่า NULL เกิดขึ้นคำว่า "null" จะปรากฏขึ้นใกล้หรืออยู่ใต้ค่าอื่น

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