يعمل التوحيد على تحسين الجداول في أنظمة إدارة قواعد البيانات لتوفير ما يعرف بنماذج التوحيد: مجموعات من القواعد التي تحكم كيفية تنظيم الخصائص داخل الجدول. تستند هذه القواعد إلى حد كبير إلى العلاقات بين الخصائص (الأعمدة)، بما في ذلك المفاتيح المستخدمة لتمييز كل صف عن الآخر.
يساعد توحيد قاعدة البيانات—الذي يُطلق عليه أحيانًا توحيد البيانات—بشكل أساسي الشركات والمؤسسات على تنظيم كميات كبيرة من البيانات المعقدة والمترابطة والديناميكية والاستعلام عنها والحفاظ عليها بشكل أكثر فعالية. وعلى الرغم من أن المؤسسات تنتج حاليًا البيانات وتخزنها على نطاق غير مسبوق، فإن ضرورة توحيد قواعد البيانات ليست جديدة. فهي تسبق التخزين السحابي وحتى اختراع مستودعات البيانات.
منذ الستينيات، واجهت الشركات صعوبة في إدارة مجموعات البيانات الكبيرة. وفي سبعينيات القرن الماضي، اقترح Edgar F. Codd، عالم الرياضيات بشركة IBM المعروف بأبحاثه البارزة التي طرحت قواعد البيانات العلائقية، أن عملية توحيد قواعد البيانات يمكن أن تمنع الارتباطات "غير المرغوب فيها" بين الخصائص (الأعمدة) والمشاكل التي يمكن أن تنتج عنها.
بمعنى آخر، عند ترابط سجلات البيانات ببعضها في هيكل قاعدة بيانات، قد تؤدي التغييرات في قيم أو صفوف فردية بجدول كبير ومعقد إلى عواقب غير مقصودة—مثل عدم تناسق البيانات وفقدان البيانات. صُممت عملية توحيد قواعد البيانات لتقليل مثل هذه المخاطر.
تتضمن مزايا توحيد قواعد البيانات ما يلي:
عند تفكيك (أو تقسيم) الجداول الكبيرة والأكثر تعقيدًا إلى جداول أصغر وأبسط، تصبح عملية تغيير قاعدة البيانات أسهل وأقل عرضة للخطأ، وتقتصر التغييرات على الجداول الأصغر للبيانات ذات الصلة.
في حين أن تكرار البيانات المتعمد يمكن أن يساعد على تحسين جودة البيانات، وأمانها وتوافرها، فإن تكرار البيانات غير المتعمد ينتج عن الأنظمة التي تنشئ بيانات مكررة عن غير قصد، ما يؤدي إلى انعدام الكفاءة.
يمكن أن يؤدي تقليل البيانات المكررة من خلال توحيد قواعد البيانات إلى خفض تكاليف تخزين البيانات . وهذا مهم بشكل خاص لبيئات السحابة حيث يعتمد التسعير في أغلب الأحيان على حجم تخزين البيانات المستخدم.
يمكن أن يؤدي تقليل تكرار البيانات من خلال التوحيد أيضًا إلى استعلامات بيانات أسرع حيث إن قلة التكرار غالبًا ما تتطلب قدرًا أقل من معالجة البيانات في أثناء عمليات البحث.
يمكن أن يمنع توحيد هياكل البيانات ثلاثة أنواع رئيسية من الحالات الشاذة:
حالات الإدراج الشاذة: يحدث شذوذ الإدراج عند تعذر إدراج سجل بيانات في جدول لأنه يفتقد القيم المطلوبة لعمود واحد أو أكثر في الجدول.
حالات الحذف الشاذة: يحدث شذوذ الحذف عندما يؤدي حذف سجل إلى حذف غير مقصود لبيانات مهمة مضمنة في ذلك السجل.
حالات التحديث الشاذة: يحدث شذوذ التحديث عند تحديث مثيل من البيانات في موقع واحد في قاعدة البيانات من دون تحديثه في المواقع الأخرى المخزن فيها قيمة تلك البيانات، ما يؤدي إلى عدم اتساق البيانات.
في قواعد البيانات العلائقية، يكون المفتاح عمودًا أو مجموعة مرتبة من الأعمدة المستخدمة لتحديد صفوف البيانات في الجدول. تنشئ المفاتيح في النماذج العلائقية أيضًا ارتباطات بين الجداول ذات الصلة. تدعم هذه الإمكانات نجاح استعلامات قاعدة بيانات SQL وفعاليتها. تتضمن المفاتيح التي تظهر بشكل بارز في قواعد توحيد قواعد البيانات ما يلي:
المفتاح الأساسي هو عمود أو أعمدة في جدول قاعدة بيانات تضم قيمًا تعمل كمعرفات فريدة لكل صف أو سجل. على سبيل المثال، يمكن أن يكون عمود معرّف الطالب مفتاحًا أساسيًا في جدول معلومات الطلاب. تتمثل خصائص المفاتيح الأساسية في أنها لا توجد بها قيم فارغة، ولا قيم مكررة، وقد تتكون إما من أعمدة فردية أو أعمدة متعددة.
تسمى المفاتيح التي تتكون من عمودين أو أكثر بالمفاتيح المركبة. عندما تكون المفاتيح الأساسية مفاتيح مركبة، يمكن تسميتها مفاتيح أساسية مركبة.
المفتاح المرشح هو عمود أو مجموعة من الأعمدة التي تتميز بخصائص المفتاح الأساسي ولكن لم تُصنف كمفتاح أساسي.
يشير المفتاح الخارجي في أحد الجداول إلى مفتاح أساسي معين في جدول آخر من أجل تحديد علاقة بين الجداول. عند تقسيم الجداول الكبيرة إلى جداول أصغر في أثناء عملية التوحيد، تنشئ المفاتيح الخارجية والمفاتيح الأساسية علاقة بين الجداول الجديدة.
تتكون المفاتيح الفائقة، على الرغم من تشابهها مع المفاتيح الأساسية المركبة، من أعمدة أكثر مما هو ضروري لتمييز كل سجل عن الآخر.
تستند العديد من قيود توحيد قواعد البيانات إلى العلاقات (المعروفة أيضًا باسم الارتباطات) بين المفاتيح الأساسية والأعمدة التي لا تُعد مفاتيح أساسية ولا مرشحة. وتعرف هذه الأعمدة باسم الخصائص غير الرئيسية أو الخصائص غير الأساسية.
تعرف العلاقات بين الخصائص في قواعد البيانات عندما تحدد إحدى الخصائص (المحدد) قيمة إحدى الخصائص الأخرى بالارتباطات الوظيفية. تتضمن أنواع الارتباطات الوظيفية بين الخصائص الارتباط الجزئي والارتباط الانتقالي والارتباط متعدد القيم وارتباط الضم. يمكن فهم هذه العلاقات بشكل أفضل عند مناقشتها في سياق مجموعات قواعد التوحيد أو نماذج التوحيد ذات الصلة.
يتضمن تنفيذ عملية التوحيد في نماذج البيانات تصميم الجداول لتتوافق مع مستوى واحد أو أكثر من مستويات التوحيد، والمعروفة أيضًا باسم نماذج التوحيد. تتضمن النماذج الشائعة ما يلي:
يتطلب نموذج التوحيد الأول، ويمثل المعايير الأساسية لتوحيد قواعد البيانات، أن يتضمن مخطط جدول قاعدة البيانات مفتاحًا أساسيًا مع استبعاد التكرار بين الأعمدة. ولنكون أكثر تحديدًا، يجب ألا يحتوي الجدول في نموذج التوحيد الأول على حقول تضم مصفوفات من القيم—على سبيل المثال، خلية واحدة تحتوي على ثلاثة أسماء مختلفة—كما يجب ألا يتضمن مجموعات متكررة، وهي أعمدة مختلفة تخزن بيانات من النوع نفسه.
لفهم نموذج التوحيد الأول بشكل أفضل، دعونا نستخدم مجموعة الأعمدة التالية كمثال:1
rec_num | lname | fname | bdate | anniv | البريد الإلكتروني | الطفل 1 | الطفل 2 | الطفل 3 |
تشكل الأعمدة جدولاً يضم مجموعة من الآباء والأمهات، بما في ذلك أسماؤهم وتواريخ ميلادهم وتواريخ زواجهم وعناوين بريدهم الإلكتروني وأسماء أطفالهم.
هذا الجدول يخالف نموذج التوحيد الأول لأنه يحتوي على ثلاثة أعمدة منفصلة تخزن النوع نفسه من المعلومات: أسماء الأطفال. في هذه الحالة على وجه الخصوص، يمكن أن يفتح هيكل الجدول الباب أمام أخطاء الإدراج. فمثلاً، على أرض الواقع، العديد من الآباء لديهم أقل من ثلاثة أطفال.
في مثال الجدول هذا، لا يمكن إضافة سجلات هؤلاء الآباء إلى الجدول. بالإضافة إلى ذلك، فإن الاستعلام في هذا الجدول عن اسم الطفل سيكون غير فعال، ويتطلب البحث عن البيانات في ثلاثة أعمدة مختلفة في كل صف.
يتطلب تطبيق نموذج التوحيد الأول للبيانات الموجودة في الجدول فصل الجدول الأصلي إلى جدولين. سيتضمن أحد الجداول معظم خصائص الجدول الأصلي، بينما يركز الآخر على الأطفال.
الجدول 1
rec_num | lname | fname | bdate | anniv | البريد الإلكتروني |
الجدول 2
rec_num child_name
في هذا المثال، تظل الجداول الجديدة مرتبطة من خلال العمود "rec_num"، وهو المفتاح الأساسي في الجدول 1 ويشار إليه بعمود "rec_num" في الجدول 2، والذي يعمل كمفتاح خارجي.
في حين أن الالتزام بنموذج التوحيد الأول قد لا يقلل من البيانات الزائدة على الحاجة (حيث ستظهر قيم "rec_num" في صفوف متعددة من الجدول 2 عندما يكون لدى الآباء أكثر من طفل واحد)، فإن حذف المجموعات المتكررة يمكن أن يجعل الاستعلامات أكثر بساطة.
في نموذج التوحيد الثاني، لا توجد أي خصائص غير رئيسية لها ارتباط جزئي مع المفتاح الأساسي في الجدول. بمعنى آخر، إذا كان المفتاح الأساسي مفتاحًا مركبًا، فيجب أن تعتمد الخصائص غير الرئيسية على كل عمود في هذا المفتاح المركب.
على سبيل المثال، لنفترض أن هناك جدول مخزون يحتوي على سجلات لكميات قطع غيار معينة مخزنة في مستودعات معينة. يوضح الشكل التالي خصائص جدول المخزون.2
قطع الغيار | المستودع | الكمية | عنوان_المستودع |
في هذا المثال، تشكل أعمدة "قطع الغيار" و"المستودع" مفتاحًا أساسيًا مركبًا. ومع ذلك، يعتمد "عنوان_المستودع" فقط على قيمة "المستودع"، ومن ثَم فإن هذا الجدول يخالف نموذج التوحيد الثاني.
هذا الجدول عرضة أيضًا لتكرار البيانات، حيث تُدرج قيمة عنوان_المستودع في كل مرة يظهر فيها سجل لقطعة غيار من المستودع نفسه في الجدول. وهذا يزيد من خطر حدوث أخطاء في التحديث في حال تحديث العنوان في صف واحد دونًا عن الصفوف الأخرى. وقد يحدث خطأ الحذف أيضًا إذا توقف أي مستودع عن تخزين قطع الغيار—ففي حال حذف سجلات تلك القطع، سيُحذف عنوان المستودع كذلك.
للالتزام بنموذج التوحيد الثاني وتقليل احتمالية حدوث أخطاء، يمكن تقسيم البيانات بين جدولين جديدين:
الجدول 1
قطع الغيار | المستودع | الكمية |
الجدول 2
المستودع عنوان_المستودع
يفي الجدول في نموذج التوحيد الثالث بكل من نموذجي التوحيد الأول والثاني مع تجنب المواقف التي تعتمد فيها الخصائص غير الرئيسية على خصائص أخرى غير رئيسية بدلاً من المفاتيح الأساسية. عندما تعتمد الخصائص غير الرئيسية على خصائص أخرى غير رئيسية، يعرف هذا باسم الارتباط الانتقالي—وهو يخالف نموذج التوحيد الثالث.
انظر إلى الجدول التالي الذي يضم معلومات الموظفين:3
emp_num | emp_fname | emp_lname | dept_num | dept_name |
0200 | David | Brown | D11 | نظام التصنيع |
0320 | Ramlal | Mehta | E21 | دعم البرمجيات |
0220 | Jennifer | Lutz | D11 | نظام التصنيع |
في هذا الجدول، يكون المفتاح الأساسي هو العمود "emp_num". ولكن العمود "dept_name" يعتمد على العمود "dept_num"، وهو من الخصائص غير الرئيسية. لذلك، لا يفي الجدول بنموذج التوحيد الثالث ويزيد من خطر حدوث أخطاء مثل حالات التحديث الشاذة—ففي حال تغيير اسم القسم، مثل "نظام التصنيع"، سيتعين تحديثه في أكثر من صف واحد ضمن مخطط الجدول الحالي.
يمكن أن يؤدي تنظيم البيانات في نموذج توحيد ثالث ضمن قاعدة بيانات موحدة إلى منع مثل هذه الأخطاء. في هذه الحالة، ستستلزم هذه العملية هيكلة البيانات في ثلاثة جداول منفصلة: EMPLOYEE وDEPARTMENT وEMPLOYEE_DEPARTMENT 4
جدول EMPLOYEE
emp_num | emp_fname | emp_lname |
0200 | David | Brown |
0320 | Ramlal | Mehta |
0220 | Jennifer | Lutz |
جدول DEPARTMENT
dept_num | dept_name |
D11 | نظام التصنيع |
E21 | دعم البرمجيات |
جدول EMPLOYEE_DEPARTMENT
dept_num | emp_num |
D11 | 0200 |
D11 | 0220 |
E21 | 0320 |
نموذج بويس-كود للتوحيد، أو BCNF، هو نموذج توحيد يُعد بمنزلة نسخة أكثر صرامة أو أقوى من نموذج التوحيد الثالث. يتطلب BCNF استخدام المفاتيح الفائقة.
يكون الجدول في نموذج التوحيد الرابع إذا لم تكن به ارتباطات متعددة القيم. تحدث الارتباطات متعددة القيم عندما تكون قيم عمودين أو أكثر مستقلة عن بعضها ومعتمدة فقط على المفتاح الأساسي.
يركز أحد الأمثلة التي يُستشهد بها بشكل شائع في البرامج التعليمية على جداول الموظفين التي تسرد المهارات واللغات. يمكن أن يتمتع الموظف بالعديد من المهارات ويتحدث لغات متعددة. ومن ثَم توجد علاقتان: واحدة بين الموظفين والمهارات والأخرى بين الموظفين واللغات.
لا يكون الجدول في نموذج التوحيد الرابع إذا كان يمثل كلتا العلاقتين. سيتطلب تحويل البيانات إلى نموذج التوحيد الرابع هيكلتها في جدولين—أحدهما لمهارات الموظفين والآخر للغات.
يُعد نموذج التوحيد الخامس أعلى مستويات التوحيد، وهو معيار يركز على ارتباط الضم. في ارتباط الضم، بعد تقسيم الجدول إلى جداول أصغر، من الممكن إعادة تكوين الجدول الأصلي عن طريق إعادة تجميع الجداول الجديدة معًا مرة أخرى—كل ذلك من دون فقد أي بيانات أو إنشاء صفوف جديدة من البيانات عن طريق الخطأ. فهو يشبه لغز البازل المكتمل الذي، عند تفكيكه، يمكن إعادة تجميعه في شكله الأصلي.
في نموذج التوحيد الخامس، يجب تقسيم الجدول إلى جداول أصغر فقط عندما يكون ارتباط الضم قابلاً للتحقيق. لكن إذا أدت محاولات إعادة تكوين الجدول الأصلي من الجداول الأصغر عن غير قصد إلى إنشاء جدول مختلف قليلاً، فلا ينبغي تفكيك الجدول الأصلي. بالعودة إلى تشبيه لغز البازل، سيكون الأمر أشبه بإعادة تجميع اللغز مرة أخرى، لتكتشف أن قطعة ما مفقودة أو أن قطعة إضافية قد ظهرت.
على الرغم من كل مزاياها، فإن عملية توحيد قواعد البيانات تأتي مع بعض التنازلات. على سبيل المثال، قبل عملية التوحيد، لن يكون على المستخدم الذي يسعى للحصول على بيانات معينة سوى الاستعلام في جدول واحد فقط. أما إذا كانت قاعدة البيانات تحتوي على جداول أكثر بعد عملية التوحيد، فقد يجد المستخدم نفسه مضطرًا إلى الاستعلام في جداول متعددة—وهي عملية قد تكون أبطأ وأكثر تكلفة.
بالإضافة إلى ذلك، في حين أن عملية التوحيد تجعل الجداول الفردية أكثر بساطة، إلا أنه قد تزيد من تعقيد قاعدة البيانات بشكل عام، ما يتطلب خبرة كبيرة من جانب مصممي قواعد البيانات ومديريها لضمان التنفيذ السليم.
صمم استراتيجية بيانات تقضي على صوامع البيانات، وتقلل من التعقيدات وتحسّن جودة البيانات للحصول على تجارب استثنائية للعملاء والموظفين.
يتيح لك watsonx.data توسيع نطاق التحليلات والذكاء الاصطناعي باستخدام جميع بياناتك، أينما كانت، من خلال مخزن بيانات مفتوح وهجين ومُدار.
استفِد من قيمة بيانات المؤسسة باستخدام IBM Consulting، من خلال بناء مؤسسة تعتمد على الرؤى التي تقدِّم ميزة للأعمال.
1 "نموذج التوحيد الأول." وثائق IBM، Informix Servers. 19 نوفمبر 2024.
2، 3، 4 "التوحيد في تصميم قواعد البيانات". وثائق IBM، Db2 for z/OS. 22 يناير 2025.