The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by ibrquqa65, 2022-09-21 15:14:43

Database-design-ar-hsoub-academy-v1.0

Database-design-ar-hsoub-academy-v1.0

‫تصميم قواعد البيانات‬

‫مرجع سريع إلى عملية تصميم قواعد البيانات وتخطيطها‬

‫تأليف‬
‫إيدرين وات‬
‫نيلسون إنج‬

‫ترجمة‬
‫أيمن طارق القاضي‬

‫علا عباس‬

‫تحرير‬
‫آيات اليطقان‬

‫إعداد وإشراف‬
‫جميل بيلوني‬

‫جميع الحقوق محفوظة © ‪ 2022‬أكاديمية حسوب‬
‫النسخة الأولى ‪v1.0‬‬

‫هذا العمل مر َّخص بموجب رخصة المشاع الإبداعي‪َ :‬نسب ال ُمص ِّنف ‪ -‬غيـر تجاري ‪ -‬التـرخيص‬
‫بالمثل ‪ 4.0‬دولي‬

‫عن الناشـر‬

‫ُأنتج هذا الكتاب برعاية شركة حسوب وأكاديمية حسوب‪.‬‬

‫تهدف أكاديمية حسوب إلى توفير دروس وكتب عالية الجودة في مختل ف المج الات وتق دم دورات ش املة‬
‫لتعلُّم البرمج ة بأح دث تقنياته ا معتم د ًة على التط بيق العملي ال ذي يؤه ل الط الب ل دخول س وق‬

‫العمل بثقة‪.‬‬

‫حسوب مجموعة تقنية في مهمة لتطوير العالم العربي‪ .‬تبني حسوب منتج ات تر ِّكز على تحس ين مس تقبل‬
‫العمل‪ ،‬والتعليم‪ ،‬والتواصل‪ .‬تدير حسوب أكبر منصتي عمل حر في العالم العربي‪ ،‬مستقل وخمسات ويعمل في‬

‫فيها فريق شاب وشغوف من مختلف الدول العربية‪.‬‬

‫جدول المحتويات‬

‫تمهيد ‪9‬‬
‫‪ .1‬ما قبل ظهور أنظمة قواعد البيانات ‪11‬‬
‫‪ 1.1‬النظام القائم على الملفات ‪11‬‬
‫‪ 1.2‬عيوب النظام القائم على الملفات ‪12‬‬
‫‪ 1.3‬نظام قواعد البيانات ‪13‬‬
‫‪ 1.4‬معنى البيانات ‪14‬‬
‫‪ 1.5‬مصطلحات أساسية ‪15‬‬
‫‪ 1.6‬تمارين ‪15‬‬
‫‪ .2‬مفاهيم قواعد البيانات الأساسية ‪17‬‬
‫‪ 2.1‬ما هي قاعدة البيانات؟ ‪17‬‬
‫‪ 2.2‬خصائص قاعدة البيانات ‪18‬‬
‫‪ 2.3‬أنواع مستخدمي قاعدة البيانات ‪19‬‬
‫‪ 2.4‬نظام إدارة قواعد البيانات وتصنيفاتها ‪20‬‬
‫‪ 2.5‬مصطلحات أساسية ‪24‬‬
‫‪ 2.6‬تمارين ‪25‬‬
‫‪ .3‬خصائص قواعد البيانات والمزايا التي تقدمها ‪26‬‬
‫‪ 3.1‬خصائص قواعد البيانات ‪27‬‬
‫‪ 3.2‬دعم عدة واجهات عرض للبيانات ‪28‬‬
‫‪ 3.3‬مصطلحات أساسية ‪30‬‬
‫‪ 3.4‬تمارين ‪30‬‬
‫‪ .4‬نمذجة البيانات وأنواعها ‪31‬‬
‫‪ 4.1‬أنواع نماذج البيانات ‪32‬‬
‫‪ 4.2‬مدى تجريد البيانات ‪34‬‬
‫‪ 4.3‬طبقات تجريد البيانات ‪36‬‬
‫‪ 4.4‬تخطيطات قاعدة البيانات ‪37 Schemas‬‬
‫‪ 4.5‬استقلالية البيانات المنطقية والمادية ‪38‬‬
‫‪ 4.6‬مصطلحات أساسية ‪38‬‬

‫تصميم قواعد البيانات‬ ‫جدول المحتويات‬

‫‪40‬‬ ‫‪ 4.7‬التمارين‬
‫‪41‬‬ ‫‪ .5‬نموذج البيانات العلائقية ‪RDM‬‬
‫‪41‬‬ ‫‪ 5.1‬المفاهيم الأساسية في نماذج البيانات العلائقية‬
‫‪45‬‬
‫‪45‬‬ ‫‪ 5.2‬خصائص الجدول‬
‫‪46‬‬ ‫‪ 5.3‬المفاهيم الأساسية‬
‫‪46‬‬ ‫‪ 5.4‬المصطلحات الأساسية‬
‫‪47‬‬
‫‪48‬‬ ‫‪ 5.5‬تمارين‬
‫‪49‬‬ ‫‪ .6‬نموذج الكيان والعلاقة ‪ ER‬وتمثيل البيانات‬
‫‪49‬‬
‫‪51‬‬ ‫‪ 6.1‬الكيان ومجموعة الكيان ونوع الكيان‬
‫‪54‬‬ ‫‪ 6.2‬ارتباط الوجود‬
‫‪61‬‬ ‫‪ 6.3‬أنواع الكيانات‬
‫‪63‬‬ ‫‪ 6.4‬السمات‬
‫‪68‬‬ ‫‪ 6.5‬المفاتيح‬
‫‪68‬‬
‫‪71‬‬ ‫‪ 6.6‬مصطلحات أساسية‬
‫‪72‬‬ ‫‪ 6.7‬تمارين‬
‫‪73‬‬
‫‪78‬‬ ‫‪ .7‬قواعد السلامة وقيودها لضمان سلامة البيانات‬
‫‪79‬‬ ‫‪ 7.1‬سلامة النطاق ‪Domain Integrity‬‬
‫‪82‬‬
‫‪82‬‬ ‫‪ 7.2‬قيود المؤسسة ‪Enterprise Constraints‬‬
‫‪83‬‬ ‫‪ 7.3‬قواعد العمل ‪Business Rules‬‬
‫‪84‬‬ ‫‪ 7.4‬أنواع العلاقات‬
‫‪84‬‬ ‫‪ 7.5‬مصطلحات أساسية‬
‫‪86‬‬ ‫‪ 7.6‬تمارين‬
‫‪87‬‬
‫‪ .8‬نمذجة الكيان العلاقي ‪ ER‬عند تصميم قواعد البيانات‬
‫‪ 8.1‬التصميم العلاقي ‪ Relational Design‬والتكرار ‪Redundancy‬‬

‫‪ 8.2‬حالة الإدخال الشاذة ‪Insertion Anomaly‬‬
‫‪ 8.3‬حالة التحديث الشاذة ‪Update Anomaly‬‬
‫‪ 8.4‬حالة الحذف الشاذة ‪Deletion Anomaly‬‬

‫‪ 8.5‬كيفية تجنب الحالات الشاذة‬
‫‪ 8.6‬مصطلحات أساسية‬

‫‪6‬‬

‫تصميم قواعد البيانات‬ ‫جدول المحتويات‬

‫‪87‬‬ ‫‪ 8.7‬تمارين‬
‫‪89‬‬ ‫‪ .9‬الاعتماديات الوظيفية ‪Functional Dependencies‬‬
‫‪90‬‬
‫‪91‬‬ ‫‪ 9.1‬قواعد الاعتماديات الوظيفية‬
‫‪94‬‬ ‫‪ 9.2‬قواعد الاستدلال ‪Inference Rules‬‬
‫‪95‬‬ ‫‪ 9.3‬مخطط الاعتمادية ‪Dependency Diagram‬‬
‫‪96‬‬
‫‪96‬‬ ‫‪ 9.4‬مصطلحات أساسية‬
‫‪97‬‬ ‫‪ .10‬فهم عملية التوحيد ‪Normalization‬‬
‫‪97‬‬ ‫‪ 10.1‬ما هو التوحيد ‪Normalization‬؟‬
‫‪98‬‬ ‫‪ 10.2‬النماذج الموحدة ‪Normal Forms‬‬
‫‪99‬‬ ‫‪ 10.3‬النموذج الموحد الأول ‪ First Normal Form‬أو ‪ 1NF‬اختصا ًرا‬
‫‪101‬‬ ‫‪ 10.4‬النموذج الموحد الثاني ‪ Second Normal Form‬أو ‪2NF‬‬
‫‪103‬‬ ‫‪ 10.5‬النموذج الموحد الثالث ‪ Third Normal Form‬أو ‪3NF‬‬
‫‪104‬‬ ‫‪ 10.6‬نموذج بويس‪-‬كود الموحَّد ‪BCNF‬‬
‫‪104‬‬ ‫‪ 10.7‬التوحيد وتصميم قواعد البيانات‬
‫‪107‬‬ ‫‪ 10.8‬المصطلحات الأساسية والاختصارات‬
‫‪107‬‬
‫‪109‬‬ ‫‪ 10.9‬تمارين‬
‫‪111‬‬ ‫‪ .11‬عملية تطوير قواعد البيانات‬
‫‪111‬‬ ‫‪ 11.1‬دورة حياة تطوير البرمجيات ‪ -‬نموذج الشلال ‪Waterfall‬‬
‫‪112‬‬ ‫‪ 11.2‬دورة حياة قاعدة البيانات ‪Database Life Cycle‬‬
‫‪114‬‬ ‫‪ 11.3‬جمع المتطلبات ‪Requirements Gathering‬‬
‫‪115‬‬
‫‪115‬‬ ‫‪ 11.4‬التحليل ‪Analysis‬‬
‫‪116‬‬ ‫‪ 11.5‬التصميم المنطقي ‪Logical Design‬‬
‫‪116‬‬
‫‪117‬‬ ‫‪ 11.6‬التطبيق ‪Implementation‬‬
‫‪ 11.7‬تحقيق التصميم ‪Realizing the Design‬‬
‫‪ 11.8‬ملء قاعدة البيانات ‪Populating the Database‬‬

‫‪ 11.9‬إرشادات لتطوير مخطط ‪ER‬‬
‫‪ 11.10‬مصطلحات أساسية‬
‫‪ 11.11‬تمارين‬

‫‪7‬‬

‫تصميم قواعد البيانات‬ ‫جدول المحتويات‬

‫‪118‬‬ ‫‪ .12‬لغة الاستعلامات الهيكلية ‪SQL‬‬
‫‪119‬‬ ‫‪ 12.1‬إنشاء قاعدة بيانات ‪Create Database‬‬
‫‪123‬‬
‫‪128‬‬ ‫‪ 12.2‬قيود الجدول ‪Table Constraints‬‬
‫‪129‬‬ ‫‪ 12.3‬الأنواع التي يُعرفها المستخدم ‪User Defined Types‬‬
‫‪129‬‬
‫‪131‬‬ ‫‪ 12.4‬مصطلحات أساسية‬
‫‪132‬‬ ‫‪ 12.5‬تمارين‬
‫‪138‬‬
‫‪141‬‬ ‫‪ .13‬لغة معالجة البيانات ‪ DML‬الخاصة بلغة ‪SQL‬‬
‫‪141‬‬ ‫‪ 13.1‬تعليمة ‪SELECT‬‬
‫‪142‬‬ ‫‪ 13.2‬تعليمة ‪INSERT‬‬
‫‪146‬‬ ‫‪ 13.3‬تعليمة ‪UPDATE‬‬
‫‪149‬‬ ‫‪ 13.4‬تعليمة ‪DELETE‬‬
‫‪150‬‬
‫‪154‬‬ ‫‪ 13.5‬الدوال المبنية مسبقا ‪Built-in Functions‬‬
‫‪155‬‬ ‫‪ 13.6‬ضم الجداول ‪Joining Tables‬‬
‫‪159‬‬ ‫‪ 13.7‬مصطلحات أساسية‬
‫‪159‬‬ ‫‪ 13.8‬تمارين‬
‫‪160‬‬
‫‪162‬‬ ‫‪ .14‬الملحق أ‪ :‬مثال عملي عن تصميم قاعدة بيانات لجامعة‬
‫‪162‬‬ ‫‪ 14.1‬عملية التصميم‬
‫‪165‬‬
‫‪167‬‬ ‫‪ .15‬الملحق ب‪ :‬أمثلة عملية عن إنشاء مخططات ‪ERD‬‬
‫‪ 15.1‬التمرين الأول‪ :‬شركة تصنيع ‪Manufacturer‬‬

‫‪ 15.2‬التمرين الثاني‪ :‬وكيل سيارات ‪Car Dealership‬‬
‫‪ .16‬الملحق ج‪ :‬حل تمرين باستخدام لغة ‪SQL‬‬
‫‪ 16.1‬الجزء الأول‪ :‬استخدم لغة ‪DDL‬‬
‫‪ 16.2‬الجزء الثاني‪ :‬إنشاء عبارات لغة ‪SQL‬‬

‫‪ 16.3‬الجزء الثالث‪ :‬الإدخال والتعديل والحذف والفهارس‬

‫‪8‬‬

‫تمهيد‬

‫تسبق كل عملية تنفيذية عملية تصميمية تخطيطية مثل عملية تخطيط أي بن اء ودراس ته وتحليل ه ورس مه‬
‫على المخططات قبل البدء ببنائه وتنفيذه على الأرض وكذلك الحال مع قواع د البيان ات فقب ل تنفي ذها برمج ًي ا‪،‬‬
‫يكون هنالك مرحلة تصميمية يجري فيها تصميم قواعد البيانات وتخطيط جداولها والأعمدة التي تحتويها وأن واع‬
‫البيانات فيها والروابط الرابطة بينها والقيود المقيدة لها وهكذا‪ ،‬فلعملية التصميم تل ك أهمي ة كب يرة لأي قاع دة‬
‫بيانات‪ ،‬ولا يكاد يخلو أي نظام برمجي يتعامل مع البيانات من قاع دة بيان ات ل ذا لاب د من إج راء تص ميم م تين‬

‫مناسب لقاعدة البيانات التي س ُيبنى عليها النظام‪.‬‬
‫يعد موضوع تصميم قواعد البيانات مادة أساسية تد َّرس في السنوات الأولى من تخصص عل وم الحاس وب‬
‫والتخصصات المتعلقة بهندسة الحاسوب والبرمجيات في الجامعة ولابد من تعلم الموضوع ودراسته قب ل الب دء‬
‫بتعلم كيفية تنفيذ قاعدة بيانات برمج ًيا‪ ،‬فلا يمكن بناء قاعدة بيانات قوية متينة الارتباطات سليمة القيود موحَّدة‬
‫عديمة التكرارات دون دراسة موض وع التص ميم نظريً ا وإتقان ه عمل ًي ا وذل ك بتص ميم قواع د بيان ات نموذجي ة‬

‫والإطلاع على تصميمات أخرى لقواعد بيانات صممها مهندسون أك َّفاء‪.‬‬
‫يشرح هذا الكتاب عملية تصميم قاعدة بيانات شرحًا م وج ًزا غ ير مخ ل‪ ،‬إذ يب دأ أواًل بتغطي ة ك ل المف اهيم‬
‫المتعلقة بقواعد البيانات بد ًءا من فكرة قاع دة البيان ات بالأص ل واختلافه ا عن أي نظ ام تخ زين بيان ات‪ ،‬وح تى‬
‫العملية التصميمية وعمليات نمذجة البيانات وتمثيلها وعمليات الربط بين جداول البيان ات وم ا يق وم عليه ا ثم‬
‫يبني بعدها على ذلك كله شارحًا عملية تصميم قواعد البيانات وتطويرها حتى رسم مخط ط ‪ ER‬النه ائي لج داول‬
‫قاعدة البيانات‪ ،‬وهو مخطط نموذج الكيان والعلاقة الواصف لقاع دة البيان ات وج داولها وك ل تفص يلة فيه ا‪ ،‬ثم‬
‫يشرح بعدها كيفية تنفيذ المخطط الناتج عبر لغ ة ‪ SQL‬ولا يغيب عن ه التط رق إلى أنظم ة إدارة قواع د البيان ات‬

‫‪ DBMS‬مع ذكر أشهرها‪.‬‬

‫تصميم قواعد البيانات‬ ‫تمهيد‬

