본문 바로가기

추천 검색어

실시간 인기 검색어

만들면서 배우는 DBMS 동작원리

Rust 로 나만의 DBMS 만들기
스타더스트

2024년 03월 29일 출간

(개의 리뷰)
( 0%의 구매자)
eBook 상품 정보
파일 정보 pdf (3.02MB)
ISBN 9791197882661
지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
교보eBook App 듣기(TTS) 불가능
TTS 란?
텍스트를 음성으로 읽어주는 기술입니다.
  • 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
  • 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.

PDF 필기가능 (Android, iOS)
  • sam 무제한 이용가능
  • sam 프리미엄 이용가능

이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.

작품소개

이 상품이 속한 분야

웹 어플리케이션에 있어 절대로 빼놓을 수 없는 DBMS 는, 중요한 시스템임에도 불구하고 그 시스템의 구성이 복잡한 탓에 DBMS 가 제공하는 기능을 모두 구사하기 어려운 시스템입니다. 게다가, 실용적인 DBMS 의 코드량은 많기도 많지만 그 내용이 학습을 목적으로 공부하기에는 적합하지도 않습니다.
따라서, 본서에서는 이미 공개되어 있는 거대한 오픈소스 즉, 예를 들어 PostgreSQL 과 같은 DBMS 의 소스 코드를 분석하기 보다, 최소한의 기능만 구현된 DBMS 를 직접 만들어 보면서, 그 내부 구조에 대해 이해도를 높이고 DBMS 를 더욱 더 활용할 수 있도록 하고자 합니다.
1. 들어가기 앞서.................................................................... 8
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)

Klover리뷰 안내
Klover(Kyobo-lover)는 교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1. 리워드 안내
구매 후 90일 이내에 평점 작성 시 e교환권 100원을 적립해 드립니다.
  • - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • - 리워드는 1,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (5,000원 이상 상품으로 변경 예정, 2024년 9월 30일부터 적용)
  • - 리워드는 한 상품에 최초 1회만 제공됩니다.
  • - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
2. 운영 원칙 안내
Klover리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다. 일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

구매 후 리뷰 작성 시, e교환권 100원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여 주는 교보문고의 새로운 서비스 입니다. 교보eBook 앱에서 도서 열람 후 문장 하이라이트 하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 ‘좋아요’ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보없이 삭제될 수 있습니다.
리워드 안내
  • 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
  • e교환권은 적립일로부터 180일 동안 사용 가능합니다.
  • 리워드는 1,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (5,000원 이상 eBook으로 변경 예정, 2024년 9월 30일부터 적용)
  • 리워드는 한 상품에 최초 1회만 제공됩니다.
  • sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.

구매 후 문장수집 작성 시, e교환권 100원 적립

    교보eBook 첫 방문을 환영 합니다!

    신규가입 혜택 지급이 완료 되었습니다.

    바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
    지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

    교보e캐시 1,000원
    TOP
    신간 알림 안내
    만들면서 배우는 DBMS 동작원리 웹툰 신간 알림이 신청되었습니다.
    신간 알림 안내
    만들면서 배우는 DBMS 동작원리 웹툰 신간 알림이 취소되었습니다.
    리뷰작성
    • 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
    • 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
    • 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
    감성 태그

    가장 와 닿는 하나의 키워드를 선택해주세요.

    사진 첨부(선택) 0 / 5

    총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.

    신고/차단

    신고 사유를 선택해주세요.
    신고 내용은 이용약관 및 정책에 의해 처리됩니다.

    허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
    있으니 유의하시어 신중하게 신고해주세요.


    이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.

    문장수집 작성

    구매 후 90일 이내 작성 시, e교환권 100원 적립

    eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.

    P.
    만들면서 배우는 DBMS 동작원리
    Rust 로 나만의 DBMS 만들기
    저자 모두보기
    저자(글)
    낭독자 모두보기
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 이용권입니다.
    차감하실 sam이용권을 선택하세요.
    sam 이용권 선택
    님이 보유하신 프리미엄 이용권입니다.
    선물하실 sam이용권을 선택하세요.
    결제완료
    e캐시 원 결제 계속 하시겠습니까?
    교보 e캐시 간편 결제
    sam 열람권 선물하기
    • 보유 권수 / 선물할 권수
      0권 / 1
    • 받는사람 이름
      받는사람 휴대전화
    • 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
    • 열람권은 1인당 1권씩 선물 가능합니다.
    • 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
    • 선물한 열람권의 등록유효기간은 14일 입니다.
      (상대방이 기한내에 등록하지 않을 경우 소멸됩니다.)
    • 무제한 이용권일 경우 열람권 선물이 불가합니다.
    이 상품의 총서 전체보기
    네이버 책을 통해서 교보eBook 첫 구매 시
    교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 네이버 책을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)
    구글바이액션을 통해서 교보eBook
    첫 구매 시 교보e캐시 지급해 드립니다.
    교보e캐시 1,000원
    • 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
    • 한 ID당 최초 1회 지급 / sam 이용권 제외
    • 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
    • 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)