본문 바로가기

정보처리기사 실기

(90)
데이터베이스 용량 설계 데이터베이스 용량 설계 데이터가 저장될 공간을 정의하는 것 데이터베이스 용량을 설계할 때는 테이블에 저장할 데이터양과 인덱스, 클러스터 등이 차지하는 공간 등을 예측해 반영해야 한다. 데이터베이스의 용량을 정확히 산정해 디스크의 저장 공간을 효과적으로 사용하고 확장성 및 가용성을 높인다. -데이터 접근성을 향상시키는 설계 방법 테이블의 테이블스페이스와 인덱스의 테이블스페이스를 분리해 구성한다. 테이블스페이스와 임시 테이블스페이스를 분리해 구성한다. 테이블을 마스터 테이블과 트랜잭션 테이블로 분류한다.
파티션(Partition) 파티션(Partition) 대용량의 테이블이나 인덱스를 작은 논리적 단위로 나누는 것 종류 범위 분할(Range Partitioning) 지정한 열의 값을 기준으로 분할 해시 분할(Hash Partitioning) 해시 함수를 적용한 결과 값에 따라 데이터를 분할 조합 분할(Composite Partitioning) 범위 분할로 분할한 다음 해시 함수를 적용해 다시 분할 인덱스 파티션 : 파티션된 테이블의 데이터를 관리하기 위해 인덱스를 나눈 것
클러스터(Cluster) 클러스터(Cluster) 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법 클러스터링키로 지정된 컬럼 값의 순서대로 저장되고 여러 개의 테이블이 하나의 클러스터에 저장된다. 클러스터링 된 테이블은 데이터 조회 속도는 향상시키지만 데이터 입력, 수정 ,삭제에 대한 성능은 저하시킨다. 처리 범위가 넓은 경우에는 단일 테이블 클러스터링을 조인이 많이 발생하는 경우에는 다중 테이블 클러스터링을 사용한다.
트랜잭션(Transaction) 트랜잭션(Transaction) 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행돼야 할 일련의 연산들을 의미 특징 Atomicity (원자성) 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료되든지 아니면 전혀 반영되지 않도록 복구되어야 함 Consistency (일관성) 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함 Isolation (독립성) 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션이 실행중에 다른 트랜잭션의 연산이 끼어들수 없음 Durabilty (지속성) 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함
뷰(View) 뷰(View) 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주된다. CREATE문으로 정의 하고 DROP문으로 제거한다. 데이터의 논리적 독립성을 제공한다.
인덱스(Index) 인덱스(Index) 데이터 레코드를 빠르게 접근하기 위해 쌍으로 구성되는 데이터 구조 -인덱스 키의 순서에 따라 데이터가 정렬돼 저장되는 방식인 클러스터드 인덱스와 인덱스의 키 값만 정렬되어 있을 뿐 실제 데이터는 정렬되지 않는 방식인 넌클러스터드 인덱스가 있다. 종류 트리 기반 인덱스 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것으로 상용 DBMS에서는 트리 구조 기반의 B+ 트리 인덱스를 주로 활용 비트맵 인덱스 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환해 인덱스 키로 사용하는 방법 함수 기반 인덱스 컬럼의 값 대신 컬럼에 특정 함수나 수식을 적용해 산출된 값을 사용하는 것으로 B+트리 인덱스 또는 비트맵 인덱스를 생성해 사용 비트맵 조인 인덱스 다수의 조인된 객체로 구성된 인덱..
반정규화(Denormalization) 반정규화(Denormalization) 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 행위 방법 테이블 통합 두 개 테이블이 조인되는 경우가 많아 하나의 테이블로 합쳐 사용하는 것이 성능 향상에 도움이 될 경우 수행 테이블 분할 수평 분할(Horizontal Partitioning) : 레코드를 기준으로 테이블을 분할하는 것으로 레코드별로 사용 빈도의 차이가 큰 경우 사용 빈도에 따라 테이블을 분할 수직 분할(Vertical Partitioning) : 하나의 테이블에 속성이 너무 많은 경우 속성을 기준으로 테이블을 분할 중복 테이블 추가 여러 테이블에서 데이터를 추출해서 사용해야 하거나 다른 서버에 저장된..
논리 데이터 모델의 물리 데이터 모델로 변환 논리 데이터 모델의 물리 데이터 모델로 변환 엔티티(Entity)를 테이블로 변환 : 논리 데이터 모델에서 정의된 엔티티를 물리 데이터 모델의 테이블로 변환 슈퍼타입 기준 테이블 변환 : 서브타입을 슈퍼타입에 통합해 하나의 테이블로 변환 서브타입 기준 테이블 변환 : 슈퍼타입 속성들을 각각의 서브타입에 추가해 서브타입들을 개별적으로 테이블로 변환 개별타입 기준 테이블 변환 : 슈퍼타입과 서브타입들을 각각의 개별적인 테이블로 변환 속성을 컬럼으로 변환 : 논리 데이터 모델에서 정의한 속성을 물리 데이터 모델의 컬럼으로 변환 관계를 외래키로 변환 : 논리 데이터 모델에서 정의된 관계는 기본키와 이를 참조하는 외래키로 변환