‫هذا الكتاب مترجم عن كتاب ‪" Database Design - 2nd Edition‬تصميم قاعدة بيانات ‪ -‬الإصدار الثاني"‬
‫لصاحبيه إيدرين وات ‪ Adrienne Watt‬ونيلس ون إنج ‪ Nelson Eng‬وه و مب ني في الأص ل على ع دة مص ادر‬
‫ركيزتها كتاب ‪ Database Design‬للمؤلف الأول إيدرين وات‪ ،‬فالمص ادر المب ني عليه ا ك ل فص ل مدرج ة في‬
‫نهايته ويمكنك الرجوع إلى الكتاب الأجنبي الأصل إن أردت الإطلاع عليها‪ ،‬كما أن هذا الكتاب الأجنبي يُعتم د في‬

‫بعض الجامعات لتدريس مادة تصميم قواعد البيانات في فصول قسم علوم الحاسوب وتصميم البرمجيات‪.‬‬

‫انتبه إلى أن هذا الكتاب لا يركز على عملية تنفيذ قواعد البيانات وبرمجتها بل يركز على عملية تصميم قاع دة‬
‫بيانات وكيفية نم ذجتها وإن ك ان يتط رق إلى لغ ة ‪ SQL‬س ري ًعا ش ارحًا باقتض اب كيفي ة إنش اء قاع دة بيان ات‬
‫والعمليات الأساسية للتعديل عليها‪ ،‬أما إذا أردت الاستزادة والتعمق في هذا الموض وع‪ ،‬فننص حك ب الرجوع إلى‬
‫كتاب ملاحظات للعاملين بلغة ‪ SQL‬وكتاب الدليل العملي إلى قواعد بيانات ‪ PostgreSQL‬وتوثيق لغة ‪ SQL‬من‬

‫موسوعة حسوب وأي كتب ومصادر أخرى تصب في هذا المجال‪.‬‬

‫تجد في نهاية كل فصل من فصول الكتاب قائمة بالمص طلحات الأساس ية ال تي ناقش ها الفص ل وتح دث‬
‫عنها بالعربية وما يقابلها بالإنجليزية ليس هل علي ك البحث عنه ا أو الرج وع إلى أي مص ادر أجنبي ة كم ا تج د في‬
‫نهايته تمارين تساعدك على ترسيخ ما تعلمت‪ ،‬لذا ننصحك بالاهتمام بها لتحقيق أقص ى اس تفادة مم ا تعلمت‬
‫من الفصل‪ ،‬وإن احتجت إلى أي مساعدة‪ ،‬فلا تترد بطرح سؤالك في قسم الأسئلة والأجوبة في أكاديمية حسوب‬

‫أو في مجتمع حسوب ‪.IO‬‬

‫إذا ك ان ل ديك اق تراح أو تص حيح على النس خة العربي ة من الكت اب أو أي ملاحظ ة ح ول أي مص طلح من‬
‫المص طلحات المس تعملة‪ ،‬ي رجى إرس ال بري د إلك تروني إلى ‪ [email protected]‬إذا ض َّمن َت ج ز ًءا من‬

‫الجملة التي يظهر الخطأ فيها على الأقل‪ ،‬فهذا يس ِّهل علينا البحث‪ ،‬وحبذا إضافة أرقام الصفحات والأقسام‪.‬‬

‫جميل بيلوني‬
‫‪2022/02/20‬‬

‫‪10‬‬

‫‪ .1‬ما قبل ظهور أنظمة قواعد البيانات‬

‫قطعت الطريقة التي تدير بها أجهزة الحاسوب البيانات شو ًطا طوياًل على مدار العقود القليلة الماض ية‪ ،‬كم ا‬
‫يأخذ مستخدمي الحاسوب اليوم المزايا العديدة الموجودة في نظام قواعد البيانات أمرًا مسلَّ ًما به على ال رغم من‬
‫عدم مرور وقت طويل على اعتماد أجهزة الحاسوب النظام القائم على الملفات ‪ File-based System‬والذي يُ َع ّد‬

‫النهج الأقل في الأناقة والتكلفة لإدارة البيانات‪.‬‬

‫‪ 1.1‬النظام القائم على الملفات‬

‫يُ َع ّد تخزين المعلومات في ملفات دائمة في الحاسوب إحدى طرق الحفاظ عليها‪ ،‬فمثاًل ‪ ،‬يملك نظام الشركة‬
‫عد ًدا من البرامج التطبيقية والمص َّممة لمعالجة ملفات البيانات تلك‪ ،‬ثم تولي د المخرج ات والنت ائج في ملف ات‬
‫أخرى‪ ،‬حيث تُص َّمم هذه البرامج بنا ًء على طلب المستخ ِدمين في المؤسسة‪ ،‬كما تضاف برامج جديدة إلى النظام‬
‫عند الحاجة إليها‪ ،‬ويسمى هذا النظام بالنظام القائم على الملفات ‪ ،File-based System‬فمثاًل ‪ ،‬يمكن اس تخدام‬
‫النظام القائم على الملفات لإدارة بيانات نظام مصرِفي تقلي دي كم ا ه و موض ح في الش كل أدن اه‪ ،‬حيث يوج د‬
‫أقسام مختلفة في المصرِف‪ ،‬ولك ل منه ا ب رامج خاص ة لإدارة ومعالج ة ملف ات البيان ات المختلف ة‪ ،‬كم ا يمكن‬
‫استخدام برامج لأداء عمليات عديدة في الأنظمة المصرفية‪ ،‬مثل‪ :‬الخصم من الحساب أو ائتمانه‪ ،‬وإنشاء كش ف‬

‫برصيد الحساب‪ ،‬وإضافة قروض عقارية جديدة‪ ،‬وإنشاء كشوف حسابات شهرية‪.‬‬

‫تصميم قواعد البيانات‬ ‫ما قبل ظهور أنظمة قواعد البيانات‬

‫الشكل ‪ :1.1‬مثال على نظام قائم على الملفات لبنك يستعمله لإدارة البيانات‬

‫‪ 1.2‬عيوب النظام القائم على الملفات‬

‫يملك النظام الق ائم على الملف ات والمس تخ َدم لحف ظ المعلوم ات التنظيمي ة العدي د من العي وب‪ ،‬وال تي‬
‫دفعت فيما بعد لتطوير أنظمة جديدة أكثر كفاءة‪ ،‬نذكر منها التالي‪:‬‬

‫‪ 1.2.1‬تكرار البيانات ‪Data redundancy‬‬

‫غال ًبا ما تُنشأ ملفات البيانات الخاصة بالمؤسسة من طرف العديد من الم برمجين من أقس ام مختلف ة على‬
‫مدى فترات طويلة من الزمن‪ ،‬مما يؤدي إلى تكرار البيانات عند تحديث أحد الحقول في أك ثر من موض ع واح د‪،‬‬

‫حيث تسبب هذه العملية العديد من المشاكل‪ ،‬منها‪:‬‬
‫• عدم توحيد تنسيق البيانات‪.‬‬

‫• الاحتفاظ بالمعلومة نفسها في عدة أماكن مختلفة‪ ،‬أي ضمن ملفات مختلفة‪.‬‬
‫• عدم تناسق البيانات‪ ،‬وهو الموقف الذي تتعارض فيه النسخ المختلفة من البيان ات نفس ها‪ ،‬مم ا يُه در‬

‫مساحة التخزين ويضاعف الجهد‪.‬‬

‫‪ 1.2.2‬عزل البيانات‬

‫عزل البيانات هو الخاصية التي تحدد متى وكيف تصبح التغييرات التي يتم إجراؤها بواس طة عملي ة معين ة‬
‫مرئي ًة للمستخ ِدمين المتزامنين‪ ،‬والأنظمة المتزامنة الأخرى؛ ويؤدي حدوث أي مش كلة في مزامن ة البيان ات إلى‬
‫صعوبة استرجاع البيانات المنا ِسبة من ِقبل التطبيق ات الأخ رى ال تي تص ل لنفس البيان ات وال تي ربم ا تك ون‬

‫مخزَّنة في عدة ملفات مختلفة‪.‬‬

‫‪12‬‬

‫تصميم قواعد البيانات‬ ‫ما قبل ظهور أنظمة قواعد البيانات‬

‫‪ 1.2.3‬مشاكل السلامة‬

‫تُ َع ّد مش اكل س لامة البيان ات عي ًب ا آخ رًا لاس تخدام النظ ام الق ائم على الملف ات‪ ،‬حيث تش ير س لامة‬
‫البيانات ‪ data integrity‬إلى صيانة البيانات‪ ،‬والتأكد من صحة وتناسق البيانات الموجودة في قاعدة البيان ات‪،‬‬

‫حيث يجب مراعاة العوامل التالية أثناء معالجة هذه المشكلة‪:‬‬

‫• يجب على قيم البيانات استيفاء قيود تناسق معينة ومح َّددة في برامج التطبيق‪.‬‬

‫• من الصعب إجراء تغييرات على برامج التطبيق من أجل فرض قيود جديدة‪.‬‬

‫‪ 1.2.4‬مشاكل الأمان‬

‫يُ َع ّد الأمان مشكل ًة في النظام القائم على الملفات للأسباب التالية‪:‬‬
‫• وجود قيود تتعلق بالحصول على الصلاحيات‪.‬‬

‫• تُضاف متطلبات التطبيق إلى النظام بطرق مخصصة‪ ،‬لذلك من الصعب فرض القيود‪.‬‬

‫‪ 1.2.5‬الوصول المتزامن‬

‫التزامن هو قدرة قاعدة البيانات على السماح لعدة مستخ ِدمين بالوص ول للس جل نفس ه دون الت أثير س ل ًبا‬
‫على معالجة المعا َملات‪ .‬يجب على النظام القائم على الملفات إدارة التزامن وضبطه باس تخدام ب رامج تطبيقي ة‪،‬‬
‫حيث يُق َفل الملف ويُم َنع الوصول إليه عندما يفتحه تطبيق ما‪ ،‬مما يعني أنه لا يمكن لأي ش خص آخ ر الوص ول‬

‫إلى ذاك الملف في الوقت نفسه آنذاك‪.‬‬
‫تُدير أنظمة قواعد البيان ات عملي ة ال تزامن من خلال الس ماح لع دة مس تخ ِدمين من الوص ول إلى الس جل‬

‫نفسه‪ ،‬ويُ َع ّد هذا فرق مهم بين قواعد البيانات والأنظمة القائمة على الملفات‪.‬‬

‫‪ 1.3‬نظام قواعد البيانات‬

‫دفعت الصعوبات الناشئة عن استخدام النظام القائم على الملف ات إلى تط وير نظ ام جدي د لإدارة الكمي ات‬
‫الكبيرة من المعلومات التنظيمية‪ ،‬والذي يُسمى بنظام قاعدة البيانات‪.‬‬

‫تلعب قواعد البيانات وتقنيتها دو ًرا مه ًما في معظم المجالات التي تُستخ َدم فيها أجهزة الحاس وب‪ ،‬بم ا في‬
‫ذلك الأعمال التجارية‪ ،‬والتعليم‪ ،‬والطب‪ ،‬وغيره ا‪ ،‬وس نبدأ في ه ذا الفص ل بتق ديم بعض المف اهيم الأساس ية‬

‫المتعلقة بهذا المجال لفهم أساسيات أنظمة قواعد البيانات‪.‬‬

‫‪ 1.3.1‬دور قواعد البيانات في إدارة الأعمال‬

‫يستخ ِدم الجميع قواعد البيانات بطريقة أو بأخرى‪ ،‬حتى ولو كانت استخدامات بسيطة مثل تخزين معلومات‬
‫عن أصدقائهم وعائلاتهم فقط‪ ،‬كما يمكن تدوين هذه البيانات أو تخزينه ا على جه از حاس وب باس تخدام برن امج‬

‫‪13‬‬

‫تصميم قواعد البيانات‬ ‫ما قبل ظهور أنظمة قواعد البيانات‬

‫معالجة النص وص‪ ،‬أو يمكن حفظه ا على ص ورة ج داول‪ ،‬وم ع ذل ك ف إ ّن أفض ل طريق ة لتخ زين البيان ات هي‬
‫اس تخدام ب رامج إدارة قواع د البيان ات‪ ،‬وهي أدوات برمجي ة قوي ة تس مح ل ك بتخ زين البيان ات‪ ،‬ومعالجته ا‪،‬‬

‫واسترجاعها بعدة طرق مختلفة‪.‬‬

‫تتت ّبع معظم الشركات معلوم ات العملاء من خلال تخزينه ا في قاع دة بيان ات‪ ،‬وق د تش مل ه ذه البيان ات‬
‫العملاء‪ ،‬أو الموظفين‪ ،‬أو المنتجات‪ ،‬أو الطلبات‪ ،‬أو أي شيء آخر يساعد الشركة في تنفيذ مهامها‪.‬‬

‫‪ 1.4‬معنى البيانات‬

‫تُ َع ّد البيان ات ‪ Data‬معلوم ات واقعي ًة‪ ،‬مث ل‪ :‬القياس ات‪ ،‬أو الإحص ائيات ح ول الأش ياء والمف اهيم‪ ،‬كم ا‬
‫تُستخ َدم للمناقشات‪ ،‬أو على أساس جزء من العملي ات الحس ابية‪ ،‬و يمكن أن تك ون ه ذه البيان ات شخ ًص ا‪ ،‬أو‬
‫مكانًا‪ ،‬أو ح َدثًا‪ ،‬أو إجرا ًء‪ ،‬أو أي شيء آخر‪ ،‬حيث تُم ِّثل كل معلوم ة أو حقيق ة معين ة عنص رًا من عناص ر البيان ات‬

‫أي ‪.data element‬‬

‫إذا كانت البيانات معلومات‪ ،‬وكانت المعلومات هي ما نعتمد عليه في العم ل‪ ،‬فيمكن ك الب دء في معرف ة‬
‫المكان الذي قد تخزِّن هذه البيانات فيه‪ ،‬فمثاًل ‪ ،‬يُمكن تخزين البيانات في‪:‬‬

‫• ملفات تخزين مخصصة‬

‫• جداول البيانات‬

‫• المجلدات‬

‫• الدفاتر‬

‫• القوائم‬

‫• الأوراق‬

‫تخزِّن كل هذه المواد المعلومات وكذلك قاعدة البيانات‪.‬‬

‫بسبب الطبيعة الميكانيكية لقواعد البيانات‪ ،‬نجد أ َّن لها مقدرة كبيرة على إدارة ومعالجة المعلومات ال ُمخزَّن ة‬
‫فيها‪ ،‬مما يجعل هذه المعلومات أكثر فائدة لعملك‪.‬‬

‫يمكننا البدء من خلال هذا الفهم للبيانات في رؤية كيف يمكن لقاعدة البيانات تخزين مجموعة من البيانات‪،‬‬
‫وتنظيمها‪ ،‬وإجراء بحث سريع عليها‪ ،‬واسترجاعها‪ ،‬ومعالجتها‪ .‬ويتضمن هذا الكتاب والفص ول التالي ة الكث ير من‬

‫التفاصيل عن أنظمة إدارة قواعد البيانات وكيفية التعامل معها‪.‬‬

‫‪14‬‬

‫تصميم قواعد البيانات‬ ‫ما قبل ظهور أنظمة قواعد البيانات‬

‫‪ 1.5‬مصطلحات أساسية‬

‫• التزامن ‪ :Concurrency‬هو قدرة قاعدة البيانات على السماح لعدة مستخدمين من الوصول إلى‬
‫السجل نفسه دون التأثير سل ًبا على معالجة المعاملات‪.‬‬

‫• عنصر البيانات ‪ :Data element‬حقيقة أو معلومة واحدة‪.‬‬
‫• عدم تناسق البيانات ‪ :Data inconsistency‬الحالة التي تتعارض فيها النسخ المختلفة للبيانات‬

‫نفسها بعضها مع بعض‪.‬‬
‫• عزل البيانات ‪ :Data isolation‬الخاصية التي تحدد متى وكيف تصبح التغييرات التي تجري بواسطة‬

‫عملية معينة مرئي ًة للمستخ ِدمين المتزامنين والأنظمة المتزامنة الأخرى‪.‬‬
‫• سلامة البيانات ‪ :Data integrity‬يشير إلى الصيانة والتأكد من أن البيانات في قاعدة البيانات‬

‫صحيحة وم ّتسقة‪.‬‬
‫• تكرار البيانات ‪ :Data redundancy‬حالة تحدث في قاعدة بيانات عندما يحتاج أحد الحقول إلى‬

