ما هي قواعد بيانات NoSQL؟
تقوم أنظمة إدارة قواعد البيانات العلائقية (RDBMS) بتخزين البيانات في شكل جدول من الصفوف والأعمدة، ولغة الاستعلام الهيكلية (SQL) هي اللغة المستخدمة للوصول إلى البيانات ومعالجتها في قواعد البيانات العلائقية.
أدى النمو السريع للبيانات والحاجة إلى توفر عالي وقابلية التوسع والأداء في تطبيقات البرامج الحديثة إلى إعاقة قواعد البيانات العلائقية بسبب هيكل تصميمها. SQL هي الطريقة الوحيدة للوصول إلى البيانات من قواعد البيانات العلائقية، ويستغرق الاطلاع على مليارات وتريليونات السجلات وقتًا.
هذا هو المكان الذي تلعب فيه قواعد البيانات غير العلائقية دورًا حيويًا. تسمى أنظمة إدارة قواعد البيانات (DBMS) التي لا تستخدم SQL للاستعلام عن قواعد البيانات بقواعد بيانات NoSQL. تُسمى قواعد بيانات NoSQL أيضًا بقواعد بيانات غير SQL أو غير علائقية.
قواعد بيانات NoSQL ليست نوعًا واحدًا من قواعد البيانات. قواعد بيانات NoSQL هي تقنيات قواعد بيانات متنوعة تسمح بتخزين البيانات وإدارتها بتنسيقات مختلفة دون استخدام SQL. تستخدم بعض قواعد البيانات آليتها الخاصة، API، وبعضها يستخدم لغات غير SQL. كانت قواعد البيانات غير العلائقية موجودة منذ عقود، ولكن مصطلح “NoSQL” صاغه كارلو ستروزي في عام 1998 لتسمية قاعدة بياناته العلائقية خفيفة الوزن Strozzi NoSQL مفتوحة المصدر. لم تستخدم قاعدة البيانات SQL للوصول إلى البيانات ومعالجتها.
What are NoSQL Databases?
Relational databases management systems (RDBMS) store data in tabular form of rows and columns, and Structured Query Language (SQL) is the language that is used to access and manipulate data in relational databases. The rapid growth of data and the need for high availability, scalability, and performance in modern software applications have handicapped relational databases due to their design structure. SQL is the only way to access data from relational databases, and going through billions and trillions of records takes time. This is where non-relational databases play a vital role. Database management systems (DBMS) that do not use SQL to query databases are called NoSQL databases. NoSQL databases are also called non-SQL or nonrelational databases. NoSQL databases are not a single kind of database. NoSQL databases are various database technologies that allow data to be stored and managed in different formats without the use of SQL. Some of the databases use their own mechanism, API, and some use non-SQL languages. Non-relational databases have been in existence for decades, but the term “NoSQL” was coined by Carlo Strozzi in 1998 to name his lightweight Strozzi NoSQL open-source relational database. The database did not use SQL to access and manipulate data.
مزايا قواعد بيانات NoSQL | Advantages of NoSQL databases
مزايا قواعد بيانات NoSQL
- مع تزايد كمية البيانات والحاجة إلى استجابات الاستعلام في الوقت الفعلي، وتحليلات البيانات، والخوارزميات الدلالية، أصبحت قواعد بيانات NoSQL حاجة اليوم. تعد قواعد بيانات NoSQL أكثر قابلية للتطوير وتوفر أداءً أعلى عند التعامل مع كميات كبيرة من البيانات.
- توفر قواعد بيانات NoSQL أيضًا اجتيازًا أسرع وحلولًا دلالية أفضل. قواعد البيانات العلائقية لها مخططات ثابتة. يجب إنشاء مخطط قاعدة البيانات قبل إدراج البيانات في قاعدة بيانات علائقية. بمجرد إنشاء قاعدة بيانات وكتابة التطبيقات البرمجية، ليس من السهل تغيير المخططات. قد يؤدي تغيير المخططات في قواعد البيانات العلائقية إلى فقدان البيانات والتطبيقات المعطلة وإعادة كتابة التطبيقات البرمجية بشكل مكثف.
- حتى تغيير نوع العمود في قاعدة البيانات العلائقية يمكن أن يسبب مشكلات كبيرة للبيانات والتطبيقات. ماذا لو كانت قاعدة البيانات كبيرة، وتحتوي على تريليونات من السجلات؟ لا تحتوي قواعد بيانات NoSQL على مخططات محددة مسبقًا، مما يجعل قواعد بيانات NoSQL مرشحًا مثاليًا لبيئات التطوير سريعة التغير.
- يسمح NoSQL للمطورين بإجراء تغييرات بسرعة دون التأثير على التطبيقات. العيب الرئيسي لقاعدة بيانات NoSQL هو منحنى التعلم وواجهات برمجة التطبيقات المتعددة وطرق العمل مع قواعد البيانات. لا يوجد نموذج واحد موحد مثل SQL للعمل مع قواعد بيانات NoSQL. يقدم كل NoSQL DBMS واجهة برمجة التطبيقات (API) أو المكتبة الخاصة به.
- يتم أيضًا تقسيم NoSQL DBMS إلى أنواع مختلفة، مثل الرسم البياني والمستند والعمود والقيمة الرئيسية. كل من أنظمة إدارة قواعد البيانات هذه لديها بنية ومفهوم مختلف لتخزين البيانات وإدارتها.
Advantages of NoSQL databases
With the growing amount of data and the need for real-time query responses, data analytics, and semantic algorithms, NoSQL databases have become a need today.
NoSQL databases are more scalable and provide higher performance when dealing with high volumes of data. NoSQL databases also provide faster traversing and better semantic solutions. Relational databases have fixed schemas. The database schema must be created before data can be inserted into a relational database.
Once a database is created and software applications are written, it’s not easy to change schemas. Changing schemas on relational databases may result in loss of data, broken applications, and heavy rewriting of software applications. Even changing a column type in a relational database can cause major issues to data and applications. What if the database is large, with trillions of records? NoSQL databases do not have predefined schemas, which makes NoSQL databases a perfect candidate for rapidly changing development environments.
NoSQL allows developers to make changes on the fly without affecting applications. The major drawback of the NoSQL database is the learning curve and multiple APIs and methods to work with the databases. There is no unified single model like SQL to work with NoSQL databases.
Each NoSQL DBMS offers its own API or library. NoSQL DBMS is also broken down into various types, such as a graph, document, column, and key value. Each of these DBMSs has a different architecture and concept to store and manage data.
أنواع قواعد بيانات NoSQL | Types of NoSQL Databases
1. مخزن بيانات العمود
يقوم مخزن البيانات العمودي، المعروف أيضًا باسم نظام إدارة قواعد البيانات العمودي أو نظام إدارة قاعدة البيانات العمودية، بتخزين البيانات في أعمدة بدلاً من الصفوف. تقوم أنظمة إدارة قواعد البيانات العلائقية (RDBMS) بتخزين البيانات في صفوف وخصائص البيانات كرؤوس أعمدة.
تستخدم كل من أنظمة إدارة قواعد البيانات المستندة إلى الصفوف والأعمدة SQL كلغة استعلام خاصة بها، ولكن قد توفر أنظمة إدارة قواعد البيانات الموجهة نحو الأعمدة أداءً أفضل. تخيل أنك بحاجة إلى إدراج جميع الأسماء من جدول بناءً على المعرف؛ بدلاً من المرور عبر جميع الصفوف، يمكنك فقط الوصول إلى عمود واحد في الجدول.
فيما يلي بعض الخصائص الأساسية لنظام إدارة قواعد بيانات مخزن بيانات العمود.
يستخدم مخزن الأعمدة DBMS مساحة مفاتيح تشبه مخطط قاعدة البيانات في RDBMS.
يحتوي مخزن الأعمدة DBMS على مفهوم يسمى العائلة الرئيسية. تشبه العائلة الرئيسية جدولًا في RDBMS. تحتوي مساحة المفتاح على كافة عائلات الأعمدة في قاعدة البيانات.
تحتوي عائلة الأعمدة على صفوف متعددة. يحتوي كل صف على مفتاح فريد يسمى مفتاح الصف، وهو معرف فريد لهذا الصف. على الرغم من أن كل صف يحتوي على مفتاح صف واحد، إلا أنه قد يحتوي على عدة أعمدة. يحتوي كل عمود على حقول الاسم والقيمة والطابع الزمني.
يمكن أن يحتوي كل صف على عدد مختلف من الأعمدة. ليس من الضروري أن تحتوي جميع الصفوف على نفس الأعمدة.
يمكن أن يحتوي كل عمود على صفوف متعددة. ليس من الضروري أن تحتوي جميع الصفوف على نفس البيانات.
غالبًا ما يتم استخدام نظام إدارة قواعد البيانات (DBMS) الموجه نحو العمود في عمليات بيانات OLAP. تتضمن بعض أنظمة إدارة قواعد البيانات الشائعة الموجهة نحو الأعمدة Bigtable، وApache HBase، وMariaDB، وAzure SQL Data Warehouse، وGoogle BigQuery، وIBM Db2، وMemSQL، وMicrosoft SQL Server 2012 أو الإصدارات الأحدث، وSAP HANA.
2. قواعد بيانات الوثيقة
تم تصميم أنظمة إدارة قواعد بيانات المستندات لتخزين المستندات الكاملة ككيان واحد له سماته. تكون المستندات عادةً بتنسيقات مستندات JSON وXML التي يسهل قراءتها وتخزينها وتحليلها باستخدام واجهات برمجة التطبيقات والمكتبات. يعد نظام إدارة قواعد بيانات المستندات أسرع في التحميل والوصول والتحليل. تعد ملفات تعريف المستخدمين وأنظمة إدارة المحتوى والكتالوجات من بعض حالات الاستخدام الشائعة لنظام إدارة قواعد البيانات (DBMS) للمستندات.
تعد ArangoDB وCouchbase Server وCouchDB وAmazon DocumentDB وMongoDB وCouchBase وAzure DocumentDB وCosmos DB وElasticsearch وInformix وLotus Notes وSAP HANA بعضًا من أنظمة إدارة قواعد بيانات المستندات الشائعة.
تعرف على المزيد هنا: ما هي قواعد بيانات المستندات؟ فيما يلي مستند يخزن بيانات الكتاب. كما ترون من هذا المستند، فهو مستند JSON يحتوي على علامات وقيم تحدد الكتاب، بما في ذلك سنة النشر وعنوان الكتاب والمؤلف وتاريخ الإصدار والناشر والسعر.
3. قواعد بيانات الرسم البياني
يتم تطوير قواعد بيانات الرسم البياني على أساس نظرية الرسم البياني. في قواعد بيانات الرسم البياني، يمكن استخدام الرسم البياني لتمثيل كيانات البيانات وسماتها وعلاقاتها. تسمى رؤوس قاعدة بيانات الرسم البياني بالعقد، وتسمى الحواف بالحواف. قواعد بيانات الرسم البياني الشائعة هي Neo4j، وOrientDB، وMongoDB. يدعم Microsoft Azure CosmosDB أيضًا نماذج الرسوم البيانية.
تعرف على المزيد هنا: ما هي قواعد بيانات الرسم البياني
4. متجر القيمة الرئيسية
تم تصميم مخزن القيمة الأساسية لتخزين نوع قاموس من بنية البيانات حيث يتم تخزين البيانات في زوج قيمة المفتاح، ويتم استخدام المفتاح لاسترداد البيانات. القاموس عبارة عن مجموعة من الكائنات أو السجلات. قواعد البيانات ذات القيمة الأساسية الشائعة هي Dynamo، وArangoDB، وBerkeley DB، وFoundationDB، وMemcacheDB.
5. قواعد بيانات الكائنات
جاء مفهوم قواعد البيانات الكائنية من مفهوم البرمجة الشيئية. ماذا لو كان لدينا نظام قاعدة بيانات يمكنه تخزين كائن بأكمله وقراءته مرة أخرى وتطبيق العمليات عليه؟ توفر أنظمة إدارة قواعد بيانات الكائنات (ODMS) أو أنظمة إدارة قواعد البيانات الموجهة للكائنات (OODBMS) وظيفة تخزين البيانات ومعالجتها في نماذج الكائنات. لا يوجد معيار موحد لأنظمة OODBMS. تستخدم بعض أنظمة OODBMS لغة استعلام الكائنات (OQL)، والتي تشبه لغة SQL لأنظمة OODBMS.
قواعد بيانات NoSQL المشهورة
هناك المئات من قواعد بيانات NoSQL الشائعة. يمكن بسهولة تصنيف أي نظام إدارة قواعد بيانات (DBMS) لا يستخدم SQL على أنه قاعدة بيانات NoSQL. فيما يلي قائمة بأنظمة إدارة قواعد بيانات NoSQL الشائعة. ضع في اعتبارك أن معظم قواعد البيانات هذه عبارة عن أنظمة إدارة قواعد بيانات متعددة النماذج. وهذا يعني أنها تدعم أكثر من نوع DBMS. على سبيل المثال، يمكن استخدام CosmosDB لتخزين البيانات بتنسيقات القيمة الرئيسية، أو الأعمدة، أو المستندات، أو الرسوم البيانية.
1. Column Data Store
A column data store, also known as a column-oriented DBMS or columnar database management system, stores data in columns rather than rows.
Relational database management systems (RDBMS) store data in rows and data properties as column headers. Both row-based and column-based DBMSs use SQL as their query language, but column-oriented DBMSs may offer better performance. Imagine you need to list all names from a table based on an ID; rather than going through all rows, you could just access a single column of the table.
Here are some of the key characteristics of column data store DBMS.
Column store DBMS uses a keyspace that is like a database schema in RDBMS.
Column store DBMS has a concept called a key family. A key family is like a table on RDBMS. The keyspace contains all the column families in a database.
A column family contains multiple rows. Each row has a unique key called Row Key, which is a unique identifier for that row. While each row has a single Row Key, it may have multiple columns. Each column has a Name, Value, and TimeStamp fields.
Each row can contain a different number of columns. All rows don’t have to have the same columns.
Each column can contain multiple rows. All rows don’t have to have the same data.
Column-oriented DBMS is often used in OLAP data operations. Some of the popular column-oriented DBMS include Bigtable, Apache HBase, MariaDB, Azure SQL Data Warehouse, Google BigQuery, IBM Db2, MemSQL, Microsoft SQL Server 2012 or later, and SAP HANA.
2. Document Databases
Document database management systems are designed to store full documents as one entity with its attributes. Documents are typically in JSON and XML document formats that are easy to read, store, and parse using APIs and libraries. Document DBMS are faster to load, access, and parse. User profiles, content management systems, and catalogs are some common use cases of document DBMS.
ArangoDB, Couchbase Server, CouchDB, Amazon DocumentDB, MongoDB, CouchBase, Azure DocumentDB, Cosmos DB, Elasticsearch, Informix, Lotus Notes, and SAP HANA are some of the popular document DBMS.
Learn more here: What are Document Databases? Here is a document that stores book data. As you can see from this document, it’s a JSON document that has tags and values that define a book, including year published, book title, author, release date, publisher, and price.
3. Graph Databases
Graph databases are developed based on graph theory. In graph databases, a graph can be used to represent data entities, their attributes, and their relationships. The vertices of a graph database are called nodes, and edges are called edges. Popular graph databases are Neo4j, OrientDB, and MongoDB. Microsoft Azure CosmosDB also supports graph models.
Learn more here: What are Graph Databases
4. Key-value Store
Key value store is designed to store a dictionary type of data structure where data is stored in a key-value pair, and the key is used to retrieve data. A dictionary is a collection of objects or records. Popular key-value databases are Dynamo, ArangoDB, Berkeley DB, FoundationDB, and MemcacheDB.
5. Object databases
The concept of object databases came from the concept of object-oriented programming. What if we have a database system that can store an entire object, read it back, and apply operations on it? Object Database Management Systems (ODMS) or Object-Oriented Database Management Systems (OODBMS) provide the functionality to store and manipulate data in object forms. There is no unified standard of OODBMSs. Some OODBMSs use Object Query Language (OQL), which is similar to SQL for OODBMSs.
Popular NoSQL databases
There are hundreds of popular NoSQL databases. Any DBMS that does not use SQL can easily be categorized as a NoSQL database. Here is a list of popular NoSQL database management systems. Keep in mind most of these databases are multi-model DBMSs. That means they support more than one DBMS type. For example, CosmosDB can be used to store data in key-value, column, document, or graph formats.