2022. 6. 6. 13:41ㆍ정처기(필기)/데이터베이스 구축
(1) 데이터베이스 무결성
1. 데이터베이스 무결성 개념
- 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 성질
- 데이터의 무결성을 유지하는 것은 DBMS의 중요한 기능이며, 주로 데이터에 적용되는 연산에 제한을 두어 데이터의 무결성을 유지한다.
- 무결성은 권한이 있는 사용자로부터 데이터베이스를 보호한다.
2. 데이터베이스 무결성 종류
종류 | 설명 | 주요 기법 |
개체 무결성 |
한 엔터티에서 같은 기본 키를 가질 수 없거나, 기본 키의 속성이 NULL을 허용할 수 없는 제약조건 | 기본 키 유니크 인덱스 |
참조 무결성 |
외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키 값이나 NULL이어야 하는 제약조건 | 외래 키 |
사용자 무결성 |
사용자의 의미적 요구사항을 준수해야 하는 제약조건 | 트리거 사용자 정의 데이터 타입 |
키 무결성 | 한 릴레이션에 같은 키 값을 가진 튜플들을 허용할 수 없는 제약조건 | 유니크 |
(2) 컬럼 속성
1. 컬럼 개념
- 컬럼은 테이블을 구성하는 요소로, 데이터 타입 및 길이 등으로 정의된다.
2. 컬럼 구성요소
- 내장 데이터 형식 : 문자, 숫자, 시간, 대형 객체 등을 정의
- 확장 데이터 형식 : 행, 컬렉션, 사용자 정의, 데이터 형식 등을 지원
3. 컬럼 고려사항
- 타입에 따른 물리적 순서 조정 : 고정 길이 컬럼이고 NOT NULL인 컬럼은 앞편에 정의, 가변 길이 컬럼은 뒤편에 배치, NULL 값이 많을 것으로 예상되는 컬럼을 뒤편으로 배치
- DBMS별 물리적 순서조정 특성 : 물리적 순서 조정은 DBMS마다 차이가 있지만 값이 변경될 때 체인 발생을 억제하고 저장 공간의 효율적인 사용을 위해 필요
- 데이터 타입, 길이 지정 고려: 가변 길이 데이터 타입은 예상되는 최대 길이로 정의, 고정 길이 데이터 타입은 최소의 길이를 지정, 소수점 이하 자리 수의 정의는 반올림되어 저장되므로 정확성을 확인하고 정의
- 컬럼 간 비교 방법 : 비교 연산에서 두 컬럼 사이에 데이터 타입과 같은 길이를 사용
(3) 키
1. 키 개념
- 키는 데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성
2. 키 특성
- 유일성 : 식별자에 의해 엔터티 타입 내에 모든 엔터티들이 유일하게 구분
- 최소성 : 최소한의 속성으로 식별자 구성
▼ 키 종류
종류 | 설명 |
기본 키 | 테이블의 각 튜플들을 고유하게 식별하는 컬럼 |
대체 키 | 후보 키 중에서 기본 키로 선택되지 않은 키 |
후보 키 | 테이블에서 각 튜플들을 구별하는데 기준이 되는 컬럼 기본 키와 대체 키를 합친 키 |
슈퍼 키 | 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키 |
외래 키 | 테이블 간의 참조 데이터 무결성을 위한 제약 조건 한 릴레이션의 컬럼이 다른 릴레이션의 기본 키로 이용되는 키 |
(4) 반 정규화
1. 반 정규화 개념
- 반 정규화는 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법이다.
- 비정규화, 역정규화라고도 불린다.
2. 반 정규화 특징
- 장점 : 반 정규화된 데이터 구조는 성능 향상과 관리의 효율성이 증가
- 단점 : 데이터의 일관성 및 정합성 저하, 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음
▼ 반 정규화 기법
- 테이블
- 테이블 병합 - 1:1관계, 1:M관계를 통합하여 조인 횟수를 줄여 성능을 향상, 슈퍼타입/서브타입 테이블 통합 통해 성능 향상
- 테이블 분할 - 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라고 함(수평 분할 : 테이블 분할에 레코드를 기준으로 활용, 수직 분할 : 하나의 테이블이 가지는 컬럼의 개수가 증가하는 경우 활용)
- 중복 테이블 추가 - 대량의 데이터들에 대한 집계함수를 사용하여 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블을 추가(집계 테이블 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블 추가)
- 컬럼(컬럼 중복화) - 조인 성능 향상을 위한 중복 허용
- 관계(중복관계 추가) - 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법
(5) 물리 데이터 모델 품질 기준
1. 물리 데이터 모델 품질 개념
- 물리적 데이터 모델은 시스템 성능에 대해 직접적인 영향을 미치기 때문에 성능 문제를 사전에 검토하여 최소화하는 노력이 절대적으로 필요하다.
2. 물리 데이터 모델 품질 요소
요소 | 설명 |
정확성 | 데이터 모델이 표기법에 따라 정확하게 표현되었고, 업무 영역 또는 요구사항이 정확하게 반영되었음을 의미 |
완전성 | 데이터 모델의 구성요소에 누락을 최소화하고, 요구사항 및 업무영역 반영에 있어서 누락이 없음을 의미 |
준거성 | 준수되어야 할 요건들이 누락 없이 정확하게 준수되었음을 의미 |
최신성 | 데이터 모델이 현행 시스템의 최신 상태를 반영하고 있음을 의미 |
일관성 | 여러 영역에서 공통 사용되는 데이터 요소가 전사 수준에서 한 번만 정의되고 이를 여러 다른 영역에서 활용하면서, 모델 표현상의 일관성을 유지하고 있음을 의미 |
활용성 | 작성된 모델과 그 설명 내용이 이해관계자에게 의미를 충분하게 전달하면서, 설계 변경이 최소화되도록 유연하게 설계되어 있음을 의미 |
(6) 물리 E-R 다이어그램
1. 엔터티와 테이블의 물리 데이터 모델로 변환
엔터티 - 테이블 - 테이블
속성 - 컬럼 - 컬럼
주 식별자 - 기본 키 - 기본 키
외래 식별자- 외래 키 - 외래 키
관계 - 관계 - -
(7) CRUD 분석
1. CRUD 분석 개념
- CRUD 분석은 데이터베이스에 영향을 주는 생성, 읽기, 갱신, 삭제 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석하는 기법
2. CRUD 매트릭스 개념
- 프로세스와 데이터 사이에 관계 의존성을 CRUD로 표현한 매트릭스
▼CRUD 매트릭스 필요성
- 모델링 작업 검증 : 분석 단계의 데이터 모델과 프로세스 모델에 대한 작업 검증 역할을 수행
- 중요 산출물 : 시스템 구축 단계에서 애플리케이션 개발 시 필요하며 중요한 산출물
- 테스트 시 사용 산출물 : 애플리케이션을 객관적 자료를 사용하여 테스트 시 중요 테스트 케이스 역할을 수행
- 인터페이스 현황 파악 : 전체 업무의 인터페이스 파악이 가능
▼ CRUD 매트릭스 구성요소
- 엔터티 타입 : 프로세스에 영향을 받는 데이터(데이터베이스의 튜플 역할)
- 단위 프로세스 : 엔터티에 영향을 주는 업무 단위(데이터베이스의 트랜잭션 역할)
- CRUD : 프로세스가 엔터티에 주는 영향
(8) SQL 성능 튜닝
1. SQL 성능 튜닝 개념
- 최소의 자원을 이용하여 데이터베이스로부터 최적의 성능을 제공하도록 하는 개선활동
- 튜닝 결과에 따라 동일한 결과에 대해서 성능 차이가 크게 발생한다.
▼SQL 성능 튜닝 기법
- 옵티마이저 조정 : 옵티마이저의 실행계획을 점검 및 조정
- 힌트 사용 : 힌트를 사용해 원하는 실행계획으로 유도
- 부분 범위 처리 사용 : 일부만 액세스한 후 결과를 리턴해 빠른 응답을 제공
- 인덱스 활용 : 인덱스를 무용지물로 만드는 SQL을 수정
'정처기(필기) > 데이터베이스 구축' 카테고리의 다른 글
데이터 전환 - 데이터 전환 기술, 데이터 전환 수행, 데이터 정제 (0) | 2022.06.06 |
---|---|
물리 데이터베이스 설계 - 물리요소조사 분석, DB 물리 속성 설계 (0) | 2022.06.05 |
데이터 모델링 및 설계 (0) | 2022.06.04 |
관계 데이터베이스 모델 (0) | 2022.06.04 |
고급 SQL 작성 (0) | 2022.06.03 |