1 Data Model
- 데이터베이스 내에 존재하는 데이터의 타입을 정의하고 데이터들 사이의 관계를 규정하며 데이터 의미와 데이터에 가해진 제약 조건을 명시하기 위해 사용하는 개념적인 도구이다.
1.2.1 요구분석 단계
- 데이터베이스를 적용할 업무와 관련된 사용자들을 대상으로 그들의 요구사항과 요구 조건을 수집 분석하는 단계이다.
- 최종적으로 요구사항 명세서를 얻어내는 단계이다.
- 요구사항 명세서를 기반으로 데이터베이스에 표현될 데이터, 그들간의 관계, 데이터의 의미, 데이터의 제약조건 등을 추상화하는 단계이다.
- 개념 스키마를 설계하는 단계이다.
- 개념 스키마를 변형하여 컴퓨터 처리에 적합한 형태의 논리 스키마로 설계하는 단계이다.
1.2.4 물리적 설계 단계
- 데이터베이스의 저장을 위한 내부 저장구조와 접근 경로, 접근 방식 등을 설계하는 단계이다.
- 응답시간, 저장공간의 효율화, 처리능력 등의 요소가 고려되어야 한다.
1.2.5 구현
- 실제적으로 데이터베이스를 구축하는 단계이다.
1.3 설계의 주요 단계
1.3.1 요구사항 수집과 분석
- 요구사항 수집과 분석 단계에서는 요구사항을 수집하고, 의견들을 평가하고 조정한다. 자연어로 기술된 요구사항은 모호함을 제거하기 위해서 재작성한다.
1.3.2 개념적 설계
- 모든 물리적인 사항과 독립적으로, 한 조직체에서 사용되는 정보의 모델을 구축하는 과정이다.
- 이 단계에서는 높은 추상화 수준의 데이터 모델을 기반으로 정형적인 언어로 데이터 구조를 명시한다.
- 엔티티 타입, 관계 타입, 애트리뷰트들을 식별하고, 애트리뷰트들의 도메인을 결정하고, 후보키와 기본키 애트리뷰트들을 결정한다.
- 대표적인 데이터 모델이 ER모델이다.
1.3.2.1 ER모델
- DBMS와 독립적인 데이터 모델이다. 스키마 정보만 고려하며, 인스턴스(데이터)는 고려하지 않는다.
1.3.3 DBMS 선정
- 여러 가지 요인을 검토한 후 DBMS를 선정한다.
1.3.4 논리적 설계
- 데이터베이스 관리를 위해 선택한 DBMS의 데이터 모델을 사용하여 논리적 스키마(외부 스키마 포함)를 생성한다.
- 논리적 스키마를 나타내기 위해 관계 데이터 모델을 사용하는 경우에는 ER모델로 표현된 개념적 스키마를 관계 데이터베이스 스키마로 사상한다.
1.3.5 정규화 (NF)
- 관계형 데이터베이스의 설계시 데이터 중복을 최소화하고 테이블 조작시 정보 손실이나 불일치가 발생하지 않도록 테이블 내의 속성들 간의 종속성을 분석하여 보다 바람직한 속성들로 이루어진 더 작은 테이블로 분해하는 작업이다.
- 정규화 과정에서는 관계 스키마에 중복과 갱신 이상이 발생하는지 검사한다.
1.3.5.1 정규화의 목적
- 테이블 조작 시의 이상 현상을 해결하기 위해서이다.
- 이상현상의 유형
1) 삽입 이상: 튜플을 삽입할 때 원하지 않는 데이터까지 삽입되고 그렇지 않으면 삽입되지 않는 현상이 발생한다.
2) 삭제 이상: 어떤 튜플을 삭제하면 유지해야 할 다른 정보도 함께 삭제되는 현상이다.
3) 갱신 이상: 특정한 튜플의 속성 값을 갱신하면 정보의 모순이 발생하는 현상이다.
1.3.5.2 정규화의 유형
1) 제1정규형(1NF): 모든 속성들의 도메인이 원자 값만으로 이루어진 릴레이션이다.
2) 제2정규형(2NF): 제1정규형의 조건을 만족하면서 부분 함수 종속을 제거한 릴레이션이다.
3) 제3정규형(3NF): 제2정규형까지의 조건을 만족하고 이행 함수 종속을 제거한 릴레이션이다.
4) BCNF(Boyce Code Normal Form)
s 제3정규형에서 함수적 종속으로 인해 추가적으로 발생할 수 있는 문제점을 보완한다.
s 강한 3차 정규형이다.
s 특정 릴레이션의 모든 결정자가 후보 키가 아닌 함수 종속을 제거하여 릴레이션의 결정자가 모두 후보키인 릴레이션이다.
1.3.6 물리적 설계
- 처리 요구사항들을 만족시키기 위해 저장 구조와 인덱스 등을 결정한다.
1.3.7 데이터베이스 구현
- 중요한 설계 결정이 문서화된 완전히 동작하는 데이터베이스이다.
1.3.8 트랜잭션 설계
- 요구사항 수집과 분석 후에 데이터베이스 설계 과정과 별도로 트랜잭션[1] 설계를 진행할 수 있다.
[1] 완성될 데이터베이스에서 동작할 응용 프로그램을 말함.
'와사비크래커 IT Tip > DB' 카테고리의 다른 글
[DB] 관계 대수와 관계 해석 (0) | 2020.08.24 |
---|---|
[DB] RDBMS (0) | 2020.08.21 |
[DB] DBMS (Database Management System) (0) | 2020.08.20 |
[DB] DBS (Database System) (0) | 2020.08.20 |
mariadb utf8 변경 (0) | 2017.11.21 |