-
Database Internals 1장을 읽으며 그린 마인드맵database 2024. 4. 8. 12:35
책: Database Internals
목차
Part 1 Storage Engines
1. Introduction and Overview
- DBMS Architecture
- Memory-Based vs Disk-Based DBMS
- Durability in Memory-Based Stores
- Column-oriented vs Row-oriented DBMS
- Row-Oriented Data Layout
- Column-Oriented Data Layout
- Distinctions and Optimizations
- Wide Column Stores
- Data Files and Index Files
- Data FIles
- Index Files
- Primary Index as an Indirection
- Buffering, Immutability, and Ordering
- Summary
2. B-Tree Basics
3. File Formats
4. Implementing B-Trees
5. Transaction Processing and Recovery
6. B-Tree Variants
7. Log-Structured Storage
Part 2 Distributed Systems
8. Introduction and Overview
9. Failure Detection
10. Leader Election
11. Replication and Consistency
12. Anti-Entropy and Dissemination
13. Distributed Transactions
14. Consensus
저장 방식 별, 기능 별 DB 종류, DB 엔진 아키텍처 그리고 내부 모듈들의 역할
테이블을 컬럼 단위, 로우 단위로 저장시 장단점, 인덱스 파일과 데이터 파일의 차이
총평
책 내용 측면
백엔드 개발을 하다보면 CRUD 작업을 하며 DB를 사용하는 경우가 많은데, 정작 DB가 어떤식으로 작동하는지에 대해서는 전혀 모르고 있었습니다. 인덱스, B-Tree 같은 키워드는 들어보았지만, 그것이 어떻게 이용되는지 까지는 몰랐습니다. 이 책을 읽으면서 DB는 실제로는 Transport Layer, Query Processor, Execution Engine, Storage Engine과 같은 다수의 서브 모듈들로 이루어져 있다는 것을 알게 되었습니다. 아직 큰 그림을 그려가고 있는 단계이기 때문에 완벽히 이해하진 못했지만 거대한 DB의 비밀을 조금씩 알아가고 있는 점이 재미있는 것 같습니다.
마인드맵 측면
제가 마인드맵을 그린 이유는 학습법 유튜버 Justin Sung의 공부법에 영향을 받았습니다. 미국 의대생인 그는 뇌의 신경망과 유사한 마인드맵이 지식을 구조화하는데 매우 효율적이라고 합니다. 그래서 저도 이렇게 공부하고 있습니다.
맥 기본앱인 Freeform으로 작업했습니다. 이 앱의 특징은 무한히 보드를 확장할 수 있다는 건데, 그러다보니 캡처를 할 때 여러번에 걸쳐 해야했습니다. 그래서 DB 아키텍처같은 경우 하나의 그림으로 캡쳐가 되면 좋은데 너무 크다보니 분리해서 캡쳐를 했습니다. 그래서 그릴 땐 편하지만 외부에 보여주기가 어려운 단점이 있었습니다.
그리고 글씨에 좀 더 신경을 써야겠습니다. 앱 내에서 볼 땐 확대해서 작업하다보니 글씨가 이상해도 읽을 수 있어 문제가 없었는데, 외부에서 볼 땐 확대가 어려울 수도 있으니 글씨 굵기를 줄이고 또박또박 작성해야겠습니다.