DB-휘트니스센터-데이터모델링 - 명우니닷컴

Download Report

Transcript DB-휘트니스센터-데이터모델링 - 명우니닷컴

목차
Ⅰ.업무분석
1. 프로젝트 개요
2. 시스템 구성도
3. 업무분석 : 업무 기술
4. 업무분석 : 그 밖의 요구사항 분석
Ⅱ. 개념적 설계
1. 엔티티 도출
2. 관계 설정
3. 업무 설정
4. 개념적 ERD
Ⅲ. 논리적 설계
1. 엔티티, 속성 및 식별자 정의
2. 관계 메트릭스
3. 통합 및 검증(모델의 검토)
4. 논리적 ERD
Ⅳ. 물리적 설계
1. 물리적 ERD
Ⅰ. 업무분석 : 주제선정
1. 휘트니스 센터 강좌관리 시스템
● 개요
본 프로젝트는 현실세계에서 이루어지는 업무 중 하나를 선택하여 분석하고 개념적 모델로 표현하고,
이를 바탕으로 데이터베이스를 구축하는 과정을 조원들과 팀을 이루어 실습해보는데 있다.
● 주제선정
본교 헬스장을 모델로 선정하여, 문서로만 이루어지던 특정업무를 선택하여 데이터베이스화 하여
정보시스템을 구축하고, 이를 바탕으로 헬스장에서 이루어지는 특정업무를 효율적으로 관리하겠다.
● 한국성서대 휘트니스 센터 소개
본 프로젝트에 적용될 한국성서대 휘트니스 센터는 교내 밀알관 지하1층에 위치한 곳이다.
휘트니스 센터는 현재 약 100여명의 회원을 보유하고 있으며, 직원은 관리자와 강사를 포함하여 10명 내외이다.
현재 진행중인 스포츠 강좌는 약 10개의 프로그램이 있다.
Ⅰ. 업무분석 : 주제선정
1. 강좌관리 DB시스템의 필요성
• 데이터모델링을 통해
기존의 강좌관리 업무
시스템보다 시간과
비용을 절약할 수 있
다
수강회원조
회
강사정보조
회
강좌관리업무의 예
Ⅰ. 업무분석 : 시스템구성
도
Ⅰ. 업무분석 : 업무기술
회원관리
• 강좌조회
강좌코드는 강좌구분문자, 개설순서 순으로 표기
- 회원이 수강하고
있는 강좌를 확인
예) CL0001 = CL (강좌) 0001 (1번째로 개설)
- 각각의 강좌는 강좌코드를 부여
특성에 따른 코드부여
Ⅰ. 업무분석 : 업무기술
회원관리
• 수강회원조회
수강회원코드는 회원구분문자, 가입순서 순으로 표기
- 휘트니스
센터 내 강좌를 수강하는 회원만 해당
예) CM0035 = CM (수강회원일련번호) 0035 (35번째로 가입)
- 각각의 회원은 수강회원코드를 부여
특성에 따른 코드부여
Ⅰ. 업무분석 : 업무기술
강좌관리
• 수강회원 등록
- 강좌를 듣고자 하는 수강생 정보를 등록
- 회원코드와 강좌신청일만을 기록
• 수강회원 조회
- 해당 강좌를 수강하는 수강생 정보를 확인
- 회원명, 생년월일, 성별, 핸드폰번호, 주소 등을
확인
Ⅰ. 업무분석 : 업무기술
강좌관리
• 강사정보
등록
강의실코드는 강의실구분문자, 호수순서 순으로 표기
- 강좌를 담당하고 있는 강사에 대한 정보를 확인
예) FR0111 = FR(지상) 0111(111호 강의실)
- 강사명, 생년월일,
성별, 핸드폰번호, 주소 등을 확인
BR0105 = BR(지하) 0105(105호 강의실)
• 강의실 조회
- 강좌가 이루어지는 강의실 검색
- 강의실 구분을 위해 강의실코드를 부여
Ⅰ. 업무분석 : 업무기술
강사관리
• 강사정보조회
- 강좌를 담당하고 있는 강사에 대한 정보를 검색
- 강좌를 담당하는 강사를 구분하기 위해 강사코드를 부여
- 강사명, 생년월일, 성별, 핸드폰번호, 주소 등을 확인
강사코드는 강사구분문자, 입사순서 순으로 표기
예) TM0012 = TM (강사) 0012 (12번째로 입사)
Ⅰ. 업무분석 : 업무기술
강의실관리
• 강의실명 조회
- 검색하는 강좌에 해당하는 강의실명을 확
인
• 수강회원 조회
- 해당 강의실의 최대 수용인원수를 확인
Ⅰ. 업무분석 : 그 밖의 요구사항 분석
요구사항
• 회원에게 발송할 우편물이 필요하면 부착할 수 있게 주소와 회원명의
라벨이 출력 가능해야 함
• 모든 강좌에 대한 수강인원 수 및 수강회원 정보는 확인 가능해야 함
• 모든 강좌에 대한 강사정보는 확인 가능해야 함
• 현재 진행중인 강좌에 대한 설명이 상세해야 함
• 시스템은 처음 사용사도 쓰기 쉽게 구현하되 직접입력을 최소화
• 현재 진행중인 강좌 검색 시 화면에 한 번에 보여줄 수 있는 최대 갯
수는 10-30개
• 기간이 종료된 강좌 등은 모아두었다 월말에 일괄처리
Ⅱ. 개념적 설계 : 엔티티 도출
관리자 개체
Ⅱ. 개념적 설계 : 엔티티 도출
강좌 개체
Ⅱ. 개념적 설계 : 엔티티 도출
개설강좌 개체
Ⅱ. 개념적 설계 : 엔티티 도출
강사 개체
Ⅱ. 개념적 설계 : 엔티티 도출
강의장 개체
Ⅱ. 개념적 설계 : 엔티티 도출
강좌수강등록 개체
Ⅱ. 개념적 설계 : 엔티티 도출
회원정보 개체
Ⅱ. 개념적 설계 : 관계 설정
관리 관계
Ⅱ. 개념적 설계 : 관계 설정
등록 관계
Ⅱ. 개념적 설계 : 관계 설정
강의 관계
Ⅱ. 개념적 설계 : 관계 설정
수강 관계
Ⅱ. 개념적 설계 : 업무 설정
강좌 개설 및 폐강
Ⅱ. 개념적 설계 : 업무 설정
강좌에 새로운 회원 등록
Ⅱ. 개념적 설계 : 업무 설정
회원이 수강 중인 강좌 조회
Ⅱ. 개념적 설계 : 업무 설정
강좌에 수강 중인 회원 조회
Ⅱ. 개념적 설계 : 업무 설정
강좌명에 따른 강사 조회
Ⅱ. 개념적 설계 : 업무 설정
강좌명에 따른 강의실 조회
Ⅱ. 개념적 설계 : 개념적 ERD
휘트니스 센터 강좌관리
개념적 모델링
Ⅲ. 논리적 설계 : 엔티티, 속성 및 식별자 정
의
논리적 설계
 Entity : 회원
 Attribute : 회원코드(PK), 회원명, 생년월일, 성별, 핸드폰번호, 주소
 Entity : 개인수강등록정보
 Attribute : 회원코드(PK)(FK), 수강강좌일련코드(FK), 강좌명,
