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.)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。