July 4th 2021
Contents
데이터베이스는 고객, 오더, 장비 등 여러 대상에 대한 정보를 관리합니다. 데이터베이스 내 테이블은 각 대상을 표현하며, 각 테이블은 또한 대상의 특징을 나타내는 여러 필드로 구성됩니다.
앞서 기존 데이터베이스를 분석하며 예비 필드 리스트, 대상(subject)리스트, Mission Objectives를 준비하는 과정을 살펴봤습니다. 이 글에서는 이 리스트를 기반으로 테이블 구조 설정하는 방법에 대해 살펴보려 합니다
우선 예비 필드 리스트를 검토하며 리스트에 내포된 대상이 있는지 확인합니다. 대상(subject)리스트가 아닌 필드 리스트를 통해 먼저 대상(Subject)을 파악하는 이유는 혹시 누락한 대상이 있다면 필드 리스트 검토를 통해 추가하기 위해서입니다.
준비한 필드 리스트를 객관적인 시각으로 살펴보고 특정 필드 리스트가 모여 어떤 생각지 못 한 Subject를 나타내지는 않는지 확안하는 시간을 가집니다. 혹시 놓치 대상이 있다면 예비 테이블 리스트에 추가를 합니다.
위에서 필드 리스트를 검토하며 작성한 예비 테이블 리스트와 기존에 작성해 놓은 대상(subject)리스트를 새로운 예비 테이블 리스트로 합칩니다.
두 리스트를 하나의 리스트로 합하며 중복된 항목은 없는지 살펴봐야 합니다. 두 리스트에 중복된 아이템이 있다면 하나로 합칩니다.
이름이 같은 두 아이템이 실제로는 다른 대상을 나타내는 것은 아닌지 잘 살펴봅니다. 같은 대상이라면 하나의 아이템만 리스트에 남겨두고, 다른 아이템이라면 적절히 네이밍을 한 후 리스트에 합칩니다. 반대로, 리스트 상 이름은 다르지만 실제로는 같은 대상을 나타내는 항목이 있는지도 살펴봅니다.
그리고는 대상(Subject)리트스와 예비 테이블 리스트를 합한 테이블 리스트를 새로 생성합니다.
앞 단계에서 명시한 데이터베이스의 Mission Objectives를 참고하며 혹시 간과하거나 누락한 Subject가 없는지 마지막으로 검토합니다.
이렇게 작성한 예비 테이블 리스트를 기준으로 최종적 테이블 리스트로 작성합니다. 이 리스트에는 아래와 같은 내용의 Table Type과 Table Description에 대한 정보를 추가해 줍니다.
Table List
Name: Courses
Type: Data
Description:
- 해당 기관에서 제공하는 강의 프로그램. Course는 새로이 추가되거나 제거되는 코스 정보와 기존 코스의 추가되는 정보를 반영해야 함.
Name: Classrooms
Type: Data
Description:
- ... 생략 ...
Table Type은 해당 테이블이 데이터베이스 내에서 어떠한 역할을 하는지 나타내는 역할을 합니다. 일반적으로 아래와 같이 네 가지 테이블 타입을 사용할 수 있습니다.
데이터베이스를 사용하는 기관 또는 회사 등의 주요 대상(Subject)를 나타내며, 데이터베이스가 제공하는 정보의 근간을 이룹니다.
Many-to-Many 관계에 있는 두 테이블 간 연결 고리 역할을 하는 테이블입니다.
Subset Table은 특정 Data Table과 관련된 필드를 구성하며, Data Table에 대한 좀 더 구체적인 정보를 포함합니다.
다른 테이블에 비해 상대적으로 정적인 데이터를 포함하고, Data Integrity 측면에서 중요한 역할을 합니다.
지금 단계에서의 테이블 리스트 항목은 데이터베이스의 핵심적인 항목이기 때문에 Data Type은 모두 Data Table일 것입니다. 아직 테이블 간 어떠한 관계를 설정하지 않았고, Subset Table은 각 테이블에 Field를 할당 후 설정하기 때문이에요.
여기까지 준비된 필드 리스트와 테이블 리스트를 가지고 필드를 각 테이블에 할당하는 과정을 진행합니다. 종이에 테이블 리스트 아이템을 하나씩 옮겨 적고 필드 리스트의 항목을 해당하는 테이블 밑에 나열해 줍니다.
필드 이름 규정 시 참고 사항
이상적인 필드 특징
이상적인 테이블 특징