24.1.4. قاعدة البيانات

24.1.4.1. التصدير إلى PostgreSQL

تصدّر طبقة متجهية إلى قاعدة بيانات PostgreSQL، وتنشئ علاقة (relation) جديدة. إذا وُجدت علاقة بالاسم نفسه، فيمكن حذفها قبل إنشاء العلاقة الجديدة. يجب قبل ذلك إنشاء اتصال بين QGIS وقاعدة بيانات PostgreSQL (انظر مثلًا إنشاء اتصال مخزَّن).

المعاملات

Label

اﻷسم

النوع

وصف

الطبقة المراد استيرادها

INPUT

[vector: any]

الطبقة المتجهية المراد إضافتها إلى قاعدة البيانات

قاعدة البيانات (اسم الاتصال)

DATABASE

[string]

اسم اتصال قاعدة البيانات (وليس اسم قاعدة البيانات). ستظهر الاتصالات الموجودة في القائمة المنسدلة.

المخطط (اسم المخطط)

اختياري

SCHEMA

[string]

القيمة الافتراضية: 'public'

اسم المخطط (schema) الذي ستُخزَّن فيه البيانات. يمكن أن يكون مخططًا جديدًا أو موجودًا مسبقًا.

الجدول المراد الاستيراد إليه (اتركه فارغًا لاستخدام اسم الطبقة)

اختياري

TABLENAME

[string]

القيمة الافتراضية: ''

يحدد اسم الجدول للملف المتجهي المستورد. إذا لم يُضَف شيء، فسيُستخدم اسم الطبقة.

حقل المفتاح الأساسي

اختياري

PRIMARY_KEY

[tablefield: any]

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

عمود الشكل الهندسي

GEOMETRY_COLUMN

[string]

القيمة الافتراضية: 'geom'

يحدد اسم عمود الشكل الهندسي في جدول PostgreSQL الجديد. تُخزَّن معلومات الأشكال الهندسية للمعالم في هذا العمود.

الترميز

اختياري

ENCODING

[string]

القيمة الافتراضية: 'UTF-8'

يحدد ترميز طبقة المخرجات

الكتابة فوق الموجود

OVERWRITE

[boolean]

القيمة الافتراضية: True

إذا كان الجدول المحدد موجودًا، فإن تعيين هذا الخيار إلى True يضمن حذفه وإنشاء جدول جديد قبل إضافة المعالم. إذا كان هذا الخيار False وكان الجدول موجودًا، فستُطلق الخوارزمية استثناءً ("relation already exists").

إنشاء فهرس مكاني

CREATEINDEX

[boolean]

القيمة الافتراضية: True

يحدد ما إذا كان سيُنشأ فهرس مكاني أم لا

تحويل أسماء الحقول إلى أحرف صغيرة

LOWERCASE_NAMES

[boolean]

القيمة الافتراضية: True

يحوّل أسماء حقول طبقة الإدخال المتجهية إلى أحرف صغيرة

إزالة قيد الطول على الحقول النصية

DROP_STRING_LENGTH

[boolean]

القيمة الافتراضية: False

هل يجب إزالة قيود الطول على الحقول النصية أم لا

إنشاء أشكال هندسية أحادية الجزء بدلًا من متعددة الأجزاء

FORCE_SINGLEPART

[boolean]

القيمة الافتراضية: False

هل يجب أن تكون معالم طبقة المخرجات أحادية الجزء بدلًا من متعددة الأجزاء. تُحفَظ معلومات الأشكال الهندسية الموجودة افتراضيًا.

المخرجات

لا تُنتج الخوارزمية أي مخرجات.

شيفرة Python

معرّف الخوارزمية: native:importintopostgis

import processing
processing.run("algorithm_id", {parameter_dictionary})

يظهر معرّف الخوارزمية عند تمرير المؤشر فوق الخوارزمية في صندوق أدوات المعالجة. يوفّر قاموس المعاملات أسماء المعاملات (NAME) وقيمها. انظر استخدام خوارزميات المعالجة من وحدة التحكم لمعرفة تفاصيل تشغيل خوارزميات المعالجة من وحدة تحكم Python.

24.1.4.2. التصدير إلى SpatiaLite

تصدّر طبقة متجهية إلى قاعدة بيانات SpatiaLite. يجب قبل ذلك إنشاء اتصال بين QGIS وقاعدة بيانات SpatiaLite (انظر مثلًا طبقات SpatiaLite).

المعاملات

Label

اﻷسم

النوع

وصف

الطبقة المراد استيرادها

INPUT

[vector: any]

الطبقة المتجهية المراد إضافتها إلى قاعدة البيانات

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

DATABASE

[vector: any]

ملف قاعدة بيانات SQLite/SpatiaLite المراد الاتصال به

