7.관계형 데이터베이스설계 - 테이블 구조 설정하기

2008. 9. 12. 21:37Study/Database

1. 예비 테이블 목록 정의하기

 이 작업에서 새 데이터베이스를 위한 테이블들을 식별하고 설정하는데 사용할 예비 테이블 목록을 정의하는데, 세개의 절차를 사용하게된다.

 - 첫 번째, 예비 필드 목록의 사용과 관련된 작업

 - 두 번째, 면담 작업에서 수집한 주제 목록의 사용과 관련된 작업

 - 세 번째, 임무 목표들의 사용과 관련된 작업

1) 암시적 주제 식별하기

 테이블 정의 작업은 예비 필드 목록 검토로 시작하는데, 목적은 필드들에 내포된 주제들 식별하는 것이다. 예비 필드 목록의 필드들을 검토하는 것은 편중되지 않은 관점에서 주제들을 식별하도록 도와준다. 목록의  필드로부터 주제를 추론할 수 있으면 주제를 예비 테이블 목록에 넣는다.


2) 주제 목록 사용하기

 주제어 목록과 예비 테이블 목록의 첫번째 버전을 통합하여 예비 테이블 목록의 두번째 버전을 만든다.

- 두 목록을 통합하는 절차

a) 절차1: 이중항목들을 해소하기

 주제목록 상의 항목들을 예비 테이블 목록 상의 항목들에 대해 검토하여 상호 체크하여 절차를 시작한는데, 예비 테이블 목록 상에 이미 있는, 주제 목록 상의 항목인 이중 항목을 식별하기 위한 것이다.

b) 절차2: 같은 주제를 나태내는 항몯들을 해소하기

 주제 목록 상의 항목과 예비 테이블 목록 상의 항목이 서로 다른 이름을 가졌지만 같은 주제를 나타내는지 예부를 파악하기 위한 것이다.

 - 만약 선택한 이름이 이미 예비 테이블 목록에 있다면, 주제 목록의 짝을 삭제한다.

 - 만약 그 이름이 주제 목록에 있다면, 예비 테이블 목록의 짝을 제거한후, 이것을 주제 목록의 이름으로 교체한다.

c) 절차3: 주제목록과 예비 테이블 목록의 항목들을 통합하기

 주제어 목록에 남아 있는 모든 항목들을 예비 테이블 목록에 추가하여 예비 테이블의 두 번째 버전을 완성한다.


3) 임무 목표 사용하기

앞의 두 단계에서 빠드린 주제가 있는지 파악하기 위해 임무 목표를 사용한다. 각 임무 목표의 문장에서 나타낸 주제를 식별하기 위해 주제 식별 기술을 사용한다. 각 주제어를 예비 테이블 목록에 대해 체크한다.

a) 임무 목표 문장에 밑줄 친 항목이 예비 테이블 목록 상의 항목과 일치하면, 다른 주제를 나태내는지 여부를 파악한다. 그렇경우, 적절한 이름을 할당하고 예비 테이블 목록에 추가한다.

b) 임무 목표 문장에 밑줄 친 항목이 예비 테이블 목록의 항목과 같은 뜻의 이름을 가졌고 두 항목 모두 같은 주제를 나타내면, 가장 잘 식별하는 이름을 선택하고 예비 테이블 목록에서 사용한다.

c) 임무 목표 문장에 밑줄친 항목이 새 주제를 나타내면, 예비 테이블 목록에 추가한다.


2. 최종 테이블 목록 정의하기

 진행된 예비 테이블 목록을 최종 테이블 목록으로 변환한다. 테이블 종류와 테이블 설명을 작성한다. 테이블 종류는 데이터베이스 내에서 수행하는 역할에 의해 테이블을 분류하고, 작동하는 테이블들을 식별하기 위한 수단을 제공한다. 테이블 역할은 그 종류를 결정한다.

- 테이블 종류

 a) 데이터 테이블 : 중요한 주제를 나타내고 데이터베이스가 제공하는 정보의 기초를 이룬다.

 b) 연결 테이블 : 다대다 관계의 두 테이블 사이의 연결을 설정한다.

 c) 부분 집합 테이블 : 특정 데이터 테이블과 연관된 필드들을 포함하고, 데이터 테이블의 주제를 구체적으로 설명한다.

 d) 검증 테이블 : 정적인 데이터를 포함하고, 데이터 무결성의 중요한 구성 요소이다.


