1. 데이터 모델
1.1 데이터 모델 개념
현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델이다.
1.2 데이터 모델 절차
① 개념적 데이터 모델
- 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델
- 트랜잭션 모델링, View 통합방법 및 Attribute 합성 고려
- 개념적 데이터 모델은 DB 종류와 관계 없음
- 주요 산출물로는 개체관계 다이어그램
② 논리적 데이터 모델
- 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델
- 목표 DBMS에 맞는 스키마 설계, 트랜잭션 인터페이스를 설계
- 논리적 데이터 모델링에서 정규화 수행
- 논리적 데이터베이스 구조로 매핑(Mapping)
- 스키마의 평가 및 정제
③ 물리적 데이터 모델
- 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 일련의 데이터 모델
- 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조(물리 데이터 모델)로 변환
- 테이블, 인덱스, 뷰, 파티션 등 객체를 생성
- 응답시간, 저장 공간의 효율화, 트랜잭션 처리를 고려하여 설계
- 성능 측면에서 반 정규화를 수행
- 레코드 집중의 분석 및 설계 / 저장 레코드 양식 설계 / 접근 경로(Access Path) 설계
2. 논리 데이터 모델 검증
2.1 논리 데이터 모델 개념
개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델
2.2 논리적 데이터 모델링 종류
① 관계 데이터 모델
- 논리적 구조가 2차원 테이블 형태로 구성된 모델
- 기본 키와 이를 참조하는 외래 키로 관계 표현
- 1:1, 1:N, N:M 관계를 자유롭게 표현
② 계층 데이터 모델
- 논리적 구조가 트리 형태로 구성된 모델
- 상하관계 존재한다(부모 개체-자식 개체)
- 1:N 관계만 허용
③ 네트워크 데이터 모델
- 논리적 구조가 그래프 형태로 구성된 모델
- 상위와 하위 레코드 사이에 다대다(N:M) 관계를 만족하는 구조
2.3 관계형 데이터 모델
- 구성요소
① 릴레이션 : 행(Row)와 열(Column)로 구성된 테이블
② 튜플(Tuple) : 릴레이션의 행(Row)에 해당되는 요소
③ 속성(Attribute) : 릴레이션의 열(Column)에 해당되는 요소
④ 카디널리티(Cardinality) : 튜플(Row)의 수
⑤ 차수(Degree) : 애트리뷰트(Column)의 수
⑥ 스키마(Schema) : 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
⑦ 인스턴스(Instance) : 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합
- 표현 방법
① 데이터 간의 관계를 기본 키와 이를 참조하는 외래 키로 표현한다.
② 테이블 간 관계를 1:1, 1:N, N:M 관계로 목적에 맞게 표현한다.
- 관계 대수
관계형 데이트베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
- 관계 대수 연산자 종류
1. 일반 집합 연산자
① 합집합(R ∪ S) : 합병 가능한 두 릴레이션 R과 S의 합집합
② 교집합(R ∩ S) : 릴레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션 구성
③ 차집합(R - S) : R에 존재하고 S에 미 존재하는 튜플로 결과 릴레이션 구성
④ 카티션 프로덕트(R × S) : R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성
2. 순수 관계 연산자
① 셀렉트(Select) : 릴레이션 R에서 조건을 만족하는 튜플 반환
② 프로젝트(Project) : 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환
③ 조인(Join) : 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환
④ 디비전(Division) : 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환
- 관계 해석 : 관계 해석은 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어
2.4 논리 데이터 모델링 속성
2.4.1 개체
- 사물 또는 사건으로 정의되며 개체라고도 한다.
- 피터 챈 모델(Peter Chen Model)에서는 개체를 사각형(□)으로 표시한다.
- 까마귀발 모델(Crow's Foot Model)에서는 개체를 표 형식으로 표시한다.
2.4.2 속성
- 개체가 가지고 있는 요소 또는 성질이다.
- 피터 챈 모델(Peter Chen Model)에서는 속성을 타원형(○)으로 표시한다.
- 까마귀발 모델(Crow's Foot Model)에서는 속성을 표 내부으로 표시한다.
- 속성명은 단수형으로 명명한다.
- 개체명을 사용하지 않는다.
- 속성이 필수 사항(Not Null)인지, 필수 사항이 아닌지(Null) 고려하여 작성
2.4.3 관계
- 두 개체 간의 관계를 정의
- 피터 챈 모델(Peter Chen Model)에서는 관계는 마름모(◇)으로 표시한다.
- 까마귀발 모델(Crow's Foot Model)에서는 속성을 다음 표와 같이 표시한다.
2.5 개체-관계(E-R) 모델
2.5.1 개체-관계 모델(E-R) 개념
- E-R 모델은 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 사용되는 모델
- 요구사항으로부터 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델
2.5.2 개체-관계(E-R)모델 기호
구성 | 기호 | |
개체 | □ | (사각형) |
관계 | ◇ | (마름모) |
속성 | ○ | (타원) |
다중 값 속성 | ◎ | (이중타원) |
관계-속성 연결 | - | (선) |
2.6 정규화
2.6.1 정규화 개념
관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 확장성을 유지하기 위해 무손실 분해 과정
2.6.2 이상현상
이상 현상은 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상이다.
① 삽입 이상 : 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
② 삭제 이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
③ 갱신 이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
2.6.3 정규화 단계
① 1정규형(1NF) : 원자값으로 구성
② 2정규형(2NF) : 부분 함수 종속 제거(완전 함수적 종속 관계)
③ 3정규형(3NF) : 이행함수 종속 제거
④ 보이스-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거
⑤ 4정규형(4NF) : 다치(다중 값) 종속 제거
⑥ 5정규형(5NF) : 조인 종속 제거
2.7 반 정규화
2.7.1 반 정규화 개념
- 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
- 비정규화, 역정규화로 불린다.
2.7.2 반 정규화 특징
장점 | 단점 |
반 정규화된 데이터 구조는 성능 향상과 관리의 효율성 증가 | * 데이터 일관성 및 정합성 저하 * 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠수 있음 |
2.7.3 반 정규화 기법
구분 | 수행 방법 |
설명 |
테이블 | 테이블 병합 |
* 1:1 관계, 1:M 관계를 통합하여 조인 횟수를 줄여 성능을 향상 * 슈퍼타입/ 서브타입 테이블 통합 통해 성능 향상 |
테이블 분할 |
테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라 함 |
|
중복 테이블 추가 |
대량의 데이터들에 대한 집계함수(GROUP BY, SUM 등)를 사용하여 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블 추가 |
|
컬럼 | 컬럼 중복화 |
조인 성능 향상을 위한 중복 허용 |
관계 | 중복관계 추가 |
데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생 할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법 |
'Study > 정보처리기사' 카테고리의 다른 글
정보처리기사 실기 7강 - 통합 구현① (0) | 2021.09.25 |
---|---|
정보처리기사 실기 6강 - 데이터 입출력 구현② (0) | 2021.09.25 |
정보처리기사 실기 4강 - 화면설계 ② (0) | 2021.09.23 |
정보처리기사 실기 3강 - 화면설계 ① (0) | 2021.09.16 |
정보처리기사 실기 2강 - 요구사항 확인 ② (0) | 2021.09.15 |