관계형 데이터 베이스 설계
데이터 모델링
데이터 모델
- 현실 세계에 대해 우리가 관심있어 하는 정보를 데이터베이스로 표현하는 과정에서 데이터베이스의 구조를 개념적/논리적으로 표현하기 위한 도구

데이터 모델의 역할
- 시스템을 현재 또는 원하는 모습으로 가시화
- 시스템의 구조와 행동을 명세화
- 시스템을 구축하는 틀을 제공
- 시스템을 바라보는 다양한 관점 제공
- 특정 목표에 따라 다양한 상세 수준을 제공
데이터 모델링 정의
- 정보 시스템을 구축하기 위해, 어떤 데이터가 존재하는지 또는 업무가 필요로 하는 정보는 무엇인지를 분석/표현하는 방법
데이터 모델링 필요성
- 현실 세계에 존재하는 객체를 식별 -> 개체와 개체 사이의 관계를 정의
- 사용자와 데이터베이스 사이의 인터페이스
데이터 모델링 단계
개념적 모델링
- 데이터 들의 상관관계를 파악
- 개체, 관계, 속성을 파악하여 이들간의 관련성을 도식화
- ERD(Entity Relationship Diagram)
논리적 모델링
- DBMS의 유형(관계형, 객체지향형, 객체-관계형)에 맞추어 데이터의 골격(스키마)를 만드는 작업
- 함수 종속성 파악, 논리적스키마(릴레이션구조)
물리적 모델링
- 특정 DBMS에 의존하는 데이터 형식, 각종 제약조건, 뷰, 인덱스 등을 설정하는 작업
- 테이블 정의서, 제약조건 리스트, 인덱스 명세서
데이터베이스 설계
- 요구사항에 맞게 정보를 제공할수 있도록 데이터베이스 구조를 개발하는 과정
- 개념적/논리적/물리적 데이터베이스 설계를 포괄하는 개념
데이터베이스 설계 시 고려사항
- 무결성: 데이터는 항상 제약조건을 만족함
- 일관성: 데이터 사이에 모순성이 없어야 함
- 회복: 시스템 장애 발생시 장애 발생 전의 일관된 상태로 복구 가능해야함
- 보안: 불법 접근(데이터의 변경, 손실, 노출)에 대한 보호
- 효율성: 응답시간, 저장 공간 최적화, 생상선 등을 고려
- 확장성: 응용 프로그램 추가, 데이터 증가, 변경 등을 수용할 수 있는 구조
데이터베이스 설계 단계
- 1, 요구 분석(Requirement Analysis): 데이터 요구명세
- 2, 개념적 설계(Conceprual Design): 개체 관계도
- 3, 논리적 설계(Logical Design): 함수 종속, 테이블 구조
- 4, 물리적 설계(Physical Design): 테이블 최적화, 인덱스 설정
- 5, 구현(Implementation): DDL을 이용한 구현 트랜잭션 작성
데이터베이스 설계 흐름
물리적 데이터베이스 설계
- A physical data model (or database design) is a representation of a data design which takes in to account the facilities and constraints or a given database management system
- 설계목적: 효율적 구현 가능한 물리적 DB 구조 설계
- 데이터 저장구조나 접근 경로에 대해서 DBMS가 지원하는 방법 중에서 선택함
- 응답시간, 저장공간의 효율화, 트랜잭션 처리도 (Throughput) 등을 고려해야함
수행작업
- 저장구조 설계:
- 제약조건 지정: 데이터 형 지정, 기본키 및 기본값 정의, 체크와 규칙 정의
- 데이터 집중의 분석 및 설계:
- 데이터(row, record) 크기와 물리적 저장 장치의 특성을 파악
- 테이블 분산, 파티셔닝 등
- 접근 경로 설계:
- 인덱스 설정
- 뷰 정의
- 데이터처리 설계
- 트랜잭션 구현
- 저장 프로시져 구현
- 동시성 제어
저장구조 설계
- 데이터베이스 구조, 테이블 구조, 테이블 분할

제약조건 지정
- 개체무결성 제약조건
- 기본키 제약(Primary Key)
- 유일성 제약(Unique)
- Null or Not Null
- 도메인 무결성 제약조건
- 컬럼 데이터 타입(Data Type)
- 체크 제약(Check)
- 기본값 제약(Default)
- 참조무결성 제약조건
- 외래키 제약(Foreign Key)
레코드 집중의 분석과 설계
- 데이터(record, row) 크기와 물리적 저장 장치의 특성을 파악
- 테이블 분산, 파티셔닝 등 수행
접근 경로 설계
- 인덱스 생성
- 뷰 정

데이터 처리 설계
- 트랜잭션 구현

- 저장프로시져 구현

- 동시성 제어
