Computer Science

NoSQL Databases

NoSQL databases are a type of database management system that provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. NoSQL databases are designed to handle large volumes of data and are often used in big data and real-time web applications due to their flexibility and scalability.

Written by Perlego with AI-assistance

3 Key excerpts on "NoSQL Databases"

Index pages curate the most relevant extracts from our library of academic textbooks. They’ve been created using an in-house natural language model (NLM), each adding context and meaning to key research topics.
  • Social Data Analytics
    • Amin Beheshti, Samira Ghodratnama, Mehdi Elahi, Helia Farhood(Authors)
    • 2022(Publication Date)
    • CRC Press
      (Publisher)
    From the Variety point of view, the structured, semi-structured, and unstructured data generated on social media can be organized in various database management systems. For example, information stored in Relational Database Management Sys-tems (RDBMS) is known as structured data because it is represented in a strict format and has a specific Schema. RDBMSs use concepts such as Entity, Database, Tables, Rows, Columns, Primary Keys, Foreign Keys, and Joins to ensure that all data follows the structures and constraints specified in the schema. In an RDBMS, social data can be: (i) stored as a collection of tuples that groups attributes; and (ii) visualized as tables, where the tuples are the rows, and the attributes form the columns. Tables can be related to each other through specific columns, and each row in a table has at least one unique attribute. Structured Query Language (SQL) can be used to query and analyze the data persisted in a relational database. However, aiming to organize the social data, Relational Databases may have several challenges, including:
    • Storing large volumes of social data that often have little to no structure could be challenging and expensive.
    • Scaling Out and making the most of cloud computing and storage could be challenging and expensive.
    • Relational Databases will slow down Agile sprints.
    The above challenges highlight the need for a new generation of database management systems that are not based on the traditional Relational Database Model. To address this need, NoSQL Databases are introduced as non-tabular databases that scale-out easily and can persist large amounts of data, supporting from unstructured to semi-structured and structured data. The main types of NoSQL Databases include:
    • Key-Value Databases, which are conceptually the simplest of the NoSQL data models, where data will be stored as a collection of Key-Value pairs. The key is an identifier for a value, and can be anything such as Text, Document (XML/J-SON), or Image. The Key-Value Database does not attempt to understand the content of the value, and it is the role of the application to analyze and understand the content. It is essential to highlight that there are no Foreign Keys used in Key-Value Databases, and relationships cannot be tracked among keys at all. This feature greatly simplifies the work that the Database Management System (DBMS) must perform, making the Key-Value DB extremely fast and scalable. In such a database, Key-Value Pairs are typically organized into BUCKETs. A Bucket can roughly be thought of as the Key-Value Database equivalent of a table in RDBMSs. Key-Value must be unique within a bucket, but they can be duplicated across buckets. All queries are performed using the bucket and the key, which means it is impossible to query the data based on anything in the value component of the key-value pair. Operations on Key-Value databases are relatively simple and include GET (read), STORE (insert/update) and DELE’TE operations. Examples of Key-value databases include: Dynmo17 (developed by Amazon), Riak18 (developed by Basho), Redis19 (developed by Redis Labs), and Voldemort20
  • Creating Smart Enterprises
    eBook - ePub

    Creating Smart Enterprises

    Leveraging Cloud, Big Data, Web, Social Media, Mobile and IoT Technologies

    NoSQL suggests environments that combine traditional SQL (or SQL-like query languages) with alternative means of querying and access. NoSQL data systems hold out the promise of greater flexibility in database management while reducing the dependence on more formal database administration. NoSQL Databases have more relaxed modeling constraints, which may benefit both the application developer and the end-user analysts when their interactive analyses are not throttled by the need to cast each query in terms of a relational table-based environment.
    Different NoSQL frameworks are optimized for different types of analyses. For example, some are implemented as key-value stores, which nicely align to certain Big Data programming models, while another emerging model is a graph database, in which a graph abstraction is implemented to embed both semantics and connectivity within its structure. In fact, the general concepts for NoSQL include schemaless modeling, in which the semantics of the data are embedded within a flexible connectivity and storage model; this provides for automatic distribution of data and elasticity with respect to the use of computing, storage, and network bandwidth in ways that do not force specific binding of data to be persistently stored in particular physical locations. NoSQL Databases also provide for integrated data caching, which helps reduce data access latency and speed performance.
    The key_value store does not impose any constraints about data typing or data structure—the value associated with the key is the value, and it is up to the consuming business applications to assert expectations about the data values and their semantics and interpretation. This demonstrates the schemaless property of the model.
    A relatively simple type of NoSQL data store is a key_value store, a schemaless model in which distinct character strings called keys
  • Big Data Computing
    eBook - ePub

    Big Data Computing

    A Guide for Business and Technology Managers

    In the first decade of the twenty-first century, the proliferation of applications and platforms such as social media websites, large e-commerce companies, web search indexes, and cloud storage or backup led to a surge in the amount of data stored on large databases and massive servers. Some of the requirements of these new systems were not compatible with SQL relational DBMSs; it is quickly apparent that basic relational systems were not very suitable for many of these applications by the following reason:
    More complex data structures were needed for modeling the application than the simple relational representation.
    New data types were needed in addition to the basic numeric and character string types.
    New operations and query language constructs were necessary to manipulate the new data types.
    New storage and indexing structures were needed for efficient searching on the new data types.
    New types of database systems were necessary to manage these huge databases—systems that would provide fast search and retrieval as well as reliable and safe storage of nontraditional types of data, such as social media posts and tweets. The term NoSQL is generally interpreted as not only SQL, meaning that in systems that manage large amounts of data, some of the data is stored using SQL systems, whereas other data would be stored using NoSQL, depending on the application requirements.

    2.1.2.1 Data Models alias Database Models

    One fundamental characteristic of the database approach is that it provides some level of data abstraction. Data abstraction generally refers to the suppression of details of data organization and storage, and the highlighting of the essential features for an improved understanding of data. One of the main characteristics of the database approach is to -support data abstraction so that different users can perceive data at their preferred level of detail.
    A data model is a collection of concepts that can be used to describe the structure of a database—provides the necessary means to achieve this abstraction. The structure of a database means the data types, relationships, and constraints that apply to the data. Most data models also include a set of basic operations for specifying, retrievals, and updates on the database. Many data models have been proposed, which can be classified according to the types of concepts they use to describe the database structure: