You are on page 1of 8

‫قواعد البيانات )‪(Databases‬‬

‫مقدمة‬

‫سيتم في هذه المحاضرة وصف كيفية إعداد قواعد البيانات وكذا نظم إدارة قواعد البيانات‬ ‫•‬
‫)‪ (Ddatabase Management Systems DBMS‬ومن المهم خلل قراءة لهذه المحاضرة الخذ في العتبار أن‬
‫غالبية المحاضرة تعالج قضية قواعد البيانات الخاصة بالبيانات الوصصصفية ‪ attribute data‬وليصصس البيانصصات الهندسصصية‬
‫‪.geometric data‬‬
‫• يمكننا تعريف قواعد البيانات كمجموعة مركبة )مهيكلة( ‪ structured collection‬من البيانات التي يمكن‬
‫الدخول عليها )‪ (accessible‬بطريقة منتظمة ‪ uniform way‬مما يجعلهصصا عنصصصرا هامصصا فصصي نظصصم المعلومصصات‬
‫الجغرافية حيث يتم تنظيم البيانات باستخدام أنواع مختلفة من نظم إدارة قواعد البيانات ‪. DBMS‬‬
‫هناك نوعين من نظم إدارة قواعد البيانات هما‪:‬‬ ‫•‬
‫‪ Hybrid systems -1‬ويتم فيها تخزين البيانات الهندسية )الحداثيات( في قاعدة بيانصصات منفصصصلة عصصن قاعصصدة‬
‫البيانات الوصفية وهي النوع الكثر شيوعا في تطبيقات نظم المعلومات الجغرافية ويتم فيها ربصصط القاعصصدتين‬
‫من خلل رقم منفرد )‪ (unique Id-number‬يربط بين الشكال الهندسية وبياناتها الوصفية وبعيدا عن هذا‬
‫النوع من الربط الداخلي ‪ Internal linking‬فإنه مصن الممكصن ربصط هصذا الرقصم المنفصرد مصع قواعصد بيانصات‬
‫خارجية من خلل الشبكات حيصث قصد يتصم الربصط فصي شصبكة داخليصة صصغيرة ‪ Intranet‬أو شصبكة المعلومصات‬
‫الدولية ‪.Internet‬‬
‫‪ Integrated systems -2‬ويتم فيها تخزين البيانات الهندسية والوصفية في نفس قاعدة البيانات ويمكن الربط‬
‫مع مصادر البيانات الخارجية من خلل وسيط نظم إدارة قواعد البيانات ‪.RDBMS interface‬‬
‫الحتياج لقواعد البيانات في نظم المعلومات الجغرافية‬

‫• عادة ما تحتوي قواعد بيانات نظم المعلومات الجغرافية على كميات ضخمة من البيانات )سواء إحصصداثيات أو‬
‫وصفية( ومن المهم جدا هيكلة هذه البيانات )والتي إذا لم يتم هيكلتها بطريقة رشصصيدة فصصإن سصصرعة رد النظصصام علصصى‬
‫العمليات المختلفة ستكون طويلة جدا( حيث يتم ذلك من خلل نظم إدارة قواعصصد البيانصصات ‪ DBMS‬والصصتي تسصصاعد‬
‫أيضا في الرد على الستفسارات ‪ queries‬من خلل اختيار انواع معينة من البيانات أو أجزاء معينصصة مصصن قاعصصدة‬
‫البيانات‪.‬‬
‫• من المهم قبصل إنشصاء قاعصصدة البيانصصات أن يكصصون لصصدينا ‪ conceptual model‬لكيفيصصة تنظيصصم البيانصات وكيفيصة‬
‫هيكلتها وتسمى عملية إنشاء هذا النموذج بنمذجة قاعدة البيانصصات ‪ database modelling‬وتأخصصذ عمليصصة نمذجصصة‬
‫قاعدة البيانات في اعتبارها كل المشاركين وكذا تغطي النواحي الفنية والغير فنية ومنها‪:‬‬
‫التغير السريع للتكنولوجيا ‪ :‬حيث لبد أن تكون الطرق التقنية مسصصتقرة )مصصن ناحيصصة المعصصدات ‪HW‬‬ ‫‪-1‬‬
‫والبرامج ‪ (SW‬مع مرور الزمن لكي ل يكون من الضروري أن يتغير هيكصصل قاعصصدة البيانصصات مصصع أي تغيصصر‬
‫سريع في الطرق التقنية الخاصة بالمعدات والجهزة )الهيكل ثابت مع التكنولوجيا المتغيرة(‪.‬‬

‫قاعدة البيانات الجغرافية غالبا ما تكون طويلة العمر وبالتالي ينبغي التخطيط لها على هذا السصصاس‬ ‫‪-2‬‬
‫)أن تعيش فترة طويلة من الزمن(‪.‬‬

‫هيكل قاعدة البيانات ‪ database structure‬ينبغي أن أن يكصون بسصيطا قصدر المكصان ليسصهل مصن‬ ‫‪-3‬‬
‫خلله تغييرات وإدخال واستخراج البيانات ومن هنا فليس من الضروري التفكير في حلول معقصصدة عنصصد حصصل‬
‫المشاكل البسيطة‪.‬‬

‫يجب عزل المسصصتخدمين ‪ users‬عصصن التغييصصرات الصصتي تتصصم فصي نظصصام قاعصصدة البيانصصات وبالتصصالي فصإن‬ ‫‪-4‬‬
‫التغيرات التي تحدث في التكنولوجيا )ظهور برامج ومعدات جديدة ( ل تؤثر في عمليتي التعامل مع البيانات‬
‫)تعديل ‪ /‬إدخال ‪ /‬استخراج‪ (...‬أو التصال بين قاعدة البيانات وواجهة المستخدم‪.‬‬
‫نموذج علقات الكيانات ونظم إدارة قواعد البيانات ‪Entity relationship (ER) model and DBMS‬‬

‫• تعتمد نمذجة قواعد البيانات على عدة مفصصاهيم وأكصصثر هصصذه المفصصاهيم اسصصتخداما هصصو نمصصوذج علقصصات الكيانصصات‬
‫‪ Entity relationship (ER) model‬وهو يعبر عن العلقات بين الشياء المطلوب عمل قاعدة بيانات لها أو‬
‫بمعنى أخر يعبر عن هيكل قاعدة البيانات ‪،‬وهو يتكون من ثلثة عناصر تمثل رموز للجزاء المختلفة التي تكون‬
‫قاعدة البيانات‪:‬‬
‫نوع الكيان ‪ Entity type‬ويتحدد من خلله نوع الشيئ ‪ object‬الذي نتعامل معه‪.‬‬ ‫‪-1‬‬
‫نو البيان الوصفي ‪ Attribute type‬وهو يصف أنواع الكيانات‬ ‫‪-2‬‬
‫نوع العلقة ‪ relationship type‬وهو يحدد العلقة بين الكيانات وبياناتها الوصفية‪.‬‬ ‫‪-3‬‬

‫• بصصالرغم مصصن أن عمليصصة نمذجصصة علقصصات الكيانصصات قصصد تبصصدو جصصزءا سصصهل مصصن عمليصصة نمذجصصة قواعصصد البيانصصات‬
‫‪ database modelling‬إل أنها مجال هام جدا في عمليصة إنشصاء قاعصصدة البيانصصات ويوضصح الشصكل رقصم ‪ 8‬مثصال‬
‫صغيرا لنموذج علقات الكيانات في قاعدة بيانات خاصصة بصإدارة شصبكة الطصرق حيصث يظهصر فيصصه عصصدد قليصل مصصن‬
‫الكيانات التي يتم ربطها ببعضها من خلل بيانات وصفية معينة ‪ specific attributes‬ونلحظ بالمثال أن كيان‬
‫الطريق مرتبط ببيان وصفي رقم الطريق ‪ road number‬ومرتبط بكيان آخر هصو رابصصط الطريصصق ‪road link‬‬
‫ويلحظ أن درجة تعقيد النموذج تعتمد على مدى تعقيد قاعدة البيانات ‪ ،‬ومن خلل هذا النصصوع مصصن نمذجصصة قواعصصد‬
‫البيانات يمكن توضيح مدى القوة والضعف في طرق إنشاء قاعدة البيانات كما يمكن تحليلها من خلل الرسم‪.‬‬
‫• بعد النتهاء من إعداد ال ‪ conceptual model‬يتصم تنفيصذ هيكصصل قاعصصدة البيانصصات داخصل نظصام إدارة قواعصصد‬
‫البيانات )البرنامج نفسه ‪ (SW‬وأثناء عمل ذلك لبد من أخذ التي في العتبار‪:‬‬
‫مرونة عملية النشاء ‪ construction‬بدرجة كافية حتى يتم أخذ العمليات المختلفة فصي نظصام إدارة‬ ‫‪-1‬‬
‫قواعد البيانات في العتبار‪.‬‬
‫هيكلة البيانات بما يسهل عملية استخراج )اشتقاق( البيانات‪.‬‬ ‫‪-2‬‬
‫يجب أن تراعي في عملية إنشاء قاعدة البيانات تقليل مخاطر الخطاء داخل النظام فلبد أل تعطصى‬ ‫‪-3‬‬
‫السماحية للمستخدم أن يدخل نوع خطأ من البيانات في جزء خطصصأ مصصن النظصام كمثل إدخصال بيصصان نصصصي فصي‬
‫مكان يقبل فقط البيانات الرقمية‪.‬‬
‫يجب تسهيل الدخول على قاعدة البيانات والتعامل معها من خلل إمكانيصصات البحصصث الموجصصودة فصصي‬ ‫‪-4‬‬
‫نظام إدارة قواعد البيانات وهذا قد يشتمل على إنشصاء واجهصصات ‪ interfaces‬للمسصصتخدمين الصذين ليصس لصصديهم‬
‫مهارات في إدارة قواعد البيانات مما يصعب عليهم إستخراج واشتقاق البيانات‪.‬‬
‫• من المهم جدا وجصود تعريصف لفظصي موحصد ‪ standardized semantic‬للتأكصد مصن إمكانيصة التواصصل بيصن‬
‫المستخدمين وكذا التأكد من ان الجميع يتحدث عن نفس الشيء فمعنى الطريق لسلئق الحافلة أنه مكصصان يمكنصصه فيصصه‬
‫قيادة الحافلة أما الطفل فقد يفكر في الطريق كمكان للعب كرة القدم بينما يفكر أشخاص آخرون في الطريق بشصصكل‬
‫آخر ومن المهم جدا وجود مصطلح فني موحد )بإجماع الكل على تعريف محصصدد( لكصصل كيصصان فصصي قاعصصدة البيانصصات‬
‫التي نعمل عليها لتوفير إمكانية التواصل بين مستخدمي هذه القاعدة‪.‬‬

‫أنواع مختلفة من النماذج‬


‫هناك أنواع مختلفة من هياكل قواعد البيانات ‪ database structures‬الشائع استخدامها وهي‪:‬‬ ‫•‬
‫قواعد البيانات المتدرجة )هرميا( ‪hierarchical databases‬‬ ‫‪-1‬‬
‫قواعد البيانات الشبكية ‪network databases‬‬ ‫‪-2‬‬
‫قواعد البيانات المتصلة ‪relational databases‬‬ ‫‪-3‬‬
‫أول‪ :‬قواعد البيانات المتدرجة ‪:hierarchical databases‬‬
‫هيكل هذا النوع من قواعد البيانات يخلق شجرة بروابط بسصصيطة تمصصام تربصصط بيصن المسصتويات المختلفصة ويسصصمح الهيكصل‬
‫بربط كيان واحد فقط من السفل بكيان واحد فقط من العلى ويوضح الشكل مثال لهذا النصصوع مصصن خلل قاعصصدة بيانصصات‬
‫متدرجة لمكتية بها مختلف الموضوعات والمؤلفين والكتب ومن الواضح أنه يمكننا فقط ربط كتاب واحد بمؤلف واحصصد‬
‫ومؤلف واحد بموضوع واحد مما يجعل قاعدة البيانات غير كفء حيث يمكن أن يتم تأليف الكتاب من خلل أكصصثر مصصن‬
‫مؤلف كما يمكن أن يؤلف المؤلف عدة كتب في موضوعات مختلفة مما يجعل هذا النوع من قواعد البيانات غير شصصائع‬
‫الستخدام‪.‬‬
‫ثانيا‪ :‬قواعد البيانات الشبكية ‪:network databases‬‬
‫هيكل هذا النوع أكثر تعقيدا من سابقه حيث يمكن فيه ربط الكيانات المختلفة ببعضها بطريقة أكثر مرونة فالكتصصاب فصصي‬
‫قاعدة بيانات المكتبة يمكن ربطه بالعديد من المؤلفين ويمكن ربط المؤلفين بالعديد من الموضوعات وهكذا‪.‬‬
‫ثالثا‪ :‬قواعد البيانات المتصلة ‪:relational databases‬‬
‫هيكل هذا النوع أكثر مرونة من النوعين السابقين حيث يتم فيه تخزين الكيانات في جداول و يتم توصيف وربط )‬
‫‪ (link/relate‬الكيان )الجدول( بكيانات )جداول( أخرى في جداول أخرى ويوضح الشكل قاعدة بيانات المكتبة والتي‬
‫يتم فيها تخزين كيان الموضوع ‪ subject‬كجدول به العديد من الموضوعات ثم يتم ربط هذه الموضوعات بجدول‬
‫كيان المؤلف ‪ author‬والذي به قائمة من المؤلفين وهكذا‬
‫نموذج قاعدة البيانات المتصلة ‪:relational database model‬‬
‫هيكل قاعدة البيانات المتصلة هو أكثر الهياكل المستخدمة شيوعا في برامج نظم المعلومات الجغرافية ‪.‬‬ ‫•‬
‫• يتم تنظيم هياكل قواعد البيانات المتصلة في جداول الصصتي يتصم تنظيمهصصا بصدورها فصي أعمصصدة تحصوي معلومصات‬
‫مختلفة وأساسيات قواعد البيانات المتصلة هي أنه إذا احتوى عمود في جدول على نفصصس بيانصصات عمصصود آخصصر فصصي‬
‫جدول آخر فإنه يمكن ربط هذين الجدولين معا والوصل بين المعلومات المخزنة بهما وهذا يسمى )حسصصب هياكصصل‬
‫قواعد البيانات( العلقة ‪ relation‬ويوضح الشصكل ثلثصة جصداول كصل منهصا يحتصوي علصى عمصودين حيصث يخصزن‬
‫الجدول الول أسماء الشخاص والمدن التي يعيشون فيها أما الثصاني فيحتصوي عمصودا بصه أسصماء المصدن وآخصر بصه‬
‫أسماء الدول التي تقع هذه المدن داخلها وهذا التكرار للعمدة التي تحتوي أسماء المصصدن يجعصصل مصصن الممكصصن ربصصط‬
‫الجداول المختلفة ببعضها أما الجدول الثالث فبه عمود يحتوي أسماء الدول وآخر بصصه أسصصماء عواصصصم هصصذه الصصدول‬
‫وهذا يجعل من الممكن ربط الجدول رقم ‪ 2‬بالجدول رقم ‪ 3‬لن كل منهما به عمود يحتوي أسماء الصصدول المختلفصصة‬
‫كما أنه يجعل ربط الجدولين ‪ 1‬و ‪ 3‬ممكنا لرتباط كل منهما بالجصصدول رقصصم ‪ ، 2‬ويلحصصظ أن اسصصتخدام المعلومصصات‬
‫المتكررة في خلق علقات بين الكيانات المختلفة في قواعد البيانات المتصلة هو نفس الشيء الحادث عند استخدام‬
‫عمود ‪ Id-numbers‬في ربط البيانات الهندسية ‪ geometric data‬بالبيانات الوصفية ‪.attribute data‬‬
‫يتم التعامل مع قواعد البيانات المتصلة من خلل نظم إدارة قواعد البيانات المتصلة‬ ‫•‬
‫• ‪ Relational Database Management Systems‬والتي يطلق عليها اختصارا ‪ RDBMS‬حيث يتم‬
‫تنظيم البيانات في قاعدة البيانات في أعمدة وصفوف حيث لبد مصصن تحديصصد عصصدد العمصصدة وكصصذا الصصفوف ويمكصصن‬
‫تسمية العمدة بأسماء ‪ fields, items, or tables‬مما قد يحدث ارتباك في المصطلحات أحيانا أمصا الصصفوف‬
‫فيمكن تسميتها ‪.objects, post, records, or tuples‬‬
‫• من المهم جدا عند خلق قاعدة بيانات جديدة تحديد هيكل بيانات العمدة ‪ fields‬المختلفة فمثل لبد من تحديد‬
‫نوع البيان المخزن وأى نوع من المعلومات ينبغي أن نسصصمح للمسصصتخدم بإدخصصاله فصصي العمصصود فمثل إذا تصم تعريصصف‬
‫البيان كبيان نصي فإنه ينبغي أن نسمح للمستخدم بإدخصصال ‪ ASCII-text‬وتسصصتخدم البيانصصات كبيانصصات نصصصية فقصصط‬
‫بينما عند تعريفه كبيان رقمي يمكن للمستخدم تخزين أرقام وكذا استخدام العمود في الحسصصابات المختلفصصة ويلحصصظ‬
‫أن التعريف المحدد والحازم لكصل عمصود يقلصل مصن الخطصاء الممكصن حصدوثها بسصبب فصصل أنصواع البيانصات ‪data‬‬
‫‪ types‬المختلفة ومنع خلطها ببعضها )هذا فرق هام جدا بين نظصصم إدارة قواعصصد البيانصصات وبرامصصج ‪spreadsheet‬‬
‫مثل ‪ MS Excel‬التي يمكن فيها خلط أنواع البيانات المختلفة في نفس العمود( ‪ ،‬ومصصن الضصصروري أيضصا تحديصصد‬
‫حجم العمود بتحديد عدد الحرف )أو الرقام( ‪ characters‬المسموح بتخزينها فيصصه فمثل قصصد يسصصمح بتخزيصصن ‪50‬‬
‫حرفا في العمدة النصية ‪ text columns‬بينما في العمدة الرقمية فيمكن تخزين ‪ 30‬وحدة رقمية ‪ digit‬مع ‪10‬‬
‫وحدات عشرية ‪ ، decimal‬كما يلزم أيضا تحديد نوع التخزين للقيم المختلفة )في العمدة الرقمية( كمثل أن يتصصم‬
‫تخزينها على هيئة ‪.binary, integer, or real‬‬
‫• يتم هيكلة البيانات في جداول يتم ربطها معا وهذا الربط يخلق علقات بين البيانات الوصفية المختلفة وحصصتى‬
‫إذا لم يتم ربط جدولين معا بطريقة مباشرة فمصصن الممكصصن أن يكصصون بينهمصصا علقصصة مصصن خلل سلسصصلة مصصن الجصصداول‬
‫المرتبطة ببعضها مما يجعل من السهل دمج معلومات من الجدولين ولو نظرنا للرتباط بطريقة أعمق لوجصصدنا أن‬
‫كل الشياء وكذا الدميين يرتبطون بطريقة أو بأخرى معا كما يوضح الشكل بأعلى‪.‬‬
‫• عند بناء الجداول في قواعد البيانات المتصلة يتم أخذ بعض المحددات في العتبار فمن المهم أن نخزن قيمصصة‬
‫واحدة في كل خلية من خليا الجدول حيث أنه ليس من الممكن مثل تخزين عمر وعدد الناس في نفس الخلية كمصصا‬
‫ل يمكن مثل تخزين العمر والسم لنفس الشخص في نفس الخلية فكل خلية لبد أن تحوي قيمصصة منفصصردة ‪unique‬‬
‫تعبر عن صفة معينة للكيان ‪ entity‬المعبر عنه بالجدول‪.‬‬
‫• لبد أيضا من تلفي العتماد الصصوظيفي ‪ functional dependence‬ومعنصصى هصصذا أن نتلفصصى أن تكصصون قيصصم‬
‫عمود معين بالجدول تعتمد على قيم عمود آخر سواء كان في نفس الجدول أو في جدول آخر )يتم تحويل القيم في‬
‫العمود الصلي من خلل خوارزم ‪ algorithm‬معين وتخزينها في عمود آخر يسمى ‪ calculated field‬وهصصذا‬
‫يرفع المساحة المستخدمة من الذاكرة وبالتالي فهو طريقة غير كفء حيث يمكن حسصصاب هصصذه القيصصم بشصصكل مصصؤقت‬
‫بدل من تحميلها في الذاكرة وتخزينها فيها بشكل دائم(‪.‬‬
‫• لبد أيضا من تلفي التكرار ‪ redundancy‬بقصدر المكصان عنصد إنشصاء قاعصدة البيانصات وهصذا التكصرار يعنصي‬
‫تخزين نفس المعلومات عدة مرات مما يجعل قاعدة البيانات أضخم وبالتالي أبطأ في استخراج البيانات منها وفصصي‬
‫التعامل معها بشكل عام وعادة يتم تلفي هذا التكرار بتقسيم الجداول الضخمة لعدد من الجداول الصغيرة التي يتم‬
‫ربطها من خلل العمصصدة المتكصصررة ‪) common columns‬الصصتي تحصصدثنا عنهصصا فصصي مثصصال الصصدول والعواصصصم (‬
‫ويتضح هذا من خلل المثال الموجود بالشكل العلوي‪.‬‬
‫• استخدام الفهارس )مثلما يحدث في دليل التليفونات( سصصيزيد سصصرعة البحصصث فصصي قاعصصدة البيانصصات حيصصث يمكصصن‬
‫فهرسة البيانات )على سبيل المثال( أبجصصديا وهصصذه الفهرسصصة سصصتقلل وقصصت اسصصتخراج واشصصتقاق البيانصصات كمصصا يمكصصن‬
‫استخدام الفهارس نفسها في الربط بين الجداول المختلفة ومن هنا فإن الفهارس تجعل التعامل مصصع قاعصصدة البيانصصات‬
‫كفصصؤا بشصصكل أكصصبر لنهصصا تمنصصع التكصصرار ‪ duplication‬وتزيصصد مصصن سصصرعة البحصصث وتحفصصظ سصصلمة المرجعيصصة‬
‫‪ referential integrity‬لمكانية استخدامها في الربط بين الجداول‪.‬‬
‫الربط والضم ‪:link and joins‬‬
‫تتعدد طرق ربط البيانات ومنطقيا لغن العلقة نوع من ثلثة‪:‬‬ ‫•‬
‫واحد لواحد ‪.one to one‬‬ ‫‪-1‬‬
‫واحد لمتعدد ‪.one to many‬‬ ‫‪-2‬‬
‫متعدد لمتعدد ‪.many to many‬‬ ‫‪-3‬‬
‫أول‪ :‬واحد لواحد ‪:one to one‬‬
‫يربط هذا النوع من العلقات بين الجداول عن طريق قيمة منفردة تظهر مصصرة واحصصدة فصصي كصصل جصصدول والمثصصال يوضصصح‬
‫وجود عمود اسمه "‪ "order‬في كل جدول ويلحظ أن رقم المر ‪ order number‬قيمة منفردة تظهصصر فصصي الجصصدول‬
‫مرة واحدة كما يلحظ أن العلقة تربط صف واحد في أحد الجدولين بصف واحد في الجدول الخر‪.‬‬
‫ثانيا‪ :‬واحد لمتعدد ‪:one to many‬‬
‫يحدث هذا النوع من العلقات عندما يمكن ربط صصصف واحصصد فصصي أحصصد الجصصداول بعصصدة صصصفوف فصصي جصصدول آخصصر وهصصذه‬
‫الطريقة هي طريقة نموذجية لتلفي التكرار ‪ redundancy‬في قاعدة البيانات ويوضح المثال جدولين الول بع عمود‬
‫بأسماء الدول وعمود بأرقامها أما الجدول الثاني فبه عمود بأرقام الدول وآخر بالمدن المختلفة الموجودة في هذه الدول‬
‫وحيث أن الدولة بها عدة مدن فإن رقمها يمكن تطبيقه علصى عصدة مصدن داخلهصا )عصدة صصفوف مصن الجصدول تلئم دولصة‬
‫واحدة( من خلل جصصدول أسصماء المصصدن ‪ ،‬مصن هنصا وبصالنظر لقاعصدة بيانصصات أكصثر تعقيصصدا فصإن الجصدولين سصيحتويا علصى‬
‫معلومات أكثر يجب تخزينها بالطريقة الموضحة حيث سصصيحوي الجصصدول الول معلومصصات )أعمصصدة( مثصصل عصصدد السصصكان‬
‫والمساحة والعواصم الخاصصصة بالصصدول الموجصصودة بصه أمصا الجصصدول الخصصر فصإنه معلومصات عصن عصدد السصكان والمسصاحة‬
‫ووصلت السكك الحديد الخاصة بالمدن الموجودة به‪.‬‬
‫مما سبق فإن تقسيم الجدول باستخدام علقة واحد لمتعصدد ‪ one to many‬أفضصل مصن تخزيصن كصل شصيء فصي نفصس‬
‫الجدول لننا نكون قد تلفينا التكرار ‪.redundancy‬‬
‫ثالثا‪ :‬واحد لمتعدد ‪:many to many‬‬
‫هذا النوع من العلقات ليوجد به أى قيم منفردة في أى من أعمدة الجداول ويوضح المثال جدولين بهما معلومات عصصن‬
‫حالة الطقس تم اقتباسها من محطة أرصاد ويحوي كل جدول رقم المحطصصة وسصصنة الرصصصد وشصصهر الرصصصد ثصصم معصصدلت‬
‫تساقط المطار في أحد الجدولين ودرجات الحرارة في الخر وفي هين الجدولين ل يوجد مؤشصصرات منفصصردة ‪unique‬‬
‫‪ identifier‬وللربط بين القيم المنفردة )على سبيل المثال لنفس الشصصهر( لبصصد مصصن اسصصتخدام عصصدة أعمصصدة )رقصصم المحطصصة‬
‫وسنة الرصد وشهر الرصد(‪.‬‬
‫• غالبا ما توجد لدينا مشكلة البيانات المفقصودة ‪ missing data‬ممصا يسصصبب مشصكلة عنصصد التعامصصل مصع البيانصصات‬
‫الوصفية وعلج ذلك هو ضم الجداول أو ربطها لمعرفة القيم المفقودة وعندما نريد ضم جصدولين أو ربطهمصا فصصإن‬
‫ذلك يمكن أن يتم من خلل إحدى طريقتين‪:‬‬
‫الضم الداخلي ‪.inner join‬‬ ‫‪-1‬‬
‫الضم الخارجي ‪.outer join‬‬ ‫‪-2‬‬
‫أول‪ :‬الضم الداخلي ‪:inner join‬‬
‫عند ضم جدولين معا باستخدام هذا السلوب فإنه يمكن فقط ربط ‪ link‬الصفوف الصصتي يمكصصن ربطهصصا مصصن خلل علقصصة‬
‫واحد لواحد وبالتالي فهو يأخذ فقط الصفوف التي بها قيم في كل الجصصدولينويتم حصذف كصصل الصصفوف الباقيصة مصن قاعصصدة‬
‫البيانصصات الناتجصصة وهصصذه الطريقصصة تسصصتخدم لحصصذف البيانصصات الصصتي ليصصس لهصا صصصلة بموضصصوع الدراسصصة عنصصد دمصصج قواعصصد‬
‫البياناتويلحظ في المثال أننا نفقد بيانات من الجدول الول )‪1‬و ‪ (2‬وبيانات من الجدول الثاني )‪6‬و ‪ (7‬لكن تصبح بعصصد‬
‫ذلك قاعدة البيانات ذات هيكل مدروس‪.‬‬
‫ثانيا‪ :‬الضم الخارجي ‪:outer join‬‬
‫عند ضم جدولين معا باستخدام هذا السلوب فإنه يتم الحتفاظ بكل الصصصفوف مصصن أحصصد الجصصدولين ثصصم إضصافة الصصصفوف‬
‫المتوافقة معها ‪ corresponding rows‬من الجدول الخروفي المثال تم أخذ كل الصفوف مصصن الجصصدول الول ‪ A‬ثصصم‬
‫دمجها مع الصفوف المتوافقة من الجصدول الخصر ‪ B‬وبالتصالي فصإن الصصفوف الموجصودة فصي الجصدول الول وليصس لهصا‬
‫صفوف متوافقة في الجدول الثاني سيظهر فيها بيانات مفقصودة فصي الجصزء الصذي مصصدره الجصدول الثصاني ‪) B‬فصي هصذه‬
‫الحالة نفقد فقط القيم ‪6‬و ‪ 7‬من الجدول الثاني( ويلحظ أنه طبقا للغرض من قاعدة البيانات يمكننا أن نحدد نصصوع الضصصم‬
‫الذي نستخدمه )داخلي‪ /‬خارجي( وإذا كان للجدولين نفس الصفوف )نفس المؤشرات بما يعني أن العمود ‪ .No‬به نفس‬
‫القيم في الجدولين( فإن مشكلة البيانات المفقودة لن تحدث‪.‬‬
‫لغة الستفسار المهيكل ‪:(structured query language(SQL‬‬
‫• لشتقاق البيانات أو لداء عدة أنواع مصصن العمليصات علصى قاعصدة البيانصصات نسصصتخدم لغصة الستفسصار المهيكصل )‬
‫‪ (SQL‬والتي تستخدم لعمل بحث ‪ search‬أو إحلل ‪ replace‬أوتعديل ‪ edit‬أوتحديث ‪ update‬أو مسصصح بيانصصات‬
‫وصفية وكذا تستخدم لتخليق مخرجات جديدة من قاعدة البيانات ‪ ،‬وغالبا ما تستخدم هذه اللغة لختيار أجصصزاء مصصن‬
‫قاعدة البيانصصات طبقصصا لمعصصايير ‪ criteria‬المسصصتخدمين الخاصصصة والصصتي تسصصتخدم فصصي عمليصصات التحليصصل أو العمليصصات‬
‫الخرى ويلحظ أن لهذه اللغة قواعد صياغة محددة وحازمة ومن المهم فهم معاني مفردات هصصذه اللغصصة وخاصصصة‬
‫العوامل الشرطية ‪ conditional operators‬فهما جيدا‪.‬‬
‫تتكون جملة لغة الستفسار المهيكل ‪ SQL‬من ثلثة أجزاء مختلفة وهي‪:‬‬ ‫•‬
‫جزء "إختر" ‪ select‬وهو يحدد البيانات الوصفية الصصتي ينبغصصي تواجصصدها فصصي النتيجصصة وهصصذا يحصصدث‬ ‫‪-1‬‬
‫على سبيل المثال عندما نهتم بمجموعة محددة من العمدة الموجودة في قاعدة بيانات ول نهتم بباقي القاعدة‪.‬‬
‫جصصزء "مصصن" ‪ from‬ويتحصصدد مصصن خللصصه أسصصماء جصصداول المصصصدر أو قاعصصدة بيانصصات المصصصدر الصصتي‬ ‫‪-2‬‬
‫نستخرج منها البيانات‪.‬‬
‫جزء "حيث" ‪ where‬وهو يحدد الشصروط الصتي ينبغصي أن تحققهصا الصصفوف الموجصودة فصي قاعصدة‬ ‫‪-3‬‬
‫البيانصصات حصصتى يتصصم اختيارهصصا فصصي النتيجصصة ويلحصصظ أن الشصصروط قصصد تكصصون شصصروطا منطقيصصة ‪logical‬‬
‫‪ expressions‬أو شروطا حسابية ‪ mathematical expressions‬أو أخرى كما يمكن وضع العديصصد مصصن‬
‫الشروط للختيار مستخدمين العوامل المنطقية ‪ Boolean operators‬لضم النتائج لبعضها‪.‬‬
‫• يحدد العامل المنطقي ‪ Boolean operator‬الشرط الذي يتم تقييمه وبالتصالي ينتصج عصن ذلصك إمصا أن يتحقصق‬
‫الشرط وتكون النتيجة صحيحة ‪ true‬أو ل يتحقق وتكون النتيجصصة خطصصأ ‪ false‬وتسصصتخدم العوامصصل المنطقيصصة لضصم‬
‫الشصروط المتعصددة معصا وذلصصك فصي جصزء "حيصث" ‪ where‬الموجصود فصصي جملصصة لغصة الستفسصار المهيكصل ‪SQL-‬‬
‫‪ sentence‬وهذه العوامل المنطقية )والتي يمكن شرحها على المثال الموضح معتبرين أن ‪ A‬بها بيانات مجموعة‬
‫من الولد أما ‪ B‬فبها بيانات مجموعة من البنات( هي‪:‬‬
‫"و" ‪ and‬وهو يبحث عن الشروط التي تتحقق في الجدولين أو قاعدتي البيانات فعلى سصصبيل المثصصال‬ ‫‪-1‬‬
‫ومن هنا وكما هو واضح بالمثال فإنه لبد أن يتحقق الشرطان ‪ A, B‬وقد يكون الشرط مثل هصو أن نختصصار‬
‫الباء الذين لديهم ولد )جدول ‪ (A‬و ‪ AND‬لديهم في نفس الوقت بنت )جدول ‪.(B‬‬
‫"أو" ‪ or‬وهي تبحث عن الشروط التي تتحقق )‪ (true‬في أحد الجصدولين أو فصصي كليهمصا وقصصد يكصصون‬ ‫‪-2‬‬
‫الشرط مثل أن نختار الباء الذين لديهم إما ولد أو ‪ OR‬بنت )أو ولد وبنت(‪.‬‬
‫‪ Xor‬ويبحث عن الشروط التي تتحقق )‪ (true‬في أحد الجدولين وليس في كليهما وقد يكون الشرط‬ ‫‪-3‬‬
‫هو اختيار الباء الذين لديهم إما ولد أو بنت )مع استبعاد من كان لديه ولد وبنت في نفس الوقت(‪.‬‬
‫‪ Not‬ويبحث عن الشرط الذي ل يتحقق )‪ (false‬وقد يكون الشرط أن نختار الباء الذين لديهم فقط‬ ‫‪-4‬‬
‫أولد )وليس لديهم بنات( أو الباء الذين لديهم فقط بنات )وليس لديهم أولد(‪.‬‬
‫• يوضح المثال كيفية البحث واشتقاق البيانات باستخدام ‪ SQL‬وفيه نبحث عن الطلبصصة الصصذين يدرسصصون مصصادة “‬
‫‪ ”history A‬وبالتالي "نختار" ‪ select‬العمدة التي ينبغي تواجدها في النتيجة وهي )على سبيل المثال( السصصم‬
‫‪ name‬والمادة ‪ subject‬والتقدير ‪ mark‬ونختارها مصصن ‪ from‬جصصدول الطلبصصة ‪ students‬حيصصث ‪ where‬الشصصرط‬
‫هو أن المادة المدروسة هصصي ‪ (”history A (“subject= history A‬ومصصن هنصصا يبحصصث الكمصصبيوتر العمصصود "‬
‫‪ "subject‬في جدول "‪ "students‬ليصل إلى الصفوف التي تحقصصق الشصصرط الصصذي تصصم تحديصصده مصصن خلل "حيصصث"‬
‫‪ where‬ثم يتم اختيار هذه الصفوف بالبيانات الموجودة في العمودين ‪ Name, Mark‬واستخراجها معا ‪.‬‬
‫• نرى في هذا المثال عبارات متعددة للغة الستفسار المهيكل ‪ SQL‬حيث نختصصار فيهصصا كصصل العمصصدة باسصصتخدام‬
‫علمصصة ‪ "*" wildcard‬والصصتي توضصصع فصصي جصصزء "إخصصتر" ‪ select‬حيصصث نختصصار البيانصصات مصصن ‪ from‬جصصدول "‬
‫‪ "students‬حيصث ‪ where‬الشصرط هصو )“‪ (”name= Robert Strand” AND “Mark>4‬وهصذا الشصرط‬
‫يتحقق فقط في صف واحد هو الذي يظهر في النتيجصصة لن هصصذا الشصخص )‪ (Robert Strand‬هصصو الوحيصصد الصصذي‬
‫حصل على تقدير أعلى من ‪.4‬‬
‫التنقيب عن البيانات أو كتالوج البيانات )البيانات التوثيقية( ‪:metadata‬‬
‫• يمكن تعريف ال ‪ metadata‬بأنها المعلومات المخزنة عصصن البيانصات )الموجصودة فصي قاعصدة البيانصصات( سصواء‬
‫كانت بيانات هندسية أو بيانات وصفية كما يمكن تعريفهصصا بأنهصصا معلومصصات توثيقيصصة عصصن البيانصصات أو وصصف أكصصثر‬
‫تفصيل للبيانات وتعد ال ‪ metadata‬موضوعا هامصا جصصدا لن توثيصق قاعصدة البيانصصات هصام جصدا لتعزيصصز المعصصايير‬
‫المحددة الموحدة ‪ sustain certain standards‬لقاعدة البيانات وبالتالي فهي تضمن مستوى معين من الجودة‬
‫والمرونة وكذا مستوى معين من إمكانية العتماد على قاعدة البيانات من خلل مستخدميها‪.‬‬
‫• أغلب الدول إما أن يكصصون لصصديها معصصايير محصددة للبيانصات التوثيقيصة ‪ metadata‬أو فصصي طريقهصا لوضصصع هصذه‬
‫المعايير والشكال التالية توضح أمثلة لبعض المعايير المقتبسة من المعيار الوروبي لل ‪:metadata‬‬
‫إسم قاعدة البيانات واسم مالكها‪.‬‬ ‫‪-1‬‬
‫نظرة ووصف عام للبيانات الهندسية والبيانات الوصفية وكذا الستخدام المقترح )المناسب( لقاعدة‬ ‫‪-2‬‬
‫البيانات‪.‬‬
‫• ينبغصصي أن تحتصصوى البيانصصات التوثيقيصصة ‪ metadata‬علصصى المعلومصصات الخاصصصة بعلصصم الخصصرائط كالسصصقاط‬
‫‪ projection‬ونظام الحداثيات المستخدم ‪ coordinate system‬وكذا استدلل الخريطة ‪.... datum‬إلخ وإذا لم‬
‫تتوافر هذه المعلومات فمن الصعب معرفة نوع السقاط الذي نستخدمه للتعامل مع الخريطة )إذا تم اختيار إسقاط‬
‫خاطء فإن ذلك يحدث تشويها للخريطة( كما يصصصعب تحديصصد كيفيصصة تحويصصل قواعصصد البيانصصات بيصصن نظصصم الحصصداثيات‬
‫المختلفة‪.‬‬
‫• من المهم أيضا توثيق البيانصصات الخاصصصة بهياكصصل قواعصصد البيانصصات ‪ database structures‬المخزنصصة )سصصواء‬
‫بيانات هندسية أو وصفية( وكذا المصطلحات الفنية وهيكل الملف ‪ file structure‬وكيفية تنسيق البيانصصات ‪data‬‬
‫‪ format‬وذلك لتسهيل تبادل البيانات بين النظم المختلفة )سواء كانت برامج أو معايير ‪. (standards‬‬
‫• يجب أيضا توثيق البيانات بالمتداد المستقبلي المخطط له )بالنسبة للبيانات( بالضافة إلصصى المتصصداد الصصواقعي‬
‫الذي يمثل كل من المتداد المكاني )الحداثيات والوحدات الدارية‪...‬إلخ ( والمتداد الزمني وبالتالي لبد أن نفكر‬
‫هل البيانات ملئمة للستخدام )حاليا‪ /‬بعد شهرين‪ /‬بعد ‪ 6‬أشهر فمثل بعصصض قواعصصد البيانصصات مثصصل بيانصصات التعدلصصد‬
‫السكاني قد تكون صالحة لفترة محدودة مما يوجب علينا توضصصيح ذلصصك فصصي البيانصصات التوثيقيصصة ‪ (metadata‬وهصصل‬
‫سيتم جمع بيانات أخرى مستقبل وكذا ما هي تواريصخ جمصع البيانصات ومصا هصي فصترة التحصديث الصدوري لهصا وهصذه‬
‫المعلومصصات ستسصاعد المسصصتخدم لتحديصد مصصدى ملئمصصة البيانصصات للسصتخدام كمصصا أنهصا فرصصة ليعلصم المسصتخدم عصصن‬
‫المتدادات المستقبلية لقاعدة البيانات‪.‬‬
‫• يمكننا اعتبار البيانات التوثيقية ‪ metadata‬كإفصصادات للجصصودة والصصتي تعصصد مكونصصا هامصصا مصصن مكونصصات البيانصصات‬
‫التوثيقة التي تحتوي على‪:‬‬
‫أصل قاعدة البيانات مع وصصصف لمصصصدر البيانصصات وعمليصصة تطصصور القاعصصدة )معلومصصات عصصن‬ ‫‪-1‬‬
‫المكان الذي استخرجت منه البيانات وكيف تم معالجتها ‪ processed‬قبل إدخالها لقاعدة البيانات فمثل هل تصصم‬
‫فحصها أو إجراء تحليلت إحصائية عليها(‪.‬‬
‫الدقة الهندسصصية )منهجيصصة تجميصصع البيانصصات الهندسصصية ومصصا هصصي الدقصصة المسصصتهدفة إذا تصصم جمصصع‬ ‫‪-2‬‬
‫البيانات من خلل أجهزة مساحية متقدمة فإنها تكون أكثر دقة مصن البيانصات الهندسصية المسصتخرجة مصن الصصور‬
‫الجوية( والتي تؤثر على دقة الحداثيات )إحداثي النقطة على الخريطة يختلف عن إحداثيها في الطبيعة بمسافة‬
‫‪ 1‬متر أم ‪ 10‬متر( ويستخدم لقياس هذه الدقصة فصي بعصض التطبيقصات مصا يطلصق عليصه ‪Root Mean Square‬‬
‫‪.((RMS‬‬
‫دقة البيانات الوصفية )كما بالبيانات الهندسية فإن منهج جمع البيانات الوصفية سيؤثر علصصى‬ ‫‪-3‬‬
‫الدقة( وهل تم جمع كل البيانات من الطبيعة بقياسات حقيقية أم تم تقديرها أو عمل ‪ interpolation‬لها‪.‬‬
‫الدقة الزمنية لقاعدة البيانات )هل هي صصصالحة للسصصتخدام خلل فصصترة معينصصة ومصا هصصي هصصذه‬ ‫‪-4‬‬
‫الفترة هل هي شهر أم سنة ‪...‬إلخ(‪.‬‬
‫‪) Logical consistency‬كيف تم وضع البيانات معا وهل كل كيان متصل بالخر وهصصل‬ ‫‪-5‬‬
‫كل كيان له علقة بالخرين( وهو ما يفصل طريقة إنتاج قاعدة البيانات والعمليات الفرعية المستخدمة في ذلصصك‬
‫ومن المهم أيضا في هذا العنصر تحديد نوع ال ‪topology (spaghetti topology of full polygon‬‬
‫‪.(topology‬‬
‫الكمال )التمصصام( ‪ completeness‬وتحصصدد مصصا إذا كصصانت كصصل المواصصصفات السصصابقة صصصحيحة‬ ‫‪-6‬‬
‫للمساحة الجغرافية )المرصودة في قاعدة البيانات( كلهصصا أم هنصصاك اختلفصصات فصصي الجصصودة أو الدقصصة الزمنيصصة بيصصن‬
‫المناطق الجزئية وبعضها فقد تكون دقة الرسم في إحدى المناطق الجزئية ممتازة ولكنهصصا أقصصرب للكروكصصي فصصي‬
‫منطقة جزئية أخرى ‪.‬‬
‫• ينبغي أن تحتوي البيانات التوثيقية على البيانات الدارية الخاصة بقاعدة البيانصصات وذلصصك كخدمصصة لمسصصتخدمي‬
‫قاعدة البيانات المحتملين في المستقبل لن قاعدة البيانات يتصصم بيعهصصا فصصي أغلصصب الحصصالت ول يتصصم إعطاءهصصا مجانصصا‬
‫وبالتالي فإن هذه البيانات الدارية تكون بمثابة الدعاية و العلن للعملء المحتملين في المسصصتقبل وتسصصاعدهم فصصي‬
‫الستفسار عن البيانات وكذا في كيفية طلب شراء هذه البيانات كما يتحدد من خللهصا التنسصيق ‪ format‬الصذي يتصم‬
‫تسليم البيانات على صورته وكذا الوسيلة ‪) media‬عن طريصصق البريصصد اللكصصتروني ‪ e-mail‬أو ‪CD-ROM or‬‬
‫‪ (diskette‬وكذا الخدمات الضافية التي يمكن لمنتج البيانات القيام بها مثل إمكانية عمل التحليلت المختلفة على‬
‫هذه البيانات‪.‬‬
‫• هناك أيضا ما يسمى البيانات التوثيقية الخاصصصة بالبيانصصات التوثيقيصصة ‪ metadata about metadata‬وهصصي‬
‫هامة نظرا لنه مصن المحتمصصل أن يكصون التحصصديث مسصصتمرا لقاعصدة البيانصصات ممصصا يظهصر الحاجصة لتحصديث البيانصصات‬
‫التوثيقية الخاصة بقاعدة البيانات لكننا لبد أن نأخصصذ فصي اعتبارنصا أن المهمصة الرئيسصية ليسصت هصي عمصل البيانصات‬
‫التوثيقية وأن مدى شمولية البيانصات التوثيقيصة يجصب أن تكصون منطقيصة ليصس مبالغصا فيهصا حصتى نمنصع العصاملين مصن‬
‫الوصول لمرحلة إنتاج البيانات التوثيقية بدل من قواعد البيانات والتي هي أساس العمل ‪....‬التصصوازن مطلصوب بيصصن‬
‫كل منهما‪.‬‬

You might also like