Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

NoSQL database

2025-01-19 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Database >

Share

Shulou(Shulou.com)06/01 Report--

NoSQL (NoSQL = Not Only SQL), which means "not just SQL", is a new revolutionary movement for databases.

Four categories of NoSQL Database

(1) key value (Key-Value) storage database

This type of database mainly uses a hash table with a specific key and a pointer to specific data. The advantage of Key/value model for IT system is that it is simple and easy to deploy. But if DBA queries or updates only some of the values, Key/value is inefficient. For example: Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.

(2) column storage database

This part of the database is usually used to deal with the massive data of distributed storage. Keys still exist, but they are characterized by pointing to multiple columns. These columns are arranged by the column family. Such as: Cassandra, HBase, Riak.

(3) document database

This type of data model is a versioned document, with semi-structured documents stored in a specific format, such as JSON. A document database can be seen as an upgraded version of a key-value database, allowing nesting of key values between them. And the query efficiency of document database is higher than that of key database. Such as: CouchDB, MongoDb. There is also a document-based database SequoiaDB in China, which has been open source.

(4) graphic (Graph) database

The database of graphic structure is different from the SQL database of other rows and rows and rigid structure, it uses flexible graphical model and can be extended to multiple servers. NoSQL database does not have a standard query language (SQL), so it is necessary to develop a data model for database query. Many NoSQL databases have REST-style data interfaces or query API. [2] such as Neo4J, InfoGrid, Infinite Graph.

The NoSQL database is applicable in the following situations:

1. The data model is simple.

2. More flexible IT system is needed.

3. High requirements for database performance.

4. No need for a high degree of data consistency

5. For a given key, it is easier to map environments with complex values.

Common characteristics

There is no clear scope or definition for NoSQL, but they all share the following common features:

There is no need for predefined schemas: there is no need to define data schemas in advance and predefine the table structure. Each record in the data may have different properties and formats. When inserting data, you do not need to define their schemas in advance.

No shared architecture: relative to the fully shared architecture in the storage area network where all data is stored. NoSQL often divides the data and stores it on each local server. Because the performance of reading data from the local disk is often better than that of reading data over the network, thus improving the performance of the system.

Flexible scalability: nodes can be dynamically added or deleted while the system is running. No downtime maintenance is required, and the data can be migrated automatically.

Partitioning: instead of storing the data on the same node, the NoSQL database needs to partition the data and spread the records across multiple nodes. And usually partition and copy at the same time. This not only improves the parallel performance, but also ensures that there is no single point of failure.

Asynchronous replication: unlike RAID storage systems, replication in NoSQL tends to be log-based asynchronous replication. In this way, data can be written to a node as soon as possible without delay caused by network transmission. The disadvantage is that consistency is not always guaranteed, and a small amount of data may be lost in the event of a failure.

BASE: compared to the strict ACID feature of transactions, the NoSQL database guarantees the BASE feature. BASE is the ultimate consistency and soft transaction.

NoSQL database does not have a unified architecture, and the difference between the two NoSQL databases even far exceeds the difference between the two relational databases. It can be said that NoSQL has its own advantages, and a successful NoSQL must be particularly suitable for certain situations or applications, which will be far better than relational databases and other NoSQL.

Applicable scenario

NoSQL database is more suitable in the following cases: 1, the data model is relatively simple; 2, the need for a more flexible IT system; 3, higher requirements for database performance; 4, do not need a high degree of data consistency; 5, for a given key, it is easier to map complex values of the environment.

Current situation of development

Computer architecture requires a huge level of scalability in data storage, and NoSQL is committed to changing this situation. Google's BigTable and Amazon's Dynamo use NoSQL-type databases.

NoSQL projects don't have much in common in their names, but they are usually the same in some ways: they can handle huge amounts of data.

This revolution still needs to wait. True, NoSQL is not yet mainstream for large enterprises, but it is likely to change in a year or two. At the latest gathering of the NoSQL movement, 150 people from around the world packed a conference room in CBS Interactive. Share their experiences on how to overturn the tyranny of slow and expensive relational databases and how to use more efficient and cheaper ways to manage data.

"Relational databases impose too much on you. They force you to modify object data to meet the needs of RDBMS (relational database management system). In the view of NoSQL advocates, NoSQL-based alternatives" just give you what you need. "

Horizontal scalability (horizontal scalability) refers to the ability to connect multiple hardware and software, so that multiple servers can be logically treated as one entity.

Challenges

Although most NoSQL data storage systems have been deployed in practical applications, summing up their research status, there are still many challenging problems.

Most of the existing key-value database products are built autonomously for specific applications and lack of versatility.

The functions supported by existing products are limited (transaction features are not supported), which leads to some limitations in its application.

There have been some research results and improved NoSQL data storage systems, but they are all corresponding solutions for different application requirements, such as supporting intra-group transaction characteristics, flexible transactions, etc., rarely consider the versatility of the system as a whole, and do not form a series of research results.

Lack of strong theory (such as armstrong axiom system), technology (such as mature optimization strategy based on heuristics, two-stage blocking protocol, etc.) and standard specifications (such as SQL language) that similar relational databases have.

At present, HBase database is one of the NoSQL database products with the most perfect security features, while most other NoSQL databases do not provide built-in security mechanism, but with the development of NoSQL, more and more people begin to realize the importance of security, and some NoSQL products gradually begin to provide some security support.

With the development of cloud computing and Internet technology, big data exists widely and presents many new applications in the cloud environment, such as social network, mobile services, collaborative editing and so on. These new applications also put forward new requirements for massive data management or cloud data management system, such as transaction support, system flexibility and so on. At the same time, the design goals of massive data management system in cloud computing era are scalability, flexibility, fault tolerance, self-management and "strong consistency". At present, the existing system satisfies the scalability by supporting the optional addition and subtraction of nodes, ensures the fault tolerance of the system through the replica strategy, and realizes the self-management of the system based on monitoring status message coordination. The goal of "flexibility" is to meet the Pay-per-use model to improve the utilization of system resources. This feature is not perfect in existing typical NoSQL database systems, but it is a typical feature that cloud systems should have; "strong consistency" is mainly the requirement of new applications.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Database

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report