Database Schema

مقال يستعرض نموذج قاعدة البيانات العلائقية Relational Database Schema مرورًا بخطوات ER-Mapping وصولًا إلى مقارنة بين ER-Model و Database Schema

نموذج قواعد البيانات Database Schema

يُعتبر تصميم قاعدة البيانات الخطوة الأساسية لضمان إدارة فعالة وتنظيم مُحكم للمعلومات .هنالك مفاهيم مهمة يجب على المطورين ومهندسي البرمجيات فهمها بعمق و من بين هذه المفاهيم الـ Database Schema، فما هو والعلاقة بينه وبين الـ ER-Model…!!!

نموذج قواعد البيانات Database Schema

في مراحل التصميم الأولية لقواعد البيانات، نستخدم نموذجين أساسيين هما نموذج علاقات الكيانات (ER-Model) ونموذج قواعد البيانات (Database Schema). لكلٍّ منهما غرض مختلف، لكنهما أساسيان لبناء قاعدة بيانات فعّالة وعملية. في هذا المقال، سنتعرف على نموذج قاعدة البيانات العلائقية (Relational Database Schema)، مرورًا بخطوات تحويل النموذج المفاهيمي (ER-Mapping)، وصولًا إلى مقارنة الفروق الجوهرية بين ER-Model و Database Schema لنبدأ...

في هذا المقال نتعرف على:



ماهو نموذج قواعد البيانات Database Schema

Database Schema أو مخطط قاعدة البيانات هو البنية أو التصميم الهيكلي الذي يحدد كيفية تنظيم البيانات وتخزينها في قاعدة البيانات. يمثل الـ Schema وصفًا كاملاً لعناصر قاعدة البيانات، بما في ذلك الجداول، الأعمدة، العلاقات بين الجداول، القيود (Constraints) مثل المفاتيح الأساسية (Primary Keys) والمفاتيح الخارجية (Foreign Keys)، والفهارس (Indexes)، وغيرها من التفاصيل.

مكونات الـ Database Schema
  • الجداول (Tables): تحتوي على البيانات في شكل صفوف (Records) وأعمدة (Fields). مثل جدول "الموظفين" الذي يحتوي على أعمدة مثل الاسم، الرقم الوظيفي، والراتب.
  • الأعمدة (Columns): تُستخدم لتخزين أنواع معينة من البيانات مثل النصوص أو الأرقام. كل عمود له اسم ونوع بيانات محدد.
  • العلاقات (Relationships): تحدد كيفية ارتباط الجداول ببعضها. تشمل العلاقات أنواعًا مثل:
    • "واحد إلى واحد" (One-to-One).
    • "واحد إلى متعدد" (One-to-Many).
    • و"متعدد إلى متعدد" (Many-to-Many).
  • المفاتيح (Keys):
    • Primary Key: يحدد كل سجل في الجدول بشكل فريد (غير مسموح بتكرار القيم ).
    • Foreign Key: يربط بين جدولين لتحديد العلاقة بينهما.
  • القيود (Constraints): مثل NOT NULL، UNIQUE، CHECK، وDEFAULT، لضمان إدخال بيانات صحيحة ومنطقية.
  • الفهارس (Indexes): تُستخدم لتحسين أداء عمليات البحث والاستعلام داخل قاعدة البيانات.
أنواع الـ Database Schema
  • Logical Schema (المخطط المنطقي): يمثل تصميم قاعدة البيانات على المستوى المنطقي.ويركز على العلاقات بين البيانات، الجداول، الأعمدة، وأنواع البيانات. كما لا يتعامل مع التفاصيل الفعلية لتخزين البيانات (مثل الخوادم أو المواقع الفيزيائية).
  • Physical Schema (المخطط الفيزيائي): يحدد كيفية تخزين البيانات فعليًا في النظام و.يشمل التفاصيل المتعلقة بتوزيع البيانات على القرص، أداء النظام، والفهارس.
  • View Schema (المخطط العلوي/الرؤوي): يوفر منظورًا مخصصًا للمستخدمين أو التطبيقات. ويعتمد على الجداول أو البيانات الموجودة ولكنه يعرضها بطريقة مبسطة أو مخصصة.
أهمية الـ Database Schema
  • تنظيم البيانات: يساعد الـ Schema في تحديد كيفية تخزين البيانات بطريقة منظمة وسهلة الفهم.
  • التأكد من سلامة البيانات: من خلال القيود (Constraints)، يضمن الـ Schema أن البيانات المدخلة في قاعدة البيانات تتبع القواعد المحددة.
  • سهولة التعامل مع البيانات: يجعل تصميم الـ Schema العمل مع البيانات أكثر كفاءة وسهولة، سواء من خلال الاستعلامات أو التحديثات.
  • أساس البرمجيات: يمثل الـ Schema الأساس الذي تعتمد عليه التطبيقات في التعامل مع قاعدة البيانات.


العلاقة بين ER-Model و Database Schema

يعتبر كلاً من نموذج الكيانات والعلاقات (ER- Model) ونموذج قاعدة بيانات ( Database Schema) من النماذج الأساسية في تصميم قواعد البيانات العلائقية (المزيد عن أنواع قواعد البيانات في مقال مقدمة في قواعد البيانات) حيث تحدد التصميم الأولي لقاعدة البيانات و يخدم كل منهما غرضًا مختلفًا ولكنه ضروري لبناء قاعدة البيانات.

تكلمنا في مقال سابق عن نموذج الكيانات والعلاقات (ER- Model) وكيف أنه يعطي صورة مرئية للكيانات (Entities) والعلاقات (Relationships) بينها. أوضحنا أن الكيان (Entity) يمكن أن يكون أي شيء يحتاج إلى تمثيل في قاعدة بيانات. على سبيل المثال، يمكن أن يكون كائنًا أو شخصًا أو حدثًا. بعد ذلك، توضح العلاقات كيفية تفاعل هذه الكيانات مع بعضها البعض.

في نموذج الكيانات والعلاقات (ER- Model) نمثل الكيانات (Entities) بالمستطيلات، بينما نمثل العلاقات (Relationships) بين هذه الكيانات بالخطوط وشكل معين يحمل اسم العلاقة. أن نموذج الـ ER-Model في المقام الأول، يستخدم أثناء المرحلة المفاهيمية لتصميم قاعدة البيانات، لأنه يساعد في نمذجة كيفية ارتباط الكيانات المختلفة ببعضها البعض.

أما عن نموذج قاعدة البيانات (Database Schema) فهو أكثر تقنية من نموذج الـ ER ويُستخدم أثناء مرحلة تنفيذ تصميم قاعدة البيانات. وهو بمثابة دليل لمسؤولي قواعد البيانات والمطورين لبناء قاعدة البيانات وصيانتها.

إن الـ Database Schema تمثل البنية الهيكلية لقاعدة البيانات، بما يشمل الجداول، الأعمدة، العلاقات، والقيود. ولتحقيق تصميم مثالي، يتم عادةً البدء بنموذج لكيانات والعلاقات (ER-Model)، الذي يُستخدم لتصميم قواعد البيانات على مستوى المفهوم، ثم تحويله إلى Relational Database Schema أثناء عملية التنفيذ.

فبينما يركز نموذج الـ ER على العلاقات بين الكيانات، يركز Database Schema على الجداول التي تخزن البيانات. على سبيل المثال، في قاعدة البيانات العلائقية، يصبح كل كيان جدولاً، وتصبح العلاقات بين هذه الكيانات قيودًا لهذا فإن مخطط قاعدة البيانات  (Database Schema) يوفر التفاصيل الهيكلية لقاعدة البيانات.

إذن يمكن القول أن نموذج الكيانات والعلاقات (ER- Model) هو مرحلة النمذجة الأولية لقاعدة البيانات، بينما نموذج قاعدة بيانات (Database Schema) بمثابة دليل بناء قاعدة البيانات. ويمكن تحويل نموذج الـ ER الى نموذج قاعدة بيانات (database schema) بواسطة ER-to-Relational Mapping Algorithm أو بإختصار ER-Mapping.



خطوات تحويل النموذج المفاهيمي (ER) إلى مخطط فعلي(Schema) باستخدام ER-Mapping

كما ذكرنا أعلاه أن في المراحل الأولى من تصميم قاعدة البيانات نحدد الكيانات (Entities) و العلاقات (Relationships)، والسمات (Attributes) التي تُشكل قاعدة البيانات في نموذج يعرف بـ ER-Model . أما عن  ER-Mapping فهي عملي تهدف إلى تحويل نموذج الـ ER إلى جداول (Tables) وعلاقات في قاعدة بيانات علائقية.

الـ ER-Mapping أو (ER-to-Relational Mapping Algorithm) هي خطوات متسلسلة لتحويل نموذج ER-Model إلى نموذج قاعدة بيانات علائقية (Relational Database Schema). تُعد هذه العملية خطوة أساسية عند تصميم قواعد البيانات، حيث يتم الانتقال من التصميم المفاهيمي إلى التصميم المنطقي. ويمكن تلخيص خطوات خوارزمية تعيين الكيانات من ER-Model إلى Relational Database Schema في الخطوات التالية:

ولفهم خطوات خوارزمية الـ Mapping سنقوم بتحويل نموذج الـ ER الذي تم شرحه مقال ER-Model الى شكل الـ Schema مع شرح مبسط لكل خطوة لكل من هذه الخطوات، يُظهر الشكل التالي نموذج ER للشركة :

نموذج الـ ER

نذكر طريقة بناء مكونات نموذج الـ ER تم شرحها بالتفصيل في مقال الـ ER-Model، لنبدأ بتطبيق الـ Mapping على الـ ER:


الخطوة 1: تحويل الكيانات القوية - Mapping of Strong Entities

في هذه الخطوة نحدد كل الكيانات قوية (Strong Entities) من الـ ER- Model ثم ننشئ جداول مقابلة تتضمن كل السمات البسيطة (simple attributes). بحيث يكون اسم الجدول هو اسم الكيان (Entity) ثم أسفل منه تأتي أسماء أعمدة الجدول وتمثلها السمات (Attributes) الخاصة بهذا الكيان (Entity)، حيث تكون السمات مرتبة في جدول من صف واحد وعدد أعمدة مناسب لعدد السمات (Attributes).

بالنسبة للسمة المركبة ( Composite Attributes) يأخذ كل فرع منها عمود في الجدول على سبيل المثال السمة المركبة هي الاسم -Name ومركبة من الاسم الأول (First Name) الاسم الاخير (Last Name) هنا يكون الاسم الاول في عمود والاسم الاخير في عمود آخر.

وتقابل السمة الرئيسية (Key Attribute) المفتاح الرئيسي (Primary Key) وتميز بخط سفلي (Underline)، ولابد أن يحتوي الجدول على مفتاح رئيسي واحد على الأقل ، ويمكن أن يكون لدينا أكثر من Primary Key في الجدول الواحد، كما يمكن أن تكون السمة الرئيسة سمة مركبة (Composite Attribute) في نفس الوقت في هذه الحالة كل السمات أجزاء السمة المركبة تشكل معًا المفتاح الأساسي.

بالنسبة لمخطط ER-Diagram في المثال لدينا الجدول الموظفين (EMPLOYEES) والأقسام (DEPARTMENTS) وجدول للمشاريع (PROJECTS)، والتي ستكون كما هو موضح معنا في الشكل أدناه.

ER-mapping step1

نلاحظ في هذه الخطوة تم تجاهل السمات المشتقة والسمات متعددة القيم.

الخطوة 2 : تحويل الكيانات الضعيفة - Mapping of Weak Entities

نحدد الكيانات الضعيفة (weak entities) من الـ ER و ننشيء لها جداول تتضمن جميع سماتها البسيطة. كما نضيف سمة أساسية للـ weak entity لاستخدامها في الربط مع جدول أساسي strong entity.

بالنسبة للمثال لدينا جدول المعالين (DEPENDANTS) ككيان ضعيف (weak entity)، أشرنا الى ذلك بمستطيل مزدوج، وهو مرتبط بعلاقة مع جدول أساسي وهو جدول الموظفين (EMPLOYEES) ويوضح الشكل التالي طريقة تمثيل الكيانات الضعيفة في قاعدة البيانات:

ER-mapping step2

الخطوة 3: تحويل العلاقات الثنائية من نوع 1:1

