데이터베이스 설계
현실 세계의 업무적인 프로세스를 컴퓨터 세계로 데이터베이스화 하기 위한 과정이다.
데이터베이스 설계 순서
요구조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 →구현 → 운영 → 감시 및 개선
개념적 설계 (개체관계도 = ER 다이어그램)
- 개체 타입과 이들 간의 관계 타입을 이용해 현실 세계를 개념적으로 표현
- DBMS에 독립적인 개념 스키마 모델링
- 트랜잭션 모델링
- 트랜잭션(Transaction) : 데이터베이스의 상태를 변화시키는 논리적 연산의 집합
E-R Diagram
- 개체 :
사각형
Row
- 속성 :
타원
Column
- 관계 :
마름모
Relationship
- 사원 테이블의
사원번호
는 기본키
- 부서 테이블의
부서번호
는 기본키
- 프로젝트 테이블의
프로젝트번호
는 기본키
- 사원 테이블의 '부서번호'는 부서 테이블의 '부서번호'를 참조하는 외래키
- 사원 테이블과 프로젝트 테이블은 다대다(m:n) 관계이므로 프로젝트에 참여한 사원 명단을 별도로 관리하는 프로젝트진행 테이블이 추가로 필요하다.
- 개체 (Entity)
: 데이터베이스에 표현하려고 하는 현실 세계의 대상체
- 속성 (Attribute)
: 개체 (Entity)의 성질, 분류, 식별, 수량, 상태 등을 나타낸다.
- 예시 ) 부서 - 부서번호, 부서명, 부서위치
- 관계 (Relationship)
: 두 개체 간에 의미 있는 연결
- 예시 ) 부서에는 사원이 근무한다. / 프로젝트에 사원이 참여한다.
논리적 설계
- 목표 DBMS에 맞추어 논리적 모델로 설계 (관계형, 계층형, 망형 모델)
- 트랜잭션 인터페이스 설계
- 스키마의 평가 및 정제 → 목표 DBMS에 맞는 스키마 설계
- 정규화 과정 수행
물리적 설계
- 저장 레코드 양식의 설계 및 물리적 구조 데이터 표현
- 설계 시 고려사항 : 응답시간, 저장공간의 효율성,트랜잭션의 처리량
- 어떤 인덱스를 만들 것인지에 대한 고려
- 성능 향상을 위한 개념 스키마의 변경 여부 검토
- 빈번한 질의와 트랜잭션들의 수행 속도를 높이기 위한 고려
- 접근 경로 설계
- 레코드 집중의 분석 및 설계
- 트랜잭션 세부사항 설계