예비 테이블 목록 정의
테이블은 테이블의 주제를 잘 나타내고 정의하는 특성을 표현하는 필드로 구성되어 있다. 테이블은 데이터베이스의 기초가 되며 이것들을 적절히 설계할 때 튼튼하고 훌륭한 기초를 보장한다.
예비 테이블 목록을 작성하기 위해 세 가지 절차를 사용하게 된다.
- 예비 필드 목록의 사용과 관련이 있다.
- 인터뷰 과정에서 얻어낸 주제 목록의 사용과 관련이 있다.
- 데이터베이스 설계 초입에서 정의했던 임무 목표들의 사용과 관련이 있다.
그런 다음 예비 필드 목록의 필드들을 사용해 각 테이블의 구조를 구축할 것이다.
암시적 주제 선별하기
기본 필드 목록에서 필드를 검토하는 것은 마치 그것들을 처음보는 것처럼 객관적으로 목록을 보는 것이 중요하다. 예비 필드 목록을 검토하면서 필드의 특정 집합이 특정 주제를 정의하거나 표현하고 있는지 자문해보자. 아무것도 떠오르지 않는다면 필드의 또 다른 집합으로 넘어간다. 필드 목록에서 주제를 추론할 수 있을 때, 그 주제를 새 예비 테이블 목록에 기입한다.
아래는 예비 필드 목록의 부분적인 샘플을 보여주고 어떻게 주제가 필드 집합에 의해 제안될 수 있는지 보여준다.
모든 필드들을 훑어보고 가능한 많은 주제를 식별할 때까지 검토를 계속한다. 식별한 주제는 예비 테이블 목록에 계속 추가한다. 이 목록은 주제와 임무 목표 목록 작업 시에 더 커질 것이다.
아래는 예비 테이블 목록의 초기 버전 예제를 보여준다.
주제 목록의 사용
이제 주제 집합(사용자 및 관리자와의 인터뷰를 통해 작성된)과 첫 번째 예비 테이블 목록(예비 필드 목록을 검토하여 추론된)을 통합하여 예비 테이블 목록의 두 번째 버전을 만든다. 이 새로운 버전은 보다 완성된 테이블들의 목록을 포함한다. 두 목록을 병합하는 것이 세 단계 작업으로 이루어 진다.
1단계: 중복 항목 해소
발견되는 중복 항목들을 해결하는 방법은 매우 주의해야 한다. 동일한 이름을 사용함에도 불구하고 다른 주제를 표현할 수도 있기 때문이다. 만약 다른 주제를 표현하는 항목들이라면 정확이 식별이 가능하도록 각각 항목들의 이름을 변경하고 예비 테이블 목록에 변경된 이름들을 추가한다. 그렇지 않다면 정말 동일한 주제를 표현하는지 여부를 결정한다. 만약 동일한 주제를 표현한다고 결론이 난 경우 주제 목록의 항목은 제거하고 예비 테이블에 항목은 그대로 유지한다. 그리고 주제 목록과 예비 테이블 목록 모두에서 모든 항목을 검사할 때까지 이 검토를 계속한다.
[예시]
장비 임대 사업을 위한 데이터베이스를 개발 중이고, 아래 그림에 표시된 주제 목록(List of Subjects)과 예비 테이블 목록(Preliminary Table List)에 대해서 작업을 하고 있다고 가정하자.
이 목록을 검토하면서 ‘장비’(Equipment)와 ‘임대 계약서’(Rental Agreements)라는 두 개의 중복 항목을 발견하였다. 인터뷰 노트 검토 결과를 토대로 장비라는 항목이 각각 다른 주제를 나타내는지 여부를 결정하려고 보니, 아래와 같이 표현된다는 것을 기억해냈다.
- 주제 목록의 장비: 가전 상품, 시청각 장비 등의 도구를 표현
- 예비 테이블 목록의 장비: 트럭, 밴, 트레일러를 포함
인터뷰 노트를 더욱 검토한 결과 차량 대여는 일반 장비 대여와는 다르게 취급된다는 사실을 발견했다.
따라서 장비라는 각 목록의 항목은 다른 주제를 나타낸다. ‘장비’라는 하나의 항목은 그대로 두고 다른 하나는 ‘차량’(Vehicles)으로 변경함으로써 중복을 해결한다.
이제 ‘임대 계약서’에도 같은 작업을 수행한다. 다행히 두 항목은 동일한 의미를 가진다는 것을 발견했다. 이 경우에는 주제 목록의 ‘임대 계약서’를 제거한다.
[변경된 버전]
2단계: 동일한 주제를 나타내는 항목 해소
이 단계의 목표는 주제 목록과 예비 테이블 목록에서 비록 다른 이름을 가지고 있더라도 동일한 주제를 표현하는지 여부를 파악하는 것이다. 그런 항목이 있다면, 가장 주제를 잘 표현하는 이름을 선택하고 그것을 그 주제에 대한 식별자로 사용한다.
아래와 같은 방법으로 이름을 처리한다.
- 만약 선택한 이름이 예비 테이블 목록에서 나타날 경우, 주제 목록에서 대응하는 항목을 제거한다.
- 주제 목록에서 이름이 나타날 경우, 예비 테이블에서 그 이름의 짝을 제거한 후 이를 주제 목록의 이름으로 대체한다.
주제 목록에 있는 모든 항목에 대해서 이 작업을 반복한다.
[예시]
주제 목록에서 ‘고객’(Clients)과 ‘종업원’(Employees), 예비 테이블 목록에서 ‘손님’(Customer)과 ‘영업 담당자’(Sales Reps)들이 각각 서로 같은 주제를 나타내는 것을 가정하자. 먼저 ‘고객’과 ‘손님’을 처리하기로 결정, 인터뷰 노트를 검토하고 ‘손님’이 회사로부터 장비를 임대해가는 사람과 조직을 가장 잘 표현하는 이름임을 결정한다. 그런 다음 ‘손님’과 ‘고객’을 제거해서 중복을 해소한다.
다음은 ‘종업원’이 기업에 의해서 고용된 사람들을 직위에 상관없이 가장 잘 표현하는 이름이라 생각하고 ‘영업 담당자’를 폐기하리고 결정한다.
[변경된 버전]
3단계: 주제 목록과 예비 테이블 목록의 항목 결합
이 단계는 세 단계 중에 가장 쉽다. 주제 목록에 남은 항목들을 모두 예비 테이블 목록에 추가하는 것이 전부다. 그런 다음 주제 목록은 던져 버려라(그것은 이제 더 이상 필요 없다.) 그 목록이 바로 예비 테이블 목록의 두 번째 버전이다.
아래는 예비 테이블 목록의 두 번째 버전을 보여준다. 위에 있던 그림에서 두 목록의 결합의 결과다.
임무 목표 사용하기
이전 단계들에서 빠뜨린 주제가 있는지 임무 목표를 사용해 파악한다. 이는 예비 테이블 목록에 테이블을 추가하는 마지막 기회가 되겠다.
최초의 임무 목표로 시작해 그 문장에서 표현된 주제를 식별하기 위해 주제-식별 기법을 사용한다. 식별한 주제에 각각 밑줄을 긋고 예비 테이블 목록과 서로 확인한다. 이전 절차에 사용한 동일한 기법을 사용한다.
- 임무 목표 문장에 밑줄 친 항목이 예비 테이블 목록의 항목과 일치할 경우, 해당 항목이 다른 주제를 표현하는지 파악한다. 만약 그럴 경우 각각의 항목에 대한 적당한 이름을 할당하고 이를 예비 테이블 목록에 추가한다. 그렇지 않다면 중복되는 항목을 임무 목표에서 제거한다.
- 임무 목표 문장에 밑줄 친 항목이 예비 테이블 목록의 항목과 동의어이거나 같은 주제를 표현할 때, 주제를 가장 잘 식별할 수 있는 항목을 선택해 예비 테이블 목록에 사용한다.
- 임무 목표 문장에 밑줄 친 항목이 새로운 주제를 나타내는 경우, 예비 테이블 목록에 추가한다.
모든 임무 목표에 작업을 반복하라.
[예시]
비행 훈련 학교의 데이터베이스를 설계하고 있다고 가정하자. 다음 문장에 주제-식별 기법을 사용했다.
우리는 우리의 조종사(Pilots)와 그들의 증명서(Certifications)에 대한 데이터를 유지할 필요가 있다.
이 경우 이미 예비 테이블 목록에 존재하며 동일한 주제를 표현하는 ‘조종사’(Pilots)를 임무 목표 문장에서 제거한다. 그런 다음 ‘증명서’(Certifications)에 조사를 하기로 결정하고 신중하게 생각한 끝에 다음과 같은 관찰을 얻어낸다.
- 예비 테이블 목록에 나타나지 않는다.
- 예비 테이블 목록의 어떤 항목과도 중복되지 않는다.
- 예비 테이블 목록의 어떤 항목과도 비슷한 이름이 아니다.
- 예비 테이블 목록의 어떤 항목과도 같은 주제를 표현하지 않는다.
이러한 발견은 ‘증명서’(Certifications)는 예비 테이블 목록에 추가될 새로운 항목임을 의미한다. 따라서 예비 테이블 목록에 이를 추가하고 임무 목록 문장에서 제거한다(이는 해당 항목을 이미 처리했음을 의미한다).
[변경된 버전]
Previous
‘데이터 무결성’ -> Previous
Next
‘최종 테이블 목록 정의’ -> Next