2021. 7. 3. 18:08ㆍ정 보 처 리 기 사 공 부/실 기
● 데이터 모델 개념
데이터 모델은 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델이다.
● 데이터 모델 절차
요구 사항 분석 -> 개념적 데이터 모델 -> 논리적 데이터 모델 -> 물리적 데이터 모델
● 논리 데이터 모델링 개념
논리적 데이터 모델링은 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스이다.
● 관계 데이터 모델
관계 데이터 모델은 데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델이다.
● 관계 데이터 모델의 구성
릴레이션 | 행과 열로 구성된 테이블 |
튜플 | 릴레이션의 행에 해당되는 요소 |
애트리뷰트 | 릴레이션의 열에 해당되는 요소 |
카디널리티 | 튜플의 수 |
차수 | 애트리뷰트의 수 |
스키마 | 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조 |
인스턴스 | 정의된 스키마에 따라 생성된 테이블에 실제 저장된 데이터의 집합 |
● 일반 집합 연산자
합집합 | ∪ | R∪S | 합병 가능한 두 릴레이션 R과 S의 합집합 |
교집합 | ∩ | R∩S | 릴레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션 구성 |
차집합 | - | R-S | R에 존재하고 S에 미 존재하는 튜플로 결과 릴레이션 구성 |
카티션 프로덕트 | × | R×S | R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성 |
● 순수 관계 연산자
셀렉트(Select) | σ | σ<sub>조건</sub>(R) | 릴레이션 R에서 조건을 만족하는 튜플 반환 |
프로젝트(Project) | π | π<sub>속성리스트</sub>(R) | 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환 |
조인(Join) | ⨝ | R⨝S | 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환 |
디비전(Division) | ÷ | R÷S | 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환 |
● 논리 데이터 모델링 속성
개체(Entity) | 관리할 대상이 되는 실체 |
속성(Attributes) | 관리할 정보의 구체적 항목 |
관계(Relationship) | 개체 간의 대응 관계 |
● 개체-관계(E-R) 모델
· E-R 모델은 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델이다.
· 논리 데이터 모델링에서는 모든 이해당사자와 의사소통의 보조 자료로 E-R 모델을 활용한다.
· 요구사항으로부터 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델이다.
● 개체-관계(E-R) 다이어그램 기호
개체 | □ |
관계 | ◇ |
속성 | ○ |
다중 값 속성 | ◎ |
관계-속성 연결 | - |
● 정규화
정규화는 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고, 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정이다.
● 이상 현상
이상현상은 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상이다.
삽입 이상 | 정보 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우 |
삭제 이상 | 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우 |
갱신 이상 | 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우 |
● 정규화의 단계
1정규형(1NF) | 원자값으로 구성 |
2정규형(2NF) | 부분 함수 종속 제거(완전 함수적 종속 관계) |
3정규형(3NF) | 이행함수 종속 제거 |
보이스-코드 정규형(BCNF) | 결정자 후보 키가 아닌 함수 종속 제거 |
4정규형(4NF) | 다치(다중 값) 종속 제거 |
5정규형(5NF) | 조인 종속 제거 |
● 반정규화(비정규화, 역정규화)
정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법이다.
● 반 정규화 기법
테이블 | 테이블 병합 | · 1:1 관계, 1:M 관계를 통합하여 조인 횟수를 줄여 성능을 향상 · 슈퍼타입/서브타입 테이블 통합을 통해 성능 향상 |
테이블 분할 | · 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라고 함 | |
중복 테이블 추가 | · 대량의 데이터들에 대한 집계함수(GROUP BY, SUM 등)를 사용하여 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계테이블을 두거나 중복 테이블을 추가 | |
컬럼 | 컬럼 중복화 | · 조인 성능 향상을 위한 종복 허용 |
관계 | 중복 관계 추가 | · 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법 |
'정 보 처 리 기 사 공 부 > 실 기' 카테고리의 다른 글
정보 처리 기사 실기 3. 데이터 입출력 구현 - 데이터베이스 기초 활용하기 (0) | 2021.07.03 |
---|---|
정보 처리 기사 실기 3. 데이터 입출력 구현 - 물리 데이터 저장소 설계 (0) | 2021.07.03 |
정보 처리 기사 실기 2. 화면설계 - UI 설계 (0) | 2021.07.03 |
정보 처리 기사 실기 2. 화면설계 - UI 요구사항 확인 (2) | 2021.07.02 |
정보 처리 기사 실기 1. 요구 사항 확인 - 분석 모델 확인하기 (0) | 2021.04.13 |