Databases Flashcards

1
Q

Database functionality to consider when choosing

A
  1. Scale
  2. Operations
  3. Replication
  4. Transactions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Themes associated with SCALE

A
  • Vertical scaling
  • Horizontal scaling
  • Sharding
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Themes associated with OPERATIONS (cost of operating a database)

A
  • HW breakdowns
  • SW upgrades
  • EOL (End of Life)
  • Tweaking
  • Rebuild indexes
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Themes associated with REPLICATION

A
  • Read only replicas

- Disaster recovery replicas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Themes associated with TRANSACTIONS

A
  • ACID

- CAP theorem

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

NoSQL vs SQL

A

todo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

SQL DBs on the market (2020)

A
  • Google’s Cloud Spanner “no compromise database”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

NoSQL DBs on the market (2020)

A

todo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Google’s Cloud Spanner

A

Pros

  • Relational semantics w/ Schemas, ACID transactions, SQL
  • Horizontal scale (99.999% SLA) –> grow to arbitrarily large number of instances

Cons

  • hard to “lift and shift” for migration
  • application is responsible for a lot

more info: https://www.youtube.com/watch?v=rRVmg5t6TZs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

RDBMS

A

Relational Database Management System

RDBMSs use SQL (and variants of SQL) to manage data in large tables.

e.g. MySQL, PostreSQL, Oracle DB, SQL Server

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

ORM

A

Object-relational mapping

A programming technique for converting data between incompatible type systems using object-oriented programming languages.

It’s the idea of being able to write queries (e.g. SELECT * FROM users WHERE email = ‘test@test.com’;) using the ORM paradigm of your preferred programming language (INSTEAD of using SQL)

“ORM” generally refers to a library qhich implements this technique.

https://blog.bitsrc.io/what-is-an-orm-and-why-you-should-use-it-b2b6f75f5e2a

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Google Cloud Platform DB Options

A

In-Memory
- Cloud Memorystore (managed redis)

Non-relational

  • Cloud Datastore/Cloud Firestore (serverless, document database service)
  • Cloud Bigtable (Wide-column database service)

Relational

  • Cloud SQL (Managed MySQL & PostgreSQL)
  • Cloud Spanner (Scalable relational database service)

Object
- Cloud Storage (Object storage, data lake)

Warehouse
- BigQuery (Enterprise data warehouse)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Bigtable (Google Cloud)

A

non-relational cloud DB offered by google cloud. Super high throughput, low latency reads & writes

Good for IoT data, streaming data, time series data, backend store for graph stores.

  • *Scaling: Horizontally scalable
  • *Replication: eventually consistent
  • *Queryability: point lookup or table scan
How well did you know this?
1
Not at all
2
3
4
5
Perfectly