031 데이터 모델의 개념
◈ 데이터 모델의 정의
- 현실세계의 정보들을 컴퓨터에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현한 개념적 모형
◈ 데이터 모델의 구성 요소
1) 개체(Entity)
- 데이터베이스에 표현하려는 것
- 사람이 생각하는 개념이나 정보 단위 같은 현실 세계의 대상체
2) 속성(Attribute)
- 데이터의 가장 작은 논리적 단위
- 파일 구조상의 데이터 항목 또는 데이터 필드
3) 관계(Relationship)
- 개체 간의 관계 또는 속성 간의 논리적인 연결
◈ 데이터 모델의 종류
1) 개념적 데이터 모델
- 현실세계에 대한 인간의 이해를 돕기 위해 현실 세계에 대한 인식을 추상적인 개념으로 표현 과정
2) 논리적 데이터 모델
- 개념적 모델링 과정에서 얻은 개념적 구조를 컴퓨터가 이해하고 처리할 수 있는 컴퓨터 세계의 환경에 맞도록 변환하는 과정
3) 물리적 데이터 모델
- 실제 컴퓨터에 데이터가 저장되는 방법을 정의하는 물리 데이터베이스 설계 과정
◈ 데이터 모델에 표시할 요소
1) 구조(Structure)
- 논리적으로 표현된 개체 타입들 간의 관계로서 데이터 구조 및 정적 성질 표현
2) 연산(Operation)
- DB에 저장된 실제 데이터를 처리하는 작업에 대한 명세, 데이터베이스를 조작하는 기본 도구
3) 제약 조건(Constraint)
- 실제 데이터의 논리적인 제약 조건
032 이상/함수적 종속/정규화
◈ 이상(Anomaly)의 개념 및 종류
- 테이블에서 일부 속성들의 종속으로 인해 데이터의 중복(Redundancy)이 발생하고 이르 중복으로 인해 테이블 조작 시 문제가 발생하는 현상
- 이상의 종류
① 삽입 이상(Insertion Anomaly) : 데이터 삽입 시 의도와 다른 값들도 삽입됨
② 삭제 이상(Delete Anomaly) : 데이터 삭제 시 의도와 다른 값들도 연쇄 삭제됨
③ 갱신 이상(Update Anomaly) : 속성값 갱신 시 일부 튜플만 갱신되어 모순 발생
◈ 함수적 종속의 개요
- 어떤 테이블 R에서 X와 Y를 각각 R의 속성 집합의 부분 집합이라 할 때 속성 X의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어 있을 때 Y는 X에 함수적 종속 또는 X가 Y를 함수적으로 결정한다고 하고 X → Y로 표기
- X → Y의 관계를 갖는 속성 X와 Y에서 X를 결정자(Determinant)라고 하고 Y를 종속자(Dependent)라고 함
1) 완전 함수적 종속
- 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대해 함수적 종속이면서 속성 집합 X의 어떠한 진부분 집합 Z(Z ⊂ X)에도 함수적 종속이 아닐 때 속성 Y는 속성 집합 X에 완전 함수적 종속이라고 함
2) 부분 함수적 종속
- 어떤 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대하 함수적 종속이면서 속성 집합 X의 임의의 진부분 집합에 대해 함수적 종속일 때 속성 Y는 속성 집합 X에 부분 함수적 종속이라고 함
◈ 정규화의 개요
1) 1NF(제1정규형)
- 도메인이 원자값
- 발생할 수 있는 이상
* 갱신 이상, 삭제 이상
2) 2NF(제2정규형)
- 부분적 함수 종속 제거
- 발생할 수 있는 이상
* 삽입 이상, 갱신 이상, 삭제 이상
3) 3NF(제3정규형)
- 이행적 함수 종속 제거
- 발생할 수 있는 이상
* 삽입 이상, 갱신 이상, 삭제 이상
4) BCNF
- 결정자이면서 후보키가 아닌 것을 제거
- 발생할 수 있는 이상
* 삽입 이상, 갱신 이상, 삭제 이상
5) 4NF(제4정규형)
- 다치 종속
6) 5NF(제5정규형)
- 모든 조인 종속이 후보키를 통해서만 성립
033 논리 데이터 모델의 물리 데이터 모델로 변환
◈ 논리 데이터 모델의 물리 데이터 모델로 변환의 개요
1) 엔티티(Entity)를 테이블로 변환
- 논리 데이터 모델에서 정의된 엔티티를 물리 데이터 모델의 테이블로 변환
2) 슈퍼타입 기준 테이블 변환
- 서브타입을 슈퍼타입에 통합하여 하나의 테이블로 변환
3) 서브타입 기준 테이블 변환
- 슈퍼타입 속성들을 각각의 서브타입에 추가하여 서브타입들을 개별적인 테이블로 변환
4) 개별타입 기준 테이블 변환
- 슈퍼타입과 서브타입들을 각각의 개별적인 테이블로 변환
5) 속성을 컬럼으로 변환
- 논리 데이터 모델에서 정의한 속성을 물리 데이터 모델의 컬럼으로 변환
6) 관계를 외래키로 변환
- 논리 데이터 모델에서 정의된 관계는 기본키와 이를 참조하는 외래키로 변환
034 반정규화(Denormalization)
◈ 반정규화의 개념
- 반정규화란 시스템의 성능 향상, 개발 및 운영의 편의성 등을 위해 정규화된 데이터 모델을 통합, 중복, 분리하는 과정으로 의도적으로 정규화 원칙을 위배하는 행위
◈ 반정규화 방법
1) 테이블 통합
- 두 테이블이 조인되는 경우가 많아 하나의 테이블로 합침
2) 테이블 분할
- 테이블을 수직 또는 수평으로 분할
* 수평 분할 : 레코드를 기준으로 테이블을 분할하는 것으로 레코드별로 사용 빈도의 차이가 큰 경우 사용 빈도에 따라 테이블을 분할
* 수직 분할 : 하나의 테이블에 속성이 너무 많을 경우 속성을 기준으로 테이블을 분할
3) 중복 테이블 추가
- 여러 다른 테이블을 사용해야 하는 경우 중복 테이블 추가
4) 중복 속성 추가
- 조인해서 데이터를 처리할 때 자주 사용하는 속성 추가
035 인덱스 설계
◈ 인덱스(Index) 개념
- 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조
- 클러스터드 인덱스(Clustered Index) : 인덱스 키의 순서에 따라 데이터가 정렬되어 저장되는 방식
- 넌클러스터드 인덱스(Non-Clustered Index) : 인덱스의 키 값만 정렬되어 있을 뿐 실제 데이터는 정렬되지 않는 방식
◈ 인덱스의 구분
1) 트리 기반 인덱스
- 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것으로 상용 DBMS에서는 트리 구조 기반의 B+ 트리 인덱스를 주로 활용
2) 비트맵 인덱스
- 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법
3) 함수 기반 인덱스
- 컬럼의 값 대신 컬럼에 특정 함수나 수식을 적용하여 산출된 값을 사용하는 것으로, B+ 트리 인덱스 또는 비트맵 인덱스를 생성하여 사용
4) 비트맵 조인 인덱스
- 비트맵 조인 인덱스는 다수의 조인된 객체로 구성된 인덱스로 단일 객체로 구성된 일반적인 인덱스와 액세스 방법이 다름
5) 도메인 인덱스
- 개발자가 필요한 인덱스를 직접 만들어 사용하는 것으로 확장형 인덱스라고도 함
036 뷰 설계
◈ 뷰(View)의 개요
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블
- 뷰는 저장장치 내에 물리적으로 존재하지 않지만 사용자에게는 있는 것처럼 간주됨
- CREATE문으로 정의하고 DROP문으로 제거
- 데이터의 논리적 독립성을 제공
037 클러스터 설계
◈ 클러스터(Cluster)의 개요
- 클러스터는 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법
- 클러스터링키로 지정된 컬럼 값의 순서대로 저장되고 여러 개의 테이블이 하나의 클러스터에 저장
- 클러스터링 된 테이블은 데이터 조회 속도는 향상시키지만 데이터 입력, 수정, 삭제에 대한 성능은 저하
- 처리 범위가 넓은 경우에는 단일 테이블 클러스터링을, 조인이 많이 발생하는 경우에는 다중 테이블 클러스터링을 사용
038 파티션 설계
◈ 파티션(Partition)의 개요
- 데이터베이스에서 파티션은 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
◈ 파티셔닝 방식에 따른 파티션의 종류
1) 범위 분할
- 지정한 열의 값을 기준으로 분할
2) 해시 분할
- 해시 함수를 적용한 결과 값에 따라 데이터를 분할
3) 조합 분할
- 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식
039 데이터베이스 용량 설계
◈ 데이터베이스 용량 설계
- 데이터베이스 용량 설계는 데이터가 저장될 공간을 정의하는 것
- 데이터베이스 용량을 설계할 때는 테이블에 저장할 데이터양과 인덱스, 클러스터 등이 차지하는 공간 등을 예측하여 반영해야 함
- 데이터베이스의 용량을 정확히 산정하여 디스크의 저장 공간을 효과적으로 사용하고 확장성 및 가용성을 높임
◈ 데이터 접근성을 향상시키는 설계 방법
- 테이블의 테이블스페이스와 인덱스의 테이블스페이스를 분리하여 구성
- 테이블스페이스와 임시 테이블스페이스를 분리하여 구성
- 테이블을 마스터 테이블과 트랜잭션 테이블로 분류
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리 실무] 5장 서버 프로그램 구현 (0) | 2021.02.11 |
---|---|
[정보처리 실무] 4장 통합 구현 (0) | 2021.02.11 |
[정보처리 실무] 2장 요구사항 확인 (0) | 2021.02.11 |
[정보처리 실무] 1장 프로그래밍 언어 활용 (0) | 2021.02.11 |
정보처리기사 실기 정리 (0) | 2021.02.11 |
댓글