MYSQL Series - الجزء الأول (قواعد البيانات)

في هذا المقال سأناقش معكم قواعد البيانات وانواعها وبعض المصطلحات المهمة التي سنتطرق لها.

Yasser ElShbrawiمنذ 4 سنوات

بسم الله الرحمن الرحيم ...
مرحبًا صديقي ..  إذا كنت تقرأ هذا الكلام فأنت بالكاد شخص متعطش لتعلم المزيد عن قواعد البيانات ونظم ادارتها او ربما شخص يريد مراجعة ما يعرفه عن قواعد البيانات لثبيت معرفته او كسب معلومات جديدة ..

إذًا هيا بنا ننطلق في رحلة غامرة نستكشف ونتعلم ونراجع سويًا داخل بحر قواعد البيانات..


المقدمة ..

    مع تطور شبكة الإنترنت وتزايد عدد الأشخاص عليها واعتمادهم تلك الشبكة فكان يجب علي المطوريين إنشاء قواعد بيانات حيث تحمل داخلها بيانات هؤلاء الأشخاص، فـتخيل معي هناك شركة لديها موظفيين بالتالي سيكون هناك بيانات لهؤلاء الموظفين من اسمائهم ومرتباتهم وارقام هواتفهم وايام الحضور ..إلخ، فـ نحن هنا بحاجة لشئ ما يقوم بـ احتواء تلك البيانات بطريقة مرتبة تسهل علينا  وضع و سحب البيانات .. وهنا نحن نتحدث عن قاعدة البيانات.


 تعريف قاعدة البيانات

    هي مثل حاوية او بنية نقوم بتخزين البيانات بداخلها بطريقة مرتبة يسهل علينا ادارتها وتنظيمها وبالرغم من تعريفها البسيط إلا ان هناك العديد والعديد من المواضيع التي سوف نتطرق إلي بعضها الأن ..

 

نظام ادارة قواعد البيانات  (DBMS)

DBMS هي اختصار لـ Database management system  نظام ادارة قواعد البيانات هو يعتبر مفتاح المطور لقاعدة البيانات،فـ هو software من الممكن ان يكون web app او desktop-based app حيث يقوم بالتحكم في قاعدة البيانات من خلال تنفيذ عمليات عديدة مثل التحديد والمعالجة والتخزين وادارة البيانات او التعامل بشكل كلي مع قاعدة البيانات، حيث يعمل هذا النظام كوسيط بين المطور و محرك تخزين قاعدة البيانات (database storge engine) ويتحكم فيه المطور عندما يريد التعامل مع قاعدة البيانات ويعتمد ايضًا نظام ادارة قواعد البيانات علي لغة برمجة لتنفيذ عملياته من خلالها علي قاعدة البيانات.

 

الفرق بين قاعدة البيانات و نظام ادارة قاعدة البيانات DBMS

قد يخلط الأمر علي بعضكم بسبب تقارب المسميات ولكن نظام ادارة قاعدة البيانات هو وسيلة نستخدمها للتعديل والحذف والإضافة علي البيانات وتحكم في قاعدة البيانات بإعتماده علي لغة برمجة معينة أما قاعدة البيانات فهي مخزن للبيانات فقط لا اكثر..

 

 

محرك تخزين قاعدة البيانات (Database storge engine)

هو software module الذي يستخدمه نظام ادارة قواعد البيانات DBMS لعمل عملياته من انشاء او قراءة او تحديث للبيانات داخل قاعدة البيانات وهناك العديد من اللـstorge engine وسوف نقوم بالتحدث عنهم إن شاء الله.

 

 

 مخطط قاعدة البيانات - database schema

هي طريقة منطقية لتجميع عناصر قاعدة البيانات مع بعضها مثل اللـجداول وviews و الإجرائات المخزنة stored procedures وباقي اجزاء قاعدة البيانات التي تشكل قاعدة البيانات ...

 

 


انواع قواعد البيانات

هناك بالفعل العديد من انواع قواعد البيانات وذلك يرجع لتعدد انواع البيانات وحجمها والطريقة التي يحتاجها المطورين للتعامل مع بياناتهم لهذا تنوعت انواع قواعد البيانات، ولكل نوع منها نظام وهيكلة وطريقة معينة للتعامل مع البيانات.
اشهر انواع قواعد البيانات (database types) :

  •     Centralized database.

  •     Distributed database.

  •     Personal database.

  •     End-user database.

  •     Commercial database.

  •     NoSQL database.

  •     Relational database.

 

 

Centralized database

Centralized database

