1 DB Design
DB 설계는 각 설계자마다 다르게 설계하므로 science가 아니라 art라고 부른다. 후에 게시되는 블로그를 읽어보면 주관적인 판단이 들어가는 요소가 많이 있음을 파악할 수 있다.
1.1 Reduced Scope
- 보통 데이터 거버넌스를 비롯한 데이터 모델링을 실패하는 이유는 너무 광범위한 범위를 설정하여 비지니스를 구체화 및 명시화하지 못하기 떄문이라고 한다 (많은 article과 papers가 있으니 각자가 찾아서 참고하시기 바람).
- 단기 및 중장기적인 기간에 가시적인 산출물을 낼 수 있는 범위로 줄여 best practice를 제시하여 많은 유저들을 확보하는 것이 프로젝트 지속성을 증가시킬 수 있는 tip이다.
1.2 요구사항 분석 (Requirement Collection and Analysis)
- 업무기술서 작성
- 명확한 목적 설정
- 업무기술서의 목적과 범위를 명확히 정의한다.
- 누구를 위한 문서인지, 어떤 정보를 담아야 하는지 파악한다.
- 이해관계자 식별 및 참여
- 관련된 모든 이해관계자를 식별하고 참여시킨다.
- 업무 담당자, 관리자, 개발자 등 다양한 관점을 포함한다.
- 구조화된 형식 사용
- 일관된 템플릿이나 형식을 사용한다.
- 섹션별로 명확히 구분하여 정보를 구조화한다.
- 상세한 업무 프로세스 기술
- 사실상, 이 단계에서 데이터 모델링 가능/여부가 결정된다.
- Data Platform을 처음 도입하는 많은 회사들이 본인들의 업무 절차의 표준화가 되어 있지 않기 떄문에 메뉴얼화 할 수 없고 업무 프로세스를 표준화를 할 수 없다.
- 회사의 규모가 클 수록 업무 프로세스가 표준화되는데도 많은 시간이 소요된다.
- 범위를 줄여 현실적으로 실행가능한 항목들을 추려내야한다.
- 업무 흐름을 단계별로 상세히 기술한다.
- 각 단계에서 사용되는 데이터를 명확히 식별한다.
- 데이터 요소 정의
- 각 업무 프로세스에서 사용되는 데이터 요소를 정의한다.
- 데이터의 의미, 형식, 제약조건 등을 명시한다
- 비즈니스 규칙 명시
- 데이터와 관련된 모든 비즈니스 규칙을 명확히 기술한다.
- 데이터 무결성, 계산 규칙, 제약조건 등을 포함한다.
- 용어 정의
- 업무 도메인의 주요 용어를 정의하고 일관되게 사용한다.
- 용어집을 만들어 문서에 포함시킨다.
- 다이어그램 활용
- 업무 흐름도, 개념적 데이터 모델 등을 사용하여 시각화한다.
- 복잡한 관계나 프로세스를 이해하기 쉽게 표현한다.
- 실제 업무 사례나 데이터 예시를 포함하여 이해를 돕는다.
- 이해관계자들의 검토를 받고 피드백을 반영한다.
- 여러 차례의 반복적인 검토와 수정을 거친다.
- 문서 전체에 걸쳐 용어, 형식, 스타일의 일관성을 유지한다.
- 문서의 버전을 관리하고 변경 이력을 기록한다.
- 문서를 쉽게 이해하고 참조할 수 있도록 구성한다.
- 목차, 색인 등을 포함하여 필요한 정보를 빠르게 찾을 수 있게 합니다.
- 향후 발생할 수 있는 업무 변화나 확장을 고려하여 작성한다.
- 필요한 경우 데이터 보안 및 규정 준수 요구사항을 포함한다.
- 명확한 목적 설정
- 예시
- 수강신청 시스템 업무기술서
- 목적 본 문서는 대학교 수강신청 시스템의 데이터베이스 설계를 위한 업무 요구사항을 기술합니다.
- 시스템 개요 수강신청 시스템은 학생들이 학기별로 수강할 과목을 선택하고 등록할 수 있게 하며, 교수와 관리자가 관련 정보를 관리할 수 있도록 합니다.
- 주요 엔티티: 학생, 교수, 과목, 수강신청, 학과, 강의실
- 업무 프로세스
- 수강신청 프로세스
- 학생이 시스템에 로그인합니다.
- 학생이 해당 학기의 개설 과목 목록을 조회합니다.
- 학생이 희망 과목을 선택하고 수강신청을 합니다.
- 시스템은 수강 가능 여부(선수과목, 정원 등)를 확인합니다.
- 신청이 승인되면 수강신청 내역에 추가됩니다.
- 학생은 수강신청 내역을 조회하고 필요시 변경/취소할 수 있습니다.
- 과목 관리 프로세스
- 교수가 새로운 과목을 제안합니다.
- 관리자가 과목 정보를 검토하고 승인합니다.
- 승인된 과목은 개설 과목 목록에 추가됩니다.
- 교수는 자신의 과목에 대한 정보(강의계획서 등)를 업데이트할 수 있습니다.
- 수강신청 프로세스
- 데이터 요구사항
- 학생 정보
- 학번 (기본키)
- 이름
- 학과
- 학년
- 연락처
- 이메일
- 과목 정보
- 과목코드 (기본키)
- 과목명
- 담당교수
- 학점
- 수강정원
- 강의시간
- 강의실
- 선수과목 (있는 경우)
- 수강신청 정보
- 수강신청ID (기본키)
- 학생ID (외래키)
- 과목코드 (외래키)
- 신청일시
- 상태 (신청완료, 대기, 취소 등)
- 학생 정보
- 비즈니스 규칙
- 학생은 한 학기에 최대 21학점까지 신청할 수 있습니다.
- 동일 시간대에 중복된 과목 신청은 불가능합니다.
- 수강정원이 초과된 경우, 대기 목록에 등록됩니다.
- 선수과목이 있는 경우, 해당 과목 이수 여부를 확인해야 합니다.
- 수강신청 변경 및 취소는 지정된 기간 내에만 가능합니다.
- 보고서 요구사항
- 학생별 수강신청 내역
- 과목별 수강신청 학생 목록
- 학과별 개설 과목 통계
- 시간대별 강의실 사용 현황
- 인터페이스 요구사항
- 학사관리 시스템과의 연동 (학생 정보, 성적 정보 등)
- 모바일 앱을 통한 수강신청 지원
- 보안 요구사항
- 사용자 인증 및 권한 관리
- 개인정보 보호를 위한 암호화
- 데이터 접근 로그 관리
- 수강신청 시스템 업무기술서