Chapter 1 - Why NoSQL?
What does NoSQL stand for?
It was an accidental neologism
To handle the increase in data and traffic that requires more computing resources you can
Scale up or out
Application database
A database that is only directly accessed by a single application code base that is looked after by a single team
Which of the following is NOT generally true of NoSQL databases?
Built for 20th-century web estates
How does NoSQL handle consistency?
Consistency across the whole database inherently clashes with a cluster environment so NoSQL databases offer a range of options for consistency and distribution.
How do relational databases help handle concurrency?
Controlling all access to their data through transactions
Integration database definition
Database acts as an integration mechanism between application improving communication
There is a movement away from using databases as integration points towards
Encapsulating databases within application and integrated through services
Transactions play a role in?
Error handling Make a change with transactions, if an error occurs you can roll back the transaction
Application developers have been frustrated with _____ _____ between the relational model and the in-memory data structures
Impedance mismatch
The common problem where software data structures from memory do not persist easily into a database is called ______ ______
Impedance mismatch
Using a database to help multiple applications work together is called:
Integration
Relational databases have been successful technology for twenty years by providing:
Persistence, concurrency control, and integration mechanism
The most important result of the rise of NoSQL is
Polyglot persistence
Using different data stores based on the needs of an application, based on the circumstances, instead of always using the same kind of database is called ___ ____
Polyglot persistence
The vital factor for change in data storage was the need to support large volumes of data by
Running on clusters. Relational databases are not designed to run efficiently on clusters
Running separate servers for different sets of data is called _______. It must be controlled by the application, and has been called "unnatural acts" by those with experience using this method of relational databases.
Sharding
How do applications use the same data and updates made through one application to be visible to others?
Shared database integration where multiple applications store their data in a single database.
Clusters are
Small machines that can use commodity hardware that ends up being cheaper than scaling up (scaling out)
Relational databases saw off the challenge of impedance mismatch by
Stressing their role as an integration mechanism which is supported by a standard language known as SQL
Impedance mismatch has made it easier to deal with by
The wide availability of object-relational mapping frameworks
What is the definition of NoSQL?
There is no generally accepted definition, nor an authority to provide one.
How have relational databases succeeded?
They provide the core benefits in a mostly standard way.
The _____ mechanism has worked well to contain the complexity of concurrency with relational databases
Transaction
What is polyglot persistence?
Using different data stores in different circumstances
Which of the following are contributors to the rise of NoSQL?
a. Need to cluster database servers b. The rise of web services c. Growing number of users and amounts of data stored by organizations d. The difference between data structures in memory and database structure on disk
The common characteristics of NoSQL databases are
a. Not using the relational model b. Running well on clusters c. Open-source d. Built for the 21st century web estates e. schemaless
The most obvious value of a database is
getting at persistent data, keeping large amounts of persistent data. The database allows more flexibility than a file system in storing large amounts of data in a way that allows an application program to get small bits of that information quickly and easily.