목록

2019년 2월 4일 월요일

[데이터베이스] 6. 데이터베이스 설계란? (DB설계의 정의, 설계순서, 고려사항)






1. 데이터베이스 설계란?

  • 한 조직체의 운영과 목적을 지원하기 위해 데이터베이스를 생성하는 과정.
  • 모든 주요 응용과 사용자들이 요구하는 데이터, 데이터 간의 관계를 표현하는 것이 목적.
  • 데이터베이스 개발은 일반적인 프로젝트 라이프 사이클 과정을 따른다.
  • 훌륭한 데이터베이스 설계는 시간의 흐름에 따른 데이터의 모든 측면을 나타내며, 데이터 항목의 중복을 최소화하고 데이터베이스에 대한 효율적인 접근을 제공한다. 또한 데이터베이스의 무결성을 제공하며, 이해하기 쉬워야 한다.



2. 데이터베이스 설계 순서


* 트랜잭션(Transaction)이란?
- 데이터베이스의 상태를 변화시키는 작업의 단위로, 어떠한 기능을 수행하기 위해 하나 또는 한꺼번에 수행되어야 할 일련의 연산들을 의미한다.
ex) ATM기로 어떤 거래를 하려는 경우, 카드를 넣고, 거래를 선택하고, 비밀번호를 인증하고, 거래를 완료하는 모든 과정.



3. 개념적 설계(정보 모델링, 개념화)

  • 정보의 구조를 얻기 위해 현실 세계의 무한성과 계속성을 이해하고, 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표혀하는 과정이다.
  • 스키마 모델링과 트랜잭션 모델링을 병행하여 수행하는 단계이다.
  • 요구분석 단계에서 나온 결과(요구 조건 명세)를 DBMS에 독립적인 개념 스키마를 설계하여 E-R 다이어그램으로 작성한다.



4. 논리적 설계(데이터 모델링)

  • 현실 세계에서 발생하는 자료를 컴퓨터가 처리할 수 있는 물리적 저장장치에 저장할 수 있도록 변환하기 위해 특적 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정이다.
  • 개념 세계의 데이터를 필드로 기술된 데이터 타입과 이 데이터 타입들 간의 관계로 표현되는 논리적 구조의 데이터로 모델화한다.
  • 개념적 설계 단계에서의 개념 스키마를 평가 및 정제하고 특정 DBMS에 종속적인 논리적 스키마를 설계하는 단계이다.
  • 트랜잭션의 인터페이스를 설계한다.
  • 관계형 데이터베이스라면, 테이블을 설계하는 단계.



5. 물리적 설계

  • 논리적 설계 단계에서 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정이다.
  • 데이터베이스 파일의 저장 구조, 레코드의 형식, 접근 경로와 같은 정보를 사용하여 데이터가 컴퓨터에 저장되는 방법을 묘사한다.
  • 트랜잭션을 작성하는 단계이다.
  • 물리적 설계 단계에 반드시 포함되어야 할 것은, 저장 레코드의 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 등이다.

* 물리적 설계 시 고려사항
- 인덱스의 구조.
- 레코드의 크기 및 개수.
- 파일에 대한 트랜잭션의 갱신과 참조 성향.
- 성능 향을 위한 개념 스키마의 변경 여부 검토.
- 빈번한 질의와 트랜잭션들의 수행속도를 높이기 위한 고려.
- 시스템 운용 시 파일 크기 변화의 가능성.
* 물리적 설계 옵션 선택 시 고려사항
- 반응 시간(Response Time) : 트랜잭션 수행을 요구한 시점부터 처리 결과를 얻을 때 까지의 경과 시간.
- 공간 활용도(Space Utilization) : 데이터베이스 파일과 액세스 경로 구조에 의해 사용되는 저장공간의 양.
- 트랜잭션 처리량(Transaction Throughput) : 단위 시간 동안 데이터베이스 시스템에 의해 처리될 수 있는 트랜잭션의 평균 개수.



6. 데이터베이스 설계 시 고려사항

  • 데이터의 무결성 유지 : 삽입, 삭제, 갱신 등의 연산 후에도 데이터베이스에 저장된 데이터가 정해진 제약조건을 항상 만족해야 한다.
  • 데이터의 일관성 유지 : 데이터베이스에 저장된 데이터들의 사이, 특정 질의에 대한 응답이 처음부터 끝까지 변함없이 일정해야 한다.
  • 데이터의 회복성 유지 : 시스템에 장애가 발생했을 때 장애 발상 직전의 상태로 복구할 수 있어야 한다.
  • 데이터의 보안성 유지 : 불법적인 데이터의 노출 또는 변경이나 손실로부터 보호할 수 있어야 한다.
  • 데이터의 효율성 유지 : 응답시간의 단축, 시스템의 생산성, 저장 공간의 최적화 등이 가능해야 한다.
  • 데이터베이스의 확장성 유지 : 데이터베이스 운영에 영향을 주지 않으면서 지속적으로 데이터를 추가할 수 있어야 한다.





댓글 없음:

댓글 쓰기