الجدول المراد الاستيراد إليه (اتركه فارغًا لاستخدام اسم الطبقة)

اختياري

TABLENAME

[string]

القيمة الافتراضية: ''

يحدد اسم الجدول للملف المتجهي المستورد. إذا لم يُحدَّد شيء، فسيُستخدم اسم الطبقة.

حقل المفتاح الأساسي

اختياري

PRIMARY_KEY

[tablefield: any]

استخدام حقل من طبقة الإدخال المتجهية مفتاحًا أساسيًا

عمود الشكل الهندسي

GEOMETRY_COLUMN

[string]

القيمة الافتراضية: 'geom'

يحدد اسم عمود الشكل الهندسي في جدول SpatiaLite الجديد. تُخزَّن معلومات الأشكال الهندسية للمعالم في هذا العمود.

الترميز

اختياري

ENCODING

[string]

القيمة الافتراضية: 'UTF-8'

يحدد ترميز طبقة المخرجات

الكتابة فوق الموجود

OVERWRITE

[boolean]

القيمة الافتراضية: True

إذا كان الجدول المحدد موجودًا، فإن تعيين هذا الخيار إلى True يضمن حذفه وإنشاء جدول جديد قبل إضافة معالم الطبقة. إذا كان هذا الخيار False وكان الجدول موجودًا، فستُطلق الخوارزمية استثناءً ("table already exists").

إنشاء فهرس مكاني

CREATEINDEX

[boolean]

القيمة الافتراضية: True

يحدد ما إذا كان سيُنشأ فهرس مكاني أم لا

تحويل أسماء الحقول إلى أحرف صغيرة

LOWERCASE_NAMES

[boolean]

القيمة الافتراضية: True

تحويل أسماء حقول طبقة الإدخال المتجهية إلى أحرف صغيرة

إزالة قيد الطول على الحقول النصية

DROP_STRING_LENGTH

[boolean]

القيمة الافتراضية: False

هل يجب إزالة قيود الطول على الحقول النصية أم لا

إنشاء أشكال هندسية أحادية الجزء بدلًا من متعددة الأجزاء

FORCE_SINGLEPART

[boolean]

القيمة الافتراضية: False

هل يجب أن تكون معالم طبقة المخرجات أحادية الجزء بدلًا من متعددة الأجزاء. تُحفَظ معلومات الأشكال الهندسية الموجودة افتراضيًا.

المخرجات

لا تُنتج الخوارزمية أي مخرجات.

شيفرة Python

معرّف الخوارزمية: native:importintospatialite

import processing
processing.run("algorithm_id", {parameter_dictionary})

يظهر معرّف الخوارزمية عند تمرير المؤشر فوق الخوارزمية في صندوق أدوات المعالجة. يوفّر قاموس المعاملات أسماء المعاملات (NAME) وقيمها. انظر استخدام خوارزميات المعالجة من وحدة التحكم لمعرفة تفاصيل تشغيل خوارزميات المعالجة من وحدة تحكم Python.

24.1.4.3. تحزيم الطبقات

تضيف طبقات إلى ملف GeoPackage.

إذا كان ملف GeoPackage موجودًا وكان الخيار Overwrite existing GeoPackage محددًا، فستتم الكتابة فوقه (يُحذف ويُعاد إنشاؤه). وإذا كان ملف GeoPackage موجودًا والخيار Overwrite existing GeoPackage غير محدد، فستُلحق الطبقة به.

المعاملات

Label

اﻷسم

النوع

وصف

طبقات الإدخال

LAYERS

[vector: any] [list]

الطبقات (المتجهية) المراد استيرادها إلى ملف GeoPackage. الطبقات الشبكية غير مدعومة. إذا أُضيفت طبقة شبكية، فسيُطلق الاستثناء QgsProcessingException.

الكتابة فوق ملف GeoPackage الموجود

OVERWRITE

[boolean]

القيمة الافتراضية: False

إذا كان ملف GeoPackage المحدد موجودًا، فإن تعيين هذا الخيار إلى True يضمن حذفه وإنشاء ملف جديد قبل إضافة الطبقات. وإذا عُيّن إلى False، فستُلحق الطبقات.

حفظ أنماط الطبقات في ملف GeoPackage

SAVE_STYLES

[boolean]

القيمة الافتراضية: True

حفظ أنماط الطبقات.

حفظ المعالم المحددة فقط

SELECTED_FEATURES_ONLY

[boolean]

القيمة الافتراضية: False

إذا كانت في الطبقة معالم محددة، فإن تعيين هذا الخيار إلى True يؤدي إلى حفظ المعالم المحددة فقط. أما الطبقات التي لا تحديد فيها فستُحفظ جميع معالمها.