‫التحديث في أكثر من جدول‪.‬‬
‫• نظام قاعدة البيانات ‪ :Database approach‬وهو الذي يسمح بإدارة كميات كبيرة من المعلومات‬

‫التنظيمية‪.‬‬
‫• برامج إدارة قواعد البيانات ‪ :Database management software‬أداة برمجية قوية تتيح لك تخزين‬

‫البيانات‪ ،‬ومعالجتها‪ ،‬واسترجاعها بطرق مختلفة‪.‬‬
‫• النظام القائم على الملفات ‪ :File-based system‬وهو عبارة عن برنامج تطبيق مص َّمم للتعامل مع‬

‫ملفات البيانات‪.‬‬

‫‪ 1.6‬تمارين‬

‫‪ .1‬ناقش كل من المصطلحات التالية‪:‬‬
‫◦ البيانات‬
‫◦ الحقل‬
‫◦ السجل‬
‫◦ الملف‬

‫‪ .2‬ما هو تكرار البيانات؟‬

‫‪15‬‬

‫تصميم قواعد البيانات‬ ‫ما قبل ظهور أنظمة قواعد البيانات‬

‫‪ .3‬ناقش عيوب النظام القائم على الملفات‪.‬‬

‫‪ .4‬اشرح الفرق بين البيانات والمعلومات‪.‬‬

‫‪ .5‬استخدم الجدول أدناه للإجابة على الأسئلة التالية‪.‬‬

‫◦ كم عدد السجلات التي يحتوي عليها الملف؟‬

‫◦ كم عدد الحقول في كل سجل؟‬

‫◦ ما المشكلة التي قد تواجهها إذا أردت إنشاء قائمة مرتبة حسب المدينة؟‬

‫◦ كيف يمكنك حل هذه المشكلة عن طريق تعديل هيكلة الملف؟‬

‫‪PROJECT‬‬ ‫‪PROJECT‬‬ ‫‪MANAGER‬‬ ‫‪MANAGER‬‬ ‫‪PROJECT BID PRICE‬‬
‫‪CODE‬‬ ‫‪MANAGER‬‬ ‫‪PHONE‬‬ ‫‪ADDRESS‬‬

‫‪21-5Z‬‬ ‫‪Holly B. Parker 904-338-3416‬‬ ‫‪3334 Lee Rd.,‬‬ ‫‪$16٬833٬460٫00‬‬
‫‪Gainesville, FL‬‬
‫‪37123‬‬

‫‪25-2D‬‬ ‫‪Jane D. Grant‬‬ ‫‪615-898-9909‬‬ ‫‪218 Clark Blvd.,‬‬ ‫‪$12,500٬000٫00‬‬
‫‪Nashville, TN‬‬
‫‪36362‬‬

‫‪25-5A‬‬ ‫‪George F. Dorts 615-227-1245‬‬ ‫‪124 River Dr.,‬‬ ‫‪$32٬512٬420٫00‬‬
‫‪Franklin, TN‬‬
‫‪29185‬‬

‫‪25-9T‬‬ ‫‪Holly B. Parker 904-338-3416‬‬ ‫‪3334 Lee Rd.,‬‬ ‫‪$21٬563٬234٫00‬‬
‫‪Gainesville, FL‬‬
‫‪37123‬‬

‫‪27-4Q‬‬ ‫‪George F. Dorts 615-227-1245‬‬ ‫‪124 River Dr.,‬‬ ‫‪$10٬314٬545٫00‬‬
‫‪Franklin, TN‬‬
‫‪29185‬‬

‫‪29-2D‬‬ ‫‪Holly B. Parker 904-338-3416‬‬ ‫‪3334 Lee Rd.,‬‬ ‫‪$25٬559٬999٫00‬‬
‫‪Gainesville, FL‬‬
‫‪37123‬‬

‫‪31-7P‬‬ ‫‪0/11liam K. Moor 904-445-2719‬‬ ‫‪216 Morton Rd.,‬‬ ‫‪$56٬850٬000٫00‬‬
‫‪Stetson, FL 30155‬‬

‫‪16‬‬

‫‪ .2‬مفاهيم قواعد البيانات الأساسية‬

‫سنتعرف في هذا الفصل على أهم المصطلحات والمفاهيم الأساسية في قواعد البيان ات ب د ًءا من التع رف‬
‫على مفهوم قاعد البيانات بحد ذاته ثم التعرف إلى الصفات التي تتصف فيها قواعد البيانات وأخي ًرا التعرف على‬

‫مفهوم أنظمة إدارة قواعد البيانات وتصنيفاتها المندرجة ضمنها‪.‬‬

‫‪ 2.1‬ما هي قاعدة البيانات؟‬

‫الشكل ‪ :2.1‬قاعدة البيانات هي مستودع للبيانات‬

‫تصميم قواعد البيانات‬ ‫مفاهيم قواعد البيانات الأساسية‬

‫تُ َع ّد قاعدة البيانات ‪ database‬تجميعة مشتركة من البيانات ذات الصلة‪ ،‬وتُس تخ َدم ل دعم أنش طة من َظم ة‬
‫معينة‪ ،‬كما يمكن النظر إلى قاعدة البيانات على أساس مستودع للبيانات التي تُعرَّف م ر ًة واح د ًة‪ ،‬ومن ثم يمكن‬

‫الوصول إليها من مستخ ِدمين مختل ِفين كما هو موضح في الشكل التالي‪.‬‬

‫‪ 2.2‬خصائص قاعدة البيانات‬

‫تملك قاعدة البيانات الخصائص التالية‪:‬‬

‫• تُم ِّثل بعض جوانب العالم الحقيقي‪ ،‬أو تجميعة من عناصر البيانات ‪- data elements‬أو الحقائق ‪-facts‬‬
‫التي تُم ِّثل معلومات مستقاة من الواقع‪.‬‬

‫• تُ َع ّد قاعدة البيانات منطقي ًة‪ ،‬ومتماسك ًة‪ ،‬و ُمتسق ًة داخل ًيا‪.‬‬

‫• ُصم َمت قاعدة البيانات وبُنيت و ُم ِلئت بالبيانات لخدمة غرض مع ّين‪.‬‬
‫• يُخزَّن كل عنصر بيانات في حقل ‪.field‬‬

‫• تُك ِّون مجموعة الحقول جدواًل ‪ ،table‬فمثاًل ‪ ،‬يحت وي ك ل حق ل في ج دول الموظ ف على بيان ات ح ول‬
‫موظف فردي‪.‬‬

‫يمكن أن تحت وي قاع دة البيان ات على العدي د من الج داول‪ ،‬فمثاًل ‪ ،‬ق د يحت وي نظ ام‬
‫العضوية ‪ membership system‬على جدول عنوان‪ ،‬وجدول عضو فردي كما هو موضح في الشكل ‪.2‬‬

‫تتكون منظمة عالم العلوم مثاًل من عدة أعضاء‪ ،‬وهم‪ :‬أفراد ‪ ،individuals‬ومن ازل جماعي ة ‪،group homes‬‬
‫وأعمال تجارية ‪ ،businesses‬وش ركات ‪ ،corporations‬حيث يملك ون عض وية نش طة في ه ذه المنظم ة‪ ،‬كم ا‬

‫يمكن شراء العضوية لمدة سنة أو سنتين‪ ،‬وبعد ذلك يمكن تجديدها لمدة سنة أو سنتين أي ًضا‪.‬‬

‫نلاح ظ في الش كل أ ّن مي ني م اوس ‪ Minnie Mouse‬ق د ج ددت عض وية العائل ة في منظم ة ع الم‬
‫العل وم ‪ ،Science World‬كم ا نلاح ظ أ ّن ك ل ش خص يمل ك المع رِّف رقم ‪ 100755‬يعيش في العن وان‬
‫التالي‪ .Rodent Lane 8932 :‬والأعضاء الأفراد كما يظهر في الشكل وهم‪ Mickey Mouse :‬و ‪Minnie Mouse‬‬

‫وحتى ‪ Moose Mouse‬كما هو ظاهر‪.‬‬

‫‪18‬‬

‫تصميم قواعد البيانات‬ ‫مفاهيم قواعد البيانات الأساسية‬

‫الشكل ‪ :2.2‬نظام العضوية في ‪Science World‬‬

‫‪ 2.3‬أنواع مستخدمي قاعدة البيانات‬

‫يندرج مستخدمو قواعد قواعد البيانات ضمن أحد التصنيفات التالية‪:‬‬

‫‪ .1‬المس‪W‬تخدمون النه‪W‬ائيون ‪ :End Users‬هم الأش خاص ال ذين تتطلب وظ ائفهم الوص ول إلى قاع دة‬
‫بيانات للاستعلام عن التقارير وتحديثها وإنشائها‪.‬‬

‫‪ .2‬مستخدم التطبيق ‪ :Application user‬هو الش خص ال ذي يص ل إلى برن امج تط بيقي موج ود لأداء‬
‫المهام اليومية‪.‬‬

‫‪ .3‬المستخدمون الخبراء ‪ :Sophisticated users‬هم المستخدمون الذين لديهم ط ريقتهم الخاص ة في‬
‫الوصول إلى قاعدة البيانات‪ .‬هذا يعني أنهم لا يستخدمون البرنامج التطبيقي المت و ّفر في النظ ام‪ ،‬فق د‬
‫يح ّددون التطبيق الخ اص بهم أو يص ِفون ح اجتهم مباش ر ًة باس تخدام لغ ات اس تعلام‪ .‬يحتف ظ ه ؤلاء‬
‫المستخدمون المتخصصون بقواعد بياناتهم الشخصية باستخدام حزم البرامج الج اهزة ال تي ت وفر أوام ر‬

‫قائم ًة على القوائم ‪ menu driven commands‬وسهلة الاستخدام مثل برنامج ‪.MS Access‬‬

‫‪ .4‬مبرمجو التطبيقات ‪ :Application Programmers‬يط ّبق هؤلاء المستخدمون برامج تطبيقية محددة‬
‫للوصول إلى البيانات المخزَّنة‪ ،‬حيث يجب أن يكونوا على دراية بنظم إدارة قواعد البيانات لإنجاز مهامهم‬

‫بطريقة سليمة‪.‬‬

‫‪ .5‬مسؤولو قاعدة البيان‪W‬ات‪ :‬ق د يك ون مس ؤول قاع دة البيان ات ‪- Database Administrator‬أو ‪DBA‬‬
‫اختصا ًرا‪ -‬شخ ًصا أو مجموعة من الأشخاص في مؤسس ٍة‪ ،‬المسؤولين عن إعطاء التص ريح بالوص ول إلى‬

‫قاعدة البيانات ومراقبة استخدامها وإدارة جميع الموارد لدعم استخدام نظام قاعدة البيانات بأكمله‪.‬‬

‫‪19‬‬

‫تصميم قواعد البيانات‬ ‫مفاهيم قواعد البيانات الأساسية‬

‫‪ 2.4‬نظام إدارة قواعد البيانات وتصنيفاتها‬

‫يُ َع ّد نظ ام إدارة قواع د البيان ات ‪ - database management system‬أو ‪ DBMS‬اختص ا ًرا‪ -‬تجميع ًة من‬
‫البرامج التي تُمكِّن المس تخ ِدمين من إنش اء قواع د البيان ات ‪ ،databases‬والحف اظ عليه ا‪ ،‬والتحكم في جمي ع‬
‫عمليات الوصول إليها‪ ،‬كما يُ َع ّد اله دف الأساس ي لنظ ام إدارة قواع د البيان ات ه و توف ير بيئ ة ملائم ة وفعال ة‬

‫للمستخ ِدمين لاسترجاع المعلومات وتخزينها‪.‬‬

‫يمكننا باستخدام نظام قواعد البيانات ‪ DBMS‬تمثيل النظام المصرفي التقليدي كما هو موض ح في الش كل‬
‫التالي‪ ،‬حيث يُستخ َدم في هذا المثال المصرفي نظ ام إدارة قواع د البيان ات من ِق َب ل قس م ش ؤون الم وظفين‪،‬‬

‫وقسم الحسابات‪ ،‬وقسم إدارة القروض‪ ،‬للوصول إلى قاعدة البيانات المشتركة للشركة‪.‬‬

‫يمكن تصنيف أنظمة إدارة قواعد البيانات بنا ًء على عدة معايير‪ ،‬مثل‪ :‬نموذج البيانات ‪ ،data model‬وأعداد‬
‫المستخدمين ‪ ،user numbers‬وتوزيع قاعدة البيانات ‪database distribution‬؛ وفيما يلي بيان تفصيلي لكل‬

‫من هذه المعايير‪.‬‬

‫الشكل ‪ :2.3‬نظام إدارة قواعد البيانات المصرفية‬

‫‪ 2.4.1‬التصنيف على أساس نموذج البيانات‬

‫نموذج البيانات الأكثر انتشا ًرا والمستخدم اليوم ه و نم وذج البيان ات العلائقي ة ‪،relational data model‬‬
‫وذلك لأن جميع نظم إدارة قواعد البيانات‪ ،‬مث ل‪ ،Oracle :‬و‪ ،MS SQL Server‬و ‪ ،DB2‬و ‪ ،MySQL‬تدعم ه‪ ،‬ولا‬
‫تزال النماذج التقليدية ‪ traditional models‬الأخرى مثل نماذج البيانات الهرمية ‪،hierarchical data models‬‬

‫‪20‬‬

‫تصميم قواعد البيانات‬ ‫مفاهيم قواعد البيانات الأساسية‬

‫ونم اذج بيان ات الش بكة ‪ network data models‬مس تخ َدم ًة في الص ناعة بص ورة أساس ية على منص ات‬
‫الحواسيب المركزية‪ ،‬ولكن نجدها محصور ًة في استخدامات بسيطة بسبب تعقيدها‪ ،‬ويشار إليها على أنها نماذج‬
‫تقليدية ‪ traditional models‬لأنها سبقت النم وذج العلائقي ‪ .relational model‬وق د ظه رت في الس نوات‬
‫الأخيرة نماذج البيانات كائنية التوجه ‪ ،object-oriented data models‬وهي نظ ام لإدارة قاع دة بيان ات‪ ،‬حيث‬

‫تُم َّثل فيه المعلومات في شكل كائنات كما هو مستخدم في البرمجة كائنية التوجه‪.‬‬

‫تختلف قواعد البيانات كائنية التوجه عن قواعد البيان ات العلائقي ة ‪ ،relational databases‬وال تي تعتم د‬
‫على الج دول أي تُ َع ّد جدولي ة التوج ه ‪ ،table-oriented‬كم ا تجم ع أنظم ة إدارة قواع د البيان ات كائنية‬
‫التوجه ‪- Object-oriented database management systems‬وتختصر إلى ‪ -OODBMS‬بين إمكانيات قاعدة‬

‫البيانات وإمكانيات لغات البرمجة كائنية التوجه‪.‬‬

‫ما زال انتشار قواعد البيانات كائنية التوجه ضعيف موازنة بقواعد البيان ات العلائقي ة وذل ك يرج ع إلى ع دم‬
‫تعرُّف المستخدمين عليها بعد‪ ،‬ويوجد بعض الأمثلة على نظم إدارة قواعد البيانات كائنية التوجه‪ ،‬وهي‪:‬‬

‫• ‪O2‬‬

‫• ‪ObjectStore‬‬

‫• ‪Jasmine‬‬

‫‪ 2.4.2‬التصنيف على أساس أعداد المستخدمين‬

‫يمكن تصنيف نظم إدارة قواعد البيانات بنا ًء على عدد المس تخ ِدمين الق ادر على دعمهم‪ ،‬حيث من الممكن‬
‫دعم مس تخ ِدم وحي د ويس مى نظ ام قواع د بيان ات أح ادي المس تخ ِدم ‪،ingle-user database system‬‬
‫أو دعم العدي د من المس تخ ِدمين بص ورة متزامن ة ويس مى نظ ام قواع د بيان ات متع دد‬

‫المستخ ِدمين ‪.multiuser database system‬‬

‫‪ 2.4.3‬التصنيف على أساس توزيع قاعدة البيانات‬

‫توجد أربعة أنظمة توزيع رئيسية لأنظمة قواعد البيانات‪ ،‬ويمكن استخدامها لتصنيف قواعد البيانات حس ب‬
‫ماهو موضح أدناه‪.‬‬

‫ا‪ .‬الأنظمة المركزية ‪Centralized systems‬‬

