본문 바로가기
개발/소프트웨어 공학

자료 흐름 중심 설계와 데이터베이스 설계

by re-hwi 2022. 1. 21.

이 단원에서는 지금까지 배운 정보 모델링, 객체지향분석을 통해 얻은 ER모델/클래스 다이어그램을 '관계형 데이터베이스'로 옮기는 과정을 배운다.

 

다시말해 구조적 분석을 통해 얻은 산출물을 프로그램 구조로 바꾸는 것이다. 그 과정에서 필요한 것이 자료 흐름 중심 설계이다.


자료 흐름 중심 설계 (DFD : Data Flow-oriented Design)

 

- 앞서 분석을 하며 얻은 결과를 구조적 설계로 옮기는 과정

- 시스템을 모듈화하여 하향식으로 세분화

 

개요

- 프로세스, 자료흐름, 자료저장소, 외부객체로 구성

- 구조적 설계를 위한 입력 = DFD에 기초한 요구사항 명세서

 

구조도표

- 모듈들 사이의 자료와 제어의 흐름을 보여주며 반복, 선택과 같은 프로그램 제어구조를 나타냄

 

구조도표의 표기법

  • 사각형 = 모듈
  • 오각형 = 다른 페이지로 연결되어 있는 모듈
  • 원형 = 정보흐름 
  • 마름모꼴 = 선택적 호출
  • 곡선 화살표 = 반복적 호출

- 검정색 원형 : 제어흐름

- 하얀색 원형 : 데이터흐름

구조도표의 기호

정보 흐름의 유형

① 변환흐름 : 입력을 받고 가공후 새로운 결과물을 출력하는 프로세스

② 트랜젝션 흐름 : 입력을 받고 입력값에 의해 결정을 내린 후 입력과 관계없는 결과물을 출력하는 프로세스

 

변환흐름 중심 설계

 

위 그림처럼 시스템을 크게 3단계로 나누어 입력을 담당하는 프로세스를 입력흐름, 입력된 정보를 가공처리하는 프로세스들을 변환중심, 가공된 정보를 출력하는 프로세스를 출력흐름이라고 한다.

 

변환흐름 중심 설계의 단계

 

① 요구사항 명세서로부터 정제된 자료 흐름도 제작

② 자료 흐름의 유형 조사

③ 입력 경계와 출력 경계 설정

④ 최상위 수준에서 자료 흐름 중심 프로그램 구조 개발 (최상위 수준의 세분화)

⑤ 자료 흐름도를 프로그램 구조로 전환 (두 번째 수준의 세분화)

⑥ 프로그램 구조 정제


트랜젝션 흐름 중심 설계

 

입력을 여러갈래의 출력으로 쪼갤 수 있는 경우 

입력의 결과에 따라 여러 출력 경로중 하나를 따라 흘러간다

 

* 트랜젝션 : 자료나 제어 시그널 등이 어떠한 행위를 유발시키는 것

 

트랜젝션 흐름 중심 설계의 단계

 

① 요구사항 명세서로부터 자료흐름도 제작

② 자료흐름도가 트랜잭션 흐름을 갖는지 결정

③ 트랜젝션 중심과 동작 경로 파악

④ 트랜젝션 흐름 프로그램 구조 개발

⑤ 자료흐름도를 프로그램 구조로 매핑

⑥ 프로그램 구조 정제

 


데이터베이스 설계

 

: 정보 모델링의 결과인 ER 모델 또는 UML 클래스 다이어그램을 관계형 데이터베이스로 옮기는 과정

 

관계형 모델 

 

- 테이블을 이용하여 나타냄. 각 테이블은 릴레이션이라 불리며 테이블의 행은 투플이라고 부른다.

- 각 투플은 연관된 데이터값의 모임으로 실세계의 엔티티/관계를 나타낸다.

- ER모델과 유사한 구조를 가지며 투플은 ER모델의 엔티티 혹은 관계를 나타낸다.

 

대학교 ER모델

데이터베이스 설계의 단계

① ER모델의 각 엔티티타입에 대해 하나의 테이블을 만들어 엔티티타입의 속성들을 테이블의 속성으로 포함시킨다.

이때 엔티티타입의 주 키는 테이블의 주 키가 된다. 아래는 대학교 ER모델을 1단계를 거쳐 생성한 테이블의 그림이다.

② 두 엔티티타입이 이차관계 타입으로 일대일 대응 관계를 가지고 있는 경우 이 관계 타입은 두 엔티티 타입중 하나에 포함될 수 있다.

→ 참여제약조건이 필수인 엔티티타입이 있으면 필수인 엔티티타입에 포함시키는것이 일반적이다.

 

③ 두 엔티티 사이의 관계가 일대다 매핑의 경우에도 '일'로 참여하는 엔티티타입의 테이블에 관계 타입을 묶어 나타낸다

 

④ 다대다 관계가 있는 경우 관계 타입을 위해 독립적인 테이블 S를 만든다. 

→ 일반적으로 참여 엔티티 타입의 주 키들을 합친것이 S의 주 키가 된다.

 

⑤ 관계 타입의 차수가 3차 이상일 경우 다대다 관계와 마찬가지로 새로운 테이블 S를 만든다. 

 

상위 클래스와 하위 클래스에 나타나 있는 정보를 관계형 테이블로 매핑시키는 방법은 4가지가 있다.

 

1.

상/하위 클래스에 해당하는 테이블을 만들고 이 테이블에 상/하위 클래스의 주 키를 포함한 모든 속성을 포함시킨다.

 

2.

하위클래스의 테이블을 만들고 상위 클래스의 모든 속성을 포함시킨다.

 

3.

하위클래스를 모두 합하여 하나의 테이블로 나타낸다.

 

4. 

상/하위의 모든 클래스를 합하여 하나의 테이블로 나타낸다.

반응형

'개발 > 소프트웨어 공학' 카테고리의 다른 글

사용자 인터페이스 설계와 상세 설계  (0) 2022.01.24
디자인 패턴  (0) 2022.01.23
소프트웨어 설계 기법  (0) 2022.01.20
유스케이스와 UML  (0) 2022.01.19
객체지향 분석 기법  (0) 2022.01.17

댓글