مقدمة عن قواعد بيانات PostgreSQL وتاريخ ظهورها


أكاديميّة حسوب

قواعد بيانات PostgreSQL هي عبارة عن نظام لإدارة قواعد البيانات العلائقية الغرضية اعتمادًا على مشروع بيركلي بوستغرس (POSTGRES)، الإصدار 4.2، الذي طُوِّر في قسم علوم الحاسوب في جامعة كاليفورنيا في مدينة بيركلي، حيث ابتكر بوستغرس (POSTGRES) العديد من المفاهيم المستخدَمة فقط في بعض أنظمة قواعد البيانات التجارية.

يُعَدّ PostgreSQL مفتوح المصدر، وهو منحدر من شيفرة بيركلي الأصلي، كما يدعم جزءًا كبيرًا من معيار SQL، ويقدِّم العديد من المميزات، وهي:

  • الاستعلامات المعقدة؛
  • المفاتيح الأجنبية؛
  • القوادح (triggers)؛
  • العروض القابلة للتعديل؛
  • سلامة العمليات؛
  • التحكم المتزامن متعدد النسخ.

ويمكن توسيعها من قِبل المستخدِم بعِدة طرق، منها إضافة أشياء جديدة، مثل:

  • أنواع بيانات؛
  • توابع؛
  • معاملات؛
  • توابع تجميع؛
  • عمليات فهرسة؛
  • لغات إجرائية.

حيث يمكن لأيّ شخص استخدام (PostgreSQL) وتعديلها لأيّ غرض سواءً كان خاصًا، أو تجاريًا، أو أكاديميًّا. وذلك وفقًا للترخيص الليبرالي.

لمحة موجزة من تاريخ PostgreSQL

لقد اشتُقّ نظام إدارة قواعد البيانات العلائقية الغرضية المعروف باسم (PostgreSQL) من حزمة بوستغرس التي كُتِبت في جامعة كاليفورنيا في بيركلي. والآن، وبعد مضي أكثر من عقدين على تطويرها، فهي تُعَد قاعدة البيانات الأكثر تطورًا على الإطلاق.

مشروع POSTGRES في بيركلي

كان مشروع بوستغرس بقيادة البروفيسور مايكل ستون بريكر (Michael Stonebraker)، وتحت رعاية وكالة المشاريع البحثية المتطوِّرة للدفاع (DARPA)، ومكتب بحث الجيش (ARO)، ومؤسَّسة العلوم الوطنية (NSF)، وبرنامج الإنكليزية لغةً ثانية (ESL)، وغيرها. حيث بدأ تنفيذ بوستغرس عام 1986، وقد مُثِّلت المفاهيم الأولية للنظام في ston86، كما ظهر تعريف النموذج الأولي للبيانات في rowe87. وقد وُصِف تصميم النظام في ذلك الوقت في ston87a، أمّا الأساس المنطقي وبنية مدير التخزين فقد فُصلت في ston87b، لتُصدِر بوستغرس منذ ذلك الحين عدة إصدارات رئيسية، حيث شُغِّل أول نظام ديمووير (demoware) في عام 1987، ليظهر في مؤتمر (ACM-SIGMOD) عام 1988. 

وقد وُصِف الإصدار الأول في ston90a، والذي أُطلِق لعدد قليل من المستخدمين الخارجيين في حزيران عام 1989. وردًا على نقد أول نظام ston1989، فقد أُعيد تصميم النظام ston90b، وإطلاق الإصدار الثاني في حزيران 1990 مع النظام الجديد؛ أمّا الإصدار الثالث فقد ظهر عام1991، وأضاف دعمًا لعدة مدراء تخزين، ولمُنفِّذ استعلام محسّن، ولإعادة كتابة النظام؛ لتُركِِّز الإصدارات اللاحقة حتى بوستغرس 95 (Postgres95) على قابلية النقل والموثوقية.

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

وفي النهاية، أخذت تقنيات معلومات الوسترا (Illustra) التي دُمِجت مؤخَّرًا مع Informix التي تملكها شركة IBM بأخذ الشيفرة وتسويقها، ليُصبح مشروع بوستغرس في عام 1992، مديرًا للبيانات الرئيسي لـ Sequoia 2000 scientific computing project.

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

Postgres 95

أضاف أندرو يو (Andrew Yu) وجولي تشين (Jolly Chen)، مُفسّر (SQL) إلى بوستغرس عام 1994، حيث أُطلِق إلى الويب باسم "بوستغرس 95"، ليجد طريقه في العالم خلَفًا لشيفرة بيركلي الأصلية .

اعتمدت شيفرة "بوستغرس 95" كليًّا على لغة البرمجة سي (C) التي نُشِرت من قِبل المعهد الوطني الأمريكي للمعايير (ANSI)، والتي قُلِِّصت إلى 25%. حيث كان هناك عدة تغييرات حسّنت من الأداء، وقابلية الصيانة. فقد كان الإصدار 1.0x أسرع من 30-50% على مقياس ويسكونسن بينتشمارك (Wisconsin Benchmark) بالموازنة مع بوستغرس 4.2. وبصرف النظر عن إصلاح الأخطاء، فقد كانت التحسينات التالية هي التحسينات الرئيسية :

  • استُبدِلت لغة الاستعلام (PostQUEL) بلغة (SQL) (التي تُنفَّذ في الخادم)، وسُميت مكتبة الواجهة libpq، بعد PostQUEL. كما لم تدعَم بعض الاستعلامات الجزئية حتى (PostgreSQL)، ولكن كان يمكن تقليدها في "بوستغرس 95" من خلال توابع (SQL) المُعَرّفة من قِبل المستخدِم، إلى جانب إعادة تنفيذ عملية إضافة توابع التجميع، إلى جانب إضافة دعم لعبارة الاستعلام (GROUP BY) .
  • زُوِّدت ببرنامج جديد (psql) من أجل استعلامات (sql) التفاعلية، حيث تستخدم قراءة الترخيص العام (GPL) الذي حلّ مكان برنامج الشاشة القديم.
  • دُعِمت مكتبة جديدة للواجهة الأمامية، وهي مكتبة (libpgtcl)، التي تعتمد على تقنية (TCL). حيث زُوِّد (pgtclsh) بأوامر (TCL)،وذلك لمقابلة برامج (TCL)مع خادم "بوستغرس 95".
  • أُصلِحت واجهة الكائنات الكبيرة، فقد كانت الطريقة الوحيدة لتخزين الأشياء الكبيرة هي الكائنات الكبيرة المعكوسة (حيث حُذِف نظام الملفات المعكوس).
  • أُزيل نظام مستوى النسخة (instance-level)، كانت القواعد لا تزال متوفرة مثل قواعد إعادة الكتابة.
  • وُزِّع برنامج تعليمي مختصر يقدم ميزات SQL العادية مع ميزات بوستغرس 95 في شيفرة المصدر.
  • استُخدِمَ الترخيص العام (GNU) بدلًا من توزيع برمجيات بيركلي (BSD) في البناء، حيث يمكن أن تُصرّف بوستغرس 95 باستخدام مجموعة مُصرّف ترخيص عام (GCC) غير مصحح (أُصلِحت محاذاة الأعداد العشُرية مضاعفة الدقّة).

PostgreSQL

اختير اسم جديد في عام 1996 وهو PostgreSQL، وذلك ليعكس العلاقة بين مشروع بوستغرس الأساسي، والاصدارات الحديثة المدمجة مع امكانيات (SQL)، حيث بدأ ترقيم الإصدارات من 6.0، وذلك كي تعود الأرقام إلى السلسلة الأصلية كما كان الحال في مشروع بيركلي. وأُشير إلى PostgreSQL باسم Postgres كاسم مستعار لسهولة اللفظ. كان التركيز خلال تطوير بوستغرس 95 على تحديد وفهم المشكلات الموجودة في شيفرة الخادم، بينما تحول التركيز في PostgreSQL إلى زيادة المميزات والقدرات على الرغم من استمرار العمل في جميع المجالات. يمكن العثور على مزيد من التفاصيل حول ما حدث في PostgreSQL في Appendix E.

الأعراف

استخدِمت الأعراف التالية في اختصار الأوامر:

  • الأقواس ([ ]) تشير إلى أجزاء اختيارية، واستخدمت اشارة الاستفهام (?) بدلًا منها في اختصار أمر TCI
  • الأقواس ({ }) و الخط العمودي (|) تشير إلى أنك يجب أن تختار أحد الاختيارات.
  • النقاط () تعني أنه من الممكن تكرار العنصر السابق.

وبينما كانت تزيد الوضوح، فقد سُبقت أوامر SQL ب <=، وسُبقت أوامر الصدفة بالرمز$ ، ومع ذلك فإنها لا تُرى.

المدير بشكل عام، هو الشخص الذي يقوم بتثبيت الخادم وتشغيله. والمستخدم يمكن أن يكون أي شخص يستخدم أو يريد أن يستخدم أي جزء من نظام PostgreSQL.

المزيد من المعلومات

هناك العديد من مصادر المعلومات العربية حول PostgreSQL وفرتها أكاديمية حسوب وموسوعة حسوب وهي:

  • قسم PostgreSQL في أكاديمية حسوب: يحوي القسم على الكثير من المقالات المفيدة النافعة حول مختلف المواضيع المتعلقة بقواعد بيانات PostgreSQL.
  • كتاب الدليل العملي إلى قواعد بيانات PostgreSQL: كتاب عملي بسيط يشرح قواعد بيانات PostgreSQL من الصفر بدءًا ويغطي أغلب حالات استعمال قواعد البيانات والأوامر فيها.
  • توثيق SQL في موسوعة حسوب: توثيق كامل شامل للغة SQL يحوي فيه أي ملاحظات أو تفاصيل متعلقة بقواعد بيانات PostgreSQL أهمها موضوع التوافيقة.
  •  ملاحظات للعاملين بلغة SQL: كتاب متقدم بعض الشيء يتحدث حول لغة SQL بأسلوب يتوقع من القارئ أن يكون عارفًا لأساسيات لغة SQL العامة التي يمكن استعمالها مع قواعد بيانات PostgreSQL. 

ترجمة -وبتصرف- لصفحات القسم Preface في موقع postgreSQL





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


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



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

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

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


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

تسجيل الدخول

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


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