‫يُخزَّن نظام إدارة قواعد البيانات ‪ DBMS‬وقاعدة البيانات ‪ database‬عند استخدام الأنظم ة المركزي ة لقواع د‬
‫البيانات ‪ centralized database system‬في موقع واحد تستخدمه أنظم ًة أخ رى عدي د ًة كم ا ه و مو َّض ح في‬

‫الشكل التالي‪.‬‬

‫‪21‬‬

‫تصميم قواعد البيانات‬ ‫مفاهيم قواعد البيانات الأساسية‬

‫استخ َدمت العديد من المكتبات الكندية في أوائل الثمانينيات نظام ‪ GEAC 8000‬لتحويل دليل أو فه رس‬
‫البطاقات اليدوية إلى أنظمة فهرس مركزية يمكن قراءتها آل ًيا‪ ،‬حيث يحتوي كل فهرس على حق ل ب اركود مش ابه‬

‫لذلك الموجود في منتجات المتاجر‪.‬‬

‫الشكل ‪ :2.4‬مثال على نظام قاعدة بيانات مركزية‪.‬‬

‫ب‪ .‬نظام قاعدة البيانات الموزعة‬

‫ي و َّزع نظ ام إدارة قواع د البيان ات ‪ DBMS‬وقاع دة البيان ات ‪ database‬في نظ ام قاع دة البيان ات الموزع ة‬
‫‪ distributed database system‬من مواقع مختلفة متصلة بشبكة حاسوب‪ ،‬كما هو مو َّضح في الشكل التالي‪.‬‬

‫‪22‬‬

‫تصميم قواعد البيانات‬ ‫مفاهيم قواعد البيانات الأساسية‬

‫الشكل ‪ :2.5‬مثال على نظام قاعدة بيانات موزعة‪.‬‬

‫ج‪ .‬أنظمة قواعد البيانات الموزعة المتجانسة‬

‫تستخ ِدم أنظمة قواعد البيانات الموزع ة المتجانس ة ‪Homogeneous distributed database systems‬‬
‫برنامج إدارة قواعد البيانات نفس ه من مواق ع متع ددة‪ ،‬كم ا يمكن تب ادل البيان ات بين ه ذه المواق ع المختلف ة‬
‫بسهولة‪ ،‬فمثاًل ‪ ،‬تستخ ِدم أنظم ة معلوم ات المكتب ات ‪ library information systems‬من الب ائع نفس ه مثل‬
‫نظام ‪ Geac Computer Corporation‬لإدارة قواعد البيانات نفسه‪ ،‬والذي يسمح بتبادل البيانات بس هولة بين‬

‫مواقع مكتبة ‪ Geac‬المختلفة‪.‬‬

‫د‪ .‬أنظمة قواعد البيانات الموزعة غير المتجانسة‬

‫تس تخ ِدم مواق ع مختلف ة برن امج إدارة قواع د بيان ات مختل ف في نظ ام قاع دة البيان ات الموزع ة غ ير‬
‫المتجانسة ‪ ،heterogeneous distributed database system‬ولكن هناك برامج مشتركة إضافية تدعم تبادل‬
‫البيانات بين هذه المواقع‪ ،‬فمثاًل ‪ ،‬تستخ ِدم أنظمة قاعدة بيانات المكتبات المختلف ة تنس يق الفهرس ة المق روءة‬

‫آل ًيا ‪- machine-readable cataloging‬أي ‪ MARC‬اختصا ًرا‪ -‬نفسه لدعم تبادل بيانات تسجيلات المكتبة‪.‬‬

‫‪23‬‬

‫تصميم قواعد البيانات‬ ‫مفاهيم قواعد البيانات الأساسية‬

‫‪ 2.5‬مصطلحات أساسية‬

‫• عناصر البيانات ‪ :data elements‬حقائق تُم ِّثل معلومات مستقاة من الواقع‪.‬‬
‫• قاعدة البيانات ‪ :database‬تجميعة مشتركة من البيانات ذات الصلة‪ ،‬وتُستخ َدم لدعم أنشطة منظمة‬

‫مع َّينة‪.‬‬
‫• نظام إدارة قواعد البيانات ‪ database management system‬أو ‪ :DBMS‬تجميعة من البرامج التي‬

‫تُمكِّن المستخ ِدمين من إنشاء قواعد البيانات‪ ،‬والحفاظ عليها‪ ،‬والتحكم في جميع عمليات الوصول‬
‫إليها‪.‬‬

‫• الجدول ‪ :table‬مجموعة من الحقول ‪.fields‬‬

‫• نظام قاعدة البيانات المركزي ‪ :centralized database system‬يُخزَّن نظام إدارة قواعد البيانات‬
‫‪ DBMS‬وقاعدة البيانات ‪ database‬عند استخدام الأنظمة المركزية لقواعد البيانات ‪centralized‬‬
‫‪ database system‬في موقع واحد تستخدمه أنظم ًة أخرى عديد ًة‬

‫• نظام قاعدة البيانات الموزعة ‪ :distributed database system‬يو َّزع نظام إدارة قواعد البيانات‬
‫‪ DBMS‬وقاعدة البيانات ‪ database‬في نظام قاعدة البيانات الموزعة ‪distributed database system‬‬

‫من مواقع مختلفة متصلة بشبكة حاسوب‪.‬‬

‫• نظام قاعدة البيانات الموزعة غير المتجانسة ‪:heterogeneous distributed database system‬‬
‫تستخ ِدم مواقع مختلفة برنامج إدارة قواعد بيانات مختلف‪ ،‬ولكن هناك برامج مشتركة إضافية تدعم‬
‫تبادل البيانات بين هذه المواقع‪.‬‬

‫• نظام قاعدة البيانات الموزعة المتجانسة ‪:homogeneous distributed database systems‬‬
‫تستخ ِدم برنامج إدارة قواعد البيانات نفسه في مواقع متعددة‪.‬‬

‫• نظام قاعدة بيانات متعدد المستخ ِدمين ‪ :multiuser database system‬هو نظام إدارة قاعدة‬
‫بيانات يدعم عدة مستخ ِدمين بصورة متزامنة‪.‬‬

‫• نموذج البيانات كائنية التوجه ‪ :object-oriented data model‬نظام لإدارة قواعد البيانات‪ ،‬حيث‬
‫تُم َّثل المعلومات فيه على صورة كائنات كما هو مستخدم في البرمجة كائنية التوجه‪.‬‬

‫• نظام قاعدة بيانات أحادي المست ِخدم ‪ :single-user database system‬نظام إدارة قاعدة بيانات‬
‫يدعم مستخدم واحد فقط في كل مرة‪.‬‬

‫• النماذج التقليدية ‪ :traditional models‬هي نماذج البيانات التي سبقت النموذج العلائقي‬
‫‪.relational model‬‬

‫‪24‬‬

‫تصميم قواعد البيانات‬ ‫مفاهيم قواعد البيانات الأساسية‬

‫• مبرمج التطبيق ‪ :application programmer‬هو المستخدم الذي يط ّبق برامجًا تطبيقية محددة‬
‫للوصول إلى البيانات المخزَّنة‪.‬‬

‫• مستخدم التطبيق ‪ :application user‬يمكنه الوصول إلى برنام ٍج تطبيقي لأداء المهام اليومية‪.‬‬
‫• مسؤول قاعدة البيانات ‪ database administrator‬أو ‪ :DBA‬هو الشخص المسؤول عن إعطاء‬
‫التصريح بالوصول إلى قاعدة البيانات ومراقبة استخدامها وإدارة جميع الموارد لدعم استخدام نظام‬

‫قاعدة البيانات بأكمله‪.‬‬
‫• المستخدم النهائي ‪ :end user‬هو الشخص الذي تتطلب وظيفته الوصول إلى قاعدة بيانات‬

‫للاستعلام عن التقارير وتحديثها وإنشائها‪.‬‬
‫• المستخدم الخبير ‪ :sophisticated user‬هو الشخص الذي يستخدم طر ًقا أخرى مختلفة عن البرنامج‬

‫التطبيقي للوصول إلى قاعدة البيانات‪.‬‬

‫‪ 2.6‬تمارين‬

‫‪ .1‬ما هو نظام إدارة قواعد البيانات؟‬
‫‪ .2‬ما هي خصائص نظام إدارة قواعد البيانات؟‬
‫‪ .3‬اذكر ثلاثة أمثلة لقواعد بيانات مستقاة من الواقع مثل تحتوي المكتبة على قاعدة بيانات للكتب‪.‬‬
‫‪ .4‬اذكر ثلاثة أمثلة لقواعد البيانات العلائقية المستخ َدمة والأكثر شيو ًعا‪.‬‬
‫‪ .5‬ما الفرق بين أنظمة قواعد البيانات المركزية والموزعة؟‬
‫‪ .6‬ما الفرق بين أنظمة قواعد البيانات الموزعة المتجانسة وبين غير المتجانسة؟‬

‫‪25‬‬

‫‪ .3‬خصائص قواعد البيانات والمزايا التي‬
‫تقدمها‬

‫تعني إدارة المعلومات معالجة المعلومات وتنظيمها لتوظيفها بما يخدمنا بطريق ة نس تفيد منه ا في تنفي ذ‬
‫مهامنا‪ ،‬كما منع نظام إدارة قواعد البيانات ‪ DBMS‬وجود الفوض ى العرض ية ال تي ك انت تح دث للبيان ات ال تي‬
‫نجمعها ونضيفها إلى قواعد البيانات‪ ،‬حيث أصبح الوصول إليها أكثر سهول ًة وتكاماًل مع بقية عملن ا‪ ،‬كم ا تس مح‬

‫لنا إدارة المعلومات باستخدام قاعدة بيانات أن نصبح مستخ ِدمين استراتيجيين للبيانات التي نملكها‪.‬‬
‫غال ًبا ما نحتاج إلى الوصول إلى البيانات وإعادة فرزها لأغراض مختلفة تشمل ما يلي‪:‬‬
‫• إنشاء القوائم البريدية‬
‫• كتابة التقارير الإدارية‬
‫• توليد قوائم بالقصص الإخبارية المختارة‬
‫• تحديد احتياجات العملاء المختلفة‬

‫تملك قواعد البيانات قدر ًة كبير ًة على معالجة البيانات‪ ،‬مما يسمح لها بإجراء العمليات التالية‪:‬‬
‫• الفرز ‪Sort‬‬

‫• المطابقة ‪Match‬‬
‫• ربط البيانات ‪Link‬‬
‫• تجميع البيانات ‪Aggregate‬‬
‫• تخطي الحقول ‪Skip fields‬‬

‫تصميم قواعد البيانات‬ ‫خصائص قواعد البيانات والمزايا التي تقدمها‬

‫• إجراء العمليات الحسابية ‪Calculate‬‬
‫• ترتيب ‪ Arrange‬البيانات‬

‫تتعدد استخدامات قواعد البيانات وترتبط بمجالات كثيرة‪ ،‬لذلك نجد من الممكن ربط قاع دة البيان ات بك ل‬
‫من الأنظمة التالية‪:‬‬

‫• موقع إلكتروني لتسجيل المستخ ِدمين‬
‫• تطبيقات الهواتف مثل تطبيق لتخزين بيانات عملاء من َظمة تقدم خدمات اجتماعية‬

‫• نظام السجلات الطبية لمنشأة رعاية صحية‬
‫• دفتر العناوين ‪ address book‬الشخصية في عميل البريد الإلكتروني‬

‫• تجميعة من الملفات النصية‬
‫• نظام حجوزات الطيران‬

‫‪ 3.1‬خصائص قواعد البيانات‬

‫يمل ك نظ ام قواع د البيان ات ع د ًدا من الخص ائص والفوائ د ال تي تم يزه عن النظ ام الق ائم على‬
‫الملفات ‪ ،file-based system‬حيث سنذكر منها ما يلي‪:‬‬

‫‪ 3.1.1‬طبيعة الوصف الذاتي لنظام قاعدة البيانات‬

‫يُشار إلى نظام قاعدة البيانات على أنه ذاتي الوص ف‪ ،‬وذل ك بس بب احتوائ ه على قاع دة البيان ات نفس ها‪،‬‬
‫وعلى بيانات وصفية ‪ metadata‬بحيث تُح ِّدد البيان ات وتص فها‪ ،‬والعلاق ات بين الج داول في قاع دة البيان ات‪،‬‬
‫حيث تُستخ َدم هذه المعلومات بواسطة برامج أنظمة إدارة قواعد البيانات ‪ ،DBMS‬أو مستخدمي قاعدة البيانات‪،‬‬
‫ويُ َع ّد هذا الفصل بين البيانات ومعلوماتها أحد الفروقات الرئيسية ال تي تم يز نظ ام قواع د البيان ات عن النظ ام‬

‫التقليدي القائم على الملفات‪ ،‬والذي يكون فيه تعريف البيانات جز ًءا من برامج التطبيقات‪.‬‬

‫‪ 3.1.2‬العزل بين البرنامج والبيانات‬

‫تُح َّدد هيكلة ملفات البيانات في النظام القائم على الملفات داخل برامج التطبيق‪ ،‬ل ذلك إذا أراد المس تخدم‬
‫تعديل هيكلة ملف مع َّين‪ ،‬فعليه تعديل جميع البرامج التي تتصل بهذا الملف‪.‬‬

‫من الناحية الأخرى‪ ،‬تُخزِّن قواعد البيانات هيكلة البيانات في دليل ‪ catalog‬النظام وليس في البرامج‪ ،‬لذلك‬
‫كل ما هو مطلوب لتعديل هيكل ملف مع َّين هو تعديل واحد فقط‪ ،‬ويسمى هذا بالعزل بين البرامج والبيان ات أو‬

‫الاستقلالية بين البرامج والبيانات ‪ program-data independence‬أي ًضا‪.‬‬

‫‪27‬‬

‫تصميم قواعد البيانات‬ ‫خصائص قواعد البيانات والمزايا التي تقدمها‬

‫‪ 3.2‬دعم عدة واجهات عرض للبيانات‬

‫تدعم قاعدة البيانات استخدام عدة واجهات لعرض البيانات‪ ،‬حيث تُ َع ّد واجهة العرض ‪ view‬مجموع ًة فرعي ًة‬
‫من قاعدة البيانات ‪ ،database‬والتي تُعرَّف وتُخ َّصص لخدمة أغراض فئة مح د َّدة من مس تخ ِدمي النظ ام‪ ،‬وق د‬
‫يملك مستخ ِدمين متعددين واجهات مختلف ًة في النظام‪ ،‬حيث تحتوي كل منها على البيانات التي تهم مستخ ِدم‬

‫أو مجموعة من المستخ ِدمين دون غيرهم‪.‬‬

‫‪ 3.2.1‬مشاركة البيانات والنظام متعدد المستخدمين‬

‫ص ِّممت أنظمة قواعد البيانات لعدة مستخ ِدمين‪ ،‬حيث ت تيح لع دد من المس تخ ِدمين الوص ول إلى قاع دة‬
‫البيانات نفسها في الوقت نفسه‪ ،‬وذلك عن طريق استخدام اس تراتيجيات مع َّين ة تُس مى اس تراتيجيات التحكم‬
‫المتزامن ة ‪ ،concurrency control strategies‬حيث تض من ه ذه الاس تراتيجيات ِص حة البيان ات ال تي يتم‬

‫الوصول إليها‪ ،‬كما تُحافظ على سلامة البيانات أي ًضا‪.‬‬
‫يُ َع ّد تصميم أنظمة قواعد البيانات الحديثة المتعددة المستخ ِدمين تحس ًنا كبيرًا موازن ًة بتلك ال تي ك انت في‬

‫الماضي‪ ،‬والتي تقتصر على شخص واحد في كل مرة‪.‬‬

‫‪ 3.2.2‬التحكم في تكرار البيانات‬

‫تُخزَّن البيانات في نظام قواعد البيانات ‪ -‬وفي الحالة المثالية ‪ -‬دون أي تكرار ‪ ،redundancy‬أي أ ّن كل عنصر‬
‫بيانات موجود في مكان واحد فقط في قاعدة البيانات‪ .‬ولكن يحدث في بعض الح الات تك رار للبيان ات بغ رض‬
‫تحسين أداء النظام في أجزاء معينة‪ ،‬كما يُتحكَّم في هذا التكرار عن طريق برمجة التطبيق ات‪ ،‬وذل ك بالمحافظ ة‬

‫على الحد الأدنى منه عند تصميم قاعدة البيانات‪.‬‬

‫‪ 3.2.3‬تشارك البيانات‬

‫يملك تكامل جميع بيانات المؤسسة داخل نظام قاعدة البيانات العدي د من المزاي ا‪ ،‬حيث يس مح بمش اركة‬
‫البيانات بين الموظفين وغ يرهم من ال ذين يمكنهم الوص ول إلى النظ ام‪ ،‬وك ذلك يس مح للمس تخدمين بتولي د‬

‫المزيد من المعلومات من كمية مع َّينة من البيانات أكثر مما سيكون بدون التكامل‪.‬‬

‫‪ 3.2.4‬تطبيق قيود صارمة لضمان سلامة البيانات وصحتها‬

‫ت وفر أنظم ة إدارة قواع د البيان ات الق درة على تحدي د وف رض قي ود معين ة على البيان ات لض مان إدخ ال‬
‫معلوم ات ص حيحة من ِق َب ل المس تخ ِدمين‪ ،‬والمحافظ ة على س لامة البيان ات‪ ،‬إذ تُ َع ّد قي ود قاع دة‬
‫البيانات ‪ database constraint‬قواعد لفرض ما يمكن إدخاله أو تعديله في جدول مع َّين‪ ،‬مث ل‪ :‬الرم ز البري دي‬

‫باستخدام تنسيق مع َّين‪ ،‬أو إضافة مدينة حقيقية في حقل المدينة‪.‬‬

‫‪28‬‬

‫تصميم قواعد البيانات‬ ‫خصائص قواعد البيانات والمزايا التي تقدمها‬

‫هناك أنواع عديدة من القيود في قواعد البيانات‪ ،‬مثل‪ :‬نوع البيان ات ‪ Data type‬مث ل تح دد ن وع البيان ات‬
‫المسموح بها في الحقل مثل الأعداد فقط‪ ،‬أو تفرد البيانات ‪ Data uniqueness‬مثل المفتاح الأساس ي وال ذي‬
‫يضمن ع دم إدخ ال أي تك رارات‪ ،‬كم ا يمكن أن تك ون القي ود بس يط ًة ‪-‬بحيث تف رض على الحق ل مباش ر ًة‪ ،-‬أو‬

‫معقد ًة ‪-‬أي برمجية‪.‬‬

‫‪ 3.2.5‬تقييد الوصول الغير مصرح به‬

‫لا يحظى جميع مستخدمي نظام قاعدة البيان ات بص لاحيات الوص ول نفس ها‪ ،‬فمثاًل ‪ ،‬ق د يك ون ل دى أح د‬
‫المستخ ِدمين صلاحيات القراءة فقط ‪-‬أي القدرة على قراءة الملفات دون إجراء أ ّي تع ديلات عليه ا‪ -‬بينم ا يك ون‬
‫لدى مستخ ِدم آخر صلاحيات القراءة والكتابة ‪ -‬أي القدرة على قراءة الملفات والتعديل عليها‪ ،-‬ولهذا السبب يجب‬
‫على نظام إدارة قاعدة البيانات توفير نظام أمان فرعي لإنشاء أنواع مختلفة من حس ابات المس تخ ِدمين‪ ،‬والتحكم‬

‫فيها‪ ،‬وتقييد الوصول الغير مصرح به‪.‬‬

‫‪ 3.2.6‬استقلالية البيانات‬

‫يوجد ميزة أخرى لنظام إدارة قواعد البيانات‪ ،‬وهي الطريقة التي يسمح بها باستقلالية البيانات‪ ،‬بمع نى آخ ر‪،‬‬
‫يتم فصل أوصاف بيانات النظام أو البيانات التي تصف البيانات ‪-‬أي البيان ات الوص فية ‪ -metadata‬عن ب رامج‬
‫التطبيق‪ ،‬وه ذا ممكن لأن نظ ام إدارة قاع دة البيان ات يع الج التغي يرات في هيك ل البيان ات‪ ،‬ولا تُض َّمن ه ذه‬

‫التغيرات في البرنامج نفسه‪.‬‬

‫‪ 3.2.7‬معالجة المعاملات‬

‫يجب أن يتضمن نظام إدارة قواعد البيانات أنظم ًة فرعي ًة للتحكم في ال تزامن‪ ،‬حيث تض من ه ذه الخاص ية‬
‫بق اء البيان ات متس ق ًة وص الح ًة أثن اء معالج ة المع ا َملات ح تى وإن ق ام العدي د من المس تخ ِدمين بتح ديث‬

‫المعلومات نفسها‪.‬‬

‫‪ 3.2.8‬تقديم عدة واجهات عرض للبيانات‬

‫يسمح نظام إدارة قواعد البيان ات ‪ DBMS‬للعدي د من المس تخدمين بالوص ول إلى قواع د البيان ات بص ورة‬
‫فردي ة أو بص ورة متزامن ة‪ ،‬كم ا ليس من المهم أن يع رف المس تخ ِدمون كي ف وأين تُخ زَّن البيان ات ال تي‬

‫يصلون إليها‪.‬‬

‫‪ 3.2.9‬النسخ الاحتياطي واسترجاع البيانات التالفة أو المفقودة‬

‫يُ َع ّد النسخ الاحتياطي والاسترجاع طريق َتين لحماية البيانات من الض ياع‪ ،‬حيث ي وفر نظ ام قواع د البيان ات‬
‫عملي ًة منفصل ًة عن عملية النسخ الاحتياطي للشبكة لنسخ البيانات احتياط ًيا واستعادتها‪ ،‬ويُ َع ّد النسخ الاحتياطي‬
‫لقاعدة البيانات الطريقة الوحيدة لاستعادتها في حال فشل مح رك الأق راص الثابت ة وتع َّذر الوص ول إلى قاع دة‬

‫البيانات المخزنة عليه‪.‬‬

‫‪29‬‬

‫تصميم قواعد البيانات‬ ‫خصائص قواعد البيانات والمزايا التي تقدمها‬

‫إذا فشل نظ ام الحاس وب في منتص ف عملي ة تح ديث البيان ات‪ ،‬فيك ون النظ ام الف رعي للاس ترجاع ه و‬
‫المسؤول عن التأكد من استعادة قاعدة البيانات إلى حالتها الأصلية‪ ،‬ويكون ما س بق فائ دتَين إض افي َتين لنظ ام‬

‫إدارة البيانات‪.‬‬

‫‪ 3.3‬مصطلحات أساسية‬

‫• استراتيجيات التحكم المتزامنة ‪ :concurrency control strategies‬تسمح للعديد من‬
‫المستخ ِدمين بالوصول إلى عنصر البيانات نفسه في الوقت نفسه‪.‬‬

‫• نوع البيانات ‪ :data type‬يُح ِّدد نوع البيانات المسموح بها في حقل مع َّين مثل يمكن أن يقبل الحقل‬
‫أعدا ًدا فقط‪.‬‬

‫• تفرد البيانات ‪ :data uniqueness‬يضمن عدم إدخال بيانات مكرَّرة‪.‬‬
‫• قيود قاعدة البيانات ‪ :database constraint‬يُح ِّدد القيد ما يُسمح بإدخاله أو تعديله في جدول مع َّين‬

‫ومحدد‪.‬‬
‫• البيانات الوصفية ‪ :metadata‬تُح ِّدد وتصف البيانات والعلاقات بين الجداول في قاعدة البيانات‪.‬‬

‫• صلاحيات القراءة والكتابة ‪ :read and write privileges‬القدرة على قراءة الملفات وتعديلها‪.‬‬
‫• صلاحيات القراءة فقط ‪ :read-only access‬القدرة على قراءة الملفات فقط دون تعديلها‪.‬‬

‫• الوصف الذاتي ‪ :self-describing‬يُشار إلى نظام قاعدة البيانات على أنه ذاتي الوصف‪ ،‬لأنه يحتوي‬
‫على قاعدة البيانات نفسها‪ ،‬بالإضافة إلى البيانات الوصفية التي تُح ِّدد وتصف البيانات والعلاقات بين‬

‫الجداول في قاعدة البيانات‪.‬‬
‫• واجهة العرض‪ :‬مجموعة فرعية من قاعدة البيانات‪.‬‬

‫‪ 3.4‬تمارين‬

‫‪ .1‬ماذا يُم ِّيز نظام إدارة قاعدة البيانات ‪DBMS‬عن النظام القائم على الملفات ‪file-based system‬؟‬
‫‪ .2‬ما هي استقلالية البيانات؟ وما أهميتها؟‬
‫‪ .3‬ما هو الغرض من إدارة المعلومات؟‬

‫‪ .4‬ناقش استخدام قواعد البيانات في بيئة العمل‪.‬‬
‫‪ .5‬ما هي البيانات الوصفية؟‬

‫‪30‬‬

‫‪ .4‬نمذجة البيانات وأنواعها‬

‫تُ َع ّد نمذجة البيانات ‪ Data Modeling‬الخطوة الأولى والأساسية عند تصميم أي قاعدة بيانات‪ ،‬كما تُ َع ّد هذه‬
‫الخطوة مرحلة تصميم مجردة وعالية المستوى‪ ،‬كما يشار إليها باسم التصميم المفاهيمي ‪.conceptual design‬‬

‫الهدف من هذه المرحلة هو إعطاء وصف واضح لكل من‪:‬‬
‫• البيانات الواردة في قاعدة البيانات‪ ،‬مثل الكيانات‪ :‬طلاب‪ ،‬ومحاضرون‪ ،‬ودورات‪ ،‬ومواد‪.‬‬
‫• العلاق ات بين عناص ر البيان ات ‪ ،data items‬مث ل‪ :‬يش رف محاض رون على طلاب‪ ،‬وي درِّس‬

‫محاضرون دورات‪.‬‬
‫• القيود المفروضة على البيانات‪ ،‬مثل‪ :‬يتكون رقم الطالب من ثماني ة خان ات بالض بط‪ ،‬وتحت وي الم ادة‬

‫الدراسية على أربع أو ست درجات فقط‪.‬‬
‫يُع َّبر في الخطوة الثانية عن عناصر البيانات‪ ،‬والعلاقات‪ ،‬والقيود‪ ،‬باس تخدام المف اهيم ال تي يوفره ا نم وذج‬
‫البيانات عالي المستوى‪ ،‬ونظ ًرا لع دم وج ود تفاص يل التنفي ذ ‪ implementation details‬في ه ذه المف اهيم‪،‬‬
‫فتكون نتيجة عملية نمذجة البيانات تمثياُل شبه رسمي لهيكل قاعدة البيانات‪ ،‬وهذه النتيجة س هلة الفهم‪ ،‬ل ذلك‬

‫تُستخ َدم على أساس مرجع للتأكد من تلبية جميع متطلبات المستخدم‪.‬‬
‫الخطوة الثالثة هي تصميم قاعدة البيانات‪ ،‬حيث يكون لدينا خلال ه ذه الخط وة خط وتَين ف رعي َتين‪ ،‬وهم ا‪:‬‬
‫التص ميم المنطقي لقاع دة البيان ات ‪ ،database logical design‬وال تي تح ِّدد قاع دة البيان ات في نم وذج‬
‫بيان ات لنظ ام إدارة قواع د بيان ات ‪ DBMS‬مع َّين‪ ،‬والأخ رى هي التص ميم الم ادي لقاع دة‬

‫تصميم قواعد البيانات‬ ‫نمذجة البيانات وأنواعها‬

‫البيانات ‪ ،database physical design‬وال تي تح ِّدد بني ة تخ زين قاع دة البيان ات الداخلي ة‪ ،‬أو طريق ة تنظيم‬
‫الملف ات‪ ،‬أو تقني ات الفهرس ة‪ ،‬وتتم ّّث ل هات ان الخطوت ان الفرعيت ان في التنفي ذ الفعلي لقاع دة‬

‫البيانات ‪ ،database implementation‬وخطوات أساسية لبناء العمليات وواجهات المستخدم‪.‬‬

‫تُم َّثل البيان ات في مراح ل تص ميم قاع دة البيان ات باس تخدام نم وذج بيان ات مع َّين‪ ،‬حيث يك ون نم وذج‬
‫البيان ات ‪ data model‬مجموع ة من المف اهيم‪ ،‬أو الص يغ ال تي تص ف البيان ات‪ ،‬والعلاق ات بينه ا‪ ،‬ودلالاته ا‬
‫‪ ،semantics‬والقيود المفروضة عليها‪ ،‬كما تتضمن معظم نماذج البيانات أي ًضا مجموع ًة من العمليات الأساسية‬

‫لمعالجة البيانات في قاعدة البيانات ‪.database‬‬

‫‪ 4.1‬أنواع نماذج البيانات‬

‫تُ َع ّد نماذج البيانات وسيل ًة لتوصيف كيفية عرض البيانات وتخزينها‪ ،‬وسنناقش أنواعها في هذا القسم‪.‬‬

‫‪ 4.1.1‬نماذج البيانات المفاهيمية عالية المستوى‬

‫توفر نماذج البيانات المفاهيمية عالية المستوى ‪ High-level Conceptual Data Models‬مفهو ًما لعرض‬
‫البيانات بأساليب قريبة من الأسلوب الذي يدرك به الإنس ان البيان ات‪ ،‬والمث ال النم وذجي ه و نم وذج الكي ان‬
‫والعلاقة ‪ Entity Relationship‬الذي يستخ ِدم المفاهيم الرئيسية‪ ،‬مثل‪ :‬الكيانات‪ ،‬والسمات‪ ،‬والعلاق ات‪ ،‬حيث‬
‫يمثل الكيان كائ ًن ا واقع ًي ا‪ ،‬مث ل‪ :‬موظ ف‪ ،‬أو مش روع‪ ،‬كم ا يحت وي على س مات تمث ل خص ائص‪ ،‬مث ل‪ :‬اس م‬
‫الموظف‪ ،‬وعنوانه‪ ،‬وتاريخ ميلاده‪ ،‬وتُم ِّثل العلاقات كيفية ارتباط الكيانات مع بعضها البعض‪ ،‬فمثاًل ‪ ،‬توجد علاق ة‬

‫بين الموظف وكل مشروع عندما يعمل الموظف في العديد من المشاريع‪.‬‬

‫‪ 4.1.2‬نماذج البيانات المنطقية القائمة على السجلات‬

‫توفر نماذج البيانات المنطقي ة القائم ة على الس جلات ‪ Record-based Logical Data Models‬مف اهيم‬
‫يمكن للمستخ ِدمين فهمها واستيعابها كما أنه ا ليس ت بعي د ًة ج ًدا عن الطريق ة ال تي تُخ زَّن به ا البيان ات في‬
‫الحاسوب‪ .‬هناك ثلاثة نماذج معروفة من هذا النوع‪ ،‬وهي‪ :‬نماذج البيانات العلائقية ‪،relational data models‬‬

‫ونماذج البيانات الشبكية ‪ ،network data models‬ونماذج البيانات الهرمية ‪.hierarchical data models‬‬

‫‪ .1‬يُم ِّثل النم‪W‬وذج العلائقي ‪ relational model‬البيان ات على أس اس علاق ات أو ج داول‪ ،‬فمثاًل ‪ ،‬تض م‬
‫العضوية في من َظمة عالم العل وم ‪ Science World‬العدي د من الأعض اء كم ا في الش كل ‪ 2‬في فص ل‬
‫المف اهيم الأساس ية في قواع د البيان ات‪ ،‬ويُ َع ّد ك ل من ُمع رِّف العض وية‪ ،‬وت اريخ انته اء الص لاحية‪،‬‬
‫ومعلومات العنوان‪ ،‬حقواًل في العضوية‪ ،‬ويك ون الأعض اء أف را ًدا‪ ،‬مث ل‪ ،Mickey :‬و‪ ،Minnie‬و‪،Mighty‬‬

‫و‪ ،Door‬و‪ ،Tom‬و‪ ،King‬و‪ ،Man‬و‪ ،Moose‬كما يكون كل سجل بمثابة نسخة عن جدول العضوية‪.‬‬

‫‪32‬‬

‫تصميم قواعد البيانات‬ ‫نمذجة البيانات وأنواعها‬

‫‪ .2‬يُم ِّثل النموذج الشبكي ‪ network model‬البيانات على أساس أنواع سجلات‪ ،‬كم ا يُم ِّثل أي ًض ا ه ذا‬
‫النموذج نو ًعا محد ًدا من علاقة واحد إلى متعدد ‪ one to many‬يسمى نوع المجموعة ‪ ،set type‬كما هو‬

‫موضح في الشكل التالي‪.‬‬

‫الشكل ‪ :4.1‬مخطط النموذج الشبكي‬
‫‪ .3‬يُم ِّثل النموذج الهرمي ‪ hierarchical model‬البيانات على أساس هيك ل ش جرة هرمي ة‪ ،‬حيث يُم ِّثل‬
‫كل فرع من فروع التسلسل الهرمي عد ًدا من السجلات ذات الصلة‪ ،‬ويوضح الشكل التالي هذا المخط ط‬

‫في صيغة النموذج الهرمي‪.‬‬

‫الشكل ‪ :4.2‬مخطط النموذج الهرمي‬
‫‪33‬‬

‫تصميم قواعد البيانات‬ ‫نمذجة البيانات وأنواعها‬

‫‪ 4.2‬مدى تجريد البيانات‬

‫سنلقي في هذا القسم نظر ًة على عملية تصميم قاعدة البيانات من حيث تخصيص ها لأداء وظ ائف معين ة‪،‬‬
‫فكما يبدأ أ ّي تصميم بمستوى عا ٍل من التجريد ثم يتنقل تدريج ًيا إلى التفاصيل الصغيرة‪ ،‬ك ذلك ه و الح ال عن د‬
‫تصميم قاعدة البيانات‪ ،‬فمثاًل ‪ ،‬تبدأ عند بناء منزل بعدد غرف النوم والحمامات فيه‪ ،‬سوا ًء كان على مستوى واحد‬
‫أو مستويات عدة‪ ،‬وتكون الخطوة التالية بتعيين مهندس معماري لتصميم المنزل تص مي ًما أك ثر تنظي ًم ا ودق ًة‪،‬‬
‫حيث يصبح هذا المستوى أكثر تفصياًل فيما يتعلق بأحجام الغرف‪ ،‬وكيف سيتم توصيل الم نزل بالأس لاك‪ ،‬وأين‬

‫س ُتوضع تركيبات السباكة‪ ،‬وما إلى ذلك‪ ،‬والخطوة الأخيرة هي تعيين مقاول لبناء المنزل‪.‬‬
‫يتبع تصميم قاعدة البيانات يتبع طريق ًة شبيه ًة بهذه‪ ،‬حيث يب دأ بتحدي د المس تخ ِدمين لقواع د العم ل‪ ،‬ثم‬
‫ينشئ مصممو ومحللو قاعدة البيانات تصميم قاعدة البيانات‪ ،‬وبعدها ين ّف ذ مس ؤول قاع دة البيان ات التص ميم‬

‫باستخدام نظام إدارة قواعد البيانات ‪.DBMS‬‬
‫تلخِّص الأقسام الفرعية التالية النماذج بترتيب تنازلي لمستوى التجريد‪.‬‬

‫‪ 4.2.1‬النماذج الخارجية‬

‫• تمثل واجهة عرض قاعدة البيانات للمستخدم‪.‬‬

‫• تحتوي على عدد من واجهات عرض خارجية مختلفة‪.‬‬
‫• ترتبط ارتبا ًطا وثي ًقا بالعالم الحقيقي الذي يراه المستخدم‪.‬‬

‫‪ 4.2.2‬النماذج المفاهيمية ‪Conceptual models‬‬

‫• تو ِّفر إمكانيات مرنة لهيكلة البيانات ‪.data-structuring‬‬

‫• تق ِّدم واجهة عرض مشتركة ‪ ،community view‬وهي الهيكل المنطقي لقاعدة البيانات بأكملها‪.‬‬

‫• تحتوي على البيانات المخزنة في قاعدة البيانات‪.‬‬

‫• تظهر العلاقات بين البيانات بما في ذلك‪:‬‬

‫◦ القيود‪.‬‬

‫◦ المعلومات الدلالية مثل قواعد العمل‪.‬‬

‫◦ معلومات الأمان والسلامة‪.‬‬
‫• تُ َع ّد قاعدة البيانات مجموع ًة من الكيانات ‪-‬أي الكائنات ‪ -objects‬من أنواع مختلفة‪.‬‬

‫‪34‬‬

‫تصميم قواعد البيانات‬ ‫نمذجة البيانات وأنواعها‬

‫• تم ِّثل الأساس لتحديد وإعطاء وص ف ع الي المس توى لكائن ات البيان ات الرئيس ية‪ ،‬كم ا أنه ا تتجاه ل‬
‫التفاصيل عمو ًما‪.‬‬

‫• تح ِّدد هل قاعدة البيانات مستقلة بغض النظر عن قاعدة البيانات التي تستخدمها‪.‬‬

‫‪ 4.2.3‬النماذج الداخلية ‪Internal models‬‬

‫النماذج الثلاثة الأكثر شهرة من هذا النوع‪ ،‬هي‪ :‬نموذج البيانات العلائقية ‪ ،relational data model‬ونموذج‬
‫البيانات الشبكية ‪ ،network data model‬ونموذج البيانات الهرمي ‪ ،hierarchical data model‬ومن السمات‬

‫الرئيسية لنماذج البيانات الداخلية‪:‬‬
‫• تُ َع ّد قاعدة البيانات مثل تجميعة من السجلات ذات الحجم الثابت‪.‬‬

‫• تُ َع ّد أقرب إلى المستوى المادي أو بنية الملف‪.‬‬
‫• تُم ِّثل قاعدة البيانات كما يراها نظام إدارة قواعد البيانات ‪.DBMS‬‬
‫• تطالب المصمم بمطابقة خصائص وقيود النموذج المفاهيمي مع خصائص نموذج التنفيذ المختار‪.‬‬
‫• يتضمن مقابلة الكيانات في النموذج المفاهيمي مع الجداول في النموذج العلائقي‪.‬‬

‫‪ 4.2.4‬النماذج المادية ‪Physical models‬‬

‫• هي التمثيل المادي أو الفيزيائي لقاعدة البيانات‪.‬‬
‫• تملك أدنى مستوى من التجريد‪.‬‬

‫• تح ِّدد كيفية تخزين البيانات في قاعدة البيانات‪ ،‬وترتبط مباشر ًة بكل من‪:‬‬
‫◦ أداء قاعدة البيانات في وقت التشغيل ‪.Run-time performance‬‬
‫◦ تحسين التخزين وضغط الملفات‪.‬‬
‫◦ تنظيم الملفات وطرق الوصول إليها‪.‬‬
‫◦ تشفير البيانات‪.‬‬

‫• تُح ِّدد ما إذا كان نظام التشغيل ‪- operating system‬أو ‪ OS‬اختصا ًرا‪ -‬يدير المستوى المادي‪.‬‬
‫• تُق ِّدم مفاهيم تصف تفاصيل كيفية تخزين البيانات في ذاكرة الحاسوب‪.‬‬

‫‪35‬‬

‫تصميم قواعد البيانات‬ ‫نمذجة البيانات وأنواعها‬

‫‪ 4.3‬طبقات تجريد البيانات‬

‫يمكنك أن ترى في العرض التصويري كيف تعمل النماذج المختلفة م ًعا‪ ،‬لذلك دعنا نلقي نظر ًة على هذا من‬
‫أعلى مستوى‪ ،‬وهو النموذج الخارجي‪.‬‬

‫النموذج الخارجي ‪ external model‬هو كيفية عرض المستخ ِدم النهائي للبيانات‪ ،‬فعاد ًة ما تكون قاع دة‬
‫البيانات نظام مؤسسي يخدم احتياجات أقس ام متع ددة‪ ،‬كم ا لا يهتم أي قس م برؤي ة بيان ات الأقس ام الأخ رى‪،‬‬
‫فمثاًل ‪ ،‬لا يهتم قسم الموارد البشرية ‪ - human resources‬أو ‪ HR‬اختصا ًرا‪ -‬بعرض بيانات قسم المبيعات ‪.sales‬‬

‫وعليه تختلف طريقة عرض البيانات من مستخدم لآخر‪.‬‬

‫يتطلب النموذج الخارجي أن يق ِّسم المصمم مجموعة المتطلبات والقيود إلى وحدات وظيفية يمكن فحصها‬
‫في إطار نماذجها الخارجية مثل تقسيم المؤسسة إلى قسم الموارد البشرية وقسم المبيعات‪.‬‬

‫تحتاج بوصفك مصمم بيانات إلى فهم جميع البيانات ح تى تتمكن من إنش اء قاع دة بيان ات على مس توى‬
‫المؤسسة بنا ًء على احتياجات الأقسام المختلفة‪ ،‬لذلك يكون إنشاء النموذج المفاهيمي ‪conceptual model‬‬

‫هو الخطوة الأولى‪.‬‬

‫يكون النموذج المفاهيمي في هذه المرحلة مستقاًل عن ك ل من ال برامج ‪ software‬والعت اد ‪ ،hardware‬ولا‬
‫يعتمد على برنامج نظام إدارة قواعد البيانات ال ُمستخدم في تنفيذ النموذج‪ ،‬ولا على العتاد المس تخ َدم في ذل ك‪،‬‬
‫كما لا تؤثر التغييرات في العتاد أو برنامج نظام إدارة قواعد البيانات على تصميم قاع دة البيان ات على المس توى‬

‫المفاهيمي‪.‬‬

‫بمجرد تحديد برنامج نظام إدارة البيانات ال ُمراد استخدامه‪ ،‬يمكنك بعد ذلك تنفيذه‪ ،‬وهو ما يُسمى بالنموذج‬
‫الداخلي ‪ ،internal model‬حيث تقوم هنا بإنشاء جميع الجداول‪ ،‬والقيود‪ ،‬والمفاتيح‪ ،‬والقواعد‪ ،‬وما إلى ذل ك‪،‬‬

‫وغال ًبا ما يشار إلى هذا باسم التصميم المنطقي ‪.logical design‬‬
‫النموذج المادي ببساطة هو الطريقة التي تُخزَّن فيها البيانات على القرص‪ ،‬وتختلف طريقة تخزين البيانات‬

‫باختلاف نوع قاعدة البيانات المستخ َدمة‪.‬‬

‫‪36‬‬

‫تصميم قواعد البيانات‬ ‫نمذجة البيانات وأنواعها‬

‫الشكل ‪ :4.3‬مستويات تجريد البيانات‬

‫‪ 4.4‬تخطيطات قاعدة البيانات ‪Schemas‬‬

‫التخطيط ‪ schema‬هو وصف عام وشامل لقاعدة البيانات‪ ،‬وع اد ًة م ا يتم تمثيل ه بواس طة مخط ط الكي ان‬
‫والعلاقة ‪ ،entity relationship diagram‬وتختصر إلى ‪.ERD‬‬

‫غال ًبا ما تكون هناك العديد من التخطيطات الفرعية ‪ subschemas‬التي تمثل النم اذج الخارجي ة المختلف ة‬
‫وبالتالي تعرض الواجهات الخارجية للبيانات‪.‬‬

‫فيما يلي قائمة بالعناصر التي يجب مراعاتها أثناء عملية تصميم قواعد البيانات‪:‬‬
‫• تخطيط ات خارجي ة ‪ :External schemas‬من الممكن أن توج د ع دة تخطيط ات خارجي ة في قاع دة‬

‫البيانات الواحدة‪.‬‬
‫• تخطيطات فرعية متعددة ‪ :Multiple subschemas‬تعرض واجهات خارجية متعددة للبيانات‪.‬‬
‫• تخطيط مفاهيمي ‪ :Conceptual schema‬يوجد تخطيط مفاهيمي واحد فقط لقاعدة البيانات الواحدة‪،‬‬
‫يتضمن ه ذا التخطي ط عناص ر البيان ات‪ ،‬والعلاق ات‪ ،‬والقي ود‪ ،‬وتم َّثل بواس طة مخط ط علاق ة الكي ان‬

‫والعلاقة ‪.ERD‬‬
‫• تخطيط مادي ‪ :Physical schema‬يوجد تخطيط مادي واحد فقط لقاعدة بيانات واحدة‪.‬‬

‫‪37‬‬

‫تصميم قواعد البيانات‬ ‫نمذجة البيانات وأنواعها‬

‫‪ 4.5‬استقلالية البيانات المنطقية والمادية‬

‫يشير مفهوم استقلالية البيانات ‪ Data independence‬إلى حصانة تطبيقات المستخ ِدم من التغييرات التي‬
‫تطرأ على تعريفات البيانات وتنظيمها‪.‬‬

‫تكشف عمليات تجريد البيانات عن العناصر المهم ة أو العناص ر ذات الص لة بالمس تخ ِدم‪ ،‬وتك ون التعقي د‬
‫مخف ًيا عن مستخدم قاعدة البيانات‪.‬‬

‫تشكل استقلالية البيانات واس تقلالية التش غيل م ًع ا م يزة تجري د البيان ات‪ ،‬وهن اك نوع ان من اس تقلالية‬
‫البيانات‪ ،‬هما‪ :‬استقلالية البيانات منطق ًيا‪ ،‬واستقلالية البيانات ماديًا‪.‬‬

‫‪ 4.5.1‬استقلالية البيانات منطق ًيا‬

‫يُ َع ّد التخطيط المنطقي ‪ logical schema‬تص مي ًما مفاهيم ًي ا ‪ conceptual design‬لقاع دة البيان ات‪،‬‬
‫والذي يتم على الورق أو على لوح أبيض مثل الرسومات المعمارية للبيوت‪ .‬تس مى الق درة على تغي ير التخطي ط‬
‫المنطقي دون تغي ير التخطي ط الخ ارجي ‪ ،external schema‬أو واجه ة المس تخدم باس تقلالية البيان ات‬
‫منطق ًي ا ‪ ،logical data independence‬فمثاًل ‪ ،‬يجب أن تك ون إض افة أو إزال ة كيان ات جدي دة‪ ،‬أو س مات‪ ،‬أو‬
‫علاقات‪ ،‬إلى التخطيط المفاهيمي ‪ conceptual schema‬ممكن ًة دون الحاجة إلى تغي ير التخطيط ات الخارجي ة‬
‫الحالية‪ ،‬أو إعادة كتابة برامج التطبيق؛ بمعنى آخر يجب أاَّل ت ؤثر التغي يرات على التخطي ط المنطقي على وظيف ة‬

‫التطبيق ‪-‬أي طرق العرض الخارجية‪ -‬مثل التعديلات على بنية قاعدة البيانات مثل إضافة عمود أو جداول جديد‪.‬‬

‫‪ 4.5.2‬استقلالية البيانات ماديا‬

‫تشير استقلالية البيانات ماديًا ‪ Physical data independence‬إلى حصانة النموذج الداخلي ضد التغييرات‬
‫في النموذج المادي‪ ،‬إذ يبقى التخطيط المنطقي دون تغيير على الرغم من إجراء تغييرات على تنظيم الملفات‪ ،‬أو‬

‫هياكل التخزين‪ ،‬أو أجهزة التخزين‪ ،‬أو استراتيجية الفهرسة‪.‬‬

‫تعمل مرحلة استقلالية البيانات ماديًا على إخفاء تفاصيل بني ة التخ زين من تطبيق ات المس تخدم‪ ،‬حيث لا‬
‫ينبغي أن تتعامل التطبيقات مع هذه القضايا لعدم وجود فرق في العمليات الجارية على البيانات‪.‬‬

‫‪ 4.6‬مصطلحات أساسية‬

‫• النموذج الهرمي ‪ :hierarchical model‬يُم ِّثل البيانات في هيكل الشجرة الهرمية‪.‬‬

‫• النسخة ‪ :instance‬سجل داخل جدول معين في قاعدة البيانات‪.‬‬

‫• النموذج الشبكي ‪ :network model‬يمثل البيانات على أساس أنواع سجلات‪.‬‬

‫• العلاقة ‪ :relation‬مصطلح آخر لوصف الجداول‪.‬‬

‫‪38‬‬

‫تصميم قواعد البيانات‬ ‫نمذجة البيانات وأنواعها‬

‫• النموذج العلائقي ‪ :relational model‬يُم ِّثل البيانات على أساس علاقات أو جداول‪.‬‬
‫• نوع المجموعة ‪ :set type‬نوع مح َّدد من علاقة واحد إلى متعدد ‪.one to many‬‬

‫• النموذج المفاهيمي ‪ :conceptual model‬هو الهيكل المنطقي لقاعدة البيانات‪.‬‬
‫• التخطيط المفاهيمي ‪ :conceptual schema‬مرادف للتخطيط المنطقي ‪.logical schema‬‬
‫• استقلالية البيانات ‪ :data independence‬هي حصانة تطبيقات المستخ ِدم من التغييرات التي تطرأ‬

‫على تعريفات البيانات وتنظيمها‪.‬‬
‫• نموذج البيانات ‪ :data model‬تجميعة من المفاهيم أو الصيغ المستخدمة لوصف البيانات‪،‬‬

‫والعلاقات بينها‪ ،‬ودلالاتها‪ ،‬والقيود المفروضة عليها‪.‬‬
‫• نمذجة البيانات ‪ :data modeling‬هي الخطوة الأولى في عملية تصميم قاعدة البيانات‪.‬‬
‫• التصميم المنطقي لقاعدة البيانات ‪ :database logical design‬يُح ِّدد قاعدة بيانات في نموذج‬

‫البيانات الخاص بنظام إدارة قاعدة بيانات مح َّدد‪.‬‬
‫• التصميم المادي لقاعدة البيانات ‪ :database physical design‬يُح ِّدد بنية تخزين قاعدة البيانات‬

‫الداخلية‪ ،‬أو تنظيم الملفات‪ ،‬أو تقنيات الفهرسة‪.‬‬
‫• مخطط الكيان والعلاقة ‪ entity relationship diagram‬أو ‪ :ERD‬يُ َع ّد نموذج بيانات‪ ،‬حيث يصف‬

‫قاعدة البيانات‪ ،‬ويعرض الجداول‪ ،‬والسمات‪ ،‬والعلاقات‪.‬‬
‫• النموذج الخارجي ‪ :external model‬يم ِّثل واجهة عرض المستخ ِدم لقاعدة البيانات‪.‬‬

‫• التخطيط الخارجي ‪ :external schema‬يم ِّثل واجهة المستخ ِدم‪.‬‬
‫• النموذج الداخلي ‪ :internal model‬هو تمثيل قاعدة البيانات في الصورة التي يراها أو يتعامل معها‬

‫نظام إدارة قواعد البيانات‪.‬‬
‫• استقلالية البيانات منطق ًيا ‪ :logical data independence‬هو القدرة على تغيير التخطيط المنطقي‬

‫للبيانات دون تغيير التخطيط الخارجي‪.‬‬
‫• التصميم المنطقي ‪ :logical design‬هو الخطوة التي تُنشأ فيها الجداول‪ ،‬والقيود‪ ،‬والمفاتيح‪،‬‬

‫والقواعد ‪...‬إلخ‪.‬‬
‫• التخطيط المنطقي ‪ :logical schema‬هو تصميم مفاهيمي لقاعدة البيانات‪ ،‬حيث يتم على الورق‪ ،‬أو‬

‫الألواح البيضاء مثل الرسومات المعمارية لمنزل‪.‬‬
‫• نظام التشغيل ‪ operating system‬أو ‪ :OS‬هو المسؤول عن إدارة المستوى المادي للنموذج المادي‪.‬‬

‫‪39‬‬

‫تصميم قواعد البيانات‬ ‫نمذجة البيانات وأنواعها‬

‫• استقلالية البيانات ماد ًيا ‪ :physical data independence‬هو حصانة النموذج الداخلي ضد‬
‫التغييرات في النموذج المادي‪.‬‬

‫• النموذج المادي ‪ :physical model‬هو التمثيل المادي لقاعدة البيانات‪.‬‬
‫• التخطيط ‪ :schema‬هو وصف عام وشامل لقاعدة البيانات‪.‬‬

‫‪ 4.7‬التمارين‬

‫‪ .1‬ما هو نموذج البيانات؟‬
‫‪ .2‬ما هو نموذج البيانات المفاهيمي عالي المستوى؟‬

‫‪ .3‬عرف المصطلحات التالية‪:‬‬
‫◦ الكيان‬
‫◦ السمة‬
‫◦ العلاقة‬

‫‪ .4‬اذكر و ِصف بإيجاز النماذج الشائعة لنماذج البيانات المنطقية القائمة على السجلات‪.‬‬
‫‪ِ .5‬صف الغرض من التصميم المفاهيمي‪.‬‬

‫‪ .6‬ما هو الاختلاف بين التصميم المفاهيمي والتصميم المنطقي؟‬
‫‪ .7‬عرف النماذج التالية‪:‬‬

‫◦ ما هو النموذج الخارجي؟‬
‫◦ ما هو النموذج المفاهيمي؟‬

‫◦ ما هو النموذج الداخلي؟‬
‫◦ ما هو النموذج المادي؟‬
‫‪ .8‬ما هو النموذج الذي يتعامل معه مسؤول قاعدة البيانات؟‬
‫‪ .9‬ما هو النموذج الذي يتعامل معه المستخ ِدم النهائي لقاعدة البيانات؟‬
‫‪ .10‬ما هو الاستقلال البيانات ماديًا؟‬
‫‪ .11‬ما هو استقلال البيانات منطق ًيا؟‬

‫‪40‬‬

‫‪ .5‬نموذج البيانات العلائقية ‪RDM‬‬

‫ُصمم نم وذج البيان ات العلائقي ة ‪ Relational Data Model‬في الع ام ‪ 1970‬بواس طة ‪ ،C.F. Codd‬وه و‬
‫النموذج الأكثر استخدا ًما في يومنا هذا‪ ،‬كما يُ َع ّد الأساس لكل من‪:‬‬
‫• البحث العلمي في نظرية البيانات‪ ،‬والعلاقات‪ ،‬والقيود‪.‬‬
‫• العديد من منهجيات تصميم قواعد البيانات‪.‬‬

‫• لغة الوصول القياسية إلى قاع دة البيان ات‪ ،‬حيث تس مى لغ ة الاس تعلام المهيكلة ‪structured query‬‬
‫‪ - language‬أي ‪ SQL‬اختصا ًرا‪.‬‬

‫• جميع أنظمة إدارة قواعد البيانات التجارية الحديثة‪.‬‬
‫يصف نموذج البيانات العلائقية العالم على أنه تجميعة من العلاقات والجداول المترابطة‪.‬‬

‫‪ 5.1‬المفاهيم الأساسية في نماذج البيانات العلائقية‬

‫سنتعرف على المفاهيم الأساسية في نموذج البيانات العلائقية التي ترتكز ارتكا ًزا كبيرًا على العلاقة والجدول‬
‫وكل الخصائص المتعلقة بهما‪.‬‬

‫‪ 5.1.1‬العلاقة‬

‫العلاقة ‪- relation‬أو ما تعرف أي ًضا باسم الج دول ‪ table‬أو المل ف ‪ ،- file‬وهي مجموع ة فرعي ة من الن اتج‬
‫الديكارتي لقائمة من المجالات التي تتميز بالاسم‪ ،‬حيث يم ِّثل كل صف ‪ row‬ضمن الجدول الواحد مجموع ًة من‬
‫قيم البيانات ذات الصلة‪ ،‬ويُعرَف الصف أو السجل ‪ record‬باسم صف ‪ tuple‬أي ًضا‪ ،‬كما يُ َع ّد العمود في الجدول‬

‫تصميم قواعد البيانات‬ ‫نموذج البيانات العلائقية ‪RDM‬‬

‫حقاًل ‪ ،‬ويشار إليه باسم ال ِسمة ‪ attribute‬أي ًضا‪ ،‬كما يمكنك النظر إلى الأم ر بالطريق ة التالي ة‪ :‬تُس تخ َدم الس مات‬
‫لتعريف السجلات‪ ،‬ويحتوي السجل على مجموعة من السمات‪.‬‬
‫تو ِّضح الخطوات التالية المنطق بين العلاقة ومجالاتها‪:‬‬

‫• يُشار إلى عدد ‪ n‬من المجالات بالصورة‪D1, D2, … Dn :‬‬
‫• تُ َع ّد ‪ r‬علاق ًة مح َّددة على هذه المجالات‪.‬‬
‫• ثم ‪r ⊆ D1 × D2 ×… × Dn‬‬

‫‪ 5.1.2‬الجدول ‪Table‬‬

‫تتكون قاعدة البيانات من عدة جداول‪ ،‬كما يحتوي ك ل ج دول على بيان ات‪ ،‬ويو ِّض ح الش كل الت الي قاع دة‬
‫بيانات تحتوي على ستة جداول‪.‬‬

‫الشكل ‪ :5.1‬قاعدة بيانات بستة جداول‬

‫‪ 5.1.3‬العمود ‪Column‬‬

‫تُخ زِّن قاع دة البيان ات أج زاء المعلوم ات أوالحق ائق بطريق ة من َّظم ة‪ ،‬حيث يتطلب الفهم الجي د لكيفي ة‬
‫استخدام قواعد البيانات والاستفادة منها إلى أقصى حد فهم طريقة التنظيم هذه‪.‬‬

‫تسمى وحدات التخزين الرئيس ية أعم دة ‪ ،columns‬أو حق ول ‪ ،fields‬أو س مات ‪ ،attributes‬وتض م ه ذه‬
‫الوحدات المكونات الأساسية للبيانات التي يمكن تقسيم محتواها‪.‬‬

‫تحتاج عند تحديد الحقول المراد إنش اؤها إلى التفك ير في البيان ات ال تي ل ديك عمو ًم ا‪ ،‬فمثاًل ‪ ،‬اس تخلاص‬
‫المكونات المشتركة للمعلومات التي ستخزِّنها في قاعدة البيانات‪ ،‬وتج ُّنب التفاصيل التي تميز عنصرًا عن الآخر‪.‬‬

‫‪42‬‬

‫تصميم قواعد البيانات‬ ‫نموذج البيانات العلائقية ‪RDM‬‬

‫انظر الجدول التالي الذي يحوي مثااًل على معلومات حول بطاقة هوية‪:‬‬

‫‪Field Name‬‬ ‫‪Data‬‬
‫‪Isabelle‬‬
‫‪First Name‬‬ ‫‪Whelan‬‬
‫‪Family Name‬‬ ‫‪British‬‬
‫‪Nationality‬‬ ‫‪109,900‬‬
‫‪Salary‬‬ ‫‪15 September 1983‬‬
‫‪Date of Birth‬‬ ‫‪Single‬‬
‫‪Marital Status‬‬ ‫‪Mon, Wed‬‬
‫‪Shift‬‬ ‫‪Addis Ababa‬‬
‫‪Place of issue‬‬ ‫‪17 December 2003‬‬
‫‪Valid until‬‬
‫‪ 5.1.4‬المجال ‪Domain‬‬

‫يُم ِّثل المج ال المجموع ات الأص لية للقيم ال َذري ة المس تخ َدمة لنمذج ة البيان ات‪ ،‬وتع ني القيمة‬
‫ال َذرية ‪ atomic value‬أ ّن كل قيمة في المجال غير قابلة للتجزئة بقدر ما يتعلق الأمر بالنموذج العلائقي‪ ،‬فمثاًل ‪:‬‬
‫• يملك مجال الحالة الاجتماعية مجموع ًة من الاحتمالات‪ ،‬وهي‪ :‬متزوج‪ ،‬وأعزب‪ ،‬ومطلِّق‪.‬‬

‫• يملك مجال أيام العمل مجموع ًة من جميع الأيام الممكنة‪ ،‬وهي‪ :‬الأحد‪ ،‬الاثنين‪... ،‬إلخ‪.‬‬

‫• مجال الراتب الشهري هو مجموعة جميع الأعداد الأكبر من ‪ 0‬وأقل من ‪.200000‬‬

‫• مجال الاسم الأول هو مجموعة سلاسل الأحرف التي تمثل أسماء الأشخاص‪.‬‬

‫باختصار‪ ،‬المجال هو مجموعة من القيم المقبولة التي يُسمح للعمود باحتوائها‪ ،‬كما يعتم د على الخص ائص‬
‫المختلفة ونوع بيانات العمود‪ ،‬وسنناقش أنواع البيانات في فصل آخر‪.‬‬

‫‪ 5.1.5‬السجلات ‪Records‬‬

‫مثلما يحتاج محتوى أي مستند أو عنصر إلى تقسيمه إلى أجزاء ص غيرة من البيان ات للتخ زين في الحق ول‪،‬‬
‫فيجب أي ًضا أن تكون مترابط ًة بحيث يمكن إعادتها إلى شكلها الكامل‪ ،‬ويتم ذلك عن طريق استخدام الس جلات‪،‬‬
‫إذ تحتوي السجلات على حقول مرتبطة‪ ،‬مثل‪ :‬حقل العميل ‪ ،customer‬أو الموظ ف ‪ ،employee‬كم ا يُس تخ َدم‬

‫المصطلح صف أو سطر ‪ tuple‬أحيانًا على أساس مرادف للسجل‪.‬‬

‫تشكل السجلات والحقول أساس جميع قواعد البيانات‪،‬و يمنحنا الجدول البس يط أوض ح ص ورة عن كيفي ة‬
‫عمل السجلات والحقول م ًعا في مشروع تخزين قاعدة بيانات‪.‬‬

‫‪43‬‬

‫تصميم قواعد البيانات‬ ‫نموذج البيانات العلائقية ‪RDM‬‬

‫الشكل ‪ :5.2‬مثال على جدول بسيط‬
‫يو ِّضح الجدول البسيط في الشكل السابق كيف يمكن للحقول الاحتف اظ بمج ال واس ع من مختل ف أن واع‬

‫البيانات‪ ،‬حيث يحتوي على‪:‬‬
‫• حقل ‪ُ ( ID‬معرِّف السجل)‪ :‬هو عدد صحيح‪ ،‬ويُستخ َدم لترتيب البيانات في الجدول‪.‬‬
‫• حقل ‪( PubDate‬تاريخ النشر)‪ :‬ويحتوي على تاريخ النشر ويكون في الصورة (يوم‪/‬شهر‪/‬سنة)‪.‬‬
‫• حقل ‪( Author‬المؤلِّف)‪ :‬يحتوي على اسم المؤلِّف‪ ،‬وهو حقل يحتوي على بيانات نصية‪.‬‬

‫• نص ‪( Title‬حقل العنوان)‪ :‬يحتوي على أ ّي نص يُم ِّثل عنوان المؤلِّف‪.‬‬
‫من الممكن توجي ه قاع دة البيان ات للبحث في البيان ات وتنظيمه ا بطريق ة معين ة‪ ،‬فمثاًل ‪ ،‬يمكن ك طلب‬
‫مجموعة مختارة من السجلات محدودة حسب التاريخ بط رق عدي دة‪ ،‬وهي‪ :‬ك ل البيان ات المس جَّلة قب ل ت اريخ‬
‫معين‪ ،‬أو كل البيانات المسجَّلة بعد تاريخ معين‪ ،‬أو كل البيانات المسجَّلة بين ت اريخين‪ ،‬ويمكن ك بالمث ل أي ًض ا‬

‫ترتيب السجلات حسب التاريخ‪.‬‬
‫نظرًا لإعداد الحقل أو السجل الذي يحتوي على البيانات على أساس حق ل ت اريخ‪ ،‬فلن تق رأ قاع دة البيان ات‬
‫المعلومات الموجودة في حقل التاريخ على أساس أعداد مفصولة بشرطة مائلة‪ ،‬وإنما على أساس تواريخ‪ ،‬بحيث‬

‫يجب ترتيبها وف ًقا لنظام التقويم‪.‬‬

‫‪ 5.1.6‬الدرجة ‪Degree‬‬

‫الدرجة هي عدد السمات في الجدول‪ ،‬فدرجة الجدول في المثال السابق الموضح في الشكل هي ‪.4‬‬

‫‪44‬‬

‫تصميم قواعد البيانات‬ ‫نموذج البيانات العلائقية ‪RDM‬‬

‫‪ 5.2‬خصائص الجدول‬

‫• لكل جدول في قاعدة البيانات اسم خاص به‪ ،‬ولا يتكرر الاسم الواحد في عدة جداول‪.‬‬
‫• يحتوي كل صف في الجدول على بيانات فريدة‪ ،‬ولا يتكرر الصف نفسه أكثر من مرة في الجدول‪.‬‬
‫• تك ون الم دخلات في الأعم دة َذري ًة بحيث لا يحت وي الج دول على مجموع ات مك ررة أو س مات‬

‫متعددة القيم‪.‬‬
‫• تكون المدخلات في الأعمدة من المجال نفس ه بن ا ًء على ن وع بياناته ا‪ ،‬فإ ّم ا أن تك ون أع داد ‪ -‬أي ع دد‬

‫صحيح‪ ،‬كسري ‪...‬إلخ‪ -‬أو سلسلة محارف‪ ،‬أو تاريخ‪ ،‬أو قيم منطقية ‪-‬أي صح أو خطأ‪.‬‬
‫• غير مسموح بالعمليات التي تجمع بين أنواع البيانات المختلفة‪.‬‬
‫• كل ِسمة لها اسم فريد‪.‬‬
‫• ترتيب الأعمدة غير مهم‪.‬‬
‫• ترتيب الصفوف غير مهم‪.‬‬

‫‪ 5.3‬المفاهيم الأساسية‬

‫• القيمة ال َذرية ‪ :atomic value‬تعني أ ّن كل قيمة في المجال غير قابلة للتجزئة بق در م ا يتعل ق الأم ر‬
‫بالنموذج العلائقي‪.‬‬

‫• ال ِسمة ‪ :attribute‬وحدة التخزين الأساسية في قواعد البيانات‪.‬‬
‫• العمود ‪ :column‬هو نفسه السمة ‪ attribute‬التي ذكرتها للتو‪.‬‬

‫• الدرجة ‪ :degree‬عدد ال ِسمات في الجدول‪.‬‬
‫• المجال ‪ :domain‬هو المجموعات الأصلية للقيم ال َذرية المستخ َدمة لنمذجة البيانات‪ ،‬وهو مجموعة من‬

‫القيم المقبولة التي يُسمح للعمود باحتوائها‪.‬‬
‫• الحقل ‪ :field‬يكافئ السمة ‪.attribute‬‬
‫• الملف ‪ :file‬يكافئ العلاقة ‪.relation‬‬

‫• السجل ‪ :record‬يحتوي على عدة حقول ذات صلة ببعضها البعض‪ ،‬ويكافئ السطر ‪.tuple‬‬
‫• العلاقة ‪ :relation‬مجموعة فرعية من الناتج الديكارتي لقائمة من المجالات ال تي تتم يز بالاس م‪ ،‬وهي‬

‫المصطلح التقني لكل من الجدول ‪ ، table‬أو الملف ‪.file‬‬
‫• الصف ‪ :row‬يكافئ السطر ‪.tuple‬‬

‫‪45‬‬

‫تصميم قواعد البيانات‬ ‫نموذج البيانات العلائقية ‪RDM‬‬

‫• لغة الاستعلام المهيكلة ‪ structured query language‬أي ‪ :SQL‬هي لغ ة الوص ول القياس ية إلى‬
‫قاعدة البيانات‪.‬‬

‫• الجدول ‪ :table‬يكافئ العلاقة ‪.relation‬‬
‫• السطر ‪ :tuple‬مصطلح تقني مرادف للصف أو السجل‪.‬‬

‫‪ 5.4‬المصطلحات الأساسية‬

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

‫واستخدا ًما اليوم‪.‬‬

‫البديل الثاني‬ ‫البديل الأول‬ ‫المصطلح الرسمي‬
‫‪-‬أي حسب العالِم ‪- Codd‬‬
‫الملف ‪File‬‬ ‫الجدول ‪Table‬‬
‫السجل ‪Record‬‬ ‫الصف ‪Row‬‬ ‫العلاقة ‪Relation‬‬

‫الحقل ‪Field‬‬ ‫العمود ‪Column‬‬ ‫السطر ‪Tuple‬‬

‫السمة ‪Attribute‬‬

‫‪ 5.5‬تمارين‬

‫استخدم الجدول التالي للإجابة على الأسئلة أدناه‪:‬‬

‫كنية الموظف رمز مهنة الموظف‬ ‫تهيئة الموظف‬ ‫اسم الموظف‬ ‫معرف سجل‬
‫الموظف‬
‫عبد الله ‪12‬‬ ‫فريد ‪A.‬‬
‫‪123455‬‬

‫‪ 123456‬علا ‪ D.‬عادل ‪18‬‬

‫علي ‪15‬‬ ‫‪ 123457‬فاتن ‪G.‬‬

‫إسماعيل ‪18‬‬ ‫‪ 123458‬كريم ‪X.‬‬

‫‪ .1‬ح ِّدد و ِصف جميع المكونات في الجدول باستخدام المصطلحات الصحيحة‪.‬‬

‫‪ .2‬ما هو المجال المحتمل للحقل ‪EmpJobCode‬؟‬

‫‪ .3‬كم عدد السجلات المعروضة وكم عدد السمات المعروضة؟‬

‫‪ .4‬اذكر خصائص الجدول‪.‬‬

‫‪46‬‬

‫‪ .6‬نموذج الكيان والعلاقة ‪ ER‬وتمثيل‬

‫البيانات‬

‫ظهر نموذج الكيان والعلاقة ‪ - entity relationship‬أو ‪ ER‬اختصا ًرا‪ -‬لتمثيل البيانات منذ أك ثر من ‪ 35‬ع ام‪،‬‬
‫وهو مناسب تما ًما لنمذجة البيانات للاستخدام مع قواع د البيان ات‪ ،‬وذل ك لأن ه ذو طبيع ة مج ردة إلى ح د م ا‪،‬‬

‫وسهل المناقشة والشرح‪.‬‬
‫ت ترجم نم اذج الكي ان والعلاق ة للبيان ات إلى علاق ات بس هولة‪ ،‬كم ا تس مى تخطي ط الكي ان‬

‫والعلاقة ‪ ،ER schema‬حيث تُم َّثل بواسطة مخططات الكيان والعلاقة ‪.ER diagrams‬‬
‫تعتمد عملية إنشاء نماذج الكيان والعلاقة للبيانات ‪ ER modelling‬على مفهومين هما‪:‬‬
‫• الكيانات ‪ :Entities‬وتُعرَّف على أنها الجداول التي تحتوي على معلومات خا ّصة ‪-‬أي بيانات‪.‬‬
‫• العلاقات ‪ :Relationships‬وتُعرَّف على أنها الارتباطات أو التفاعلات بين الكيانات‪.‬‬
‫فيما يلي مثال على كيفي ة دمج ه ذين المفه ومين في نم وذج الكي ان والعلاق ة‪ :‬يك ون في قولن ا "ي درِّس‬
‫الأستاذ دورة أنظمة قواعد البيانات" الكيان هو كل من الأستاذ‪ ،‬ودورة أنظم ة قواع د البيان ات؛ أم ا العلاق ة فهي‬

‫كلمة يدرِّس‪.‬‬
‫سنستخدم في ه ذا الفص ل قاع دة بيان ات تس مى الش ركة ‪ COMPANY‬لتوض يح مف اهيم نم وذج الكي ان‬
‫والعلاق ة‪ ،‬حيث تحت وي على معلوم ات ح ول الم وظفين ‪ ،employees‬والأقس ام ‪،departments‬‬

‫والمشاريع ‪ ،projects‬كما يجب ملاحظة النقاط التالية‪:‬‬
‫• هناك عدة أقسام في الشركة‪ ،‬ولكل منها قس م ُمع رِّف فري د‪ ،‬واس م‪ ،‬وموق ع للمكتب‪ ،‬وموظ ف معين‬

‫يدير القسم‪.‬‬
‫• يتحكم القسم في عدد من المشاريع‪ ،‬ولكل منها اسم فريد‪ ،‬ورقم فريد‪ ،‬وميزانية‪.‬‬

‫تصميم قواعد البيانات‬ ‫نموذج الكيان والعلاقة ‪ ER‬وتمثيل البيانات‬

‫• كل موظف له اسم‪ ،‬ورقم تعريف‪ ،‬وعنوان‪ ،‬وراتب‪ ،‬وت اريخ ميلاد‪ ،‬كم ا يُع َّين الموظ ف في قس م واح د‪،‬‬
‫ويمكنه الانضمام لعدة مشاريع‪ ،‬كما نحتاج إلى تس جيل ت اريخ ب دء الموظ ف في ك ل مش روع‪ ،‬ومعرف ة‬

‫المشرف المباشر لكل موظف‪.‬‬

‫• نريد تت ّبع ال ُمعالِين لكل موظف‪ ،‬حيث يملك كل ُمعال اسم‪ ،‬وتاريخ ميلاد‪ ،‬وعلاقته بالموظف‪.‬‬

‫‪ 6.1‬الكيان ومجموعة الكيان ونوع الكيان‬

‫الكيان ‪ entity‬هو كائن في العالم الحقيقي له وجود مستقل‪ ،‬كم ا يمكن تمي يزه عن الكائن ات الأخ رى‪ ،‬وق د‬
‫يكون هذا الكيان‪:‬‬

‫• كائن له وجود مادي ‪ ،physical existence‬مثل‪ :‬محاضر‪ ،‬وطالب‪ ،‬وسيارة‪.‬‬

‫• كائن له وجود مفاهيمي ‪ ،conceptual existence‬مثل دورة‪ ،‬ووظيفة‪ ،‬ومنصب‪.‬‬
‫• يمكن تصنيف الكيانات بنا ًء على قوتها‪ ،‬حيث يُ َع ّد الكيان ضعي ًفا في الحالات التالية‪:‬‬

‫• وجوده غير ممكن بدون علاقة مع كيان آخر‪.‬‬

‫• مفتاحه الرئيسي مشتق من المفتاح الرئيسي للكيان الأب‪.‬‬
‫◦ يُ َع ّد جدول الزوج ‪ Spouse‬في قاعدة بيانات الشركة كيانًا ض عي ًفا لأن مفتاح ه الرئيس ي يعتم د على‬

‫جدول الموظف‪ ،‬أي لن يكون سجل الزوج موجو ًدا إذا لم يتواجد سجل الموظف المقابل‪.‬‬
‫يُ َع ّد الكيان قويًا إذا كان يمكن أن يوجد مستقاًل عن جميع الكيانات المرتبطة به‪.‬‬
‫• الأنوية ‪ Kernels‬هي كيانات قوية‪.‬‬

‫• يُ َع ّد الجدول كيانًا قويًا إذا لم يحتوي على مفتاح خارجي ‪ ،foreign key‬أو إذا احتوى على مفت اح خ ارجي‬
‫يقبل القيم الفارغة ‪.null‬‬

‫يجب معرفة مصطلح آخر‪ ،‬وهو نوع الكيان ‪ entity type‬الذي يح ِّدد تجميعة من الكيان ات المتش ابهة‪ ،‬كم ا‬
‫تُ َع ّد مجموعة الكيان ‪ entity set‬تجميعة من نوع الكيان ‪ entity type‬في وقت مع َّين‪.‬‬

‫يُم َّثل ن وع الكي ان في مخط ط الكي ان والعلاق ة ‪- entity relationship diagram‬أي ‪ ERD‬اختص ا ًرا‪ -‬في‬
‫صندوق‪ ،‬فمثاًل ‪ ،‬نوع الكيان في الشكل التالي هو موظف ‪.EMPLOYEE‬‬

‫‪48‬‬

‫تصميم قواعد البيانات‬ ‫نموذج الكيان والعلاقة ‪ ER‬وتمثيل البيانات‬

‫الشكل ‪ :6.1‬نوع الكيان هو الموظف‬

‫‪ 6.2‬ارتباط الوجود‬

‫يعتم د وج ود الكي ان على وج ود الكيان ات ذات الص لة ب ه‪ ،‬ويُ َع ّد الكي ان ارتب اطي الوج ود ‪Existence‬‬
‫‪ dependency‬إذا كان يحتوي على مفتاح خارجي إلزامي ‪-‬أي سمة مفتاح خارجي لا يمكن أن تك ون فارغ ة ‪،-null‬‬

‫فمثاًل ‪ ،‬يكون في قاعدة بيانات الشركة ‪ COMPANY‬كيان الزوج ‪ Spouse‬معتم ًدا على وجود كيان الموظف‪.‬‬

‫‪ 6.3‬أنواع الكيانات‬

‫يجب أي ًضا أن تكون على دراية بأنواع الكيانات المختلفة بما في ذلك‪:‬‬
‫• الكيانات المستقلة ‪independent entities‬‬
‫• الكيانات المعت ِمدة ‪dependent entities‬‬
‫• الكيانات المم َّيزة ‪characteristic entities‬‬

‫‪ 6.3.1‬الكيانات المستقلة‬

‫تُ َع ّد الكيانات المستقلة ‪- Independent entities‬والتي يش ار إليه ا أي ًض ا باس م الأنوي ة ‪ -kernels‬العم ود‬
‫الفقري لقاعدة البيانات‪ ،‬إذ تستند عليه الجداول الأخرى‪ ،‬ولها الخصائص التالية‪:‬‬
‫• هم اللبنات الأساسية لقاعدة البيانات‪.‬‬
‫• قد يكون المفتاح الرئيسي ‪ primary key‬بسي ًطا‪ ،‬أو مرك ًبا‪.‬‬
‫• لا يمكن أن يكون المفتاح الرئيسي مفتاحًا خارج ًيا‪.‬‬
‫• لا تعتمد على أي كيان آخر في وجودها‪.‬‬

‫إذا عدنا إلى قاعدة بيان ات الش ركة ‪ COMPANY‬الخاص ة بن ا‪ ،‬فتتض من أمثل ة الكيان ات المس تقلة ج دول‬
‫العميل ‪ ،Customer table‬أو جدول الموظف ‪ ،Employee table‬أو جدول المن َتج ‪.Product table‬‬

‫‪49‬‬

‫تصميم قواعد البيانات‬ ‫نموذج الكيان والعلاقة ‪ ER‬وتمثيل البيانات‬

‫‪ 6.3.2‬الكيانات المعت ِمدة‬

‫تستند الكيانات المعت ِمدة ‪ – Dependent entities‬تسمى أي ًضا الكيانات المشتقة ‪ -derived entities‬على‬
‫جداول أخرى حتى يكون لها معنى‪ ،‬ولها الخصائص التالية‪:‬‬
‫• تُستخ َدم الكيانات المعت ِمدة لربط نواتين م ًعا‪.‬‬

‫• يَعتمد وجودها على وجود جدولين أو أكثر في قاعدة البيانات‪ ،‬حيث لا يمكن وجود كيان ات معت ِم دة في‬
‫قاعدة بيانات تحتوي على جدول واحد فقط‪.‬‬

‫• تُن ِشئ علاقات (متعدد إلى متعدد) جداول ترابطية ‪ associative tables‬بمفتاحين خارجيين على الأقل‪.‬‬
‫• قد تحتوي على سمات أخرى‪.‬‬

‫• يح ِّدد كل مفتاح خارجي جدواًل مرتب ًطا بالكيان نفسه‪.‬‬
‫• هناك ثلاثة خيارات للمفتاح الرئيسي‪:‬‬

‫‪ .1‬استخ ِدم مزيجًا من المفاتيح الخارجية للجداول المرتبطة إذا كانت فريدة‪.‬‬
‫‪ .2‬استخ ِدم مزيجًا من المفاتيح الخارجية وعمو ًدا مؤ ِهاًل ‪.‬‬
‫‪ .3‬أن ِشئ مفتاح رئيسي بسيط جديد‪.‬‬

‫‪ 6.3.3‬الكيانات المتميزة‬

‫توفر الكيانات المم َّيزة ‪ Characteristic entities‬مزي ًدا من المعلومات ح ول ج دول آخ ر‪ ،‬وله ذه الكيان ات‬
‫الخصائص التالية‪:‬‬

‫• تم ِّثل سمات متعددة القيم‪.‬‬
‫• ت ِصف كيانات أخرى‪.‬‬

‫• عادة ما يكون لديها علاقة علاقة واحد إلى متع ِّدد ‪.one to many relationship‬‬
‫• يُستخ َدم المفتاح الخارجي ‪ foreign key‬لتحديد الجدول المميز ‪.characterized table‬‬

‫• خيارات المفتاح الرئيسي هي‪:‬‬
‫‪ .1‬استخ ِدم مزيجًا من المفاتيح الخارجية وعمو ًدا مؤ ِهاًل ‪.‬‬
‫‪ .2‬أن ِشئ مفتا ًحا رئيس ًيا بسي ًطا جدي ًدا في قاعدة بيانات الشركة ‪ ،COMPANY‬والتي قد تشمل‪:‬‬
‫▪ جدول الموظف ‪( Employee‬المعرف ‪ ،EID‬الاسم‪ ،‬العنوان‪ ،‬العمر‪ ،‬الراتب) ‪ EID -‬ه و المفت اح‬

‫الرئيسي البسيط‪.‬‬

‫‪50‬‬


Click to View FlipBook Version