في هذا النوع من قواعد البيانات تكون البيانات في مكان مركزي موحد (موقع قاعدة البيانات في الوسط واتكلم هنا عن طبقة الهاردوير hardware) حيث يمكن لجميع الأشخاص علي الشبكة الوصول للبيانات بطريقة مباشرة وهذه الطريقة مفيدة  لربط الشركات التي لها عديد من الأفرع داخل بلد معين  بربط جميع الأفرع علي قاعدة بيانات واحدة .. ويتم تطبيق اجرائات مصادقة عديدة للتأكد من صحة المستخدمين للوصول لقاعدة البيانات (authentication process) ..

 

 

 


Distributed database

Distributed database

من اسمها قد تفهم مضمون هذا النوع .. "قاعدة بيانات موزعة" إذًا نستنتج ان قاعدة البيانات اللـdistributed يتم توزيع اجهزة التخزين الخاصة بها في اكثر من مكاان مثلًا وضع قاعدة البيانات في العديد من اجهزة الكمبيوتر او العديد من السيرفرات او داخل الشبكة المحلية او الشبكات الخارجية او علي اجهزة شبكة لشركة اخرى وبهذا الشكل يكون الأداء الخاصة بقاعدة البيانات عالي بسبب أن من يقوم بمعالجة البيانات ليس جهاز واحد بل العديد من الأجهزة وهذه تفيد اللـend-user من ناحية الأداء او اللـperformance.
قد تسئل نفسك سؤالًا .. ان كيف  قواعد البيانات الموزعة تكون متزامنة في احتواء البيانات اي تكون up-to-date او تحتوي علي نفس البيانات في الوقت ذاته؟..

وهنا نجد طريقتين لفعل هذا الشئ وهما Replication process و  Duplication process

  •      النسخ المتماثل Replication process وهي عملية تستخدمها قواعد البيانات الموزعة لجعل جميع قواعد البيانات الأخري متماثلة في البيانات من خلال نقل البيانات بينهم ولكن عملية النسخ المتماثل تستغرق العديد من الوقت كما انها عملية معقدة وهذا يرجع لحجم وعدد قواعد البيانات الموزعة وايضًا لا تنسى ان هذه العملية تحتاج إلي اجهزة قوية حتي تتحمل عملية النسخ المتماثل Replication process .

 

  •     اما اللـ  Duplication process هي عملية اقل تعقيدًا بكثير حيث نقوم هنا بتعيين قاعدة بيانات رئيسية ثم يتم تكرار بيانات قاعدة البيانات تلك إلي باقي قواعد البيانات الموزعة وتتم هذه العملية غالبًا بشكل دوري ومتكرر حسب اللـconfiguration الخاص بها .. وايضًا لا يمكن التعديل علي قواعد البيانات إلا القاعدة الرئيسية فقط.

هكذا ناقشنا هذا النوع من قواعد البيانات بطريقة مبسطة وملخصة وللأمانة هناك الكثير من المواضيع التي لم اتطرق لها لأنه ليس موضوعنا الأساسي ولكن يمكنك البحث ومعرفة المزيد بالطبع.!

 

 

 

  Personal database

  Personal database

اللـPersonal database هي قاعدة بيانات شخصية بالتالي تكون صغيرة وسهل التحكم بها لأنها كما موضع بالصورة يتم تخزين قاعدة البيانات علي جهاز كمبيوتر واحد ثم يتم التحكم بالداتا من خلال software/package علي جهاز الشخص او قد يتم مشاركتها ايضًا بين مجموعة صغيرة من الأشخاص.

 

 

End-user database

اللـend-user او المستخدم النهائي عندما يقوم بإستخدام تطبيقًا ما فهو لا يهمه التعاملات و العمليات الخاصة بالتطبيق بل ما يهمه حقًا التطبيق النهائي فاللـend-user database هي قاعدة بيانات تكون مشتركة تم تصميمها خصيصًا للـend-user يكون بداخلها ملخص لكم من المعلومات التي تخص التطبيق.

 

 


Commercial database

اللـCommercial database هي قاعدة بيانات ضخمة مصممة بشكل فريد وتكون متاحة للعملاء  ويتم انشائها من قبل جهة تجارية وصممت بشكل مخصص حتي يحصل العملاء علي البيانات التي يحتاجونها وغالبًا ما يتم استخدامها في التجارة لعرض المنتجات وبالطبع يتم الوصول لهذا النوع من قاعدة البيانات من خلال الروابط التجارية commercial links

 

 

 

Relational database

جدول الموظفين لقاعدة بيانات علائقية يتكون من صفوف واعمدة

