1 DB Design
DB 설계는 각 설계자마다 다르게 설계하므로 science가 아니라 art라고 부른다. 후에 게시되는 블로그를 읽어보면 주관적인 판단이 들어가는 요소가 많이 있음을 파악할 수 있다.
1.1 Conceptual Data Modeling
- Conceptual data modeling(개념적 데이터 모델링)은 데이터베이스 설계의 초기 단계
- 비즈니스 요구사항 (업무기술서의 내용)을 이해하기 좋게 개념화 또는 추상화 (i.e. 도식화)하여 high level (고수준)의 데이터 구조를 정의하는 과정이다.
- high level은 사람이 이해할 수 있는 수준이란 뜻이며 low level은 컴퓨터가 이해할 수 있는 수준이라고 생각하면 편하다.
- Conceptual data modeling은 복잡한 비즈니스 요구사항을 단순화하여 표현하므로, 프로젝트의 초기 단계에서 이해관계자 간의 합의를 도출하는 데 매우 유용하다.
- 후속 데이터베이스 설계 단계의 기반이 되어 전체 프로젝트의 성공에 중요한 역할을 한다.
1.1.1 목적
- 비즈니스 관점에서 데이터 구조를 이해하고 표현
- 주요 엔티티와 그들 간의 관계를 식별
- 시스템의 범위를 정의
1.1.2 주요 구성 요소
- 엔티티(Entity): 비즈니스에서 중요한 객체나 개념
- 속성(Attribute): 엔티티의 특성 (이 단계에서는 상세하게 다루지 않을 수 있음)
- 관계(Relationship): 엔티티 간의 연관성
- Relationship (관계) \(\ne\) Relation
- Relationship 은 [Student] - < Register > - [Subject] 에서 < Register >에 해당, 한글로 관계로 표시
- 도식에서 마름모에 해당
- Relation = Table (테이블), 보통 relation을 한글로 표현할 때 릴레이션 으로 표시 (관계라고 표시안함)
- 수학자들은 테이블의 한 행을 relation 이라 부름
- 즉, 관계형 데이터 모델의 수학적, 논리적 개념이고 튜플(tuple)의 집합이며 속성(attribute)의 집합으로 구성된다.
- 테이블의 추상적인 개념으로 테이블은 Relation을 기술하는 하나의 구체적 표현
- DB에서 하나의 table로 구현된다.
1.1.3 특징
- 기술적 세부사항을 배제하고 비즈니스 개념에 집중
- 높은 수준의 추상화
- DBMS에 독립적
1.1.4 산출물
- 간단한 텍스트 설명이나 다이어그램
- 주로 Entity-Relationship Diagram (ERD)을 사용
- 개념적 설계에 가장 많이 쓰는 모델로서 Entity-Relationship Model (ERM or ER-model 개체 관계 모형)을 사용하고 그 산출물이 ERD이다.
1.1.5 프로세스
- 주요 비즈니스 개체 식별
- 개체 간 관계 정의
- 높은 수준의 속성 식별 (선택적)
- 비즈니스 규칙 반영
- 논리적 데이터 모델링의 기초가 됨 (더 상세한 데이터 모델로 발전)