데이터베이스 구축 - 데이터모델
#데이터 모델 (Data Model)
현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
■ 데이터 모델에 표시해야할 요소
- 구조 (Structure)
- 연산 (Operation)
- 제약조건 (Constraint)
데이터베이스 설계 단계
요구조건 분석, 개념적 설계, 논리적 설계, 물리적 설계가 있음
1. 요구조건 분석 단계
요구사항 간 상충을 해결하고 범위를 파악하여 외부 환경과의 상호작용을 분석
2. 개념적 설계
사용자 요구에 대한 트랙잭션을 모델링하는 단계
개념적 데이터 모델: 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출하는 데이터 모델
3. 논리적 설계
트랙잭션의 인터페이스를 설계하는 단계
- 논리적 스키마를 설계
- 정규화 수행
- 논리적 데이터베이스 구조로 매핑
- 스키마의 평가 및 정제
- 테이블을 설계하는 단계
4. 물리적 설계
특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계
- 테이블, 인덱스, 뷰, 파티션 등 객체 생성
- 응답시간, 저장공간 효율화, 트랜잭션 처리를 고려해 설계
- 접근 경로 설계
개체-관계(E-R) 모델
현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위한 모델
■ 구성요소
- 개체 (entity)
- 속성 (attribute)
- 관계 (relationship)
■ 다이어그램 기호
구성 | 기호 |
---|---|
개체 | □ |
관계 | ◇ |
속성 | ○ |
다중 값 속성 | ◎ |
관계-속성 연결 | ─ |
논리적 데이터 모델링
업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스
■ 종류
- 관계 데이터 모델
- 테이블 형태로 구성된 모델
- 기본키와 외래키로 관계 표현
- 계층 데이터 모델
- 트리형태로 구성된 모델
- 상하 관계가 존재
- 네트워크 데이터 모델
- 그래프 형태로 구성된 모델
- codasyl dbtg 모델이라고도 불림
데이터베이스 정규화
관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지하고,
데이터의 일관성과 정확성을 유지하기 위해 무손실 분해하는 과정
■ 정규화 목적
- 중복 데이터 최소화하여 테이블 불일치 위험 최소화
- 수정, 삭제 시 이상 현상을 최소화 → 데이터 구조의 안정성 최대화
- 릴레이션 재구성에 대한 필요성 줄임
- 효과적인 검색 알고리즘 생성
■ 이상 현상 (Anomaly)
데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상
- 삽입 이상 : 의도와는 상관없이 원하지 않은 값들도 함께 삽입되는 현상
- 삭제 이상: 의도와는 상관없이 원하지 않은 값들도 함께 삭제되는 현상
- 갱신 이상: 속성값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보의 모순이 생기는 현상
■ 함수 종속
X → Y (Y는 X에 함수 종속)
속성X에 대해 시간과 관계없이 항상 속성Y의 값이 오직 하나만 연관되어있는 관계
■ 데이터 베이스 정규화 단계 ★★★
@원부이 결다조
구분 | 설명 |
---|---|
1차 정규화 | 원자 값으로 구성, 반복 속성/중복 제거가 필요 |
2차 정규화 (2NF) | 부분 함수 종속 제거, 주식별자가 아닌 속성 분리 |
3차 정규화 | 이행 함수 종속 제거 종속적인 속성 분리 (A→B, B→C = A→C) |
보이스-코드 정규화 | 결정자 함수 종속, 모든 결정자가 후보키 |
4차 정규화 | 다치 종속성 제거 특정 속성 값에 따라 선택적인 속성 분리 |
5차 정규화 | 조인 속성을 제거 |
This post is licensed under CC BY 4.0 by the author.