- 테이블 설명은 테이블에 의해 표현된 주제의 명확한 정의를 제공하고, 조직에 중요한 이유를 설정한다.

1) 테이블 이름 정제하기

 테이블 이름은 주제를 명확히 식별해야 한다.

 [테이블 이름을 부여하기 위한 지침]

 a) 유일하고, 전체 조직에 의미가 있는 설명적인 이름을 부여한다.

 b) 테이블의 주제를 정확하게, 명확하게, 그리고 모호하지 않게 식별하는 이름을 부여한다.

 c) 테이블의 주제를 전달하기 위해 필요한 최소 개수의 단어들을 사용하라.

 d) 물리적 특성을 전달하는 단어들을 사용하지 말라

 e) 두문자어와 약어를 사용하지 않는다.

 f) 테이블에 입력되는 데이터를 지나치게 제한하는 독특한 이름이나 다른 단어들을 사용하지 않는다.

 g) 하나 이상의 주제를 암시적 또는 명시적으로 식별하는 이름을 사용하지 않는다.

 h) 이름의 복수형을 사용한다.


2) 테이블 종류 보이기

 최종 테이블 목록의 각 테이블들을 데이터 테이블로 지정한다.


3) 테이블 설명 작성하기

1) 테이블 설명을 작성하기 위한 지침

 a) 테이블을 정확하게 정의하는 문장을 포함한다.

 b) 왜 이 테이블이 조직에게 중요한지 설정하는 문장을 포함시킨다.

 c) 명확하고 간결한 설명을 작성한다.

 d) 테이블이 어떻게 또는 어디에 사용되는지와 같은, 구현에 관련된 정보를 테이블 설명에 포함시키지 않는다.

 e) 다른 테이블의 테이블 설명에 의존적인 테이블 설명을 작성하지 않는다.

 f)  테이블 설명에 예를 사용하지 않는다.


2) 사용자 및 관리자와 면담하기

 사용자 및 관리자와 면담을 통해 각 테이블의 설명에 대해 동의를 얻어 낸다.


3. 각 테이블에 필드 포함시키기

 A4지 한장에 최상단에 최종 테이블 목록의 테이블 명을 왼쪽에서부터 차례로 적는다. 각 테이블 명 밑에 예비 필드 목록으로부터 필드를을 각 테이블에 할 당한다.


4. 필드 정제하기

1) 필드 이름 개선하기

 모호하거나 애매한 또는 불명확한 필드 이름은 문제가 있음을 나타내고, 필드의 목적을 식별하지 않았다는 것을 암시한다.

 [필드 이름을 부여하기 위한 지침]

 a) 유일하고, 전체 조직에 의미가 있는 설명적인 이름을 부여한다.

 b) 필드가 나타내는 특성를 정확하게, 명확하게, 그리고 모호하지 않게 식별하는 이름을 부여한다.

 c) 필드가 나타내는 특성의 의미를 전달하기 위해 필요한 최소 개수의 단어들을 사용한다.

 d) 두문자어를 사용하지 말고, 약어는 사려 깊게 사용한다.

 e) 필드 이름의 의미를 혼돌시킬 수 있는 단어들을 사용하지 않는다.

 f) 하나 이상의 특성을 암시적 또는 명시적으로 식별하는 이름을 사용하지 않는다.

 g) 이름의 단수형을 사용한다.


2) 변칙을 해소하기 위해 이상적 필드 사용하기

 이상적인 필드의 요소를 발견하기 위한 지침

 a) 테이블 주제의 고유한 특성을 나타낸다.

 b) 단지 하나의 값만 포함한다.

 c) 더작은 구성 요소로 해체될 수 없다.

 d) 계산되거나 연결된 값을 포함하지 않는다.

 e) 전체 데이터베이스 구조 않에서 유일하다.

 f) 하나 이상의 테이블에 나타날 때는 속성들의 대부분을 보유한다.

 * A4지에 왼쪽에서부터 필드를 차례로 적고 그아래 몇 개의 샘플 데이터를 채워 준다. 이 것은 데이터베이스의 테이블에 저장될 예로 다중 필드와 다중 값 필드를 확인하여 해결할 수 있게 해준다.


