데이터 모델(Data Model): 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델이다.
데이터 모델 절차 (개/논/물)
- 개념적 데이터 모델
- 현실 세계에 대한 인식을 추상적 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델
- 주요 산출물로는 개체관계 다이어그램이 있음
- 논리적 데이터 모델
- 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델
- 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델이다.
- 논리적 데이터 모델링에서 정규화를 수행
- 물리적 데이터 모델
- 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 일련의 데이터 모델
- 성능 측면에서 반 정규화를 수행
논리적 데이터 모델링 종류
- 관계 데이터 모델
- 논리적 구조가 2차원 테이블 형태로 구성된 모델
- 기본키와 이를 참조하는 외래키로 관계 표현
- 계층 데이터 모델
- 논리적 구조가 트리형태로 구서된 모델
- 상하 관계가 존재한다.
- 네트워크 데이터 모델
- 논리적 구조가 그래프 형태로 구성된 모델
관계 데이터 모델 구성요소
- 릴레이션: 행과 열로 구성된 테이블
- 튜플(Tuple): 릴레이션의 행에 해당되는 요소
- 속성(Attribute): 릴레이션의 열에 해당되는 요소
- 카디널리티(Cardinality): 튜플의 수
- 차수(Degree): 속성의 수
- 스키마(Schema): 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
- 인스턴스(Instance): 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합
관계 대수: 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어이다.
관계 대수 연산자의 종류
- 일반 집합 연산자: 수학의 집합 개념을 릴레이션에 적용한 연산자이다
- 합집합, 교집합, 차집합, 카티션 프로덕트
- 순수 관계 연산자: 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자이다.
- 셀렉트, 프로젝트, 조인, 디비전
관계 해석: 관계 해석은 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어이다.
논리 데이터 모델링 속성 (개/속/관)
- 개체(Entity): 관리할 대상이 되는 실체
- 사물 또는 사건으로 정의된다
- 속성(Attributes): 관리할 정보의 구체적 항목
- 개체가 가지고 있는 요소 또는 성질이다.
- 관계(Relationship): 개체 간의 대응 관계
- 두 개체간의 관계를 정의한다.
개체 관계(E-R) 모델: E-R모델은 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델이다.
정규화(Normalization): 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정이다.
이상 현상(Anomaly): 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상이다.
데이터베이스 이상현상
- 삽입 이상: 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
- 삭제 이상: 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
- 갱신 이상: 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
데이터 베이스 정규화 단계 (원/부/이/결/다/조)
- 1정규형(1NF): 원자값으로 구성
- 테이블 내의 속성값은 원자값을 가지고 있어야 한다.
- 2정규형(2NF): 부분 함수 종석 제거(완전 함수적 종속 관계)
- 부분 관계를 갖는 경우 별도의 테이블로 두면 부분 함수 종속 관계가 제거 되어 2차 정규화를 만족한다.
- 3정규형(3NF): 이행함수 종속 제거
- A->B 이고 B->C 이면서 A->C 관계가 같이 있는 경우를 이행함수 종속 관계라고 한다.
- 보이스-코드 정규형(BCNF): 결정자 후보 키가 아닌 함수 종속 제거
- 4정규형(4NF): 다치 종속 제거
- 5정규형(5NF): 조인 종속 제거
- 조인 종속 관계를 제거하기 위해서는 모든 속성 관계에 대한 테이블을 만들어 줌으로써 조인했을 때 정확히 원래의 데이터로 복원할 수 있게 한다.
반 정규화(De-Normalization): 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법이다.
반 정규화 특징
- 장점: 반 정규화된 데이터 구조는 성능 향상과 관리의 효율성이 증가
- 단점: 데이터의 일관성 및 정합성 저하, 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음
반 정규화 기법 (테병분중 컬중 관중)
구분 | 수행방법 | 설명 |
테이블 | 테이블 병합 | 1:1관계, 1:M 관계를 통합하여 조인 횟수를 줄어 성능을 향상 슈퍼타입/서브타입 테이블 통합 통해 성능 향상 |
테이블 분할 | 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라고 함 수평분할: 테이블 분할에 레코드를 기준으로 활용 수직분할: 하나의 테이블이 가지는 컬럼의 개수가 증가하는 경우 활용 |
|
중복 테이블 추가 | 대량의 데이터들에 대한 집계함수를 사용하여 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블을 추가 | |
컬럼 | 컬럼 중복화 | 조인 성능 향상을 위한 중복 허용 |
관계 | 중복관계 추가 | 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법 |
'공부 > 정보처리기사' 카테고리의 다른 글
[8] 연계 데이터 구성, 연계 메커니즘, EAI / ESB (0) | 2021.10.03 |
---|---|
[7] 물리 데이터 저장소 설계, 데이터베이스, 데이터 마이닝 (0) | 2021.10.01 |
[5] UI 설계 (0) | 2021.09.28 |
[4] UI 요구사항 확인 (0) | 2021.09.28 |
[3] 요구사항 (요구공학 Requirements Engineering) (0) | 2021.09.27 |
댓글