2018-01-10

What are key design goals when building a DBMS?

support recovery from failures.

  • storage failure
  • End user failure/aborts.
  • server failure/software, power, catastrophe (distributed locations)...
    Support concurrency
  • give users/programmers illusion of being alone. (transactions)
    supporting high performance queries/updates indexing is one solution.
    Support "Big Data"
  • transactional system (data expires and then archived to anal sys),
  • analytic systems (data don't get expires)
  • how big is "big"? Depends GBs -> PBs
    Support data independence
  • the form of data is independent from computer systems.
  • typically done via a declarative programming language (SQL)+optimization algorithms that implement that.

What does a model DBMS arch look like?

From top to bottom
programming interface: more like a compiler, e.g., SQL->C ; -----> Logging & Recovery Mgr, also ----> concurrency control mgr
|
logical Optimizer: better ways of implement it (SQL) -----> catlog:
|
----------->catlog: stores metadata (data about the data) --- you might use a minidatabase to manage the catlog, SQLLite
|
physical optimizer: attach algorithms to the implementation, e.g., this type of join...choose the algorithm. ---> catlog
|
query execution engine --->catlog, also ---> Logging & Recovery Mgr
|
------------> Logging & Recovery Mgr <------>concurrency control mgr
|
index/file/record mgr typed bits ---> catlog, also ----> Logging & Recovery Mgr, also -----> concurrency control mgr
|

Buffer manager: untype bits 1. for high performance 2. Strong interaction between concurrency control and system recovery ----> concurrency control mgr
|
Persist. Storage: DBMS will often manage the persist storage at a very low level (the OS may not be reliable).

logging & recovery, concurrency control mgr <-> most nasty part, but ignored in our project. (will covered in the quiz.)

你可能感兴趣的:(2018-01-10)