4/18/2018
History
• So far the databases we discussed are all SQL based (Structured
Introduction to NoSQL Query Languages).
• SQLs work on relational databases, each of which consists of a
Database Systems collection of tables (relations).
Professor Xiannong Meng
• However, there are huge collection of information, especially on the
web that do not fit into this model, e.g., documents, free texts,
Bucknell University images, videos, and others.
Spring 2018 • This is where NoSQL database comes to play a important role.
Information adopted from Wikipedia • The term was originated in the 60s, gaining wide popularity in the
[Link] early 21st century as the needs of web 2.0 companies rise.
What is a NoSQL database? Why NoSQL databases?
• A NoSQL (originally referring to “non SQL” or “non • Motivations
relational”) database provides a mechanism for storage and • Simplicity of design
retrieval of data that is modeled in means other than the • Simpler horizontal scaling to clusters of machines (distributed
tabular relations used in relational databases (SQL systems)
databases). • Finer control over availability
• Structural flexibility tailoring to different problems
[Link]
Barriers for NoSQL databases Types and Examples of NoSQL Databases
• Barriers for greater adoption of NoSQL databases • There are a variety approaches to classify NoSQL databases. What
• Compromising consistency in favor of availability, partition tolerance, and follows is a basic classification by data model.
speed; • Column : A column of a distributed data store is a NoSQL object of the lowest
• Use of low-level query languages instead of SQL; level in a keyspace. It is a tuple consisting of three elements
• Lack of standard interfaces; • Unique name
• Huge previous investments in existing relational databases. • Value [Link]
• Timestemp
• Examples include Accumulo, Cassandra, Druid, HBase, Vertica.
1
4/18/2018
Types and Examples Types and Examples
• Document database : A document-oriented database, or document • Key-value database : A data storage paradigm designed for storing,
store, is a computer program designed for storing, retrieving and retrieving, and managing associative arrays, a data structure more
managing document-oriented information. commonly known today as a dictionary or hash.
• Document-oriented databases are one of the main categories of NoSQL • Examples include Aerospike, Apache Ignite, ArangoDB, Couchbase, Dynamo,
databases, and the popularity of the term "document-oriented database" has FairCom c-treeACE, FoundationDB, InfinityDB, MemcacheDB, MUMPS, Oracle
grown with the use of the term NoSQL itself. XML databases are a subclass of NoSQL Database, OrientDB, Redis, Riak, Berkeley DB, SDBM/Flat File dbm,
document-oriented databases that are optimized to work with XML ZooKeeper.
documents. Graph databases are similar, but add another layer, the
relationship, which allows them to link documents for rapid traversal.
• Examples include Apache CouchDB, ArangoDB, BaseX, Clusterpoint,
Couchbase, Cosmos DB, IBM Domino, MarkLogic, MongoDB, OrientDB, Qizx,
RethinkDB
Types and Examples Types and Examples
• Graph database : A database that uses graph structures for semantic • Multi-model database : A database model that supports multiple
queries with nodes, edges and properties to represent and store data. data models against a single, integrated backend.
• Examples include AllegroGraph, ArangoDB, InfiniteGraph, Apache Giraph, • Examples include Apache Ignite, ArangoDB, Couchbase, FoundationDB,
MarkLogic, Neo4J, OrientDB, Virtuoso. InfinityDB, MarkLogic, OrientDB.
MongoDB
• We will concentrate on one such example, MongoDB, a document-
based database.
• We’ll discuss the basic ideas of MongoDB
• We’ll implement a MongoDB to support some basic information
needs
• We’ll also learn how to program MongoDB through Python