수강신청일, 수강시작일, 수강종료일
 Entity : 강좌
 Attribute : 강좌코드(PK), 강좌명, 강좌설명, 개설인원, 개강일, 종강일
강의시작시간, 강의종료시간, 강사코드(FK), 강의실코드(FK)
Ⅲ. 논리적 설계 : 엔티티, 속성 및 식별자 정
의
논리적 설계
 Entity : 강의실
 Attribute : 강의실코드(PK), 강의실명, 수용가능인원수
 Entity : 강사
 Attribute : 강사코드(PK), 강사명, 생년월일, 성별, 핸드폰번호, 주소
 Entity : 관리자
 Attribute : 관리자코드(PK), 관리자명, 비밀번호
 Entity : 수강회원목록
 Attribute : 강좌코드(PK)(FK), 수강회원일련번호(PK), 회원정보(FK)
Ⅲ. 논리적 설계 : 관계 매트릭스
관계 매트릭스
Ⅲ. 논리적 설계 : 통합 및 검증(모델의 검토)
3. 엔티티 검토
1. 각 엔티티는 현실세계의 정보를 효과적으로 관리할 수 있는 구조인가?
- 회원 엔티티에서 해당 회원이 수강하는 강좌를 검색함에 있어 발생하는 문제
2. 유사한 내용을 관리하는 엔티티들은 없는가?
- 없다
Ⅲ. 논리적 설계 : 통합 및 검증(모델의 검토)
엔티티 검토
3. 통합 또는 분리되어야 할 엔티티들은 없는가?
- 강좌 엔티티에서 분리되어야 할 엔티티를 발견
Ⅲ. 논리적 설계 : 통합 및 검증(모델의 검토)
엔티티 검토
4. 주식별자는 인스턴스의 유일성을 보장해 주는가?
- 인스턴스의 유일성을 보장해 준다
Ⅲ. 논리적 설계 : 통합 및 검증(모델의 검토)
엔티티 검토
4. 주식별자는 인스턴스의 유일성을 보장해 주는가?
- 인스턴스의 유일성을 보장해 준다
5.주식별자에 불필요한 속성이 포함되어 있지는 않은가?
- 포함되어 있지 않음
Ⅲ. 논리적 설계 : 통합 및 검증(모델의 검토)
엔티티 검토
6. 주식별자에 속하는 속성이 너무 많지는 않은가?
-class_apply 엔티티 → 복합키(주식별자 2개)를 제외한
모든 엔티티의 주식별자 속성값은 1개입니다.
7. 여러 엔티티 사이에 중복된 속성이 존재하지는 않는가?
-기본키(PK) ↔ 외래키(FK)를 제외한 키(Key)에서는
-중복이 발생하지 않는다.
Ⅲ. 논리적 설계 : 통합 및 검증(모델의 검토)
엔티티 검토
8. 날짜를 저장하는 속성이 올바르게 구성되었는가?
9. 속성의 성격상 코드화해야 하는 것은 없는가?
- 이미 코드화가 필요한 속성은 코드화를 완료하였다.
Ⅲ. 논리적 설계 : 통합 및 검증(모델의 검토)
관계의 검토
1. ERD상에서 다른 엔티티와 관계없이 독립적으로 존재하는 엔티티는 없는가?
- 관리자 엔티티가 독립적으로 존재하나 교수님께 조언을 구한 결과
다른 엔티티와의 관계가 필수적으로 필요하진 않다고 판단하였다.
2. 관계를 너무 복잡하게 맺지는 않았는가?
- 그런지 않다. 모든 엔티티는 1:1, 1:N, N:1의 관계로 구성
Ⅲ. 논리적 설계 : 논리적 ERD
논리적 ERD
논리적 ERD 설계
Ⅳ. 물리적 설계 : 물리적 ERD
물리적 ERD
물리적 ERD 설계
Ⅳ. 물리적 설계 : 테이블 기술서
테이블 기술서
Ⅳ. 물리적 설계 : 테이블 기술서
테이블 기술서
Ⅳ. 물리적 설계 : 테이블 기술서
테이블 기술서
Ⅳ. 물리적 설계 : 테이블 기술서
테이블 기술서
Ⅳ. 물리적 설계 : 테이블 기술서
테이블 기술서
Ⅳ. 물리적 설계 : 테이블 기술서
테이블 기술서
Ⅳ. 물리적 설계 : 테이블 기술서
테이블 기술서
Ⅳ. 물리적 설계 : 뷰 정의서
뷰 정의서
뷰명
뷰 설명
관련 테이블
SQL
high_class_apply
회원별
수강신청 목록
class_apply
SELECT mem_class_name
From class_apply
WHERE mem_num = 'MM????';
high_class
_member_list
강좌별 수강회원
목록
class_member_li
st
SELECT member_num
From class_member_list
WHERE class_num = 'CL????';
teacher
SELECT tea_name
FROM teacher
WHERE tea_num = 'TM????';
high_teacher
강좌별 강사정보
Ⅳ. 물리적 설계 : 인덱스 정의서
인덱스 정의서
Table
administrator
class_apply
member
class_open
class_member_list
teacher
class_room
index_id
index_column
order
idx_administrator_num
admin_num
ASC
idx_administrator_name
admin_name
ASC
idx_administrator_password
admin_password
ASC
idx_class_app_num
class_app_num
ASC
idx_mem_num
mem_num
ASC
idx_mem_class_name
mem_class_name
ASC
idx_class_apply_date
class_apply_date
ASC
idx_class_real_st_date
class_real_st_date
ASC
idx_class_real_fin_date
class_real_fin_date
ASC
idx_mem_num
mem_num
ASC
idx_mem_name
mem_name
ASC
idx_mem_birth
mem_birth
ASC
idx_mem_sex
mem_sex
ASC
idx_mem_mobile
mem_mobile
ASC
idx_mem_addr
mem_addr
ASC
idx_class_num
class_num
ASC
idx_class_name
class_name
ASC
idx_class_inform
class_inform
ASC
idx_open_num
open_num
ASC
idx_open_class_date
open_class_date
ASC
idx_close_class_date
close_class_date
ASC
idx_start_time_class
start_time_class
ASC
idx_fin_time_class
fin_time_class
ASC
idx_tea_num
tea_num
ASC
idx_class_room_num
class_room_num
ASC
idx_class_num
class_num
ASC
idx_class_mem_num
class_mem_num
ASC
idx_member_num
member_num
ASC
idx_tea_num
tea_num
ASC
idx_tea_name
tea_name
ASC
idx_tea_birth
tea_birth
ASC
idx_tea_sex
tea_sex
ASC
idx_tea_mobile
tea_mobile
ASC
idx_tea_addr
tea_addr
ASC
idx_class_room_num
class_room_num
ASC
idx_class_room_name
class_room_name
ASC
idx_class_seat_num
class_seat_num
ASC
Reference
http://anonymous_cs.blog.me/4019010820
5 - 데이터잡스 블로그
http://ko.wikipedia.org/wiki/DB
- 위키백과
https://www.facebook.com/groups/databas
e – 데이터베이스의 예술
https://www.facebook.com/dbstudy1
- 데이터베이스를 공부합시다
http://myeonguni.tistory.com
-명우니닷컴
-데이터베이스 설계 밎 구축[개정 2판], 오세종 지음
발표끝!@감사합니다~*^^*