سلاسل تعليمية المرجع الشامل إلى تعلم PostgreSQL


جميل بيلوني

PostgreSQL – تُعرَف أيضا بـ Postgres – هي نظام مفتوح المصدر لإدارة قواعد البيانات. تُستخدم لتخزين البيانات مهما كان حجمها، وتتميز بكفائتها وأدائها العالي وغناها بالميزات والوظائف. تُعد PostgreSQL أفضل أنظمة قواعد البيانات مفتوحة المصدر وأكثرها شعبية على مستوى العالم.

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

تاريخ PostgreSQL

ظهرت PostgreSQL سنة 1982، وكانت نتيجة لمشروع Ingres في جامعة كاليفورنيا. ثمّ قرر قائد فريق العمل في مشروع Ingres إنشاء نسخة تجارية منها، وبدأ مشروع post-Ingres (أي ما بعد Ingres)، لهذا هناك من يسميها Postgres.

انكبّ العاملون في مشروع post-Ingres على تطويرها وإضافة الكثير من المزايا المهمة إليها. وقد خرج الإصدار الأول منها سنة 1989، ثم توالت الإصدارات وتزايدت شعبيتها وعدد مستخدميها باطراد. عرفت سنة 1994 حدثا مهما لمستخدمي Postgres، وهو أنّها أصبحت تُوزَّع وفق رخصة MIT الحرة والمجانية، وهذا أدى إلى إقبال المزيد من المطورين للمساهمة في تطوير Postgres والتعديل عليها بحرِّية.

أعيدت تسمية Postgres سنة 1996 ليصبح PostgreSQL للدلالة على دعمها للغة الاستعلامات البنيوية SQL.

فيما تُستخدَم PostgreSQL؟

تُستخدم PostgreSQL في العديد من المجالات، سواء في القطاع الأكاديمي أو التجاري. يبين المبيان التالي أكبر عشر مجالات تُستخدم فيها PostgreSQL:

postgresql_industry.png

مصدر الصورة

يوضح المبيان تنوع استخدامات PostgreSQL في مختلف القطاعات، خصوصا في مجالي البرمجيات وتقنيات المعلومات، علاوة على القطاعات الصحية والمالية والتعليم والتسويق. وهذا ناتج عن طبيعة PostgreSQL، فهي مفتوحة المصدر، ما يجعلها مرنة وقابلة للتطوير والتوسيع والتخصيص. إضافة إلى ذلك فهي آمنة وموثوقة تضاهي أنظمة قواعد البيانات المدفوعة، ما يجعلها مثالية للشركات والمشاريع في مختلف المجالات. يُقدّر عدد الشركات التي تستخدم PostgreSQL بحوالي 48500 شركة [1]. ومن أشهر هذه الشركات Apple وDebian و Sun Microsystem و Skype وغيرها.

لماذا PostgreSQL؟

توفر PostgreSQL العديد من الميزات المهمة والمفيدة التي تجعلها خيارًا مثاليا للمطورين وأصحاب المشاريع. وهذه بعضها:

  1. مفتوحة المصدر ومجانية: هذا يعنى أنّه يمكنك استخدامها بدون أيّ تكاليف أو رسوم، كما يمكنك التعديل عليها بحرّية.

  2. قابلة للتخصيص: أحد مزايا البرامج مفتوحة المصدر أنّها تعطيك حرية كبيرة وتحكمًا عميقًا في البرامج. و PostgreSQL ليست استثناء، إذ تتمتع بمرونة كبيرة، فهي تتيح مثلًا تعريف أنواع بيانات جديدة وتعريف دوال مُخصّصة. كما أنّها متكاملة مع العديد من لغات البرمجة الأخرى.

  3. تعدد أنواع البيانات: تدعم PostgreSQL الكثير من أنواع البيانات، سواء العددية أو النصية أو المنطقية. علاوة على البيانات المركبة، مثل المصفوفات والمجالات والتواريخ والبيانات الهندسية و تنسيقات الملفات، بما فيها JSON و XML و CSV.

  4. التوافق مع مواصفات SQL: تتوافق PostgreSQL مع معظم مواصفات SQL، إلا أنّها لا تلتزم بها حرفيا، فمطورو PostgreSQL يخالفون أحيانا مواصفات SQL إن كانت تتعارض مع الميزات التقليدية التي تتيحها PostgreSQL، أو إن وجدوا حلولًا أفضل.

  5. دعم جميع اللغات: تدعم PostgreSQL جميع اللغات العالمية، بما فيها اللغة العربية.

  6. متعدد المنصات: PostgreSQL متعددة المنصات، ويمكن أن تستخدمها على جميع أنظمة التشغيل المشهورة، بما فيها نظام ويندوز ويونيكس وماك و Solaris و BSD.

  7. البحث والتنقيب: تدعم PostgreSQL تشكيلة كبيرة من التعابير النمطية (regex)، ما يجعلها مثالية للبحث والتنقيب في البيانات وتحليلها.

  8. الشعبية: PostgreSQL هي أكثر قواعد البيانات مفتوحة المصدر شعبية على صعيد العالم، والثانية من بين جميع أنظمة قواعد البيانات كما يشير آخر استطلاع لموقع stackoverflow:

    Stack-Overflow-Developer-Survey-2020.png

    أكثر قواعد البيانات شعبية على صعيد العالم.
  9. محبوبة من المطورين: في الاستطلاع نفسه، حلت PostgreSQL في المرتبة الثانية في قائمة أحب أنظمة قواعد البيانات إلى المطورين.

Stack-Overflow.png

أكثر قواعد البيانات المحبوبة

  1. دعم أطر العمل: تدعم PostgreSQL أكثر من 80 إطار عمل، لذا لن تضطر على الأرجح لتعلم إطار عمل جديد، فمهما كان إطار العمل الذي تعمل به، فعلى الغالب أنّها تدعمه.
  2. التزامن: نظام PostgreSQL متزامن، إذ أنّه يمنح لكل عملية نسخة أو عينة من قاعدة البيانات، وهذا يتيح القيام بعدة عمليات على قاعدة البيانات دون أن تتداخل فيما بينها.

هل تريد أن تتعلم PostgreSQL بسرعة وسهولة لاستخدامها في تطبيقاتك وبرامجك؟ سوف نستعرض فيما بقي من هذا الدليل مجموعة متنوعة من المقالات والدروس العربية المتكاملة التي تجمع بين الجانبين النظري والعملي.

سلسلة "دليل postgreSQL العملي"

لا يخفى على أحد أنّ هناك ضعفا في المكتبة العربية في كل المجالات العلمية والتقنية. خصوصا في مجال البرمجة والتطوير، فهي مجالات متغيرة باستمرار، فسنة واحدة في مجال البرمجة كمثل عشر سنوات في المجالات الأخرى، ففي كل عام تظهر تقنيات وإصدارات جديدة. لأجل هذا أطلقت أكاديمية حسوب مشروعًا طموحا لتوفير العديد من المواد التعليمية الممتازة في مختلف المجالات التقنية، سواء مقالات أو دروسًا أو كتبًا. من ثمار هذا المشروع إعداد أحد أفضل المواد التعليمية العملية المتاحة لتعليم PostgreSQL، المبني على سلسلة مقالات Postgres Guide.

يأخذ هذا الدليل بيدك في أمثلة عملية ومتنوعة تغطي أساسيات SQL وأساسيات إدارة قواعد بيانات PostgreSQL، وتمر على مزايا مهمة في PostgreSQL تزيد من فاعلية الاستعلامات ووضوح عبارتها، ويصل هذا الدليل إلى مواضيع متقدمة في إدارة قواعد البيانات كالنسخ الاحتياطي وتتبع استخدام الذاكرة، وبذلك يتميز بأنه مناسب للمبتدئ والمتوسط ويضع قدمك على سكة المستوى المتقدم في قواعد بيانات PostgreSQL.

فما يميزه عن غيره، فهو أننا اتبعنا في بداية العمل على هذا الدليل قاعدة باريتو 80/20، حيث حرصنا على تغطية 20% من مواضيع Postgres التي تُستخدَم في 80% من الحالات في الواقع والمجال العملي، إذ حاولنا الابتعاد عن التفاصيل غير العملية أو قليلة الاستخدام، أي أن هذا الدليل لا يتطرق إلى شرح أو استخدام الأدوات المتقدمة والتي قد يندر استخدام بعضها (مذكورة في هذا القسم من التوثيق) ولا يتطرق أيضًا إلى كيفية تطوير Postgres بكتابة شيفرات برمجية خاصة (مذكورة في هذا القسم من التوثيق)، فلم نرد تعليمك شيئًا لن تستخدمه إلا في حالات قليلة (تكون قد نسيتها إلى حين استعمالها ;-) ).

وفقًا لذلك، حاولنا جاهدين أن يكون هذا الدليل دليلًا عمليًا ومرجعًا سريعًا للمبرمج، يتعرف فيه على الجزء الأكثر أهمية مما قد يجهله عن قواعد بيانات Postgres ويختبر فيه في ذات الوقت معرفته بالمزايا المتنوعة لقواعد البيانات تلك. باختصار، صُمم ليكون رحلة ممتعة فعالة مليئة بالأمثلة المفيدة الواضحة في قواعد بيانات Postgres.

يغطي هذا الدليل ما يلي:

  • لمحة عن الأسس النظرية لقواعد البيانات
  • تغطية فعالة لأساسيات استخدام لغة SQL عمليًّا
  • تغطية شاملة لما تتميز به Postgres عن SQL الصرفة (أي لغة قواعد البيانات العامة)
  • أساسيات إدارة قواعد بيانات Postgres (إدارة الذاكرة، الأداء، النسخ الاحتياطي وغيرها)
  • أهم التعليمات اللازم معرفتها في صَدَفة psql (واجهة سطر الأوامر الخاصة بPostgres)

في حال أردت أولًا التعمق في SQL، فننصحك بالبدء بسلسلة «المرجع المتقدم إلى لغة SQL» أولًا فمعلوم أن لغة SQL هي اللغة الأم لقواعد بيانات SQL (ومنها Postgres)، فلن تجد هذا الدليل يتعمق كثيرًا في تعليمات SQL لأننا شرحناها بالتفصيل مسبقًا في تلك السلسلة. ننصحك بعد الانتهاء من هذا الدليل الانتقال إلى كتاب «بوستجريسكل كتاب الوصفات» إن أردت التوسع أكثر في PostgreSQL، فتلك خارطة الطريق التي ننصحك بها لتعلم لغة SQL وقواعد بيانات PostgreSQL من الأساسيات وحتى الاحتراف.

سوف نستعرض سلسلة مقالات هذا الدليل، وإن كنت تريد تحميله جملة واحدة على هيئة كتب رقمي، فيمكنك ذلك من هنا.

1. نظرة عامة على Postgres وتاريخها

1.png

تستعرض هذه المقالة مجموعة من المعارف التاريخية عن Postgres، وعن قواعد البيانات عموما منذ بداية ظهورها وحتى يومنا هذا. مع استعراض بعض مميزات Postgres وخصائصها ونماذج عملها.

2. تثبيت Postgres والتعرف على أساسيات إدارتها لقواعد البيانات

2.png

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

3. أساسيات استخدام صَدَفة psql

3.png

صدفة psql هي برنامج الواجهة التفاعلية للاتصال بـ Postgres، سوف نستعرض في هذه المقالة بعض أهم الأوامر المٌستخدمة في صدفة psql لاستعراض قواعد البيانات والجداول والمستخدمين وخصائصهم وتحرير الاستعلامات في محرر النصوص وغيرها.

4. استخدام أساسيات SQL في Postgres

4.png

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

5. مزايا متقدمة في Postgres

5.png

تستعرض هذه المقالة العرض View وتعابير الجداول الشائعة CTE التي تساهم في تحسين طريقة كتابة الاستعلامات، وذلك بجعلها أقصر وأسهل قراءةً، وتبين كيفية استخدام دوال النوافذ Window Functions التي تسمح بإجراء عمليات تجميعية على مجموعة جزئية من الأسطر، وتتطرق إلى الفهارس وأهميتها في تسريع البحث ضمن البيانات.

6. أنواع بيانات خاصة في قواعد بيانات Postgres

6.png

تتحدث هذه المقالة عن عدة أنواع بيانات تتميز بها Postgres، وهي المصفوفات Arrays والنوع Hstore والنوع JSONB، كما تتطرق إلى الأنواع التعدادية ENUM لتحديد قيم مخصصة في أعمدة الجداول.

7. إدارة النسخ الاحتياطي في قواعد بيانات Postgres

7.png

تتحدث هذه المقالة عن كيفية أخذ نسخة احتياطية من قاعدة البيانات، ثم استعادتها. كما تشرح الأمر ‎\copy‎ وكيفية استخدامه لتحديد نمط البيانات في النسخة الاحتياطية.

8. أساسيات إدارة الذاكرة في قواعد بيانات Postgres

8.png

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

9. كيفية إدارة الأداء في قواعد بيانات Postgres

9.png

تشرح هذه المقالة طريقة تتبع أداء الاستعلامات في Postgres، وذلك لمعرفة الزمن المتوقع والحقيقي للاستعلام. ثمّ تبين كيفية عمل قيود على استخدام الفهارس، وتتطرق إلى موضوع ذاكرة التخزين المؤقتة Cache في Postgres.

10. أوامر متقدمة في صدفة psql

10.png

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

دروس تطبيقية

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

1. فيديو - تثبيت وإعداد قاعدة بيانات PostgreSQL

PostgreSQL.png.9093b6cae4c4e4e9f39e6cb61aaac614.png

يشرح هذا الفيديو التعليمي طريقة تثبيت وإعداد خادم PostgreSQL على نظام أوبنتو 18.04. ثمّ يتطرق إلى كيفية إعداد كلمة مرور للمستخدم root؛ وإنشاء قاعدة بيانات جديدة ومستخدم جديد لديه صلاحيات كاملة.

2. كيف تثبت PostgreSQL وتستخدمه على Ubuntu 14.04

postgresql-ubuntu.png.03201b9651bb33edaf0893c71726d795.png

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

3. كيفية استخدام PostgreSQL مع تطبيق Django على خادم يعمل بأوبنتو 16.04

5a68c59c3ab11_27-2(2).png.6d84190940247b9bf936115535282783.png

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

4. كيفية استخدام PostgreSQL مع تطبيق Django على خادم يعمل بدوبيان 8

16-2.png.e0a6addd576b25fa3cad6cf772e35a19.png

ستتعلم في هذا الدليل كيفية تثبيت وتهيئة PostgreSQL لاستخدامها مع تطبيقات Django على خادم يعمل بدوبيان 8، وسنثبّت الحزم اللازمة وننشئ اعتماديات قاعدة البيانات للتطبيق، ثم نبدأ مشروع Django جديد ونجهّزه ليستخدم هذه اﻹعدادات.

5. كيفيّة حماية PostgreSQL من الهجمات المُؤتمتة (Automated Attacks)

25-2.png.9c34280a208d4c36a3764eab08f2199c.png

سنلقي في هذا الدّرس نظرة على كيفيّة تقليل خطر الوصول غير المُصرّح في حال تفعيل الاتّصالات البعيدة (remote connections). هذا ضروري لصد الهجمات المُؤتمتة التي تُصمَّمُ للبحث عن الأخطاء الشّائعة بغية النفاد منها واستغلالها.

6. كيف تستخدم تقنية بحث النصوص الكاملة Full-Text Search في PostgreSQL على خادم أوبنتو 16.04

18.png.aa5cde7c1160ea273b5776387dcc369d.png

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

7. شرح التكرار في نظام قواعد البيانات PostgreSQL على توزيعة أوبنتو

13-2.png.2183be6b8cbe84c29edcd46e98e33fc5.png

ستتعلم في هذا الدليل كيفية إعداد تكرار من نوع (رئيسي-Master/ثانوي-Slave)، وهي عملية مزامنة بين قاعدتي بيانات من خلال النسخ من قاعدة بيانات على خادم (رئيسي) إلى قاعدة بيانات أخرى في خادم آخر (ثانوي). سوف ننفذ هذه العملية على خادم يعمل بتوزيعة أوبنتو 16.04.

8. كيف تنقل مجلد البيانات في PostgreSQL إلى مسار مختلف في خادم أوبنتو 16.04

20-2.png.8731c2500de28b29a2454837b1fa062b.png

ستتعلم في هذا الدليل كيفية نقل مجلد البيانات في نظام PostgreSQL إلى مكان جديد في حال كنت تريد إضافة مساحة جديدة أو ترغب في تحسين الأداء، أو الاستفادة من مزايا التخزين الأخرى التي توفرها أنظمة مصفوفات الأقراص المستقلة RAID، أو عُقد التخزين الشبكية “Network Block Storages”، أو غيرها من الأجهزة وأنظمة التخزين.

خاتمة

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

لا تنس كذلك الاشتراك في قناة حسوب على اليوتيوب ومشاهدة عشرات الفيديوهات التعليمية في كل المجالات التقنية.

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





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن