ما هي PostgreSQL ؟

في عام 1986م جلس البرسوفور في جامعة كلفونيا في بيركلي و الخبير المشهور في تقنية قواعد البيانات مايكل ستونبركر Michael Stonebraker ليبني نظام قواعد بيانات جديد و محسن ، وبالرغم أنه كان مستمتع بنجاح مشروعه السابق في قواعد البيانات المسمى INGRES ، إلا أنه قرر أن يطبق رؤيته الجديدة في مشروع جديد كليا ، بدلا من البناء على المشروع السابق بسبب تعقيداته ، مما أنتج في نهاية مشروع Postgres . و خلال ثمان السنوات التالية ، أخذ شهرة مشروع Postgres بالنمو خصوصا بين مجتمع الباحثين ، حتى وصلت تلك الشهرة حد الإغراق ، مما أخذ كل وقت الباحثين في مشروع Postgres الذين كان عليهم مواصلة بحوثهم في قواعد البيانات ، لذا كانت تلك الشهرة هي القاتلة لمشروع Postgres الذي انتهى رسميا مع الإصدارة 4.2 ، و لحسن الحظ أن رخصة هذه المشروع هي من ترخيص BSD المفتوح المصدر ، مما أمن استمرارية هذا المشروع ، حيث قام مجموعة من المطورين بتبني هذا المشروع عن طريق الإنترنت ، و في عام 1994م أضاف أندرو يو و جوللي تشن محلل SQL ( ليستبدل نظام لغة QUEL السابق ) ، و أطلقا المشروع تحت اسم Postgres95 ، و مع حلول عام 1996م أصبح من البديهي أن اسم Postgres95 لا يمثل الرؤية المستقبلية للمشروع ، فلذا تم إطلاق قاعدة البيانات باسم PostgreSQL 6.0 بواسطة مجتمع المطورين ، ليعكس أصل المشروع و الخصائص الجديدة التي اضيفت إليه .

و اليوم أصبحت PostgreSQL واحدة من أشهر المشاريع المفتوحة المصدر على الإنترنت ، وهي تشغل أعدد ضخمة من التطبيقات و المواقع و حتى أجزاء من البنية التحتية للإنترنت ، وفي الحقيقة فإن بعض المنظمات الضخمة و المشهورة في العالم تستعمل PostgreSQL بشكل متكرر ، و على سبيل المثال شركة Afilias Ltd ( المناحة لنطاق .info ) ، و شركة أبل للحواسيب ، و BASF و شركة سيسكو للأنظمة ، و منظمة الصحة العالمية WHO ، و الأكثر أهمية هو عدد الشركات التي تساهم في تطوير المشروع و تقدم الدعم له ، مثل شركة Fujitsu و شركة Pwrvasive Software Inc و شركة رد هات ، و شركة SRA International Inc ، و الجدير بالملاحظة على رغم من تلك الشركات تساهم في مشروع PostgreSQL إلا أنها لا تملكه و لا تحدد مسار تطويره ، حيث أنه يتطور بواسطة متطوعين من داخل مجتمع المصادر الحرة ، لذا ماذا ترى كل تلك الشركات في مشروع PostgreSQL ؟ و الأهم لماذا يجب أن تكون PostgreSQL الأولى في قائمة خياراتك عندما تريد أن تبدأ في مشروع يتطلب قواعد بيانات ؟

أهم مميزات PostgreSQL

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

سلامة البيانات

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

القابلية للتمدد بشكل عالي

في أغلب أنظمة قواعد البيانات التقليدية ، يتم التحكم بالعمليات المتزامنة بواسطة سلسلة مختلفة من آليات الإقفال ، و الكثير من هذه الأنظمة سريعة جدا في الاستعلامات وضع القراءة-فقط ، أو عندما يكون عدد المستخدمين محدود ، و لكن تغرق في حالة مقابلة أعدد ضخمة من المستخدمين الذين يقرؤون و يكتبون في نفس الوقت ، لقد تفادت PostgreSQL هذه المشكلة باستعمال نظام يعرف بالتحكم المتزامن المتعدد الإصدارات Multiversion Concurrency Control (MVCC) ، بحيث أن كل عملية ترى صورة ( أو نسخة ) فقط من البيانات التي تعمل عليها ، مما يعزلها عن التغيرات التي تحصلت في البيانات الأصلية بواسطة المستخدمين الآخرون.

اكتمال الخصائص

على الرغم من أنه لا يوجد برنامج مكتمل ، إلا أن PostgreSQL تدعم الكائنات الأساسية لقواعد البيانات مثل القيود و المفتاح الأجنبي و القوادح Trigger و العروض views منذ سنوات ، و هي كذلك تدعم خصائص غير منتشر بشكل كبير مثل التجميعات المخصصة custom aggregates و النطاقات domains و العوامل المخصصة custom operators و القواعد rules ، و إضافة إلى ذلك فإن دعم الاستعلامات الفرعية في PostgreSQL هو الأول في مجاله مما يسمح بالاستعلامات الفرعية في فقرات SELECT و FROM و WHERE في أي استعلام ، وفوق ذلك كله ، فإن PostgreSQL تدعم أيضا الكثير من لغات البرمجة مثل C و SQL و PL/pgSQL و PL/Perl و PL/PHP و PL/Tcl و PL/Ruby ، هذا الغنى من الخصائص سمح ل PostgreSQL بالانتقال إلى إضافة خصائص متقدمة جدا مثل الاسترجاع نقطة-في-الوقت point-in-time recovery (PITR) ، و نقاط الحفظ ( العمليات المتفرعة ) و فراغات الجدول tablespaces . لا يهم ماذا تريد أن تفعل ، فPostgreSQL لديها طريقة لفعله ، و إذا لم تكن كذلك فيمكنك على الأرجح أن تضيف هذه الميزة بنفسك.

الامتداد

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

دعم المنصات

دائما تسعى PostgreSQL بخطى كبيرة لتعمل قد الإمكان على مختلف المنصات ، لقد تم نقلها إلى أكثر من دزينة من منصات اليونكس و اللينكس من الأنظمة المشهورة مثل FreeBSD و رد هات لينكس ، و حتى المنصات المغمورة مثل QNX و BeOS ، و كذلك حتى منصات الألعاب مثل بلاستشن 2 من سوني ، و مكعب الألعاب ننتوندو . و بالرغم كل هذه المرونة إلا أنه يعاب على PostgreSQL في الماضي على أنها تحتاج إلى مجموعة أدوات محاكية لبيئة اللينكس Cygwin حتى تعمل على الويندوز ، و لكن مع الإصدارة الثامنة أصبحت تدعم منصات الويندوز الجديدة بشكل أصلي بدون الحاجة إلى محاكيات ، ولقد اكتسبت هذه الإصدارة شهرة واسعة بسبب دعمها الأصلي للأنظمة الويندوز .

خيارات أمن مرنة

تدعم PostgreSQL نطاق واسع من بروتوكولات الأمن ، و الكثير من خيارات التكوين ، و كذلك خصائص داخل القاعدة البيانات لتساعدك على التحكم بمن يستطيع الوصول إلى البيانات و كيفية ذلك في قاعدة البيانات ، إن أمن PostgreSQL يمكن أن يقسم إلى صنفين عامين : * وسائل توثيق قياسية ، مثلا يمكن استخدام Kerberos و Pluggable AuthenticationModule (PAM) و ident و MD5 encryption لتحكم بوصول المستخدمين إلى قاعدة البيانات ، و هذا يمكن أن يعد لكل مستخدم ، و لكل قاعدة بيانات ، و لكل جهاز موصول أو توليفة من هذه الخيارات حسب متطلبات بيئتك ، و حتى يمكنك أن تطلب أن يتم الإتصال بواسطة طبقة المقابس الآمنة SSL. * الصلاحيات الداخلية ، باستخدام أوامر SQL القياسية مثل GRANT و REVOKE لتسمح بالتحكم في الكائنات في داخل قاعدة البيانات ، بحيث يمكن أن ينشئ مستخدمين بصلاحية الوصول إلى كل الجداول أو إلى جداول محدودة أو بصلاحيات القراءة فقط ، و مع جمع هذا مع الخصائص المتقدمة ( مثل الدوال و العروض و المخططات ) تستطيع أن تجعل مستخدمين مختلفين يريا تمثيلين مختلفين تماما لنفس قاعدة البيانات .

ترخيص خالي من المتاعب

تم ترخيص PostgreSQL تحت رخصة BSD ، والتي تعني أنه يمكن أن تستخدم في التطبيقات المفتوحة المصدر و التجارية مجانا ، مما جعلها تمتلك المناعة ضد الإصدارات المتعددة ( لاختلاف التراخيص ) مهما كانت احتياجات ، يمكنك أن تجد الترخيص كاملا هنا http://www.postgresql.org/about/licence

وسائل دعم متعددة

من المميزات الفريدة في PostgreSQL بالمقارنة مع حلول قواعد البيانات الأخرى هي نطاق الواسع من خدمات الدعم ، و أولا و الأهم هو أن PostgreSQL تملك مجتمع من المستخدمين مفتوح و نشط ، سواءا كنت تبحث عن مساعدة في القوائم البريدية (http://www.postgresql.org/community/lists/) أو تدردش مع مستخدمين في IRC في قناة #postgresql ؛ فإن مساعدة الخبراء متوفرة ، في الحقيقة يمكنك في الغالب أن تجد المطورين الأساسيين يجيبوا على الأسئلة في قائمة البريدية المخصصة للمبتدئين ، كذلك يوفر مجتمع PostgreSQL نطاق واسع من الخدمات لمستخدميه ، مثل التوثيق المتفاعل (http://www.postgresql.org/docs/) و أرشيف قابل للبحث للقوائم البريدية (http://archives.postgresql.org/) و تسهيلات استضافة للمشاريع المتعلقة ب PostgreSQL (http://projects.postgresql.org/ ) . بالطبع PostgreSQL تملك أكثر من مجتمع متذبذب يقف خلفها ، فهناك أيضا دزينة من الشركات الصغيرة التي تخصصت في تقدم الدعم لـ PostgreSQL مثل Command Prompt Inc. و credativ GmbH و PostgreSQL Inc. ، كذلك يوجد أيضا شركات كبيرة تقدم دعم عالمي لـ PostgreSQL مثل Fujitsu و Pervasive SoftwareInc و SRA International Inc. ، هذا الطيف الواسع من الشركات التي تقف خلف PostgreSQL يعني مهما كانت احتياجاتك فإن ستجد حل يناسب تلك الاحتياجات ، و لن تحتاج أبد إلى القلق بخصوص وجود مزود واحد محتكر لحلول قاعدة البيانات.

مستخدمون من عالم الواقع

سواءا كان المشروع شخصي أو تطبيق ذو مهمة خطيرة عالمية ، فإن هناك فرص لأن تكون PostgreSQL تناسب احتياجاتك ، سوف نسلط الضوء الآن على بعض التطبيقات التي استخدامات هذه التقنية : شركة Afilias Inc. إن شركة Afilias Inc. (http://www.afilias.info) هي إحدى تلك الشركات التي لم يسمع بها أحد ولكن الجميع يعتمد عليها ، تقدم Afilias حلول تسجيل أسماء النطاقات ، و أنظمتها تساعد على تشغيل أكثر من نصف دزينة من نطاقات رموز الدول ، و بالإضافة إلى نطاقات .info و .org ، إن استخدام Afilias لقاعدة PostgreSQL يعتبر أمر ثوري في صناعة تسجيل النطاقات ، فعندما طرح موضوع استبدال نطاق .org ، تم تقديم 9 حلول من أصل 11 تعتمد على قواعد بيانات احتكارية و مكلفة ، و كان الحلان الآخرين هو الاعتماد على قاعدة PostgreSQL (انظر http://www.icann.org/tlds/org/questions-to-applicants-13.htm). و اليوم تعمل Afilias بنجاح تحت ظروف حمل عالي لعدة سنوات و منها تعامل مع أكثر من 1000 مدخلة في الثانية ، والناس في شركة Afilias مرتاحين جدا لهذا الوضع ، حتى أنهم أصبحوا من عشاق هذه القاعدة و عمليات مجتمعها لدرجة توظيف عدد من مطوري هذه القاعدة و منهم المطور الأساسي Jan Wieck . وكذلك قاموا بتمويل مشروع تكرار Slony-I (http://slony.info) و الذي يضيف التكرار المتتالي و عابر الإصدارات إلى قاعدة PostgreSQL ، و مع كل اصدارة تزداد قوة العلاقة بين Afilias و PostgreSQL.

الخدمة الوطنية للطقس

إن إدارة الأحوال الجوية و البحرية التابعة لخدمة الطقس الوطنية الأمريكية (http://weather.gov) ، هي إحدى مزودي الخدمات الأخرى التي يعتمد عليها الناس كل يوم ، وهي مسئولة عن تقديم معلومات الأحوال الجوية و تنبأت المناخ والتحذيرات للولايات المتحدة الأمريكية و المناطق المحيطة بها لكل المؤسسات الخاصة والعامة حول العالم ، و إحدى المناطق الأساسية التي كان ل PostgreSQL تأثير هو النظام الجديد لتحضير التنبؤات تفاعليا IFPS ، حيث يقوم هذا النظام بتكامل البيانات من ردارات الرصد و محطات الأحوال الجوية لبناء نموذج مفصل محلي لتوقعات الطقس ، و تتوقع هذه الإدارة عند تشغيل هذا النظام بشكل كامل أن يكون هناك أكثر من 150 مخدم قواعد بيانات PostgreSQL في الخدمة .

موقع WhitePages.com

بدأ موقع WhitePages.com كموقع هاوي على أيام سكرة الدوت كوم في عام 1996 م ، و اليوم أصبح من أنشط الموقع على الإنترنت ؛ حيث يتعامل مع أكثر من مليونين نقرة في اليوم لموقع WhitePages.com ، و أكثر من 8 ملايين على الشبكة التي يدرها 411.com و superpages.com و قسم الصفحات البيضاء في MSN . و بالرغم من أن WhitePages.com كان يستخدم MySQL و Oracle معا ، إلا انه عندما رغب في جعل أدلته تحت سقف بيت واحد اختار قاعدة البيانات PostgreSQL ، لقد كانت قدرة PostgreSQL على تحميل و فهرسة البيانات بمعدل عالي جدا ، هو المفتاح لاختيارها ؛ لأن WhitePages.com كان يحتاج إلى أن يضم مجموعة بيانات ضخمة من مصادر مختلفة ، و بعد ذلك نمت قاعدة بيانات WhitePages.com حتى أصبح أكثر من 375جيجا بايت بجداول تجاوز عدد صفوفها 250 مليون صف ، لقد أصحبت PostgreSQL جزء كبير من شبكة WhitePages.com .

الخاتمة

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

المصدر: Beginning PHP and PostgreSQL 8: From Novice to Professional

Comments