تصدير الطبقات المرتبطة وفق العلاقات المعرّفة في المشروع

EXPORT_RELATED_LAYERS

[boolean]

القيمة الافتراضية: False

إذا كانت لطبقة الإدخال علاقات معيّنة في المشروع، فإن تعيين هذا الخيار إلى True يؤدي إلى تصدير طبقاتها المرتبطة أيضًا. وإذا كانت في الطبقة معالم محددة، فستُصدَّر المعالم المرتبطة بها فقط، ما لم تكن الطبقة المرتبطة أيضًا إحدى طبقات الإدخال.

ملف GeoPackage الوجهة

OUTPUT

[file]

القيمة الافتراضية: [Save to temporary file]

حدد مكان تخزين ملف GeoPackage. أحد الخيارات:

  • الحفظ في ملف مؤقت

  • الحفظ في ملف…

المخرجات

Label

اﻷسم

النوع

وصف

الطبقات داخل الحزمة الجديدة

OUTPUT_LAYERS

[string] [list]

قائمة الطبقات المضافة إلى ملف GeoPackage.

شيفرة Python

معرّف الخوارزمية: native:package

import processing
processing.run("algorithm_id", {parameter_dictionary})

يظهر معرّف الخوارزمية عند تمرير المؤشر فوق الخوارزمية في صندوق أدوات المعالجة. يوفّر قاموس المعاملات أسماء المعاملات (NAME) وقيمها. انظر استخدام خوارزميات المعالجة من وحدة التحكم لمعرفة تفاصيل تشغيل خوارزميات المعالجة من وحدة تحكم Python.

24.1.4.4. تنفيذ SQL وتحميله في PostgreSQL

تتيح تنفيذ استعلام قاعدة بيانات SQL على قاعدة بيانات PostgreSQL متصلة بـ QGIS وتحميل النتيجة. لن تنشئ الخوارزمية طبقة جديدة: فهي مصممة لتشغيل الاستعلامات على الطبقة نفسها.

مثال

  1. تعيين جميع قيم حقل موجود إلى قيمة ثابتة. ستكون سلسلة استعلام SQL:

    UPDATE your_table SET field_to_update=20;
    

    في المثال أعلاه، ستُعيَّن جميع قيم الحقل field_to_update في الجدول your_table إلى 20.

  2. إنشاء عمود جديد area وحساب مساحة كل معلم باستخدام دالة PostGIS ST_AREA.

    -- Create the new column "area" on the table your_table"
    ALTER TABLE your_table ADD COLUMN area double precision;
    -- Update the "area" column and calculate the area of each feature:
    UPDATE your_table SET area=ST_AREA(geom);
    

المعاملات

Label

اﻷسم

النوع

وصف

قاعدة البيانات (اسم الاتصال)

DATABASE

[string]

اتصال قاعدة البيانات (وليس اسم قاعدة البيانات). ستظهر الاتصالات الموجودة في القائمة المنسدلة.

استعلام SQL

SQL

[string]

يحدد استعلام SQL، مثلًا 'UPDATE my_table SET field=10'.

اسم حقل المعرّف الفريد

ID_FIELD

[string]

القيمة الافتراضية: id

يعيّن حقل المفتاح الأساسي (عمود في جدول النتيجة)

اسم حقل الشكل الهندسي

اختياري

GEOMETRY_FIELD

[string]

القيمة الافتراضية: 'geom'

اسم عمود الشكل الهندسي (عمود في جدول النتيجة)

المخرجات

Label

اﻷسم

النوع

وصف

طبقة SQL

OUTPUT

[vector: any]

الطبقة المتجهية الناتجة المراد تحميلها في QGIS.

شيفرة Python

معرّف الخوارزمية: qgis:postgisexecuteandloadsql

import processing
processing.run("algorithm_id", {parameter_dictionary})

يظهر معرّف الخوارزمية عند تمرير المؤشر فوق الخوارزمية في صندوق أدوات المعالجة. يوفّر قاموس المعاملات أسماء المعاملات (NAME) وقيمها. انظر استخدام خوارزميات المعالجة من وحدة التحكم لمعرفة تفاصيل تشغيل خوارزميات المعالجة من وحدة تحكم Python.

24.1.4.5. تنفيذ SQL في PostgreSQL

تتيح تنفيذ استعلام قاعدة بيانات SQL على قاعدة بيانات PostgreSQL متصلة بـ QGIS. لن تنشئ الخوارزمية طبقة جديدة: فهي مصممة لتشغيل الاستعلامات على الطبقة نفسها.