3) 다중 부분 필드 해소하기

 다중 부분 필드는 둘 이상의 고유한 항목들을 포함하고 있기 때문에 정보 추출, 정렬, 그룹화하는 것이 힘들다.

4) 다중값 필드 해소하기

 다중값 필드는 같은 값을 두 벌 이상 저장할 가능성이 있다. 다중값 필드는 필드명이 복수형, 여러개의 쉼표를 포함하는 경향이 있다. 다중값 필드는 정보 추출, 정렬 및 필드의 공간적인 관리가 어렵다.

- 평탄화 : 다중값 필드를 여러 개의 필드로 나눈다. 범주의 정보를 추출하는 것이 불편하다.(검색조건으로 정의한 모든 필드를 일일이 찾아야 한다) 의미 있는 형식으로 범주 데이터를 정렬할 수 있는 방법이 없다. 변동적이다(테이블 생성이에 정의한 수로 제한된다).

- 해결 방법

 a) 다중값 필드를 테이블로 부터 제거하고 새 테이블의 기초로 사용한다.

 b) 원래 테이블을 새 테이블과 관계를 맺도록 하기 위해, 원래 테이블로부터 필드를 사용한다.

 c) 새 테이블에 적적한 이름, 종류, 설명을 할당하고, 최종 테이블 목록에 추가한다.


5. 테이블 구조 정제하기

1) 중복 데이터와 이중 필드에 대하여

- 중복 데이터는 두 테이블의 관계를 맺는데 필드가 참여한 결과로, 또는 어떤 필드 또는 테이블 비정상의 결과로 필드 내에 반복되는 값이다. 첫 번째 경우, 중복 데이터는 적합하다. 두 번째 경우에는 중복 데이터는 결코 허용되지 않는다. 이는 데이터 일관성과 데이터 무결성에 문제를 일으킨다.

- 이중필드

 a) 이것은 테이블 집할을 서로 연관시키는데 사용된다.

 b) 이것은 특정 종류의 값의 중복적인 발생을 가리킨다.

 c) 보충적인 정보를 위한 필요가 있다.


2) 테이블 구조를 정제하기 위해 이상적 테이블 사용하기

- 이상적 테이블의 요소들

 a) 개체 또는 사건일 수 있는 단일 주제를 나타낸다.

 b) 주 키를 가진다.

 c) 다중 부분 또는 다중 값 필드를 포함하지 않는다.

 d) 계산된 필드들을 포함하지 않는다.

 e) 불필요한 이중 필드들을 포함하지 않는다.

 f) 단지 절대적으로 최소한의 중복 데이터만 포함한다.

- 불필요한 이중 필드 해소하기


3) 부분 집합 테이블 설정하기

특정 테이블의 일부 필드들은 항상 값을 포함하지 않는 경우가 발생한다. 이 것은 테이블 설계과정에서 발생하는 구조적인 비정상의 한 종류이다.

- 이상적 테이블의 첫 번 요소(단일 주제를 나타낸다)를 파악한다. 여러 주제를 나타낼 가능성이 높다. 나태내는 주제을 나타내는 필드들을 제거하고, 새 테이블의 기초로 사용한다.

- 앞에서 식별되지 않은 부분 집합 테이블 정제하기(부분 집합 절차)

 a) 부분 집합 테이블들이 공통으로 가지는 모든 필드들을 제고하고, 이것들을 새 데이터 테이블을 위한 기초로 사용한다.

 b) 이 새 데이터 테이블이 어떤 주제를 나타내는지 식별하고, 이 테이블에 적절한 이름을 부여한다.

 c) 부분 집합 테이블들이 데이터테이블의 종속 주제들을 나타내는 것을 확인하고, 필요하면 부분 집합 테이블의 이름을 바꾼다.

 d) 데이터 테이블을 위한 적당한 설명을 작성하고,  이것을 최종 테이블 목록에 추가한다. 이 테이블의 종류를 '데이터'로 지정한다.




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