المقدمة
أنظمة إدارة قواعد البيانات العلاقية هي مكون رئيسي في العديد من مواقع الويب والتطبيقات. توفر طريقة منظمة لتخزين وتنظيم والوصول إلى المعلومات.
PostgreSQL، أو Postgres، هو نظام إدارة قواعد بيانات علاقية يوفر تنفيذاً للغة الاستعلام SQL. إنه متوافق مع المعايير وله العديد من الميزات المتقدمة مثل المعاملات الموثوقة والتنافسية دون قفل القراءة.
يوضح هذا الدليل كيفية تثبيت Postgres على خادم Ubuntu 22.04. كما يقدم بعض التعليمات لإدارة قاعدة البيانات بشكل عام.
المتطلبات الأساسية
لمتابعة هذا البرنامج التعليمي، ستحتاج إلى خادم Ubuntu 22.04 واحد تم تكوينه باتباع دليلنا إعداد الخادم الأولي لـ Ubuntu 22.04. بعد إكمال هذا البرنامج التعليمي الأساسي المطلوب، يجب أن يحتوي خادمك على مستخدم غير مسؤول بصلاحيات sudo وجدار ناري أساسي.
الخطوة 1 — تثبيت PostgreSQL
مستودعات أوبونتو الافتراضية تحتوي على حزم PostgreSQL، لذا يمكنك تثبيتها باستخدام نظام التعبئة apt
.
إذا لم تقم بذلك مؤخرًا، قم بتحديث فهرس الحزم المحلي للخادم:
ثم، قم بتثبيت حزمة PostgreSQL بالإضافة إلى حزمة -contrib
التي تضيف بعض الأدوات الإضافية والوظائف:
تأكد من تشغيل الخادم باستخدام الأمر systemctl start
:
الآن بعد تثبيت البرنامج وتشغيله، يمكننا الانتقال إلى كيفية عمله وكيف يمكن أن يكون مختلفًا عن أنظمة إدارة قواعد البيانات العلاقية الأخرى التي قد تكون قد استخدمتها.
الخطوة 2 — استخدام أدوار PostgreSQL وقواعد البيانات
بشكل افتراضي، يستخدم Postgres مفهوم يُسمى الأدوار للتعامل مع المصادقة والتفويض. هذه الأدوار، في بعض الأحيان، مشابهة للحسابات النمطية في نظام Unix، ولكن Postgres لا يميز بين المستخدمين والمجموعات وبدلاً من ذلك يفضل مصطلح “الدور” الأكثر مرونة.
عند التثبيت، يتم إعداد Postgres لاستخدام المصادقة النظيرية، مما يعني أنه يرتبط دور Postgres بحساب نظام Unix/Linux مطابق. إذا كان دور موجودًا داخل Postgres، يمكن لاسم مستخدم Unix/Linux بنفس الاسم تسجيل الدخول كذلك.
إجراء التثبيت أنشأ حساب مستخدم يسمى postgres الذي يرتبط بدور Postgres الافتراضي. لاستخدام Postgres، يمكنك تسجيل الدخول إلى هذا الحساب.
هناك بعض الطرق لاستخدام هذا الحساب للوصول إلى Postgres.
التحول إلى حساب postgres
التبديل إلى الحساب postgres على خادمك عبر الكتابة:
يمكنك الآن الوصول إلى موجه PostgreSQL مباشرة عن طريق الكتابة:
من هنا يمكنك التفاعل مع نظام إدارة قواعد البيانات حسب الحاجة.
اخرج من موجه PostgreSQL عبر الكتابة:
سيعيد هذا إلى موجه أوامر مستخدم Linux postgres.
الوصول إلى موجه Postgres دون التبديل بين الحسابات
يمكنك أيضًا تشغيل الأمر الذي تريده باستخدام حساب postgres مباشرةً مع sudo
.
على سبيل المثال، في المثال الأخير، تم تعليمك بالوصول إلى سطر الأوامر الخاص بـ Postgres عن طريق التبديل أولاً إلى مستخدم postgres ثم تشغيل psql
لفتح سطر الأوامر الخاص بـ Postgres. يمكنك القيام بذلك في خطوة واحدة عن طريق تشغيل الأمر الفردي psql
كمستخدم postgres باستخدام sudo
، مثل هذا:
سيقوم هذا بتسجيل الدخول مباشرةً إلى Postgres دون وجود وسيط bash
بينهما.
مرة أخرى، يمكنك الخروج من الجلسة التفاعلية لـ Postgres عن طريق كتابة:
العديد من حالات الاستخدام تتطلب أكثر من دور Postgres. تابع القراءة لمعرفة كيفية تكوين هذه.
الخطوة 3 — إنشاء دور جديد
حاليًا، لديك دور postgres مكون في قاعدة البيانات. يمكنك إنشاء أدوار جديدة من سطر الأوامر باستخدام أمر createuser
. ستطلبك العلامة التفاعلية --interactive
اسم الدور الجديد وستسأل أيضًا ما إذا كان يجب أن يكون لديه صلاحيات مستخدم فائق.
إذا كنت مسجلاً الدخول كحساب postgres، يمكنك إنشاء مستخدم جديد عن طريق كتابة:
إذا كنت تفضل استخدام sudo
لكل أمر بدون التبديل من حسابك العادي، اكتب:
سيطلب النص منك بعض الخيارات واستنادًا إلى إجاباتك، سيقوم بتنفيذ الأوامر الصحيحة لـ Postgres لإنشاء مستخدم وفقًا لمواصفاتك.
OutputEnter name of role to add: sammy
Shall the new role be a superuser? (y/n) y
يمكنك الحصول على مزيد من التحكم عن طريق تمرير بعض العلامات الإضافية. تحقق من الخيارات من خلال النظر إلى صفحة الـ man
لأمر الـ createuser
:
تمتلك تثبيت Postgres الخاص بك الآن مستخدمًا جديدًا، لكن لم تقم بإضافة قواعد بيانات بعد. تصف القسم التالي هذه العملية.
الخطوة 4 — إنشاء قاعدة بيانات جديدة
الافتراض الآخر الذي يقوم نظام المصادقة في Postgres به افتراضيًا هو أنه بالنسبة لأي دور يتم استخدامه لتسجيل الدخول، سيكون له قاعدة بيانات بنفس الاسم التي يمكنه الوصول إليها.
هذا يعني أنه إذا كان المستخدم الذي أنشأته في القسم السابق يُدعى sammy، فسيحاول هذا الدور الاتصال بقاعدة بيانات تُسمى أيضًا “sammy” افتراضيًا. يمكنك إنشاء قاعدة البيانات المناسبة باستخدام أمر createdb
.
إذا كنت مسجلاً الدخول باسم الحساب postgres، فسوف تكتب شيئًا مثل:
إذا كنت بدلاً من ذلك تفضل استخدام sudo
لكل أمر دون التبديل من حسابك العادي، فسوف تكتب:
توفر هذه المرونة مسارات متعددة لإنشاء قواعد بيانات حسب الحاجة.
الخطوة 5 — فتح سطر أوامر بوستغريس مع الدور الجديد
لتسجيل الدخول بمصادقة النظير، ستحتاج إلى مستخدم Linux يحمل نفس الاسم الذي يحمله دور بوستغريس الخاص بك وقاعدة البيانات.
إذا لم يكن لديك مستخدم Linux متطابق متاح، يمكنك إنشاء واحد باستخدام أمر adduser
. ستحتاج إلى القيام بذلك من حسابك غير المسؤول (المستخدم الذي ليس لديه صلاحيات الجذر) باستخدام امتيازات sudo
(وهو يعني، غير مسجل الدخول كمستخدم postgres):
بمجرد توافر هذا الحساب الجديد، يمكنك التبديل والاتصال بقاعدة البيانات عن طريق كتابة:
أو، يمكنك القيام بذلك مباشرة:
سيقوم هذا الأمر بتسجيل الدخول تلقائيًا بالافتراض، شريطة أن يتم تكوين جميع المكونات بشكل صحيح.
إذا كنت ترغب في أن يقوم مستخدمك بالاتصال بقاعدة بيانات مختلفة، يمكنك فعل ذلك عن طريق تحديد قاعدة البيانات بهذه الطريقة:
بمجرد تسجيل الدخول، يمكنك التحقق من معلومات الاتصال الحالية الخاصة بك عن طريق كتابة:
OutputYou are connected to database "sammy" as user "sammy" via socket in "/var/run/postgresql" at port "5432".
هذا مفيد إذا كنت تقوم بالاتصال بقواعد بيانات غير افتراضية أو باستخدام مستخدمين غير افتراضيين.
الخطوة 6 — إنشاء وحذف الجداول
الآن بعد أن تعرف كيفية الاتصال بنظام قواعد البيانات PostgreSQL، يمكنك تعلم بعض المهام الإدارية الأساسية ل Postgres.
الصيغة الأساسية لإنشاء الجداول كما يلي:
CREATE TABLE table_name (
column_name1 col_type (field_length) column_constraints,
column_name2 col_type (field_length),
column_name3 col_type (field_length)
);
هذا الأمر يعطي الجدول اسمًا، ثم يحدد الأعمدة ونوع العمود والحد الأقصى لبيانات الحقل. يمكنك اختياريًا إضافة قيود لكل عمود.
يمكنك معرفة المزيد حول إنشاء الجداول عن طريق اتباع دليلنا على كيفية إنشاء وإدارة الجداول في SQL.
لأغراض التوضيح، قم بإنشاء الجدول التالي:
سينشئ هذا الأمر جدولًا يقوم بجرد معدات الملعب. العمود الأول في الجدول سيحمل أرقام هوية المعدات من نوع serial
، وهو نوع عدد صحيح يتزايد تلقائيًا. هذا العمود لديه أيضًا قيد PRIMARY KEY
الذي يعني أن القيم ضمنه يجب أن تكون فريدة ولا تُسمح بقيم فارغة.
السطور التاليتان ينشئان أعمدة لـنوع المعدة
واللون
على التوالي، لا يمكن أن تكون أي منهما فارغة. السطر بعد هذه الأعمدة ينشئ عمودًا لـالموقع
مع قيد يتطلب أن تكون القيمة واحدة من ثماني قيم ممكنة. السطر الأخير ينشئ عمودًا لـالتاريخ
الذي يسجل فيه تثبيت المعدة.
بالنسبة لعمودين (equip_id
و install_date
)، الأمر لا يحدد طول الحقل. السبب في ذلك هو أن بعض أنواع البيانات لا تتطلب طولًا محددًا لأن الطول أو التنسيق مفترض.
افحص الجدول الجديد الخاص بك عن طريق كتابة:
Output List of relations
Schema | Name | Type | Owner
--------+-------------------------+----------+-------
public | playground | table | sammy
public | playground_equip_id_seq | sequence | sammy
(2 rows)
إليك طاولة منطقة اللعب الخاصة بك، ولكن هناك أيضًا شيء يُسمى playground_equip_id_seq
الذي هو من نوع sequence
. يُمثل هذا الشيء نوع serial
الذي قمت بتعيينه لعمود equip_id
الخاص بك. يُتبع هذا التسلسل للحفاظ على الرقم التالي في التسلسل ويتم إنشاؤه تلقائيًا للأعمدة من هذا النوع.
إذا كنت ترغب في عرض الجدول فقط بدون التسلسل، يمكنك كتابة:
Output List of relations
Schema | Name | Type | Owner
--------+------------+-------+-------
public | playground | table | sammy
(1 row)
بعد أن تكون الجدول جاهزًا، دعنا نستخدمه لممارسة إدارة البيانات.
الخطوة 7 — إضافة واستعلام وحذف البيانات في جدول
الآن بعد أن لديك جدول، يمكنك إدخال بعض البيانات فيه. كمثال، أضف شريحة وتأرجح عن طريق استدعاء الجدول الذي تريد إضافته، وتسمية الأعمدة ثم توفير البيانات لكل عمود، مثل هذا:
يجب عليك أن تحرص عند إدخال البيانات لتجنب بعض المشاكل الشائعة. على سبيل المثال، لا تضع علامات اقتباس حول أسماء الأعمدة، ولكن القيم التي تدخلها تحتاج إلى اقتباسات.
شيء آخر يجب أن تضعه في اعتبارك هو أنك لا تدخل قيمة لعمود equip_id
. هذا لأنه يتم إنشاؤه تلقائيًا كلما قمت بإضافة صف جديد إلى الجدول.
استرجع المعلومات التي قمت بإضافتها عن طريق كتابة:
Output equip_id | type | color | location | install_date
----------+-------+--------+-----------+--------------
1 | slide | blue | south | 2017-04-28
2 | swing | yellow | northwest | 2018-08-16
(2 rows)
لاحظ أن equip_id
تم ملؤه بنجاح وأن جميع البيانات الأخرى قد تم تنظيمها بشكل صحيح.
إذا كسرت الشريحة على الملعب واضطررت لإزالتها، يمكنك أيضًا إزالة الصف من الجدول الخاص بك عن طريق كتابة:
استعلم عن الجدول مرة أخرى:
Output equip_id | type | color | location | install_date
----------+-------+--------+-----------+--------------
2 | swing | yellow | northwest | 2018-08-16
(1 row)
لاحظ أن صف الشريحة لم يعد جزءًا من الجدول.
الخطوة 8 — إضافة وحذف أعمدة من جدول
بعد إنشاء جدول، يمكنك تعديله عن طريق إضافة أو إزالة الأعمدة. أضف عمودًا لعرض آخر زيارة صيانة لكل قطعة من المعدات عن طريق الكتابة:
انظر معلومات الجدول الخاص بك مرة أخرى. تمت إضافة عمود جديد ولكن لم يتم إدخال أي بيانات بعد:
Output equip_id | type | color | location | install_date | last_maint
----------+-------+--------+-----------+--------------+------------
2 | swing | yellow | northwest | 2018-08-16 |
(1 row)
إذا وجدت أن فريق العمل الخاص بك يستخدم أداة منفصلة لتتبع تاريخ الصيانة، يمكنك حذف العمود بكتابة:
يقوم هذا بحذف العمود “آخر_صيانة” وأي قيم تم العثور عليها ضمنه، ولكن يترك جميع البيانات الأخرى سليمة.
الخطوة 9 — تحديث البيانات في الجدول
حتى الآن، تعلمت كيفية إضافة سجلات إلى جدول وكيفية حذفها، ولكن هذا البرنامج التعليمي لم يغطي بعد كيفية تعديل الإدخالات الحالية.
يمكنك تحديث قيم مدخل موجود عن طريق الاستعلام عن السجل الذي تريده وتعيين العمود إلى القيمة التي ترغب في استخدامها. يمكنك الاستعلام عن سجل swing
(سيتطابق ذلك مع كل swing في الجدول الخاص بك) وتغيير لونه إلى أحمر
. يمكن أن يكون هذا مفيدًا إذا قمت بدهان مجموعة الأرجوحة:
يمكنك التحقق من نجاح العملية عن طريق الاستعلام عن البيانات مرة أخرى:
Output equip_id | type | color | location | install_date
----------+-------+-------+-----------+--------------
2 | swing | red | northwest | 2018-08-16
(1 row)
تم تسجيل المزحلقة الآن بأنها لونها أحمر.
الاستنتاج
أنت الآن مهيأ لاستخدام PostgreSQL على خادم Ubuntu 22.04 الخاص بك. إذا كنت ترغب في معرفة المزيد حول Postgres وكيفية استخدامه، نشجعك على مراجعة الدلائل التالية:
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-22-04