مثال

  1. تعيين جميع قيم حقل موجود إلى قيمة ثابتة. ستكون سلسلة استعلام SQL:

    UPDATE your_table SET field_to_update=20;
    

    في المثال أعلاه، ستُعيَّن جميع قيم الحقل field_to_update في الجدول your_table إلى 20.

  2. إنشاء عمود جديد area وحساب مساحة كل معلم باستخدام دالة PostGIS ST_AREA.

    -- Create the new column "area" on the table your_table"
    ALTER TABLE your_table ADD COLUMN area double precision;
    -- Update the "area" column and calculate the area of each feature:
    UPDATE your_table SET area=ST_AREA(geom);
    

المعاملات

Label

اﻷسم

النوع

وصف

قاعدة البيانات (اسم الاتصال)

DATABASE

[string]

اتصال قاعدة البيانات (وليس اسم قاعدة البيانات). ستظهر الاتصالات الموجودة في القائمة المنسدلة.

استعلام SQL

SQL

[string]

يحدد استعلام SQL، مثلًا 'UPDATE my_table SET field=10'.

المخرجات

لا تُنشأ أي مخرجات. يُنفَّذ استعلام SQL في مكانه.

شيفرة Python

معرّف الخوارزمية: native:postgisexecutesql

import processing
processing.run("algorithm_id", {parameter_dictionary})

يظهر معرّف الخوارزمية عند تمرير المؤشر فوق الخوارزمية في صندوق أدوات المعالجة. يوفّر قاموس المعاملات أسماء المعاملات (NAME) وقيمها. انظر استخدام خوارزميات المعالجة من وحدة التحكم لمعرفة تفاصيل تشغيل خوارزميات المعالجة من وحدة تحكم Python.

24.1.4.6. تنفيذ SQL في SpatiaLite

تتيح تنفيذ استعلام قاعدة بيانات SQL على قاعدة بيانات SpatiaLite. تُحدَّد قاعدة البيانات بواسطة طبقة إدخال أو ملف. لن تنشئ الخوارزمية طبقة جديدة: فهي مصممة لتشغيل الاستعلامات على الطبقة نفسها.

شاهد أيضا

تنفيذ SQL في PostgreSQL, تنفيذ SQL

لبعض أمثلة استعلامات SQL انظر أمثلة استعلامات PostgreSQL.

المعاملات

Label

اﻷسم

النوع

وصف

طبقة قاعدة البيانات (أو ملف)

DATABASE

[file]

ملف قاعدة بيانات SQLite/SpatiaLite المراد الاتصال به

استعلام SQL

SQL

[string]

القيمة الافتراضية: ''

يحدد استعلام SQL، مثلًا 'UPDATE my_table SET field=10'.

المخرجات

لا تُنشأ أي مخرجات. يُنفَّذ استعلام SQL في مكانه.

شيفرة Python

معرّف الخوارزمية: native:spatialiteexecutesql

import processing
processing.run("algorithm_id", {parameter_dictionary})

يظهر معرّف الخوارزمية عند تمرير المؤشر فوق الخوارزمية في صندوق أدوات المعالجة. يوفّر قاموس المعاملات أسماء المعاملات (NAME) وقيمها. انظر استخدام خوارزميات المعالجة من وحدة التحكم لمعرفة تفاصيل تشغيل خوارزميات المعالجة من وحدة تحكم Python.

24.1.4.7. تنفيذ SQL في SpatiaLite (قاعدة بيانات مسجّلة)

تتيح تنفيذ استعلام قاعدة بيانات SQL على قاعدة بيانات SpatiaLite متصلة بـ QGIS. لن تنشئ الخوارزمية طبقة جديدة: فهي مصممة لتشغيل الاستعلامات على الطبقة نفسها.

شاهد أيضا

تنفيذ SQL في PostgreSQL, تنفيذ SQL

لبعض أمثلة استعلامات SQL انظر أمثلة استعلامات PostgreSQL.

المعاملات

Label

اﻷسم

النوع

وصف

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

DATABASE

[enumeration]

القيمة الافتراضية: غير معيّنة

اختر قاعدة بيانات SQLite/SpatiaLite متصلة بالجلسة الحالية

استعلام SQL

SQL

[string]

القيمة الافتراضية: ''

يحدد استعلام SQL، مثلًا 'UPDATE my_table SET field=10'.

المخرجات

لا تُنشأ أي مخرجات. يُنفَّذ استعلام SQL في مكانه.

شيفرة Python

معرّف الخوارزمية: native:spatialiteexecutesqlregistered

import processing
processing.run("algorithm_id", {parameter_dictionary})

يظهر معرّف الخوارزمية عند تمرير المؤشر فوق الخوارزمية في صندوق أدوات المعالجة. يوفّر قاموس المعاملات أسماء المعاملات (NAME) وقيمها. انظر استخدام خوارزميات المعالجة من وحدة التحكم لمعرفة تفاصيل تشغيل خوارزميات المعالجة من وحدة تحكم Python.