لتمثيل علاقة 1:1 بين الكيانات (Entities) في الـ ER ، يجب مراعاة نوع العلاقة بالنسبة للكيانات التي ترتبط بعلاقة 1 إلى 1، في الواقع مثلاً علاقة الإدارة بين الأقسام والموظفين فلكل قسم مدير واحد.

أما عن نموذج قاعدة البيانات (Database Schema) فقبل تمثيل هذه العلاقة يجب مراعاة نوع قيد المشاركة Participation Constraint (تم شرح قيد المشاركة في مقال الـ ER-Model) فالحالات الممكنة لقيد المشاركة تكون كتالي :

  • ففي حال كان كلا الجدولين المرتبطين بعلاقة (1:1) لهما قيد المشاركة نفسه (كلاهما مشاركة كاملة Total Participation أو كلاهما مشاركة جزئية Partial Participation) هنا نقوم بإدراج المفتاح الأساسي (Primary key) لأي من الجدولين ليكون مفتاح خارجي (Foreign key) في الجدول الآخر.
  • أما في حال كانت المشاركة جزئية (Partial Participation) من أحد الجدولين و مشاركة كاملة (Total Participation) من الجدول الآخر، في هذه الحالة يكون عملنا مع الجدول الذي يشارك مشاركة كاملة في العلاقة (total-participation) أي أننا سنقوم بإدراج المفتاح الأساسي (Primary key) للجدول المشاركة الجزئية ليكون مفتاح خارجي (Foreign key) في جدول المشاركة الكاملة .

في مثال الـ ER-Model نجد علاقة الإدارة (Manage) بين جدولي الموظفين EMPLOYEES و الأقسام DEPARTMENTS من النوع 1:1 وعند النظر للقيد المشاركة نجد أن جدول الأقسام DEPARTMENTS يشارك مشاركة كاملة في العلاقة في المقابل يشارك جدول الموظفين EMPLOYEES مشاركة جزئية  ولهذا سيكون تمثل العلاقة على الشكل التالي:

ER-mapping step3

ملاحظة : في العلاقات من نوع N:1 أو النوع N:M لا يتم النظر للقيود المشاركة.


الخطوة 4: تحويل العلاقات الثنائية من نوع 1:N

لمثيل علاقة من النوع N:1 نضيف المفتاح الأساسي في الجدول المرتبط بـ 1 الى الجدول المرتبط بـ N ، في المثال نجد عدة علاقات من هذا النوع مثلاً :

  • علاقة يعمل لصالح (WorkFor) بين جدول الموظفين EMPLOYEES وجدول الأقسام DEPARTMENTS فيمكن للقسم الوحد (1) أن يضم عدد من الموظفين (N).
  • علاقة التحكم (Control) بين جدول الأقسام DEPARTMENTS و جدول المشاريع PROJECTS فيمكن للقسم الواحد(1) العمل على عدد من المشاريع (N).
  • علاقة الإعالة (DependentOn) بين بين جدول الموظفين EMPLOYEES وجدول المعالين DEPENDANTS فالموظف الواحد يمكن أن يرتبط بعدد من المعالين.
  • علاقة الأشراف (Supervision) التي تربط سجلات جدول الموظفين EMPLOYEES ببعضها البعض حيث يمكن لموظف واحد يمكن أن يشرف على عدد من الموظفين.

لنرى شكل الـ Database Schema بعد تمثيل هذه العلاقات:

ER-mapping step4

الخطوة 5: تحويل العلاقات الثنائية من نوع M:N

تُمثل العلاقة من النوع M:N بجدول مستقل يضم المفاتيح الأساسية للجداول المرتبطة بالعلاقة بالإضافة الى سمات (Attributes) الخاصة بالعلاقة إن وجدت.

في المثال لدينا العلاقة ( WorkOn) علاقة متعددة بين جدول الموظفين EMPLOYEES وجدول المشاريع PROJECTS ، فيمكن لعدد من الموظفين العمل على مشروع واحد والعكس يمكن للمشروع الواحد أن يعمل فيه عدد من الموظفين. فيكون شكل الـ Database Schema بعد تمثيل هذه العلاقة كتالي:

ER-mapping step5

