전체 글(104)
-
[DB] 5. 트랜잭션(Transaction)
트랜잭션(transaction)은 데이터베이스의 상태를 변경시키는 하나의 논리적 작업 단위를 의미한다.1. ACID트랜잭션은 4가지 성질을 충족해야 한다.1. 원자성 (Atomicity): 트랜잭션의 모든 연산(액션, action)이 수행되거나 수행되지 않아야 하는 성질2. 일관성 (Consistency): 3. 고립성 (Isolation): 여러 트랜잭션의 교차 수행 결과와 직렬 수행 결과가 동일해야 하는 성질4. 지속성 (Durability): 2. 스케줄(Schedule)- DBMS에서 트랜잭션은 일련의 작업(액션, action)들로 구성되어 있다. 트랜잭션의 작업에는 읽기(read), 쓰기(write), 완료(commit), 철회(abort)가 있다. - 스케줄은 (여러) 트랜잭션 실행 시 진행되..
2024.12.15 -
[DB] 4. 외부 정렬(External Sorting)
이번 글에서는 DB에서 자주 사용되고, 비용이 비싼 연산인 정렬에 대해 알아볼 것이다.탐색 키를 기준으로 한 정렬은 DBMS에서 자주 사용되는 연산이다. 대표적으로, 1. 인덱스 생성 시, 2. sort-merge 조인 시, 3. 중복 제거 시에 사용된다.1. 외부 합병 정렬(External Merge Sort)외부 합병 정렬은 이름에서 알 수 있듯이 합병 정렬 알고리즘의 아이디어(divide-and-conquer)를 기반으로 한 기법이다.외부 합병 정렬 알고리즘은 다음과 같다.1. 파일을 $N$개의 부분 파일로 분할한다.2. 부분 파일을 $b$개 씩 묶어 내부 정렬을 수행해 총 $\lceil N/b \rceil$개 부분 파일로 재구성한다.3. 부분 파일을 $b-1$개씩 묶어 정렬해 수행해 총 $\lce..
2024.12.14 -
[DB] 3. 질의 수행(Query Evaluation)
이번 글에서는 질의 수행 개요 즉, 질의를 어떻게 처리하는지에 대해 설명할 것이다.1. 시스템 카탈로그(System Catalog)관계형 DBMS는 파일의 메타데이터(metadata)를 시스템 카탈로그라는 테이블 집합에 저장 및 관리한다. 파일은 크게 테이블 파일과 인덱스 파일의 두 가지 유형이 존재한다. - 테이블 파일의 메타데이터: 테이블의 스키마와 튜플의 통계 정보(튜플 수, 분포)- 인덱스 파일의 메타데이터: 인덱스의 구조, 탐색 키, 인덱스 통계 정보(인덱스 크기, 높이, 범위) 시스템 카탈로그에는 계정 및 권한 정보와 같은 사용자 정보도 포함하고 있다.카탈로그 테이블에는 자신에 대한 정보도 기술하고 있다. (아래 표 1~4번 행 참고) 2. 연산자 수행(Operation Evaluation)..
2024.12.14 -
[DB] 2. 디스크 & 파일(Disk & File)
1. 디스크(Disk)- 디스크는 순차 접근(sequential access)가 아닌 직접 접근(direct access)를 지원한다.- 디스크는 데이터를 블록(block) 단위로 저장하며, 디스크와 메모리 간 데이터 전송도 블록 단위로 이루어진다. 접근 시간(I/O 비용) = 탐색 시간(Seek Time) + 회전 지연(Rotational Delay) + 전송 시간(Transfer Time)- 탐색 시간(Seek Time): 디스크 헤드가 원하는 블록의 트랙으로 이동하는 시간 (일반적으로 플래터의 지름에 비례)- 회전 지연(Rotational Delay): 원하는 블록이 디스크 헤드 아래로 올 때까지 플래터가 회전하는 시간- 전송 시간(Transfer Time): 블록의 데이터를 읽거나 쓰는 시간위 수..
2024.12.12 -
[DB] 1. 인덱싱(Indexing)
파일 구성(File organization)은 파일 내의 데이터 레코드(data record)를 배치하는 방법을 의미한다. 파일 구성 방법마다 효율적인 연산과 비효율적인 연산이 존재한다. 0. 디스크에 저장되는 데이터- 디스크의 입출력 단위는 페이지(page)다. 페이지의 I/O cost가 대부분의 DB 연산 비용을 차지하기 때문에, 해당 비용을 최소화하도록 BD를 최적화 해야 한다.- 디스크의 임의의 페이지 접근 비용은 모두 거의 동일하다. 다만, 순차적으로 나열되어 있는 여러 페이지는 무작위로 배치되어 있는 여러 페이지보다 빠르게 접근할 수 있다.- 각 데이터 레코드는 rid(record-id)라 불리는 식별자(identifier)를 가지고 있다. 이를 가지고 데이터 레코드를 포함하고 있는 페이지의 ..
2024.08.29 -
[NLP] Transformer
Transformer는 long-term dependency 문제를 해결하기 위해 RNN의 순환 구조를 버리고 attention 기법을 적극 활용한 모델이다. Encoder-Decoder AttentionRNN의 순환구조는 최근 입력 embedding vector에 치중된 context vector만 디코더로 넘겨준다. Attention 기법은 각 출력 시점마다 필요한 입력 embedding vector를 파악하고 이들로 context vector를 생성해 디코더로 전달한다. 구체적으로, 각 출력 시점마다 각 입력 embedding vector가 얼마나 중요한지를 파악(by dot product & softmax)하고, 중요도가 높은 입력 embedding vector에 더 큰 가중치를 부여하는 방식(..
2024.08.19