만들면서 배우는 DBMS 동작원리
2024년 03월 29일 출간
- eBook 상품 정보
- 파일 정보 pdf (3.02MB)
- ISBN 9791197882661
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 불가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)
판매가 5,000원
38% 할인 | 열람기간 : 14일쿠폰적용가 7,200원
10% 할인 | 5%P 적립이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
카드&결제 혜택
- 5만원 이상 구매 시 추가 2,000P
- 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
- 리뷰 작성 시, e교환권 추가 최대 200원
작품소개
이 상품이 속한 분야
따라서, 본서에서는 이미 공개되어 있는 거대한 오픈소스 즉, 예를 들어 PostgreSQL 과 같은 DBMS 의 소스 코드를 분석하기 보다, 최소한의 기능만 구현된 DBMS 를 직접 만들어 보면서, 그 내부 구조에 대해 이해도를 높이고 DBMS 를 더욱 더 활용할 수 있도록 하고자 합니다.
2. DBMS 를 한번 만들어 봅시다............................................... 9
2.1. 일반 DBMS 의 전체상과 본서에서 구현할 부분 ......................... 9
2.1.1. DBMS 각 Layer 의 역할 ................................................10
2.2. PUTTY DB..........................................................................12
2.2.1. 샘플코드.......................................................................12
2.2.2. Putty DB 의 기능 ..........................................................12
2.2.3. Putty DB 의 구조 ..........................................................14
2.2.4. Putty DB 의 사용방법 ....................................................15
3. DISK MANAGER 만들기 ...................................................17
3.1. DISK MANAGER 의 역할 ........................................................17
3.1.1. Page 와 Heap 파일 ......................................................17
3.1.2. 새로운 Page 만들기 ......................................................19
3.1.3. Heap 파일에 Page 쓰기 ................................................19
3.1.4. Heap 파일로부터 Page 읽기..........................................19
3.2. DISK MANAGER 의 구현 ........................................................20
3.2.1. Rust 개발환경 구축 .......................................................20
3.2.2. Disk Manager 구조체 ...................................................20
3.2.3. Open Method..............................................................23
3.2.4. allocate_page Method .................................................24
3.2.5. write_page_data Method .............................................25
3.2.6. read_page_data 메소드 ................................................26
4. BUFFER MANAGER 만들기 ...............................................27
4.1. BUFFER MANAGER 의 역할.....................................................27
4.1.1. 디스크 io 반응속도 지연 극복하기...................................27
4.1.2. DBMS 특성에 맞춘 Cache 관리 .....................................27
4.2. BUFFER MANAGER 의 구조.....................................................28
4.2.1. Buffer Manager 의 전체이미지.......................................28
4.2.2. Buffer Pool 의 내부구조 ................................................29
4.2.3. Page Table 이란 ...........................................................29
4.3. BUFFER POOL MANAGER 만들기.............................................30
4.3.1. Buffer Pool 구조체 .......................................................30
4.3.2. Buffer Pool Manager 의 구조체 .....................................32
4.3.3. Buffer 삭제 알고리즘 .....................................................32
4.3.4. 페이지 할당처리 ............................................................34
5. B+TREE 관찰 ..................................................................37
5.1. B-TREE 란..........................................................................37
5.2. B+TREE 의 기능 ..................................................................37
5.2.1. Leap node 와 Internal node .........................................38
5.2.2. 검색 프로세스 ...............................................................39
5.2.3. 삽입 프로세스 ...............................................................40
5.3. DBMS 관점의 B+TREE 의 이점 ..............................................41
5.3.1. 페이지 단위의 read/write 에 궁합이 좋음 ........................41
5.3.2. 삽입/검색/삭제 시에도 밸런스가 좋고 빠름.......................42
5.3.3. 범위 검색 및 열거가 장점...............................................42
5.4. B+TREE 를 KEY-VALUE 스토어로 사용하기 ..............................42
5.4.1. 테스트 데이터의 작성.....................................................43
5.4.2. 키로 검색하기 ...............................................................43
5.4.3. 모든 key-value 의 페어를 열거하기 ................................45
5.4.4. 시작점을 지정해서 key-value 의 페어를 열거하기 .............46
6. 테이블 구현......................................................................48
6.1. 어떻게 테이블을 B+TREE 에 넣을 것인가? ...............................48
6.1.1. Clustered Index...........................................................48
6.1.2. Row 를 primary key 와 그 외의 것으로 나누기................48
6.1.3. 복합 키의 Sort 순서.......................................................49
6.1.4. 테이블의 기능 ...............................................................50
6.2. 테이블을 구현하기 ...............................................................50
6.2.1. CREATE TABLE 이 가능하게 하기 ..................................50
6.2.2. INSERT 가 가능하게 하기 ..............................................52
6.2.3. 동작확인.......................................................................53
6.3. 테이블을 검색하기 ...............................................................56
6.3.1. 행을 열거하기 ...............................................................56
6.3.2. Primary Key 로 검색하기 ..............................................58
6.3.3. Primary Key 이외의 것으로 검색하기 .............................61
6.4. QUERY EXECUTOR 만들기.....................................................63
6.4.1. Query Executor 와 실행계획 .........................................63
6.4.2. SeqScan 구현하기 ........................................................64
6.4.3. Filter 구현하기 .............................................................68
6.4.4. 실행계획을 세워서 Query 를 실행하기 .............................69
7. 맺음말.............................................................................72
작가정보
저자(글) 다니엘몽크
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!
- 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
- 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
- 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
가장 와 닿는 하나의 키워드를 선택해주세요.
총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.
신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.
허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
있으니 유의하시어 신중하게 신고해주세요.
이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.
구매 후 90일 이내 작성 시, e교환권 100원 적립
eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.
차감하실 sam이용권을 선택하세요.
차감하실 sam이용권을 선택하세요.
선물하실 sam이용권을 선택하세요.
-
보유 권수 / 선물할 권수0권 / 1권
-
받는사람 이름받는사람 휴대전화
- 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
- 열람권은 1인당 1권씩 선물 가능합니다.
- 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
- 선물한 열람권의 등록유효기간은 14일 입니다.
(상대방이 기한내에 등록하지 않을 경우 소멸됩니다.) - 무제한 이용권일 경우 열람권 선물이 불가합니다.
첫 구매 시 교보e캐시 지급해 드립니다.
- 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
- 한 ID당 최초 1회 지급 / sam 이용권 제외
- 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
- 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)