قاعدة البيانات العلائقية هذا النوع هو من اشهر انواع قواعد البيانات والتي تستخدم مبدأ العلاقات الرياضية، حيث البيانات تكون بداخل قاعدة البيانات علي شكل جداول وهذه الجداول تتكون من صفوف واعمدة، وكل عامود يحتوي علي نوع محدد من البيانات،  والجداول تكون مرتبطة ببعضها البعض مع البيانات مما يجعل العمل علي قاعدة البيانات اسهل، مع سرعة الوصول للبيانات..

ونظام ادارة قاعدة البيانات العلائقية RDBMS اختصار لـ Relational database management system هو من يتعامل معه المطور لتنفيذ عمليات علي قاعدة البيانات العلائقية وبالطبع كما نعلم ان اللـDBMS يعتمد علي لغة برمجة لتنفيذ عملياته وهنا سوف نتحدث قليلًا عن لغة البرمجة المشهورة التي تُستخدم من قبل اللـRDBMS  وهي  SQL

لغة SQL اختصار Structured Query Language هي لغة صُممت بغرض التعامل مع البيانات المُخزنة داخل قواعد البيانات العلائقية، تتسم تلك اللغة بسهولتها حيث يشبهها العديد من المبرمجين باللغة الإنجليزية وليس لغة برمجة مما يجعلها سهلة نسبيًا في الكتابة والقراءة والتفسير

وهذه افضل اللـRDBMS المشهورة في ساحة المطورين :

  1. MySQL
    هي RDBMS مفتوح المصدر تمتلك شركة Oracle غالبًا يستخدم في تطوير الويب حيث يعتبره المطورين أنه صديق لغة اللـPHP وايضًا سهل الإستخدام ولديه مجتمع كبير يحتوي علي العديد من الخبراء في قواعد البيانات الذين يقدمون المساعدة ومن ضمن مساوئه أنه لا يحتوي علي بعض الميزات المتقدمة التي يحتاجها المطورين في بعض الأوقات.
     
  2.  SQL Server
    حيث تمتلك شركة ميكروسوفت هذا اللـRDBMS وبالطبع هو مغلق المصدر وتستخدم المشاريع الكبيرة هذا النوع من اللـRDBMS 
     
  3. Oracle DB
    وهنا تمتلك شركة Oracle هذا النوع وهو مغلق المصدر وOracle DB غالبًا يكون للمشاريع الضخمة مثل البنوك (اغلب البنوك العالمية تعمل علي Oracle DB) وسعره غالي نوعًا ما لكنه متكامل نوعًا ما وشامل وبه العديد من المزايا المتقدمة بما في ذلك العمليات الأساسية التي تستخدمها البنوك..
     
  4. PostgreSQL
    هو RDBMS مفتوح المصدر ولا يمتلك احد ويتم استخدامه في الويب يعتبر مشابه نوعًا ما لـMySQL مثل سهولة الإستخدام وغير مكلف وموثوق به ولديه مجتمع كبير خاص به ولكن اداءه / preformance الخاص به اقل من اداء MySQL في التعامل مع البيانات.

 

 

 

 

NoSQL database

NoSQL Structure model - key-value stores

 NoSQL اختصار لـNot-Only SQL  وهنا نتحدث علي ان اللـNoSQL هو العكس تماما للـRelational databases حيث لا يتم التعامل وتخزين البيانات بمبدأ العلاقات الرياضية اي الجدول والصفوف والأعمدة بل سيتم التعامل معها بطريقة Structured او طريقة هيكلية .. إذا ماذا اقصد؟

ستكون قاعدة البيانات علي هذا النحو (قبل ان تقرأ التالي تمعن في صورة اللـNoSQL database):
اولًا سيكون هناك عنصر اصلي Structure ثم اسفله عناصر معينة ونتفق معًأ ان لكل عنصر له key/رمز معين لأجل تعريف العنصر ولكل key هناك value او قيمة وهذه القيمة تحتوي علي اي شئ وهنا سوف يتم تخزيين البيانات الخاصة بك إذًأ في NoSQL لا نحتاج لعمل database schema بل فقط مجلد جذر Directory root ثم نضع فيه عناصرنا بعد العنصر الأصلي..

ونقوم بإستخدام اللـNoSQL في المشاريع الكبيرة التي يتم تخزيين الاف من البيانات في ثواني وايضًأ سحب الاف من البيانات فـ اعتمدت الشركات الكبيرة علي ان هذا النوع من العمل قد يكون اداء RDBMS معه غير مناسب وبالنسبة للـNoSQL فهناك العديد من الأنواع لها مثل key-value stores , doc database , wide-column stores , graph database .. وتدعم العديد من قواعد البيانات اللـNoSQL اشهرهم MongoDB ثم Cassandra وايضًأ HBase ..

 

استخدامات NoSQL

 

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

 

 

0
إعجاب
2381
مشاهدات
0
مشاركة
1
متابع

التعليقات (0)

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !