BigData

[꿀팁] 쉽게 설명하는 데이터베이스 설계 (1)

IT오이시이 2021. 4. 12. 23:41
728x90

[꿀팁] 쉽게 설명하는 데이터베이스 설계 (1)

 

동적분석 #
단위 프로세스와 데이터 흐름의 관계를 분석하고 검증할 수 있는 방법이다. 대표적인 예로는 DFD(Data Flow Diagram)가 있다.

1. DFD(Data Flow Diagram)의 정의

DFD(Data Flow Diagram)는 데이터가 소프트웨어의 각 프로세스에 따라서 변환되는 모습을 나타내는 흐름표이며 정보시스템의 분석, 설계에서 유용하게 사용되고 있는 다이어그램이다. 데이터 흐름도 혹은 자료 흐름도라고 지칭되며 시스템의 모형화 도구로서 보편적으로 사용된다. 데이터보다 기능이 복잡하고 중요할 때 유용하게 사용되며 한눈에 프로세스를 이해할 수 있다.

 

2. DFD의 특징

1. 시스템을 분할하기 위한 중요한 모형화 도구
2. 도형을 사용하여 그림 중심으로 표현
3. 자료의 흐름에 중점을 두고 상황을 표현

3. DFD 작성 원칙


1) 데이터 보존의 원칙

    출력 데이터의 흐름은 반드시 입력 데이터 흐름을 이용하여 생성한다.

2) 최소 데이터 입력의 원칙

    출력 데이터를 산출하는 데 필요한 최소의 데이터 흐름만 입력한다.

3) 독립성의 원칙

    단위 프로세스는 단위 프로세스에 해당하는 입력 데이터와 출력 데이터에 대해서만 관여한다.

4) 지속성의 원칙

    단위 프로세스는 항상 수행되어야 한다.

5) 순차 처리의 원칙

    입력 데이터 흐름의 순서는 출력되는 데이터 흐름에서도 유지되어야 한다.

6) 영구성의 원칙

    데이터 저장소의 데이터는 입력으로 사용해도 지워지지 않는다.

 

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

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




5. 물리적 설계

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

 

* 물리적 설계 시 고려사항

- 인덱스의 구조.
- 레코드의 크기 및 개수.
- 파일에 대한 트랜잭션의 갱신과 참조 성향.
- 성능 향을 위한 개념 스키마의 변경 여부 검토.
- 빈번한 질의와 트랜잭션들의 수행속도를 높이기 위한 고려.
- 시스템 운용 시 파일 크기 변화의 가능성.

 

* 물리적 설계 옵션 선택 시 고려사항

- 반응 시간(Response Time) : 트랜잭션 수행을 요구한 시점부터 처리 결과를 얻을 때 까지의 경과 시간.
- 공간 활용도(Space Utilization) : 데이터베이스 파일과 액세스 경로 구조에 의해 사용되는 저장공간의 양.
- 트랜잭션 처리량(Transaction Throughput) : 단위 시간 동안 데이터베이스 시스템에 의해 처리될 수 있는 트랜잭션의 평균 개수.




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

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

728x90
반응형