Database 핵심 용어 풀이
출처: SQL 전문가 가이드
- 개념적 데이터 모델링
추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델링 진행. 전사적 데이터 모델링, EA 수립시 많이 이용
- 격리성(Isolation)
실행 중인 트랜잭션의 중간결과를 다른 트랜잭션이 접근할 수 없다.
- 공유 Lock(Shared Lock)
데이터를 읽고자 할 때 사용하며, 다른 공유 Lock과는 호환되지만 배타적 Lock과는 호환되지 않는다.
- 관계
엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태
- 고챡 상태(Deadlock)
두 세션이 각각 Lock을 설정한 리소스를, 서로 엑세스하려고 마주보며 진행하는 상황을 말하며, 둘 중 하나가 물러나야 해결된다.
- 규칙기반 옵티마이저(Rule-based Optimizer)
미리 정해놓은 규칙에 따라 액서스 경로를 평가하고 실행계획을 선택해 주는 옵티마이저다.
- 낙관적 동시성 제어(Optimistic Concurrency Control)
사용자들이 같은 데이터를 동시에 수정하지 않을 것이라고 가정함으로써, 데이터를 읽을 때는 Lock을 설정하지 않는다. 대신 수정 시점에, 다른 사용자에 의해 값이 변경됐는지를 검사하는 동시성 제어 기법을 말한다.
- 논리적 데이터 모델링
시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계등을 정확하게 표현, 재사용성이 높음
- 다중버전 동시성 제어(Multiversion Concurrency Control, MVCC)
현재 진행 중인 트랜잭션에 의해 변경된 데이터를 읽고자 할 때는 변경 이전 상태로 되돌린 버전을 읽는 방식이다.
- 데이터 모델링
기업 업무에 대한 종합적인 이해를 바탕으로 데이터에 존재하는 업무 규칙(Business Rule)에 대하여 참 또는 거짓을 판별할 수 있는 사실을 어떻게, 누가 접근하는지를 정의 하고, 이에 대한 전산화와는 별개의 관점에서 이를 명확하게 표현하는 추상화 기법
- 데이터 독립성
ANSI/SPARC에서 제시한 외부단계와 개념적 단계, 내부적 단계로 구성된 서로 독립적인 데이터베이스 스키마 구조에서 외부와 개념, 개념과 내부 단계에 대한 독립성을 의미\
- 동시성 제어(Concurrency Control)
다수 사용자에 의한 다중 트랜잭션이 동시에 작동할 때 DBMS는 이들 트랜잭션의 상호 간섭 작용에서 데이터베이스를 보호할 수 있어야 하며, 이를 동시성 제어라고 한다.
- 동적 파티션 Pruning(Dynamic Partition Pruning)
액세스할 파티션을 실행 시점(Run-Time)에서야 결정한다. 파티션 키 컬럼을 바인드 변수로 조회하는 경우가 대표적이다. NLJoin할 때도 Inner 테이블이 조인 칼럼 기준으로 파티셔닝 돼 있으면 동적 Pruning이 작동한다.
- 디스크 소트(To-Disk Sort)
할당받은 소트 영역 내에서 정렬을 완료하지 못해 디스크 공간까지 사용하는 경우를 말하며, 'External Sort'라고도 한다.
- 메모리 소트(In-Memory Sort)
할당받은 소트 영역 내에서 정렬을 완료하는 것을 말하며, 'Internal Sort' 또는 'Optimal Sort'라고도 한다.
- 모델(Model)
모형, 축소형의 의미로 사람이 살아가면서 나타날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형
- 문장수준 읽기 일관성(Statement-Level Read Consistency)
다른 트랜잭션에 의해 데이터의 추가, 변경, 삭제가 발생하더라도 단일 SQL문 내에서 일관성 있게 값을 읽는 것을 말한다. 일관성 기준 시점은 쿼리 시작 시점이 된다.
- 물리적 데이터 모델링
실제로 데이터베이스에 이식할 수 있도록 저장공간, 성능 등 물리적인 성격을 고려하여 설계
- 반정규화(De-Normalization)
정규화된 엔터티, 속성, 관계에 대해 시스템의 성능 향상과 개발(Development), 운영(Maintenance)의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법
- 배타적 Lock(Exclusive Lock)
데이터를 변경하고자 할 때 사용되며, 어떤 모드의 Lock과도 호환되지 않는다.
- 버퍼 캐시 히트율(Buffer Cache Hit Ratio)
전체 읽은 블록 중에서 메모리 버퍼 캐시에서 찾은 비율을 말한다. 즉, 물리적인 디스크 읽기를 수반하지 않고 곧바로 메모리에서 블록을 찾은 비율로서, 구하는 공식은 다음과 같다.
버퍼 캐시 히트율 = (버퍼 캐시에서 곧바로 찾은 블록 수/ 총 읽은 블록 수) * 100
- 병렬 서버 프로세스
실제 병렬 작업을 수행하는 개별 프로세스를 말한다.
- 부분 범위 처리
쿼리 결과 집합을 전송할 때, 전체 데이터를 연속적으로 전송하지 않고 사용자로부터 Fetch Call이 있을 때마다 일정량씩 나누어서 전송하는 것을 말한다.
- 분산 데이터베이스
분산 데이터베이스는 데이터베이스를 연결하는 빠른 네트워크 환경을 이용하여 데이터베이스를 여러 지역, 여러 노드로 위치시켜 사용성/성능을 향상시킨 데이터베이스
- 블로킹(Blocking)
Lock 경합이 발생해 특정 세션이 작업을 진행하지 못하고 멈춰 선 상태를 말한다.
- 비관적 동시성 제어(Pessimistic Concurrency Control)
사용자들이 같은 데이터를 동시에 수정할 것이라고 가정함으로써, 데이터를 읽는 시점에 설정한 Lock을 트랜잭선이 완료될 때까지 유지하는 동시성 제어 기법을 말한다.
- 비식별자관계
부모로부터 받은 주식별자를 자식 엔터티의 주식별자가 아닌 일반 속성으로 이용하는 연관관계
- 비용(Cost)
쿼리를 수행하는데 소요될 것으로 예상되는 일량 또는 시간을 말한다.
- 비용기반 옵티마이저(Cost-based Optimizer)
비용을 기반으로 최적화를 수행하는 옵티마이저다. 여기서 '비용'이란, 쿼리를 수행하는데 소요되는 일량 또는 시간을 뜻한다.
- 비용 기반(Cost-based) 쿼리 변환
변환된 쿼리의 비용이 더 낮을 때만 그것을 사용하고, 그렇지 않을 때는 원본 쿼리 그대로 두고 최적화를 수행하는 것을 말한다.
- 선택도(Selectivity)
전체 대상 레코드 중에서 특정 조건에 의해 선택될 것으로 예상되는 레코드 비율을 말한다.
- 성능 데이터 모델링
데이터베이스 성능 향상을 목적으로 설계단계의 데이터 모델링 때부터 정규화, 반정규화, 테이블 통합, 테이블 분할, 조인구조, PK, FK 등 여러 가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것
- 소프트 파싱(Soft Parsing)
SQL과 실행계획을 캐시에서 찾아 곧바로 실행단계로 넘어가는 경우를 말한다.
- 속성
업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
- 식별자(Identifier)
여러 개의 집합체를 담고 있는 하나의 통에서 각각의 인스턴스를 구분할 수 있는 논리적인 이름
- 식별자 관계
부모로부터 받은 주식별자를 자식 엔터티의 주식별자로 이용하는 연관관계
- 실행계획(Execution Plan)
사용자의 질의를 처리하기 위한 방법과 절차를 표현한 것이다.
DBMS 내부적으로 옵티마이저에 의해 생성된 SQL 처리절차를 말한다.
- 엔터티
업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것
- 영속성(Durability)
트랜잭션이 일단 그 실행을 성공적으로 완료하면 그 결과는 데이터베이스에 영속적으로 저장된다.
- 옵티마이저(Optimizer)
사용자의 질의에 대해 최적의 실행 방법(실행계획)을 결정하는 모듈이다. 규칙 기반 옵티마이저와 비용기반 옵티마이저로 나눠진다.
- 원자성(Atomicity)
트랜잭션은 더 이상 분해가 불가능한 업무의 최소단위이므로, 전부 처리되거나 아예 하나도 처리되지 않아야 한다.
- 인덱스 손익분기점
인덱스에 의한 테이블 액세서와 테이블 전체 스캔의 수행 비용이 같아지는 지점을 말한다.
- 인스턴스(Instance)
SGA 공유 메모리 영역과 이를 액세스하는 프로세스 집합을 합쳐서 부르는 말이다.
- 일관성(Consistency)
일관된 상태의 데이터베이스에서 하나의 트랜잭션을 성공적으로 완료하고 나면 그 데이터베이스는 여전히 일관된 상태여야 한다. 즉, 트랜잭션 실행의 결과로 데이터베이스 상태가 모순되지 않아야 한다.
- 정규화(Normalization)
속성간의 함수적 종속, 다치종속, 조인종속에 의한 데이터처리(Insert, Update, Delete)의 이상현상(Anormaly)을 제거하여 정규형(Normal Form)을 만들어 나가는 데이터베이스 근간 이론
- 정적 파티션 Pruning(Static Partition Pruning)
액세스할 파티션을 컴파일 시점(Compile-Time)에 미리 결정한다. 파티션 키 칼럼을 상수 조건으로 조회하는 경우에 작동한다.