وبنفس هذه الطريقة يتم تحويل العلاقة التي تربط أكثر من جدولين مثلاً 3 جداول أو أكثر، حيث يتم انشاء جدول بإسم العلاقة ويضم بالإضافة الى سمات العلاقة المفاتيح الأساسية للجداول المرتبطة بالعلاقة.


الخطوة 6: تحويل السمات متعددة القيم (Multivalued attributes)

في Database Schema تمثل السمات متعددة القيم (Multivalued attributes) بجدول مستقل يأخذ اسم السمة، وعند وجود أكثر من سمة متعددة القيم في جدول واحد يتم إنشاء لكل سمة جدول خاص بها. في المثال لدينا في جدول المشاريع PROJECTS سمة الموقع (location) من النوع Multivalued. ويكون شكل التمثيل لها كتالي:

ER-mapping step6

بهذا تكون علمية تحويل الـ ER-Model الى Schema في المثال اكتملت و يمكن أيضاً أن تأخذ الـ Database Schema شكلاً أخر، أكثر وضحاً واستخداماً في تطبيقات تصميم قواعد البيانات والذي يكون كتالي:

Database Schema

ويعد تحويل نموذج ER-Model إلى نموذج قاعدة بيانات علائقية (Relational Database Schema) خطوة مهمة في تصميم قاعدة البيانات. بحيث يمكن تنفيذها باستخدام نظام إدارة قواعد البيانات (DBMS). فيمثل نموذج الكيانات والعلاقات البنية المفاهيمية لقاعدة البيانات، في حين أن النموذج العلائقي (Relational Database Schema) هو تمثيل مادي يمكن تنفيذه مباشرة باستخدام نظام إدارة قواعد البيانات العلائقية (RDBMS) مثل Oracle أو MySQL.



أهم الفروق بين نموذج ER-Model و نموذج قاعدة بيانات (Database Schema)

بينما يُعد الـ ER-Model أداة لتوضيح الأفكار بشكل مرئي ومفاهيمي، فإن Database Schema يُمثل الترجمة التقنية التي تحدد الجداول، الأعمدة، والعلاقات الفعلية. فيما يلي سنتناول أبرز الفروق بين النموذجين:

وجه الإختلاف ER-Model Schema
الغرض نمذجة العلاقات بين الكيانات على مستوى عالٍ تجريدي ومفاهيمي. تمثيل البنية التقنية لقاعدة البيانات، ووصف الجداول والأعمدة والقيود.
التركيز يكون التركيزفيه على الكيانات وعلاقاتها، مع التركيز على نموذج العمل. يكون التركيز فيه على الجداول وتخزين البيانات، بما في ذلك العلاقات من خلال المفاتيح الأساسية (primary) والأجنبية (foreign).
الاستخدام يستخدمه محللو الأعمال ومصممو الأنظمة للتواصل مع الجهات المعنية غير التقنية. يستخدمه مسؤولو قواعد البيانات والمطورون والموظفون الفنيون الذين يقومون ببناء قاعدة البيانات والاستعلام عنها.
التدوين يستخدم رموزًا مثل المستطيلات للكيانات والخطوط للعلاقات، مع تمثيل الرتبة كأرقام. يستخدم جداول SQL ويفرض العلاقات من خلال قيود المفاتيح في بنية رسمية.
التجريد مستوى التجريد عالي فلا يحدد تفاصيل تخزين البيانات غير مجرد فهو مفصل وتقني، ويحدد هيكل قاعدة البيانات وتنسيقها بدقة.


 من خلال هذا المقال، قدمنا فهمًا شاملًا حول مفهوم Database Schema فهو الأساس الذي تقوم عليه أي قاعدة بيانات، حيث يحدد الهيكل والتنظيم للبيانات والعلاقات بينها. ويعد فهمه وتصميمه بشكل جيد مهم لضمان كفاءة الأنظمة ومرونتها، سواء كنت تعمل على مشروع صغير أو نظام كبير ومعقد.

إرسال تعليق

فضلاً اترك تعليق
موافقة ملفات تعريف الارتباط
لتحسين تجربتك… يستخدم موقعنا ملفات تعريف الارتباط (Cookies)
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.