티스토리 뷰
<1강> DBMS 아키텍쳐 개요
1. 쿼리 평가 엔진
사용자로부터 입력받은 SQL 구문을 분석하고, 어떤 순서로 기억장치의 데이터에 접근할지를 결정
계획을 세우고 실행하는 DBMS의 핵심 기능을 담당하는 모듈
• 실행계획: 결정되는 계획
• 접근 메서드: 실행 계획에 기반을 둬서 데이터에 접근하는 방법
2. 버퍼 매니저
DBMS는 버퍼라는 특별한 용도로 사용하는 메모리 영역을 확보해두는데, 이 때 메모리 영역을 관리하는 것이 버퍼 매니저
3. 디스크 용량 매니저
데이터베이스는 데이터를 영구적으로 저장해야 하므로, 어디에 어떻게 데이터를 저장할지를 관리하며 데이터의 읽고 쓰기를 제어
4. 트랜잭션 매니저와 락 매니저
수많은 사람들이 동시에 데이터베이스에 접근해서 사용하므로, 트랜잭션의 정합성을 유지하면서 실행시키고, 필요한 경우 데이터에 락을 걸어 다른 사람의 요청을 대기시킴
5. 리커버리 매니저
시스템에 장애가 생기는 것을 대비하여 데이터를 정기적으로 백업하고, 문제가 일어났을 때 복구
<2강> DBMS와 버퍼
1. 기억장치의 계층
많은 데이터를 영속적으로 저장하려 하면 속도를 일고, 속도를 얻고자 하면 많은 데이터를 영속적으로 저장하기 힘들다.
2. DBMS와 기억장치의 관계
DBMS가 사용하는 대표적인 기억장치는 하드디스크, 메모리
• 하드디스크 (HDD)
기억장치 계층에서 한가운데에 있는 2차 기억장치
그렇게 좋은 장점도 없지만, 그렇게 나쁜 단점도 없는 매체로 대부분의 시스템에서 범용적으로 사용되는 미들웨어인 데이터베이스에서 주로 사용됨
• 메모리
디스크에 비해 기억 비용이 굉장히 비쌈
-> 데이터베이스 내부 데이터를 모두 메모리에 올리는 것은 불가능
가장 빠른 1차 기억장치
• 버퍼를 활용한 속도 향상
DBMS가 일부라도 데이터를 메모리에 올리는 것은 ‘성능향상’때문
-> SQL 구문의 실행 속도를 빠르게 만들기 위함
-> 자주 접근하는 데이터를 메모리 위에 올려둔다면, 같은 SQL구문을 실행한다고 해도 디스크에서 데이터를 가져올 필요 없이 곧바로 메모리에서 읽어 빠르게 데이터를 검색할 수 있음
성능향상을 목적으로 데이터를 저장하는 메모리를 ‘버퍼’ 또는 ‘캐시’라고 부름
-> 버퍼: 사용자와 저장소 사이에서 SQL구문의 디스크 접근을 줄여주는 완충제 역할
-> 캐시: 사용자와 저장소 사이에서 데이터 전송 지연을 완화시켜줌
-> 고속 접근이 가능한 버퍼에 데이터를 어떻게, 어느 정도의 기간동안 올릴지를 관리하는 것이 DBMS의 ‘버퍼 매니저’
3. 메모리 위에 있는 두 개의 버퍼
• 데이터 캐시
디스크에 있는 데이터의 일부를 메모리에 유지하기 위해 사용하는 메모리 영역
• 로그 버퍼
갱신 처리 (INSERT, DELETE, UPDATE, MERGE)와 관련 있음
DBMS는 갱신과 관련된 SQL구문을 사용자로부터 받으면, 일단 로그 버퍼 위에 변경 정보를 보내고 이후 디스크에 변경을 수행
'SQL' 카테고리의 다른 글
SQL 레벨업 - 3장 SQL의 조건분기 (1) | 2023.09.24 |
---|---|
SQL 레벨업 - 2장 SQL 기초 (1) | 2023.09.16 |
SQL - SQL 최적화 기본 원리 (0) | 2023.09.02 |
SQL - SQL활용 (0) | 2023.08.30 |
SQL - SQL기본(2) (0) | 2023.08.28 |
- Total
- Today
- Yesterday
- 백준
- 파이썬
- 회원탈퇴
- JPA
- 다이나믹 프로그래밍
- 스프링부트
- 영속
- SQL 레벨업
- 커뮤니티
- 스프링
- 준영속
- EnumType.ORDINAL
- 스프링 커뮤니티
- SQL
- 백준 파이썬
- 스프링 북마크
- 비영속
- 인텔리제이
- SQLD
- 자바
- 북마크
- 웹 MVC
- 로그아웃
- 지연로딩
- 로깅
- 자바 스프링
- 웹MVC
- elasticsearch
- 프론트엔드
- DP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |