2. مقدمة¶
2.1. ما قاعدة البيانات المكانية؟¶
PostGIS قاعدة بيانات مكانية. وكذلك Oracle Spatial و SQL Server (2008 وما بعده) قواعد بيانات مكانية. ولكن ما معنى ذلك؟ ما الذي يجعل قاعدة بيانات عادية قاعدة بيانات مكانية؟
الإجابة المختصرة هي...
تخزّن قواعد البيانات المكانية الكائنات المكانية وتعالجها كأي كائن آخر في قاعدة البيانات.
يستعرض ما يلي باختصار تطوّر قواعد البيانات المكانية، ثم يراجع ثلاثة جوانب تربط البيانات المكانية بقاعدة البيانات، وهي: أنواع البيانات، والفهارس، والدوال.
تشير أنواع البيانات المكانية إلى أشكال مثل النقطة والخط والمضلع؛
تُستخدم الفهرسة المكانية متعددة الأبعاد لمعالجة العمليات المكانية بكفاءة؛
تُستخدم الدوال المكانية، المصاغة بلغة SQL، للاستعلام عن الخصائص والعلاقات المكانية.
تشكّل أنواع البيانات المكانية والفهارس والدوال مجتمعةً بنية مرنة لتحسين الأداء والتحليل.
2.1.1. في البداية¶
في تطبيقات GIS القديمة من الجيل الأول، تُخزَّن جميع البيانات المكانية في ملفات مسطحة، ويلزم برنامج GIS خاص لتفسير البيانات ومعالجتها. صُمّمت أنظمة الإدارة هذه من الجيل الأول لتلبية احتياجات المستخدمين حين تكون جميع البيانات المطلوبة داخل النطاق المؤسسي للمستخدم. وهي أنظمة مغلقة المصدر ومكتفية بذاتها، بُنيت خصيصًا للتعامل مع البيانات المكانية.
تخزّن الأنظمة المكانية من الجيل الثاني بعض البيانات في قواعد بيانات علائقية (عادةً الأجزاء "الوصفية" أو غير المكانية)، لكنها لا تزال تفتقر إلى المرونة التي يتيحها التكامل المباشر.
وُلدت قواعد البيانات المكانية الحقيقية عندما بدأ الناس يعاملون المعالم المكانية ككائنات أساسية من الدرجة الأولى في قاعدة البيانات.
تدمج قواعد البيانات المكانية البيانات المكانية دمجًا كاملًا مع قاعدة بيانات علائقية. فيتحوّل توجّه النظام من التمحور حول GIS إلى التمحور حول قاعدة البيانات.
ملاحظة
يمكن استخدام نظام إدارة قواعد البيانات المكانية في تطبيقات خارج العالم الجغرافي أيضًا. فقواعد البيانات المكانية تُستخدم لإدارة بيانات تتعلق بتشريح جسم الإنسان، والدوائر المتكاملة واسعة النطاق، والبنى الجزيئية، والمجالات الكهرومغناطيسية، وغيرها.
2.1.2. أنواع البيانات المكانية¶
تحتوي قاعدة البيانات العادية على النصوص والأعداد والتواريخ. وتضيف قاعدة البيانات المكانية أنواعًا (مكانية) إضافية لتمثيل المعالم الجغرافية. تجرّد أنواع البيانات المكانية هذه البنى المكانية مثل الحدود والبُعد وتغلّفها. ومن نواحٍ عديدة، يمكن فهم أنواع البيانات المكانية ببساطة على أنها أشكال.
تُنظَّم أنواع البيانات المكانية في تسلسل هرمي للأنواع. يرث كل نوع فرعي البنية (السمات) والسلوك (الدوال) من نوعه الأعلى.
2.1.3. الفهارس المكانية والمستطيلات المحيطة¶
توفّر قاعدة البيانات العادية فهارس تتيح الوصول السريع والعشوائي إلى مجموعات جزئية من البيانات. وتتم فهرسة الأنواع القياسية (الأعداد والنصوص والتواريخ) عادةً باستخدام فهارس B-tree.
تقسّم شجرة B-tree البيانات باستخدام ترتيب الفرز الطبيعي لوضعها في شجرة هرمية. ومن السهل تحديد ترتيب الفرز الطبيعي للأعداد والنصوص والتواريخ، إذ إن كل قيمة إما أصغر من أي قيمة أخرى أو أكبر منها أو مساوية لها.
لكن لأن المضلعات قد تتداخل، وقد يحتوي بعضها بعضًا، وتنتشر في فضاء ثنائي الأبعاد (أو أكثر)، فلا يمكن استخدام B-tree لفهرستها بكفاءة. لذلك توفّر قواعد البيانات المكانية الحقيقية "فهرسًا مكانيًا" يجيب بدلًا من ذلك عن السؤال "ما الكائنات الموجودة داخل هذا المستطيل المحيط تحديدًا؟".
المستطيل المحيط هو أصغر مستطيل، موازٍ لمحاور الإحداثيات، قادر على احتواء معلم معيّن.
تُستخدم المستطيلات المحيطة لأن الإجابة عن السؤال "هل A داخل B؟" مكلفة حسابيًا جدًا في حالة المضلعات، لكنها سريعة جدًا في حالة المستطيلات. وحتى أعقد المضلعات والخطوط يمكن تمثيلها بمستطيل محيط بسيط.
يجب أن تعمل الفهارس بسرعة كي تكون مفيدة. لذا بدلًا من تقديم نتائج دقيقة كما تفعل أشجار B-tree، تقدّم الفهارس المكانية نتائج تقريبية. فالسؤال "ما الخطوط الموجودة داخل هذا المضلع؟" سيفسّره الفهرس المكاني بدلًا من ذلك على أنه "ما الخطوط التي تقع مستطيلاتها المحيطة داخل المستطيل المحيط بهذا المضلع؟"
تتباين الفهارس المكانية الفعلية التي تطبّقها قواعد البيانات المختلفة تباينًا كبيرًا. أشهر التطبيقات هي R-Tree و Quadtree (المستخدمة في PostGIS)، لكن هناك أيضًا فهارس قائمة على الشبكة و فهارس GeoHash مطبّقة في قواعد بيانات مكانية أخرى.
2.1.4. الدوال المكانية¶
لمعالجة البيانات أثناء الاستعلام، توفّر قاعدة البيانات العادية دوال مثل ضمّ النصوص، وإجراء عمليات التجزئة (hash) على النصوص، وإجراء العمليات الرياضية على الأعداد، واستخراج المعلومات من التواريخ.
توفّر قاعدة البيانات المكانية مجموعة كاملة من الدوال لتحليل المكوّنات الهندسية، وتحديد العلاقات المكانية، ومعالجة الأشكال الهندسية. وتمثّل هذه الدوال المكانية حجر الأساس لأي مشروع مكاني.
يمكن تصنيف معظم الدوال المكانية ضمن إحدى الفئات الخمس التالية:
التحويل: دوال تحوّل بين الأشكال الهندسية وصيغ البيانات الخارجية.
الإدارة: دوال تدير المعلومات المتعلقة بالجداول المكانية وإدارة PostGIS.
الاسترجاع: دوال تسترجع خصائص الشكل الهندسي وقياساته.
المقارنة: دوال تقارن بين شكلين هندسيين من حيث علاقتهما المكانية.
التوليد: دوال تولّد أشكالًا هندسية جديدة من أشكال أخرى.
قائمة الدوال الممكنة كبيرة جدًا، لكن مجموعة مشتركة من الدوال معرّفة في مواصفة OGC SFSQL، ويطبّقها PostGIS (إلى جانب دوال مفيدة إضافية).
2.2. ما PostGIS؟¶
يحوّل PostGIS نظام إدارة قواعد البيانات PostgreSQL إلى قاعدة بيانات مكانية بإضافة دعم الميزات الثلاث: الأنواع المكانية، والفهارس المكانية، والدوال المكانية. ولأنه مبني على PostgreSQL، يرث PostGIS تلقائيًا ميزات "مؤسسية" مهمة، إضافة إلى المعايير المفتوحة في التطبيق.
2.2.1. ولكن ما PostgreSQL؟¶
PostgreSQL نظام قوي لإدارة قواعد البيانات العلائقية (RDBMS). يُصدَر بترخيص من نمط BSD، ولذلك فهو برنامج حر ومفتوح المصدر. وكغيره من البرامج مفتوحة المصدر، لا تتحكم في PostgreSQL أي شركة بمفردها، بل يطوّره مجتمع عالمي من المطوّرين والشركات.
صُمّم PostgreSQL منذ البداية مع مراعاة توسيع الأنواع، أي القدرة على إضافة أنواع بيانات ودوال وفهارس جديدة أثناء التشغيل. ولهذا يمكن لفريق تطوير مستقل أن يطوّر امتداد PostGIS، مع بقائه مندمجًا بإحكام شديد في نواة قاعدة بيانات PostgreSQL.
2.2.1.1. لماذا نختار PostgreSQL؟¶
من الأسئلة الشائعة لدى المطّلعين على قواعد البيانات مفتوحة المصدر: "لماذا لم يُبنَ PostGIS على MySQL؟".
يتميّز PostgreSQL بما يلي:
موثوقية مثبتة وسلامة المعاملات افتراضيًا (ACID)
دعم دقيق لمعايير SQL (SQL92 كاملًا)
قابلية توسيع الأنواع والدوال عبر وحدات قابلة للإضافة
نموذج تطوير موجّه نحو المجتمع
لا حدّ لأحجام الأعمدة (صفوف قابلة لـ "TOAST") لدعم كائنات GIS الكبيرة
بنية فهرس عامة (GiST) تتيح فهرس R-Tree
سهولة إضافة دوال مخصّصة
يوفّر PostgreSQL بمجموع هذه المزايا مسار تطوير سهلًا جدًا لإضافة أنواع مكانية جديدة. وفي عالم البرمجيات المغلقة، لم يكن يتيح مثل هذا التوسيع السهل سوى Illustra (المعروف الآن باسم Informix Universal Server). وليس هذا من قبيل المصادفة، فـ Illustra إعادة صياغة مغلقة المصدر لقاعدة شيفرة PostgreSQL الأصلية من ثمانينيات القرن الماضي.
لأن مسار التطوير لإضافة أنواع إلى PostgreSQL كان مباشرًا جدًا، كان من المنطقي البدء منه. وعندما أصدر MySQL أنواعًا مكانية أساسية في الإصدار 4.1، ألقى فريق PostGIS نظرة على شيفرتهم، وعزّزت هذه التجربة القرار الأصلي باستخدام PostgreSQL.
لأن الكائنات المكانية في MySQL اضطُرّ مطوّروها إلى بنائها بالتحايل فوق النوع النصي كحالة خاصة، فقد انتشرت شيفرة MySQL المتعلقة بها في قاعدة الشيفرة بأكملها. استغرق تطوير PostGIS 0.1 أقل من شهر، أما إنجاز "MyGIS" 0.1 فكان سيستغرق وقتًا أطول بكثير، وربما لم يكن ليرى النور أبدًا.
2.2.2. لماذا لا نستخدم الملفات؟¶
كان Shapefile (وصيغ أخرى مثل Esri File Geodatabase و GeoPackage) طريقة قياسية لتخزين البيانات المكانية والتعامل معها منذ كتابة أول برامج GIS. إلا أن لهذه الملفات "المسطحة" العيوب التالية:
تتطلب الملفات برامج خاصة لقراءتها والكتابة فيها. تُعدّ SQL طبقة تجريد للوصول العشوائي إلى البيانات وتحليلها. ودون هذا التجريد، ستحتاج إلى كتابة كل شيفرة الوصول والتحليل بنفسك.
قد يتسبب المستخدمون المتزامنون في تلف البيانات وبطء الأداء. صحيح أنه يمكن كتابة شيفرة إضافية لضمان ألا تُتلف عمليات الكتابة المتعددة على الملف نفسه البيانات، لكنك حين تحل هذه المشكلة وتحل معها مشكلة الأداء المرتبطة بها، ستكون قد كتبت الجزء الأكبر من نظام قاعدة بيانات. فلماذا لا تستخدم قاعدة بيانات قياسية ببساطة؟
الأسئلة المعقّدة تتطلب برامج معقّدة للإجابة عنها. فالأسئلة المعقّدة والمثيرة للاهتمام (الربط المكاني، والتجميع، وغيرها) التي يمكن التعبير عنها بسطر واحد من SQL في قاعدة البيانات، تتطلب مئات الأسطر من الشيفرة المتخصصة للإجابة عنها عند البرمجة على الملفات.
يُنشئ معظم مستخدمي PostGIS أنظمة يُتوقّع أن تصل فيها تطبيقات متعددة إلى البيانات، لذا فإن وجود طريقة وصول قياسية عبر SQL يبسّط النشر والتطوير. ويعمل بعض المستخدمين على مجموعات بيانات كبيرة؛ ففي الملفات قد تُجزّأ إلى ملفات متعددة، أما في قاعدة البيانات فيمكن تخزينها في جدول واحد كبير.
خلاصة القول، إن الجمع بين دعم المستخدمين المتعددين، والاستعلامات المعقّدة الآنية، والأداء الجيد على مجموعات البيانات الكبيرة، هو ما يميّز قواعد البيانات المكانية عن الأنظمة القائمة على الملفات.
2.2.3. لمحة تاريخية موجزة عن PostGIS¶
في مايو 2001، أصدرت شركة Refractions Research الإصدار الأول من PostGIS. تضمّن PostGIS 0.1 الكائنات والفهارس وعددًا قليلًا من الدوال. وكانت النتيجة قاعدة بيانات مناسبة للتخزين والاسترجاع، لا للتحليل.
مع ازدياد عدد الدوال، اتضحت الحاجة إلى مبدأ تنظيمي. فقدّمت مواصفة "Simple Features for SQL" (SFSQL) الصادرة عن Open Geospatial Consortium هذه البنية، مع إرشادات لتسمية الدوال ومتطلباتها.
مع دعم PostGIS للتحليل البسيط والربط المكاني، أصبح Mapserver أول تطبيق خارجي يوفّر عرضًا مرئيًا للبيانات المخزّنة في قاعدة البيانات.
على مدى السنوات القليلة التالية ازداد عدد دوال PostGIS، لكن قدراته ظلّت محدودة. فكثير من أهم الدوال (مثل ST_Intersects() و ST_Buffer() و ST_Union()) كانت برمجتها صعبة جدًا، وكانت كتابتها من الصفر تعني سنوات من العمل.
لحسن الحظ ظهر مشروع ثانٍ هو "Geometry Engine, Open Source" أو GEOS. توفّر مكتبة GEOS الخوارزميات اللازمة لتطبيق مواصفة SFSQL. وبربط GEOS، وفّر PostGIS دعمًا كاملًا لـ SFSQL بحلول الإصدار 0.8.
مع نمو سعة بيانات PostGIS، برزت مشكلة أخرى: تبيّن أن التمثيل المستخدم لتخزين الأشكال الهندسية غير فعّال نسبيًا. فبالنسبة للكائنات الصغيرة مثل النقاط والخطوط القصيرة، كانت البيانات الوصفية في التمثيل تشكّل عبئًا إضافيًا يصل إلى 300%. ولأسباب تتعلق بالأداء، كان لا بد من "تخسيس" هذا التمثيل. وبتقليص ترويسة البيانات الوصفية والأبعاد المطلوبة، انخفض العبء الإضافي كثيرًا. وفي PostGIS 1.0 أصبح هذا التمثيل الجديد الأسرع والأخف هو الافتراضي.
تواصل الإصدارات الحديثة من PostGIS إضافة الميزات وتحسينات الأداء، إلى جانب دعم الميزات الجديدة في نواة نظام PostgreSQL.
2.2.4. من يستخدم PostGIS؟¶
2.2.4.1. Institut Geographique National، فرنسا¶
IGN هي الهيئة الوطنية للمساحة ورسم الخرائط في فرنسا، وتستخدم PostGIS لتخزين الخريطة الطبوغرافية عالية الدقة للبلاد، "BDUni". تضم BDUni أكثر من 100 مليون معلم، ويتولى صيانتها فريق يضم أكثر من 100 موظف ميداني يتحققون من الملاحظات ويضيفون بيانات خرائطية جديدة إلى قاعدة البيانات يوميًا. ويستخدم نظام IGN نظام المعاملات في قاعدة البيانات لضمان الاتساق أثناء عمليات التحديث، و نظام الاستعداد الدافئ (warm standby) للحفاظ على استمرارية التشغيل في حال تعطّل النظام.
2.2.4.2. RedFin¶
RedFin وكالة عقارية تقدّم خدمة عبر الويب لاستكشاف العقارات وتقدير قيمها. بُني نظامهم في الأصل على MySQL، لكنهم وجدوا أن الانتقال إلى PostgreSQL و PostGIS حقّق فوائد هائلة في الأداء والموثوقية.
2.2.5. ما التطبيقات التي تدعم PostGIS؟¶
أصبح PostGIS قاعدة بيانات مكانية واسعة الانتشار، وازداد كذلك عدد برامج الأطراف الثالثة التي تدعم تخزين البيانات واسترجاعها باستخدامه. وتشمل البرامج التي تدعم PostGIS برمجيات مفتوحة المصدر ومغلقة المصدر على أنظمة الخوادم وأجهزة سطح المكتب.
يعرض الجدول التالي قائمة ببعض البرمجيات التي تستفيد من PostGIS:
مفتوحة/مجانية |
مغلقة/تجارية/خدمات مدفوعة |
|---|---|
|
|