• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/28

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

28 Cards in this Set

  • Front
  • Back

What is the major disadvantage of relational databases?

Impedance mismatch with the object model.

What are the two main types of scaling?

1. Vertical scaling (up)


2. Horizontal scaling (out)

What are RDBMS not designed to do?

Run on clusters of machines (distributed).

Name two examples of NoSQL databases.

1. Google Dynamo


2. Amazon BigTable

Name five common NoSQL database characteristics.

1. Does not use relational model


2. Runs well on clusters


3. Open source (not always)


4. Build for 21st century web applications


5. Schema-less

Name four main types of NoSQL databases.

1. Key-value


2. Document


3. Column store


4. Graph

What is an aggregate structure?

A collection of related objected to be treated as a unit. (nested lists etc)

What does a relational database not capture?

The structure of an aggregate.

What is an important characteristic of how aggregates are chosen?

Data related to a single aggregate should be maintained at the same cluster.

Name two benefits of NoSQL design.

1. Freedom and flexibility


2. Easier to deal with non-uniform data

Name a disadvantage of NoSQL design.

In practice most programs rely on schemata. Schema is moved from data store to application.

Name two method in which NoSQL distributes across the cluster.

1. Sharding


2. Replication

What is sharding?

Distributing data between nodes.

Sharding can improve performance for read & writes, what does it not improve?

Since sharding distributes data across many machines there is a larger chance of failure.

What is replication? What is it best for?

The process of maintaining multiple copies of data.




Best for read-intensive databases.

Name two replication schemes.

1. Master - Slave


2. Peer to Peer

How does master-slave replication work? What type of system is it bad for?

Master copy is definitive source. Read requests are handled by slaves.




Bad for write-intensive.

How does peer-to-peer replication work? Name the issue with this method.

All replicas accept writes and have equal weight.




Read/write inconsistency.

How do you fix inconsistencies with read/writes for sharding & replication?

Locks.

What is the caveat for 'aggregate oriented databases do support atomic transactions'?

Only within aggregates and not necessarily across aggregates.

What is replication inconsistency in distributed systems?




Over time, what happens?

Updates reach different replicas at different times.




They will eventually be consistent.

What is the CAP theorem?

Only possible to maintain 2/3 properties:




1. Consistency


2. Availability


3. Partition tolerance

What is partition tolerance in the CAP theorem?

The cluster can survive communication breakdowns that separate it into multiple parts.

Name four feature compared in NoSQL database types.

1. Consistency

2. Transactions


3. Query features


4. Scaling

What is a key-value database?

A key-value store has two columns (key | value).




The value in a key-value store is not understood by the store. It's the application's responsibility to understand it.

What is a document database?

They store documents (XML, JSON...).




Similar to key-value stores but the value is a document, and the document can be examined rather than just being fetched.

What is a column-family store database?

Column-families contain multiple related columns.

What is a graph database?



Nodes have properties such as name.


Edges have types such as likes.


-Edges can be set to bidirectional


-Different edges in the same graph can have different types


Traversing relationships in a graph database is fast