Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 서버
- 리눅스
- 자바스크립트
- 정보처리기사 실기
- 키보드 이벤트
- 비동기
- 정처기
- 인스펙션
- esb
- 브레인스토밍
- 델파이 기법
- 모듈
- 형상관리
- 정보처리기사
- 모듈화
- 프로시저
- 정처기 실기
- 워크스루
- 인터페이스
- input
- 소프트웨어
- 동기
- S-HTTP
- Ajax
- SSL/TLS
- EAI
- 라디오 버튼
- rest
- javascript
- 트리거
Archives
- Today
- Total
방구석 상상코딩
07. 논리 데이터 저장소 확인 본문
데이터 모델 절차
개념적 데이터 모델 → 논리적 데이터 모델 → 물리적 데이터 모델
관계 대수
1. 일반 집합 연산자
- 합집합 (Union) [R∪S] : 합병 가능한 두 릴레이션 R과 S의 합집합
- 교집합 (Intersection) [R∩S] : 릴레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션 구성
- 차집합 (Differencd) [R-S] : R에 존재하고 S에 미 존재하는 튜플로 결과 릴레이션 구성
- 카티션 프로덕트 (CARTESIAN Product) [RXS] : R과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성
2. 순수 관계 연산자
- 셀렉트 (Select) [σ(조건)(R)] : 릴레이션 R에서 조건을 만족하는 튜플 반환
- 프로젝트 (Project) [π(속성리스트)(R)] : 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환
- 조인 (Join) [R⋈S] : 공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환
- 디비전 (Division) [R÷S] : 릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환
논리적 데이터 모델링
- 개체 (Entity) : 관리할 대상이 되는 실체
- 속성 (Attributes) : 관리할 정보의 구체적 항목
- 관계 (Relationship) : 개체 간의 대응 관계
개체-관계(E-R) 모델
현실세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해서 가장 널리 사용되고 있는 모델. 요구사항으로부터 얻어낸 정보들을 개체, 속성, 관계로 기술한 모델.
개체-관계(E-R) 다이어그램 기호
구성 | 기호 | |
개체 | □ | 사각형 |
관계 | ◇ | 마름모 |
속성 | ○ | 타원 |
다중 값 속성 | ◎ | 이중타원 |
관계-속성 연결 | - | 선 |
정규화 (Normalization)
관계형 데이터 모델에서 데이터의 중복을 제거하여 이상 현상을 방지하고 데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
- 1차 정규화 (1NF) : 원자 값으로 구성
- 2차 정규화 (2NF) : 부분함수 종속 제거(완전 함수적 종속 관계)
- 3차 정규화 (3NF) : 이행 함수 종속 제거
- 보이스-코드 정규화 (BCNF) : 결정자 후보 키가 아닌 함수 종속 제거
- 4차 정규화 (4NF) : 다치(다중 값) 종속 제거
- 5차 정규화 (5NF) : 조인 종속 제거
이상현상 (Anomaly)
데이터의 중복으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상
- 삽입 이상 : 정보 저장 시 해당 정보의 불필요한 세부 정보를 입력해야 하는 경우
- 삭제 이상 : 정보 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
- 갱신 이상 : 중복 데이터 중에서 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우
반 정규화 (De-Normalization)
정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
1. 테이블
- 테이블 병합 : 1:1관계, 1:M 관계를 통합하여 조인 횟수를 줄여 성능을 향상, 슈퍼 타입/서브타입 테이블 통합 통해 성능 향상
- 테이블 분할 : 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라고 함
- 수평분할 : 테이블 분할에 레코드를 기준으로 활용
- 수직분할 : 하나의 테이블이 가지는 컬럼의 개수가 증가하는 경우 활용하며 갱신 위주의 속성 분할, 자주 조회되는 속성 분할, 크기가 큰 속성 분할, 보안을 적용해야 하는 속성 분할이 있음 - 중복 테이블 추가 : 대량의 데이터들에 대한 집계함수(GROUP BY, SUM 등)를 사용하여 실시간 통계정보를 계산하는 경우에 효과적인 수행을 위해 별도의 통계 테이블을 두거나 중복 테이블을 추가
- 집계 테이블 추가 : 집계 데이터를 위한 테이블을 생성하고, 각 원본 테이블에 트리거를 설정하여 사용하는 것으로, 트리거의 오버헤드에 유의 필요
- 진행 테이블 추가 : 이력 관리 등의 목적으로 추가하는 테이블로, 적절한 데이터양의 유지와 활용도를 높이기 위해 기본키를 적절히 설정
- 특정 부분만을 포함하는 테이블 추가 : 데이터가 많은 테이블의 특정 부분만을 사용하는 경우 해당 부분만으로 새로운 테이블을 생성
2. 컬럼
- 컬럼 중복화 : 조인 성능 향상을 위한 중복 허용
3. 관계
- 중복 관계 추가 : 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만 이때 발생할 수 있는 성능 저하를 예방하기 위해 추가적 관계를 맺는 방법
'정보처리기사 실기' 카테고리의 다른 글
09. 데이터베이스 기초 활용하기 (0) | 2022.01.17 |
---|---|
08. 물리 데이터 저장소 설계 (0) | 2022.01.17 |
06. UI 설계 (0) | 2022.01.17 |
05. UI 요구사항 확인 (0) | 2022.01.16 |
04. 분석 모델 확인하기 (0) | 2022.01.14 |