المقدمة
أنظمة إدارة قواعد البيانات العلاقية هي جزء أساسي من العديد من مواقع الويب والتطبيقات. توفر هذه الأنظمة طريقة منظمة لتخزين وتنظيم والوصول إلى المعلومات.
PostgreSQL، أو بوستجريس، هو نظام إدارة قواعد بيانات علاقي يوفر تنفيذًا للغة الاستعلام SQL. إنه متوافق مع المعايير ويحتوي على العديد من الميزات المتقدمة مثل المعاملات الموثوقة والتنافسية دون قفل القراءة.
يوضح هذا الدليل كيفية تثبيت بوستجريس على خادم Ubuntu 20.04. كما يقدم بعض التعليمات لإدارة قواعد البيانات بشكل عام.
1-انقر لنشر قاعدة بيانات PostgreSQL باستخدام DigitalOcean Managed Databases. دع DigitalOcean يركز على توسيع القاعدة، والصيانة، والتحديثات لقاعدة البيانات الخاصة بك.
المتطلبات الأولية
لمتابعة هذا البرنامج التعليمي، ستحتاج إلى خادم Ubuntu 20.04 تم تكوينه عن طريق اتباع دليلنا إعداد الخادم الأولي لـ Ubuntu 20.04. بعد إكمال هذا البرنامج التعليمي الأساسي المطلوب، يجب أن يحتوي الخادم الخاص بك على مستخدم غير root مع صلاحيات sudo وجدار ناري أساسي.
الخطوة 1 — تثبيت PostgreSQL
مستودعات Ubuntu الافتراضية تحتوي على حزم Postgres، لذا يمكنك تثبيت هذه باستخدام نظام التعبئة apt
.
إذا لم تقم بذلك مؤخرًا، قم بتحديث فهرس الحزم المحلي للخادم:
ثم، قم بتثبيت حزمة Postgres بالإضافة إلى حزمة -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
.
الوصول إلى سطر أوامر بوستجريس بدون تبديل الحسابات
يمكنك أيضًا تشغيل الأمر الذي تريده باستخدام حساب بوستجريس مباشرةً باستخدام sudo
.
على سبيل المثال، في المثال الأخير، تم توجيهك للوصول إلى سطر بوستجريس عن طريق التبديل أولاً إلى مستخدم بوستجريس ومن ثم تشغيل psql
لفتح سطر أوامر بوستجريس. يمكنك القيام بذلك في خطوة واحدة عن طريق تشغيل الأمر الواحد psql
كمستخدم بوستجريس باستخدام sudo
، مثل هذا:
سيقوم هذا بتسجيل الدخول مباشرةً إلى بوستجريس دون وسيط bash
بينهما.
مرة أخرى، يمكنك الخروج من جلسة بوستجريس التفاعلية عبر كتابة:
تتطلب العديد من الحالات استخدام أكثر من دور بوستجريس. تابع لمعرفة كيفية تكوين هذه الأدوار.
الخطوة 3 — إنشاء دور جديد
حاليًا ، لديك دور postgres مكون داخل قاعدة البيانات. يمكنك إنشاء أدوار جديدة من سطر الأوامر باستخدام أمر createrole
. تعلمة --interactive
ستطلب منك اسم الدور الجديد وسوف تسأل أيضًا ما إذا كان ينبغي منحه صلاحيات المستخدم الرئيسي.
إذا كنت مسجلاً الدخول بحساب postgres ، يمكنك إنشاء مستخدم جديد عن طريق كتابة:
إذا كنت تفضل استخدام sudo
لكل أمر دون التبديل من حسابك العادي ، اكتب:
سيطلب البرنامج النصي منك بعض الخيارات وبناءً على إجاباتك ، سيقوم بتنفيذ الأوامر الصحيحة لبرنامج Postgres لإنشاء مستخدم وفقًا لمواصفاتك.
OutputEnter name of role to add: sammy
Shall the new role be a superuser? (y/n) y
يمكنك الحصول على مزيد من التحكم عن طريق تمرير بعض العلامات الإضافية. تحقق من الخيارات عن طريق النظر في صفحة man
:
تم الآن إنشاء مستخدم جديد في تثبيت Postgres الخاص بك ، ولكنك لم تقم بإضافة أي قواعد بيانات بعد. تصف القسم التالي هذه العملية.
الخطوة 4 — إنشاء قاعدة بيانات جديدة
فرضية أخرى يفترضها نظام المصادقة Postgres افتراضيًا هي أنه بالنسبة لأي دور يتم استخدامه لتسجيل الدخول ، فسيكون لديه قاعدة بيانات بنفس الاسم يمكنه الوصول إليها.
هذا يعني أنه إذا كان اسم المستخدم الذي أنشأته في القسم السابق يُدعى sammy، فإن هذا الدور سيحاول الاتصال بقاعدة بيانات تُدعى أيضًا “sammy” افتراضيًا. يمكنك إنشاء قاعدة البيانات المناسبة باستخدام أمر createdb
.
إذا كنت مسجّلاً الدخول بحساب postgres، فسوف تكتب شيئًا مثل:
إذا كنت بدلاً من ذلك تفضل استخدام sudo
لكل أمر دون التبديل من حسابك العادي، فستكتب:
توفر هذه المرونة مسارات متعددة لإنشاء قواعد البيانات حسب الحاجة.
الخطوة 5 — فتح برنامج نصي بوستجرس بالدور الجديد
لتسجيل الدخول باستخدام المصادقة بالنظير، ستحتاج إلى مستخدم Linux يحمل نفس اسم دور بوستجرس وقاعدة البيانات الخاصة بك.
إذا لم يكن لديك مستخدم Linux مطابق متاح، يمكنك إنشاء واحد باستخدام أمر adduser
. ستحتاج إلى القيام بذلك من حسابك غير الجذري مع امتيازات sudo
(وهذا يعني، غير مسجّل الدخول كمستخدم root):
بمجرد توفر هذا الحساب الجديد، يمكنك التبديل والاتصال بقاعدة البيانات عن طريق كتابة:
أو، يمكنك فعل ذلك على الخط مباشرة:
سيقوم هذا الأمر بتسجيل الدخول تلقائيًا، بشرط أن تم تكوين جميع المكونات بشكل صحيح.
إذا كنت ترغب في أن يتصل مستخدمك بقاعدة بيانات مختلفة، يمكنك القيام بذلك عن طريق تحديد قاعدة البيانات مثل هذا:
بمجرد تسجيل الدخول، يمكنك التحقق من معلومات الاتصال الحالية الخاصة بك عن طريق كتابة:
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)
);
كما ترون، تُعطي هذه الأوامر اسم الجدول، ومن ثم تعرف الأعمدة بالإضافة إلى نوع العمود والحد الأقصى لطول بيانات الحقل. يمكنك أيضًا اختياريًا إضافة قيود الجدول لكل عمود.
يمكنك معرفة المزيد حول كيفية إنشاء وإدارة الجداول في Postgres هنا.
لأغراض العرض، قم بإنشاء الجدول التالي:
ستنشئ هذه الأمر جدولًا يخزن معدات الملعب. العمود الأول في الجدول سيحتوي على أرقام تعريف المعدات من نوع serial
، وهو نوع صحيح متزايد تلقائيًا. هذا العمود أيضًا لديه قيد PRIMARY KEY
الذي يعني أن القيم ضمنه يجب أن تكون فريدة ولا تكون فارغة.
السطور التاليتان تنشئان أعمدة لأنواع المعدات type
و color
على التوالي، ولا يمكن أن تكون أيًّا منهما فارغة. السطر بعد ذلك ينشئ عمودًا للـlocation
بالإضافة إلى شرط يتطلب أن تكون القيمة واحدة من ثمانية قيم ممكنة. السطر الأخير ينشئ عمودًا للـdate
الذي يسجّل تاريخ تثبيت المعدات.
بالنسبة لعمودين (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)
مع جدول جاهز، دعنا نستخدمه لممارسة إدارة البيانات.
الخطوة ٧ — إضافة، استعلام وحذف البيانات في الجدول
الآن بما أن لديك جدول، يمكنك إدراج بعض البيانات فيه. كمثال، أضف شريحة وأرجوحة بالاتصال بالجدول الذي ترغب في إضافته، وتسمية الأعمدة ثم توفير البيانات لكل عمود، مثل هذا:
يجب أن تحرص عند إدخال البيانات لتجنب بعض المشاكل الشائعة. على سبيل المثال، لا تقوم بتضمين اسماء الأعمدة بعلامات اقتباس، ولكن القيم التي تدخلها تحتاج إلى اقتباسات.
شيء آخر يجب أن تضعه في اعتبارك هو عدم إدخال قيمة لعمود 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)
إذا وجدت أن فريق العمل يستخدم أداة منفصلة لتتبع تاريخ الصيانة، يمكنك حذف العمود عن طريق كتابة:
يحذف هذا الأمر العمود last_maint
وأي قيم تم العثور عليها فيه، لكن يترك جميع البيانات الأخرى سليمة.
الخطوة 9 — تحديث البيانات في جدول
حتى الآن، لقد تعلمت كيفية إضافة سجلات إلى جدول وكيفية حذفها، ولكن هذا البرنامج التعليمي لم يغطي بعد كيفية تعديل الإدخالات الحالية.
يمكنك تحديث قيم سجل موجود عن طريق استعلام عن السجل الذي تريده وتعيين العمود إلى القيمة التي ترغب في استخدامها. يمكنك الاستعلام عن السجل swing
(سيطابق هذا كل الأمساك في جدولك) وتغيير لونه إلى أحمر
. قد تكون هذه مفيدة إذا قمت بطلاء مجموعة الأمساك بالطلاء:
يمكنك التحقق من أن العملية نجحت عن طريق استعلام البيانات مرة أخرى:
Output equip_id | type | color | location | install_date
----------+-------+-------+-----------+--------------
2 | swing | red | northwest | 2018-08-16
(1 row)
كما ترون، تم تسجيل الزحليقة الآن بأن لونها أحمر.
الختام
الآن لديك PostgreSQL مُعدَّل على خادم Ubuntu 20.04 الخاص بك. إذا كنت ترغب في معرفة المزيد حول Postgres وكيفية استخدامه، نحن نشجعك على التحقق من الدلائل التالية:
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-20-04