NoSQL - Week 9 Flashcards
Can a NoSQL database support SQL?
Yes, some support languages that look a bit like SQL
What does NoSQL revisit about relational databases?
- The provision of a declared schema
- Strict transactions
What is Data Integrity?
As enforced by a schema, and relied upon by applications
What are strict transactional semantics?
That concurrent programs do not lead to inconsistencies
What is important in enterprise applications, but may not be prioritised in all cases over scale and flexibility?
Data integrity and strict transactional semantics
What needs are NoSQL solutions typically associated with?
Elastic scaling, particularly the ability to grow rapidly for web-scale applications
Simple Operations, in particular accommodating data that tends to be accessed / updated in isolation
Examples: shopping carts, user profiles, blog posts, calendar data, product stock data, customer data, hotel availability, …
The queries don’t refer to all shopping carts or all product data, just to individual chunks
What kind of database is useful if you’re expecting 100,000 users but may get 100 million
NoSql
What are the 6 abilities that distinguish NoSQL databases?
- To horizontally scale the throughput of simple-operation workloads over many servers.
- To replicate and distribute data (through partitioning) over (thousands of) servers
- To expose a simple call-level interface or protocol
- To offer less strict transactional guarantees
- To use distributed indexes efficiently for replication-rich, elastic provision of data storage
- To cope with variations in the structure of objects stored.
What are the three types NoSQL databases are classified into?
Key-Value
Document
Wide Column
What is a key-value database?
Access or update a value given a key; the database doesn’t necessarily provide much functionality for the value e.g. queries
(Redis, Oracle NoSQL, Amazon DynamoDB)
What is a document database?
Access or update a document using a key; the database will provide functionality for accessing the value (e.g. queries)
Examples: Couchbase, MongoDB
What is a wide column database?
Access or update a collection of column families associated with a key (e.g. CustomerID links to contact details, sales details, marketing details)
Examples: Apache Cassandra, HBase
What is a Key-Value store?
Associate a key with some data.
It is the responsibility of the application to create and operate on the data.
What is the API for a key-value store?
Put(Key,Value)
Get(key)
Delete(key)
What is a BLOB?
Binary Large OBject