11.관계형데이터베이스설계 - 업무규칙

2008. 9. 13. 01:59Study/Database

1. 업무 규칙이란 무엇인가?

 업무 규칙은 필드 명세 내의 요소들이나 주어진 관계의 특성들처럼 데이터베이스의 특정 측면에 어떤 형태의 제약을 부과하는 문장이다.

[업무 규칙의 종류]

1) 데이터베이스 지향

데이터베이스 지향 업무 규칙은 데이터베이스의 논리적 설계 내에서 설정할 수 있는 제약 조건을 부과한다. 필드 명세 요소, 관계 특성 또는 이 둘의 조합을 수정하여 주어진 제약 조건을 구현한다. 이 들중 하나에 의해 제약조건을 의미있고 명확하게 설정되면 제약조건을 도출하는 문장은 데이터베이스 지향 업무 규칙이다.

2) 어플리케이션 지향

데이터베이스의 논리적 설계 내에서 설정할 수 없는 제약 조건을 부과한다.


2. 업무 규칙의 범주

1) 필드 특유의 업무 규칙

특정 필드를 위한 필드 명세의 요소들에 제약 조건들을 부과 한다. 주어진 규칙이 영향을 미치는 요소들의 수는 이 규칙을 정의하는 방법에 의존한다.


2) 관계 특유의 업무 규칙

관계의 특성에 영향을 미치는 제약 조건들을 부과한다.


3. 업무 규칙 정의 및 설정하기

데이터베이스를 위한 업무규칙은 조직이 데이터를 인식하고 사용하는 방법에 기초해야만 한다. 최선의 접근법은 필드 특유의 업무 규칙을 먼저, 관계 특유의 업무 규칙을 뒤이어 정의 및 설정한다.


1) 사용자 및 관리자와 작업하기


2) 필드 특유의 업무규칙 정의 및 설정하기

- 테이블을 선택한다.

- 각 필드를 검토하고 이것이 어떤 제약을 필요로하는지 여부를 파악한다.

- 필드를 위해 필요한 업무 규칙을 정의한다.

- 적절한 필드 명세 요소들을 수정함으로써 규칙을 설정한다.

- 어떤 처리가 이 규칙을 테스트하는지 결정한다.

 a) 만약 이 테이블에 새 레코드를 삽입한다면 이 규칙이 위반될 것인가?

 b) 만약 이 테이블에 새 레코드를 삽입하지 않는다면 이 규칙이 위반될 것인가?

 c) 만약 이 테이블로부터 레코드를 삭제한다면 이 규칙이 위반될 것인가?

 d) 만약 이 필드에 값을 삽입한다면 이 규칙이 위반될 것인가?

 e) 만약 이 필드에 값을 삽입하지 않는다면 이 규칙이 위반될 것인가?

 f) 만약 이 필드의 값을 갱신한다면 이 규칙이 위반될 것인가?

 g) 만약 이 필드의 값을 삭제한다면 이 규칙이 위반될 것인가?


- 이 규칙을 업무 규칙 명세서에 기록한다.

업무규칙 명세서는 다음의 장점을 제공한다.

 a) 모든 데이터베이스 지향 업무 규칙을 문서화하도록 해 준다.

 b) 모든 어플리케이션 지향 업무 규칙을 문서화하도록 해 준다.

 c) 모든 업무 규칙을 기록하기 위한 표준적인 방법을 제공한다.

 [업무규칙 명세 항목]

 . 명세

 . 제약 조건

 . 종류

 . 범주

 . 테스트

 . 영향을 받는 구조

 . 영향을 받는 필드 요소

 . 영향을 받는 관계 특성

 . 처리 사항

- 관계 특유의 업무 규칙을 정의 및 설정하기

 a) 관계를 선택한다.

 b) 관계를 검토하고 이것이 어떤 제약 조건을 필요로 하는지 여부를 파악한다.

 c) 관계를 위해 필요한 규칙을 설정한다.

 d) 적절한 관계 특성들을 수정함으로써 규칙을 설정한다.

 e) 어떤 처리가 이 규칙을 테스트하는지 결정한다.

 e) 이 규칙을 업무 명세서에 기록한다.


4. 검증 테이블

1)검증 테이블

데이터 무결성을 구현하기 위해 구체적으로 사용하는 데이터를 저장한다. 검증테이블은 주 키의 역할을 하고 데이터 무결성을 강화하기 위해 사용하는 필드와 데이터베이스의 어떤 다른 필드에 의해 요구되는 값들의 집합을 저장한는 단순한 비 키 필드로 구성된다.


2) 업무 규칙을 지원하기 위해 검증테이블 사용하기

- 업무규칙에 의해 영향을 받는 필드의 부모 테이블과 검증 테이블 사이의 관계 정의 단계

- 부모 테이블의 영향을 받는 필드를 위한 필드 명세의 값 범위 요소 수정하기 단계

5. 업무 규칙 명세서 검토하기






--------------------------
출처 - 위 글은 byung8lim의 다음블로그 Blog.daum.net/byung8lim에서 가져온 것입니다.