مقدمة
هذا الفحص يهدف إلى مساعدتك في تقييم ما تعلمته من مقالاتنا التمهيدية حول قواعد البيانات، حيث قمنا بتعريف قواعد البيانات وقدمنا أنظمة إدارة قواعد البيانات الشائعة. يمكنك استخدام هذا الفحص لاختبار معرفتك في هذه المواضيع، ومراجعة المصطلحات والأوامر الرئيسية، والعثور على موارد للتعلم المستمر.
A database is any logically modeled collection of information or data. When people refer to a “database” in the context of websites, applications, and the cloud, they often mean a computer program that manages data stored on a computer. These programs, known formally as database management systems (DBMS), can be combined with other programs (like a web server and a front-end framework) to form production-ready applications.
في هذا الفحص، ستجد قسمين يلخصان الأفكار الرئيسية من المقالات التمهيدية: شرح موجز لما هي قاعدة البيانات (بما في ذلك أقسام حول قواعد البيانات العلاقية وغير العلاقية) وقسم حول كيفية التفاعل مع نظام إدارة قواعد البيانات الخاص بك من خلال سطر الأوامر أو واجهات المستخدم الرسومية. في كل من هذه الأقسام، هناك مكونات تفاعلية لمساعدتك في اختبار معرفتك. في نهاية هذا الفحص، ستجد فرصًا للتعلم المستمر حول أنظمة إدارة قواعد البيانات، وقواعد البيانات المُدارة بالكامل، وبناء تطبيقاتك مع قواعد البيانات الخلفية.
الموارد
- مقدمة في قواعد البيانات
- فهم القيود في SQL
- SQLite مقابل MySQL مقابل PostgreSQL: مقارنة بين أنظمة إدارة قواعد البيانات العلاقية
- A Comparison of NoSQL Database Management Systems and Models
- كيفية تثبيت وتأمين Redis على أوبونتو 22.04
- كيفية تنفيذ عمليات CRUD في MongoDB
ما هي قاعدة البيانات؟
A database is any logically modeled collection of information, and a database management system is what most people think of when they think “I know what a database is!” You use a database management system (DBMS), which is a computer program designed to interact with the information, to access and manipulate the information stored in your database.
المصطلحات المطلوب معرفتها
قم بتعريف المصطلحات التالية، ثم استخدم ميزة القائمة المنسدلة للتحقق من عملك.
Replication
التكرار يشير إلى ممارسة تزامن البيانات عبر عدة قواعد بيانات منفصلة. توفر هذه الممارسة التكرارية الزائدة، وتعزز قابلية التوسع، وتقلل من تأخيرات القراءة.
Sharding
تقسيم قاعدة البيانات هو ممارسة معمارية لفصل البيانات إلى قطع تسمى شرائح منطقية يتم توزيعها عبر عقد منفصلة تسمى شرائح فيزيائية. للمزيد حول هذه الممارسة، يمكنك مراجعة مقالتنا حول فهم تقسيم قاعدة البيانات.
هناك ثلاثة نماذج علاقية شائعة تستخدم لأنظمة قواعد البيانات:
Relational Model | Relationship |
---|---|
One-to-one | In a one-to-one relationship, rows in one table (sometimes called the parent table) are related to one and only one row in another table (sometimes called the child table). |
One-to-many | In a one-to-many relationship, a row in the initial table (sometimes called the parent table) can relate to multiple rows in another table (sometimes called the child table). |
Many-to-many | In a many-to-many relationship, rows in one table can related to multiple rows in the other table, and vice versa. While these tables may also be referred to as parent and child tables, the multidirectional relationship does not necessitate a hierarchical relationship. |
تلك النماذج العلاقية تنظم كيفية ترتبط قواعد البيانات مع بعضها البعض.
هناك فئتان لإدارة قواعد البيانات: العلاقية والغير علاقية. في الأقسام الفرعية التالية، ستتعرف على كل نوع وعلى أنظمة إدارة قواعد البيانات الشائعة لتلك الأنواع.
قواعد بيانات علاقية
A relational database organizes information through relations, which you might recognize as a table.
تحقق بنفسك
What are the elements that make up a relation?
A relation is a set of tuples, or rows in a table, with each tuple sharing a set of attributes, or columns. A tuple is a unique instance of what type of data the table holds, whereas an attribute specifies the data type for what is allowed in the column.
What is the difference between a primary key and a foreign key?
A primary key refers to the column that will uniquely identify each row in a relational table, whereas a foreign key is a copy of the primary key inserted into a second relation in order to create a relationship between two tables.
عندما يتم تخزين المعلومات في قاعدة بيانات وتنظيمها في العلاقة، يمكن الوصول إليها من خلال استعلامات التي تقدم طلبًا منظمًا للمعلومات. تستخدم العديد من قواعد البيانات العلاقية لغة الاستعلام المهيكل، المعروفة باسم SQL لإدارة الاستعلامات إلى قاعدة البيانات.
يمكنك استخدام SQL القيود عند تصميم قاعدة بياناتك. تفرض هذه القيود قيودًا على التغييرات التي يمكن إجراؤها على البيانات في الجدول.
تحقق بنفسك
Why might you impose constraints on your database?
- قواعد الأعمال: تمكن القيود المسؤولين عن قواعد البيانات من ضمان أن تتماشى قاعدة البيانات مع السياسات والإجراءات المحددة التي تلبي احتياجات وتوقعات الأعمال.
- سلامة البيانات: إدخال البيانات عرضة لأخطاء الإدخال، لذا توفر القيود معلمات إضافية لضمان صحة البيانات.
What are the five constraints that are formally defined by the SQL standard?
المفتاح الأساسي
يتطلب أن يكون كل إدخال في العمود المعطى فريدًا وغيرNULL
، ويسمح لك باستخدام هذا العمود لتحديد كل صف فردي في الجدول.المفتاح الخارجي
يتطلب أن يكون كل إدخال في العمود المعطى قد موجود بالفعل في عمود محدد من جدول آخر.فريد
يمنع إضافة أي قيم مكررة إلى العمود المعطى.التحقق
يحدد متطلبًا لعمود، يُعرف بـ الشرط، يجب أن تلبي كل قيمة تُدخل إليه.NOT NULL
يمنع إضافة أي قيمNULL
إلى العمود المعطى.
بعض أنظمة إدارة قواعد البيانات العلاقية مفتوحة المصدر المبنية بـ SQL تشمل MySQL، MariaDB، PostgreSQL، و SQLite. واصل التعلم حول قواعد البيانات العلاقية مع فهم قواعد البيانات العلاقية واستعراض أنظمة إدارة قواعد البيانات العلاقية الشائعة مع مقارنة بين SQLite و MySQL و PostgreSQL: أنظمة إدارة قواعد البيانات العلاقية.
مصطلحات قواعد البيانات العلاقية التي يجب معرفتها
من خلال كل مقال، لقد طورت مفردات حول قواعد البيانات العلاقية. قم بتحديد كل من المصطلحات التالية، ثم استخدم ميزة القائمة المنسدلة للتحقق من عملك.
Constraint
A constraint is any rule applied to a column or table that limits what data can be entered into it.
Data Types
A data type dictates what kind of entries are allowed in a column.
Object Database
تستخدم قاعدة بيانات الكائن قاعدة بيانات الكائن هياكل موجهة نحو الكائنات للمعلومات. تعتبر PostgreSQL قاعدة بيانات ذات علاقة تدمج بعض الميزات من قواعد البيانات الكائنية.
Serverless
A serverless database, like SQLite, allows any process that accesses the database to write and write to the database disk file directly. This behavior is in contrast to the interprocess communication that is implemented by other relational database engines.
يمكنك كتابة وظيفة بدون خادم لممارسة تشغيل تطبيق بدون خادم.
Signed and Unsigned Integers
بعض أنواع البيانات العددية هي موقعة، مما يعني أنها يمكن أن تمثل الأرقام الإيجابية والسلبية، بينما البعض الآخر هو غير موقعة ويمكن أن يمثل فقط الأرقام الموجبة.
الآن بعد أن تعرفت على قواعد البيانات ذات العلاقة، يمكنك فهم نظيرتها: قواعد البيانات غير العلاقة.
قواعد البيانات غير العلاقة وقواعد البيانات NoSQL
إذا كنت بحاجة إلى تخزين البيانات بطريقة غير منظمة، فإن قاعدة بيانات غير علاقية توفر نموذجًا بديلًا. نظرًا لعدم استخدام قاعدة بيانات غير علاقية للغة SQL، يشار إليها في بعض الأحيان بأنها قاعدة بيانات NoSQL.
هناك مجموعة متنوعة من الخيارات المتاحة لقواعد البيانات غير العلاقية، مثل مخازن المفاتيح-القيمة، قواعد البيانات العمودية، مخازن الوثائق، و قواعد البيانات الرسومية. كل من هذه النماذج تعالج المشاكل المحتملة لاستخدام قاعدة بيانات علاقية، بما في ذلك التوسع الأفقي، التوافق النهائي بين العقد، وإدارة البيانات غير المهيكلة.
مصطلحات قواعد البيانات غير العلاقية للمعرفة
كل من نماذج قواعد البيانات غير العلاقية لها ميزات محددة تجعلها فريدة. حدد نوع النموذج، ثم استخدم خاصية القائمة المنسدلة للتحقق من عملك.
Key-value databases
تخزن قواعد البيانات المفتاح-القيمة وتدير مصفوفات مرتبطة تحتوي على أزواج المفتاح-القيمة حيث يكون المفتاح هو معرف فريد يسترد قيمته المرتبطة.
Columnar databases
تعمل قواعد البيانات العمودية حسب الأعمدة، مما يعني أنها تخزن البيانات في أعمدة. تظهر البيانات في ترتيب السجل حيث يكون الإدخال الأول في عمود واحد مرتبطًا بالإدخال الأول في الأعمدة الأخرى.
Document-oriented databases
المعروفة أيضًا باسم مخازن الوثائق، هذه هي قواعد البيانات غير SQL التي تخزن البيانات على شكل وثائق. كل وثيقة تحتوي على بيانات تعريفية لتنظيم البيانات، ويمكن استخدام واجهة برمجة التطبيقات أو لغة الاستعلام لاسترداد الوثائق.
Graph databases
قواعد البيانات الرسومية هي فرع من مخازن الوثائق، وتسلط هذه النوعية من قواعد البيانات الضوء على العلاقات بين الوثائق.
يمكنك التحقق من معرفتك حول أنظمة إدارة قواعد البيانات غير العلاقية الشائعة المستخدمة مع نوع نموذج قاعدة البيانات باستخدام خاصية القائمة المنسدلة التفاعلية التالية.
تحقق من نفسك
مطابقة نظام إدارة قواعد البيانات التالي لنموذج قاعدة بياناته التشغيلي:
- Redis
- Couchbase
- Cassandra
- OrientDB
- MongoDB
- Neo4j
- MemcacheDB
- Apache HBase
Compare your answers using the dropdown feature.
Operational Database Model | Example DBMSs |
---|---|
Key-value store | Redis, MemcacheDB |
Columnar database | Cassandra, Apache HBase |
Document store | MongoDB, Couchbase |
Graph database | OrientDB, Neo4j |
سواء كنت تستخدم قاعدة بيانات علاقية أو غير علاقية، فمن المحتمل أن تكون تقوم ببناء تطبيق يتضمن نظام إدارة قواعد بيانات كجزء من تكوينه.
بناء تكوين التطبيق
يتم نشر نظام إدارة قواعد البيانات في أغلب الأحيان كجزء أساسي من تطبيق أكبر. يُطلق على هذه التطبيقات أحيانًا مصطلح “التكوينات”، مثل تكوين LAMP أو تكوين Elastic.
تحقق بنفسك
استخدم ميزة القائمة المنسدلة للحصول على الإجابات.
What makes up a LAMP stack?
تعتبر LAMP اختصارًا للتكنولوجيا التي تشكل هذا التكوين:
- نظام التشغيل لينكس
- خادم الويب أباتشي
- قاعدة البيانات MySQL
- PHP لمعالجة المحتوى الديناميكي
هناك خيارات أخرى من اللمب، مثل التراص LEMP حيث E يشير إلى Nginx أو تراص LOMP حيث O يشير إلى OpenLiteSpeed.
What makes up Elastic stack?
تم بناء تراص Elastic حول Elasticsearch، الذي هو محرك بحث وقاعدة بيانات مستندية.
إذا قمت بإعداد خادم بعيد مع تراص التطبيق الخاص بك، يُوصَى بتشفير بياناتك لحماية نظامك من التدخل الخبيث. يمكنك تشفير الاتصالات باستخدام أمان الطبقة النقلية (TLS)، الذي سيحول البيانات في الحركة إلى نص مشفر يمكن فك تشفيره فقط بواسطة التشفير الصحيح. البيانات الثابتة المخزنة في قاعدة البيانات الخاصة بك ستظل غير مشفرة ما لم يتم استخدام نظام إدارة قواعد البيانات الذي يوفر تشفير البيانات في الراحة.
لإدارة قاعدة البيانات الخاصة بك، يمكنك اختيار القيام بذلك مباشرةً من واجهة سطر الأوامر أو من خلال واجهة المستخدم الرسومية.
استخدام واجهة سطر الأوامر مع نظام إدارة قواعد البيانات الخاص بك
بدأت باستخدام سطر الأوامر في نظام Linux مع مقالاتنا التمهيدية حول خوادم السحابة، وقمت بتكوين خادم ويب باستخدام مقالاتنا التمهيدية حول حلول خوادم الويب. من خلال مقالات عن قواعد البيانات، استمررت في تطوير الاستفادة من سطر الأوامر باستخدام أوامر مثل:
grep
للبحث في البيانات النصية الخام عن نص أو سلسلة نصية معينة.netstat
لفحص تكوين الشبكة باستخدام العلامات-lnp
لعرض المقابس السماعية (-l
)، والعناوين الرقمية (-n
)، ومُعرف البرنامج واسمه لكل مقبس (-p
).systemctl
للتحكم في خدمةsystemd
.
لقد قمت أيضًا بتجربة أدوات سطر الأوامر المرفقة مع أنظمة إدارة قواعد البيانات المختلفة للتفاعل مع تثبيت قاعدة البيانات. تمكنك أداة واجهة سطر الأوامر من تنفيذ أوامر على خادم قاعدة البيانات والعمل تفاعليًا من نافذة الطرفية الخاصة بك. تتضمن الجدول التالي قاعدات بيانات إدارة النظام الإداري وأداة واجهة سطر الأوامر المرتبطة بها:
DBMS | CLI tool |
---|---|
MongoDB | MongoDB shell |
MySQL | mysql |
PostgreSQL | psql |
Redis | redis-cli |
هناك أيضًا عملاء سطر الأوامر من الأطراف الثالثة لبعض أنظمة إدارة قواعد البيانات، مثل Redli لـ Redis.
عند استخدام سطر الأوامر للعمل مع نظام قاعدة البيانات الخاص بك، تقوم بفتح نافذة تحكم خاصة بالخادم، عادة مرتبطة بحساب المستخدم الخاص بك لتلك النظام. على سبيل المثال، إذا كنت ستفتح نافذة تحكم لخادم MySQL وتسجل الدخول بحساب MySQL الخاص بك، ستراجع نافذة تحكم خاصة بقاعدة البيانات مثل هذه:
-
كل عميل لسطر الأوامر لإدارة نظام قاعدة البيانات لديه بنية خاصة به لأوامره.
بعد التعرف على قيود SQL، قد تستخدم تلك القيود مع قاعدة بيانات MySQL عن طريق تشغيل هذه الأوامر:
CREATE DATABASE
لإنشاء قاعدة بيانات.USE
لتحديد قاعدة بيانات.CREATE TABLE
لإنشاء جدول بمواصفات للأعمدة والقيود المطبقة على تلك الأعمدة.ALTER TABLE
بـADD
لإضافة قيود إلى جدول قائم وبـDROP CONSTRAINT
لحذف قيد من جدول قائم.
يمكنك متابعة تطوير مهارات قاعدة البيانات MySQL الخاصة بك مع سلسلة كيفية استخدام SQL.
مع Redis، قمت بتثبيت وتأمين Redis باستخدام الأوامر التالية وقمت بتجربة إعادة تسمية الأوامر:
auth
للمصادقة على العملاء للوصول إلى قاعدة البيانات.exit
وquit
للخروج من موجه Redis-CLI.get
لاسترجاع قيمة المفتاح.ping
لاختبار الاتصال.set
لتعيين المفاتيح.
وفي MongoDB shell، استخدمت JSON الثنائي (المعروف باسم BSON) لتشغيل عمليات CRUD مع أساليب تصفية الاستعلام التالية:
count
الطريقة لفحص عدد الكائنات في مجموعة معينة.deleteOne
لإزالة أول وثيقة تطابق المواصفات.deleteMany
لإزالة عدة كائنات دفعة واحدة.find
لاسترجاع المستندات في قاعدة بيانات MongoDB الخاصة بك مع ميزة الطباعة الجميلة لجعل الأسطر أكثر قراءة.insertOne
الطريقة لإنشاء وثائق فردية.insertMany
الطريقة لإدراج عدة وثائق في عملية واحدة أو مجموعة.ObjectId
نوع الكائن لتخزين معرفات الكائن.updateOne
لتحديث وثيقة واحدة بالمفاتيح المحددة.updateMany
لتحديث كل وثيقة في مجموعة تطابق الفلاتر المحددة. من المحتمل أن تستخدم عمليات CRUD للتفاعل مع بياناتك عبر العديد من أنظمة إدارة قواعد البيانات.
تحقق بنفسك
What does CRUD stand for?
CRUD هو اختصار يُستخدم لوصف العمليات الأساسية الأربعة التالية للبيانات:
- إنشاء
- اقراءة
- تحديث
- حذف
بينما قد تختار إدارة قاعدة البيانات مباشرة من سطر الأوامر، يمكنك أيضًا استخدام واجهة مستخدم رسومية (GUI) للعديد من أنظمة إدارة قواعد البيانات الشائعة.
استخدام واجهة المستخدم الرسومية
هناك العديد من الأدوات الرسومية المختلفة للعمل مع قاعدة بياناتك إذا قررت عدم استخدام أداة CLI المصممة.
للتعامل مع إدارة MySQL عبر الويب، يمكنك استخدام phpMyAdmin من خلال تثبيت وتأمين phpMyAdmin على العديد من أنظمة التشغيل المختلفة أو الاتصال عن بعد بقاعدة بيانات MySQL المُدارة . يمكنك أيضًا استخدام MySQL Workbench لـ الاتصال بخادم MySQL عن بُعد .
بشكل مشابه لـ phpMyAdmin ، pgAdmin هو واجهة ويب لإدارة PostgreSQL. يمكنك تثبيت وتكوين pgAdmin في وضع الخادم أو استخدامه لـ جدولة النسخ الاحتياطي التلقائي باستخدام pgAgent .
بالنسبة لـ MongoDB ، قد تفكر في استخدام MongoDB Compass كواجهة رسومية للوصول إلى قاعدة البيانات الخاصة بك.
سواء اخترت استخدام واجهة الأوامر أو واجهة رسومية لإدارة قاعدة البيانات الخاصة بك ، فأنت الآن تمتلك الأدوات اللازمة لإدارة نظام قاعدة البيانات الخاص بك.
ماذا بعد؟
بفهم أقوى لقواعد البيانات وأنظمة إدارة البيانات الشائعة، يمكنك تخزين بياناتك وإدارتها أو بناء تطبيق يستخدم نظام قواعد بيانات.
لمزيد من المعلومات حول العمل مع أنظمة إدارة قواعد البيانات المحددة، يمكنك متابعة سلسلتنا كيفية استخدام SQL و كيفية إدارة البيانات باستخدام MongoDB. إذا واجهت مشاكل مع MySQL، يمكنك تصحيحها باستخدام كيفية تحديد مشاكل في MySQL. بالنسبة لمشاكل MongoDB، قم بتقييم كيفية علاقة مشاكلك بـ كيفية أداء عمليات CRUD في MongoDB.
عندما تكون جاهزًا لبناء تطبيقاتك باستخدام قواعد البيانات، جرب متابعة هذه البرامج التعليمية لإعدادات الأنظمة المعتادة للتطبيقات:
- كيفية تثبيت Linux، Apache، MySQL، PHP (LAMP) Stack على Ubuntu 22.04
- كيفية تثبيت Linux، Nginx، MySQL، PHP (LEMP stack) على Ubuntu 22.04
- كيفية تثبيت لينكس و OpenLiteSpeed و MariaDB و PHP (مجموعة LOMP) على أوبونتو 22.04
إذا كنت تفضل بناء تطبيقاتك باستخدام قواعد بيانات مُدارة بالكامل، تحقق من عروض DigitalOcean لـ مجموعات بيانات MongoDB المُدارة، MySQL أو PostgreSQL، و Redis المُدارة. يمكنك أيضًا اختيار خيار قاعدة بيانات شائع للتثبيت بنقرة واحدة في DigitalOcean Marketplace.
مع معرفتك الجديدة بقواعد البيانات، يمكنك أيضًا مواصلة رحلتك في السحابة مع الحاويات و الأمان. إذا لم تقم بذلك بعد، تحقق من مقالاتنا التمهيدية حول خوادم السحابة و خوادم الويب.
Source:
https://www.digitalocean.com/community/tutorials/databases-checkpoint