국민내일배움카드 - 고용노동부

에이콘 아카데미

아카데미 이야기 전문가칼럼

전문가칼럼

에이콘 아카데미의 전문 강사님의 분야별 칼럼을 확일 할 수 있습니다.

lesson03) Database Modeling - Data Flow Diagram,논리적 설계

 

​lesson03) Database Modeling - Data Flow Diagram,논리적 설계

 

<소프트웨어 설계방법>

 


 


8] 데이터베이스 설계 과정

 

*요구사항 수집 및 분석

 

- 개념적 설계

- 논리적 설계

- 물리적 설계

 

 

(1) 요구사항


- 사용자가 필요로 하는 사항을 일차적으로 수집/조사 

  조사결과를 분석해서 데이터베이스 설계의 제한 조건들이 된다.

 

- 시스템 사용자의 요구사항 및 기능적 요구사항을 명시 



* 요구사항 수집

 

- 대상에 대한 일반적인 사항

기존 시스템에 기초 조사

- 설문지 작성 , 담당자 면담 , 업무현장 방문


 


* 요구사항 분석

 

- 전체 시스템의 몇개의 기능 단위로 분할 

- 기능을 다시 세분화한 단위로 분할

- 기능과 기능 사이의 관계 명확히 정의

- 전체 시스템 측면에서 기능의 목적과 활동을 재설정(DFD 작성 등도 수행)

 

 


(2) 개념적 설계

 

- 요구 사항분석 결과에 따라


1. 엔티티 추출

2. 애트리뷰트 정의

3. 관계 정의

4. ERD 작성

 

- 개념 설계는 보통 큰 틀부터 세부적인 애트리뷰트의 분류는 하향식 설계 방식 진행 

 

(상향식설계 : 구축 대상에서 사용하는 화면 , 양식 ,

전표 등으로부터 모든 데이터 항목을 추출해 낸 후,

비슷한 애트리뷰트들을 그룹화지어 엔티티를 만드는 방식)

 

- 데이터베이스 관리 시스템의 종류와는 무관

-산출물 : ERD 

 

(3) 논리적 설계

 

- 개념 설계에서의 산출물인 ERD를 관계형 스키마와 같은 구현 

 데이터 모델로 변환

 

- 데이터베이스 관리 시스템 선정

- ERD를 관계형 스키마로 매핑

 

(4) 물리적 설계

 

- 데이터베이스 파일에 대한 내부 저장 구조 , 인덱스 접근 경로 등을 명시

- 트랜잭션 고려(질의에 대한 평균 응답시간, 초당 트랜잭션 처리 수/처리량)

- 인덱스 역정규화

 


 


* 데이터 흐름도 (DFD; Data Flow Diagram)


- 데이터가 소프트웨어(또는 시스템) 내의 각

  프로세스를 따라 흐르면서 변환되는 모습을 나타낸 그림

 

* DFD의 구성 요소


- 프로세스

- 데이터 흐름

- 데이터 저장소

- 외부 엔티티(객체)




 

(1) DFD의 프로세스

 

- 입력되는 데이터를 원하는 데이터로 변환/출력하는 

과정(자체적으로 데이터 생성 불가)


 

- 원으로 표기

- 프로세스 이름 : 수행하는 업무 또는 수행자

- 프로세스 번호 : 프로세스가 많은 경우 번호를 부여


 

(2) DFD의 데이터 흐름

 

- DFD의 구성 요소 간의 인터페이스

(대부분 프로세스들 사이를 연결)

 

- 화살표로 표기

- 때때로 저장소로부터의 데이터 흐름 표시

- 이름: 선택사항

 

(3) DFD의 저장소

 

- 저장된 정보의 집합

 (테이프 , 디스크  ,시스템 상의 자료 저장소 또는  데이터 베이스 의미)

 

- 두 개의 직선을 평행하게 그리고 직선 사이에 이름을 표기


-데이터 변동X


 (데이터 흐름을 통해 데이터 입출력 표시)


(4) DFD의 외부 엔티티




- 외부 객체

- 프로세스 처리 과정의 데이터 발생의 시작/종료 표시

- 기업의 경우 

내적인 외부 객체 : 관리 , 부서 , 기능 , 시스템 등

외적인 외부 객체 : 고객 , 거래처 , 공공기관 , 외부 시스템등 

 

- 사각형에 이름을 표기  


* DFD 작성방법

 

- 배경도를 작성한 후에 하위 레벨이 자료 흐름도를 

세밀하게 작성 최종 완성

 

(1) 배경도 : 시스템의 최상위 프로세스를 표기한 것. (시스템의 외부에서 바라본 모습)

한 개의 프로세스를 중심으로 외부 객체와의 관계 표시 

 

==> 시스템 분석 범위 결정

 

(2) 레벨 0 DFD

 

: 배경도의 프로세스를 서로 연결되는 몇개의 하위 프로세스로 분할하는 단계

나머지 데이터 흐름은 그대로 유지


 

(3) 레벨1~3 DFD

 

: 하위 레벨 DFD

계속 하위 레벨로 세분화하여 자료 저장소를 모두 나타냄

 

* DFD 작성시 유의사항


- 순서도와 구분

- 입출력 흐름을 명확히 표시 

- 이름들은 쉽고 의미있는 것으로 사용

 


[9] 논리적 설계


* 요구사항을 분석하고 , 개념설계를 통해 ERD가 작성되면 컴퓨터가 이해할 수 있는 모델링 작업 진행

- 산출물 : 관계형 데이터베이스 스키마 

 

* 관계(테이블 또는 릴레이션)

- 흔히 부르는 테이블이라는 용어로 사용 

- 관계 행 : 애트리뷰트

- 관계 열 : 튜플(실제 데이터 값)


* 튜플(레코드 또는 행)

- 관계를 구성하는 각각의 행을 의미

- 애트리뷰트의 모임으로 구성

 


* 애트리뷰트(속성 또는 열)

- 데이터베이스를 구성하는 가장 작은 논리 단위

- 개체의 특성 기술

 

* 도메인 

 

- 애트리뷰트가 취할 수 있는 같은 타입의 원자 값들의 집합

- 실제 애트리뷰트 값이 나타날 때, 값의 적합 여부를 검사에도 사용

 

* 슈퍼키 

 

- 관계에서 같은 튜플이 발생하지 않는 키를 구성할 때

애트리뷰트의 집합으로 구성하는 것

 

- 관계에 있는 모든 튜플에 대해서 유일성 만족(최소성은 만족하지 못함)

 

- 슈퍼키의 최소 형태 : 형태키 

 

* 후보키

 

- 관계를 구성하는 애트리뷰트들 중에서 튜플을 

유일하게 식별하려고 사용하는 애트리뷰트들의 부분집합

 

- 기본키로 사용할 수 있는 애트리뷰트

 

* 기본키(Primary Key) 

 

- 후보키 중에서 선택한 주 키

- 널(null)값을 가질 수 없음

- 동일한 값을 중복 사용 불가

 

* 외래키(Foreign Key)


- 관계를 맺는 두 릴레이션에서 참조하는 릴레이션에 애트리뷰트로 지정되는 키 값


* 참조 무결성 제약조건


- 한 릴레이션에 있는 튜플이 다른 릴레이션에 있는 튜플을 참조하려면 

반드시 참조되는 튜플이 해당 릴레이션 내에 있어야 하는 것

 

* 키 제약 조건

 

- 키 애트리뷰트의 값은 릴레이션 내의 각 튜플을 유일하게 식별해야 하는 것 

 

* 도메인 제약 조건

 

- 각 애트리뷰트의 값은 반드시 도메인에 속하는 

원자 값이어야 한다

 

* 엔티티 무결성 제약 조건

-어떠한 기본키 값도 널을 가질 수 없다


* 제약조건의 위배에 따른 처리 

 

(1) 삽입 연산

- 삽입되는 튜플의 애트리뷰트 값이 도메인이 없는 경우

- 이미 다른 튜플에 있는 기본키 값을 삽입 하는 경우

- 외래키 값이 참조되는 릴레이션의 키 값이 존재하지 않는 경우 


(2) 삭제 연산


- 다른 테이블에서 참조하고 있는 튜플을 삭제 


(3) 수정 연산


 - 기본키나 외래키가 아닌 애트리뷰트의 값 변경은 문제 없으나 , 

그렇지 않은 경우 삽입/삭제 경우의 문제가 모두 나타남 


* ERD와 관계 모델과의 대응 관계


 

ERD                                     관계 모델

------------------------------------------------------

엔티티타입                            릴레이션


 

1:1 또는 1:n 관계타입             외래키(또는 관계 릴레이션)

M:N 관계 타입                      릴레이션과 두 외래키

N차 관계 타입                      관계 릴레이션과 N개의 외래키

단순 애트리뷰트                    애트리뷰트

복합 애트리뷰트                    단순 애트리뷰트들의 집합

다치 애트리뷰트                     릴레이션과 외래키

 

값의 집합                               도메인

키 애트리뷰트                         기본키


 

* ERwin의 카디널리티


- Zero , one Of More

 1:N 의 경우 - 그에 대응하는 대상이 없을 경우

 

- One or More

1:N 의 경우 - 반드시 대응하는 대상이 있을 때

 

- Zero or One 

   1:1 의 경우 - 대응하는 대상이 없을 경우

 

- Exactly

   대응하는 대상의 정확한 카디널리티 수