물리 데이터베이스 모델링, DB반 정규화, 물리 데이터 모델 품질 검토

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:1관계, 1:M관계를 통합하여 조인 횟수를 줄여 성능을 향상, 슈퍼타입/서브타입 테이블 통합 통해 성능 향상
    2. 테이블 분할 - 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라고 함(수평 분할 : 테이블 분할에 레코드를 기준으로 활용, 수직 분할 : 하나의 테이블이 가지는 컬럼의 개수가 증가하는 경우 활용)
    3. 중복 테이블 추가 - 대량의 데이터들에 대한 집계함수를 사용하여 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블을 추가(집계 테이블 추가, 진행 테이블 추가, 특정 부분만을 포함하는 테이블 추가)
  2.  컬럼(컬럼 중복화) - 조인 성능 향상을 위한 중복 허용
  3. 관계(중복관계 추가) - 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법

 

더보기

(5) 물리 데이터 모델 품질 기준

1. 물리 데이터 모델 품질 개념

- 물리적 데이터 모델은 시스템 성능에 대해 직접적인 영향을 미치기 때문에 성능 문제를 사전에 검토하여 최소화하는 노력이 절대적으로 필요하다.

 

2. 물리 데이터 모델 품질 요소

요소 설명
정확성 데이터 모델이 표기법에 따라 정확하게 표현되었고, 업무 영역 또는 요구사항이 정확하게 반영되었음을 의미
완전성 데이터 모델의 구성요소에 누락을 최소화하고, 요구사항 및 업무영역 반영에 있어서 누락이 없음을 의미
준거성 준수되어야 할 요건들이 누락 없이 정확하게 준수되었음을 의미
최신성 데이터 모델이 현행 시스템의 최신 상태를 반영하고 있음을 의미
일관성 여러 영역에서 공통 사용되는 데이터 요소가 전사 수준에서 한 번만 정의되고 이를 여러 다른 영역에서 활용하면서, 모델 표현상의 일관성을 유지하고 있음을 의미
활용성 작성된 모델과 그 설명 내용이 이해관계자에게 의미를 충분하게 전달하면서, 설계 변경이 최소화되도록 유연하게 설계되어 있음을 의미

 

 

더보기

(6) 물리 E-R 다이어그램

1. 엔터티와 테이블의 물리 데이터 모델로 변환

엔터티 - 테이블 - 테이블

속성 - 컬럼 - 컬럼

주 식별자 - 기본 키 - 기본 키

외래 식별자- 외래 키 - 외래 키

관계 - 관계 - -

 

 

더보기

(7) CRUD 분석

1. CRUD 분석 개념

- CRUD 분석은 데이터베이스에 영향을 주는 생성, 읽기, 갱신, 삭제 연산으로 프로세스와 테이블 간에 매트릭스를 만들어서 트랜잭션을 분석하는 기법

 

2. CRUD 매트릭스 개념

- 프로세스와 데이터 사이에 관계 의존성을 CRUD로 표현한 매트릭스

 

▼CRUD 매트릭스 필요성

  • 모델링 작업 검증 : 분석 단계의 데이터 모델과 프로세스 모델에 대한 작업 검증 역할을 수행
  • 중요 산출물 : 시스템 구축 단계에서 애플리케이션 개발 시 필요하며 중요한 산출물
  • 테스트 시 사용 산출물 : 애플리케이션을 객관적 자료를 사용하여 테스트 시 중요 테스트 케이스 역할을 수행
  • 인터페이스 현황 파악 : 전체 업무의 인터페이스 파악이 가능

 

▼ CRUD 매트릭스 구성요소

  • 엔터티 타입 : 프로세스에 영향을 받는 데이터(데이터베이스의 튜플 역할)
  • 단위 프로세스 : 엔터티에 영향을 주는 업무 단위(데이터베이스의 트랜잭션 역할)
  • CRUD : 프로세스가 엔터티에 주는 영향

 

더보기

(8) SQL 성능 튜닝

1. SQL 성능 튜닝 개념

- 최소의 자원을 이용하여 데이터베이스로부터 최적의 성능을 제공하도록 하는 개선활동

- 튜닝 결과에 따라 동일한 결과에 대해서 성능 차이가 크게 발생한다. 

 

 

▼SQL 성능 튜닝 기법

  • 옵티마이저 조정 : 옵티마이저의 실행계획을 점검 및 조정
  • 힌트 사용 : 힌트를 사용해 원하는 실행계획으로 유도
  • 부분 범위 처리 사용 : 일부만 액세스한 후 결과를 리턴해 빠른 응답을 제공
  • 인덱스 활용 : 인덱스를 무용지물로 만드는 SQL을 수정