1. 데이터 모델
데이터 모델(Data Model) 개념
- 데이터 모델은 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델이다
데이터 모델 표시
연산(Operation) : 실제 데이터를 처리하는 작업에 대한 명세 / 릴레이션을 조작하기 위한 관계 연산을 나타냄구조(Structure) : 논리적으로 표현될 대상으로서 개체 타입과 개체 타입 간의 관계 / 데이터 구조 및 정적 성질 표현제약 조건(Constraint) : DB에 저장될 수 있는 실제 데이터의 논리적인 제약 조건 / DB 무결성 유지 보편적 방법 / 릴레이션의 특정 칼럼에 설정하는 제약을 의미(개체 무결성, 참조 무결성)
데이터 모델 절차 - 개논물
- 데이터 모델 절차는 요구사항 분석, 개념적 데이터 모델, 논리적 데이터 모델, 물리적 데이터 모델이 있다
개념적 데이터 모델 ➡ 논리적 데이터 모델 ➡ 물리적 데이터 모델
(1) 개념적 데이터 모델
- 사용자의 요구에 대한 트랜잭션을 모델링하는 단계
- 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델
- 산출물에는 E-R 다이어그램으로 표현 가능
(2) 논리적 데이터 모델
- 트랜잭션의 인터페이스를 설계하는 단계
- DBMS에 맞는 논리적 스키마를 설계하는 단계
- 업무의 모습은 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현한 데이터 모델
- 결과로 나오는 명세서는 테이블 정의서가 있음
(3) 물리적 데이터 모델
- 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계
- 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조(물리 데이터 모델)로 변환하는 모델
2. 논리 데이터 모델 검증
논리 데이터 모델링 개념
- 개념 모델로부터의 데이터 및 규칙을 구체적으로 표현하는 모델
논리적 데이터 모델 종류
(1) 관계 데이터 모델
- 논리적 구조가 2차원 테이블 형태
- 기본 키(PK) 이를 참조하는 외래 키(FK) 관계로 표현
- 1:1, 1:N, N:M 관계를 자유롭게 표현
(2) 계층 데이터 모델
- 논리적 구조가 트리 형태로 구성된 모델
- 상하관계 존재
- 1:N 관계만 허용
(3) 네트워크 데이터 모델
- 논리적 구조가 그래프 형태로 구성
- CODASY DBTG 모델이라고 불림
- 상위와 하위 레코드 사이에 다대다(N:M) 관계를 만족하는 구조
관계 데이터 모델 (Relation Data Model)
- 관계 데이터 모델은 데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델이다
관계 데이터 모델의 구성
- 릴레이션(Relation) : 행(Row)과 열(Column)로 구성된 테이블
- 튜플(Tuple) : 릴레이션의 행(Row)에 해당되는 요소
- 속성(Attribute) : 릴레이션의 열(Column)에 해당되는 요소
- 카디널리티(Cardinality) : 튜플의 수
- 차수(Degree) : 속성(Attribute)의 수
- 스키마(Schema) : 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본적인 구조
- 인스턴스(Instance) : 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합
관계 대수
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
관계 대수 연산자의 종류
- 일반 집합 연산자(오른쪽 기호)
- 합집합(Union) / ∪
- 교집합(Intersection) / ∩
- 차집합(Difference) / -
- 카디션 프로덕트(CARTESIAN Prouduct) / X
- 순수 관계 연산자
- 셀렉트(Select) / σ
- 프로젝트(Project) / π
- 조인(Join) / ▷◁
- 디비전(Division) / ÷
관계 해석
- 관계 해석 : 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어
논리 데이터 모델링 속성
- 논리 데이터 모델링의 속성은 개체(Entitiy), 속성(Attributes), 관계(Relationship)로 구성된다.
계체-관계(E-R) 모델
- E-R 모델은 현실 세계에 존재하는 데이터들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해 사용
정규화(Normalization)
정규화(Nomalization) : 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
이상 현상(Anomaly)
- 이상 현상은 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상
- 삽입, 삭제, 갱신 이상이 있다
삽입 이상 : 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
삭제 이상 : 정보 삭제 시 원치 않는 정보가 같이 삭제되는 경우
갱신 이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
정규화의 단계 - 도부이결다조
1정규형(1NF) : 도메인 원자값으로 구성
2정규형(2NF) : 부분 함수 종속 제거
3정규형(3NF) : 이행함수 종속 제거
보이스-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거
4정규형(4NF) : 다중 값 종속 제거
5정규형(5NF) : 조인 종속 제거
반 정규화(De-Normalization)
- 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법 (비정규화, 역정규화 라고도 불림)
반 정규화 특징
- 반 정규화를 위해서는 데이터의 일관성과 무결성을 우선으로 할지 데이터베이스의 성능과 단순화에 우선순위를 둘 것인지를 비교하여 조정하는 과정이 중요
반 정규화 절차
(1) 대상 조사 : 범위 처리 빈도수, 대량 범위 처리, 테이블 조인 수 고려
(2) 다른방법 유도 : 뷰 테이블, 클러스터링, 인덱스의 조정, 어플리케이션의 변경 등을 유도
(3) 반 정규화 적용
장점 : 반 정규화된 데이터 구조는 성능 향상과 관리의 효율성이 증가
단점 : 데이터의 일관성 및 정합성 저하 / 유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음
반 정규화 기법
- (테이블) 테이블 병합, 테이블 분할, 중복 테이블 추가
- (컬럼) 컬럼 중복화
- (관계) 중복관계 추가
'IT 자격증 > 정보처리기사 실기' 카테고리의 다른 글
[정보처리기사 실기] 04. 데이터 입출력 구현 - 데이터베이스 기초 활용하기 (0) | 2022.10.04 |
---|---|
[정보처리기사 실기] 04. 데이터 입출력 구현 - 물리 데이터 저장소 설계 (0) | 2022.10.04 |
[정보처리기사 실기] 03. 통합구현 - 내외부 연계 모둘 구현 (0) | 2022.09.30 |
[정보처리기사 실기] 03. 통합구현 - 연계 메커니즘 구성 (0) | 2022.09.30 |
[정보처리기사 실기] 02. 화면 설계 - UI 설계 (0) | 2022.09.29 |