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

52

Upload: myeongun-ryu

Post on 21-Jan-2017

793 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: [명우니닷컴]DB-휘트니스센터-데이터모델링
Page 2: [명우니닷컴]DB-휘트니스센터-데이터모델링

목차 Ⅰ.업무분석

1. 프로젝트 개요

2. 시스템 구성도

3. 업무분석 : 업무 기술

4. 업무분석 : 그 밖의 요구사항 분석

Ⅱ. 개념적 설계

1. 엔티티 도출

2. 관계 설정

3. 업무 설정

4. 개념적 ERD

Ⅲ. 논리적 설계

1. 엔티티 , 속성 및 식별자 정의

2. 관계 메트릭스

3. 통합 및 검증(모델의 검토) 4. 논리적 ERD

Ⅳ. 물리적 설계

1. 물리적 ERD

Page 3: [명우니닷컴]DB-휘트니스센터-데이터모델링

1. 휘트니스 센터 강좌관리 시스템

Ⅰ. 업무분석 : 주제선정

● 개요

본 프로젝트는 현실세계에서 이루어지는 업무 중 하나를 선택하여 분석하고 개념적 모델로 표현하고 , 이를 바탕으로 데이터베이스를 구축하는 과정을 조원들과 팀을 이루어 실습해보는데 있다 .  ● 주제선정

본교 헬스장을 모델로 선정하여 , 문서로만 이루어지던 특정업무를 선택하여 데이터베이스화 하여

정보시스템을 구축하고 , 이를 바탕으로 헬스장에서 이루어지는 특정업무를 효율적으로 관리하겠다 .  ● 한국성서대 휘트니스 센터 소개

본 프로젝트에 적용될 한국성서대 휘트니스 센터는 교내 밀알관 지하 1 층에 위치한 곳이다 . 휘트니스 센터는 현재 약 100 여명의 회원을 보유하고 있으며 , 직원은 관리자와 강사를 포함하여 10 명

내외이다 . 현재 진행중인 스포츠 강좌는 약 10 개의 프로그램이 있다 .

Page 4: [명우니닷컴]DB-휘트니스센터-데이터모델링

1. 강좌관리 DB 시스템의 필요성

• 데이터모델링을 통해 기존의 강좌관리

업무 시스템보다 시간과 비용을 절약할 수

있다

Ⅰ. 업무분석 : 주제선정

강자조회

수강회원조회

수강회원등

회원정보조회

강의실조회강사정보조

강의실명조회

수용가능인원조회

강좌관리업무의 예

Page 5: [명우니닷컴]DB-휘트니스센터-데이터모델링

Ⅰ. 업무분석 : 시스템구성도

Page 6: [명우니닷컴]DB-휘트니스센터-데이터모델링

회원관리

• 강좌조회 - 회원이 수강하고 있는 강좌를 확인 - 각각의 강좌는 강좌코드를 부여

Ⅰ. 업무분석 : 업무기술

특성에 따른 코드부여

강좌코드는 강좌구분문자 , 개설순서 순으로 표기

예 ) CL0001 = CL ( 강좌 ) 0001 (1 번째로 개설 )

Page 7: [명우니닷컴]DB-휘트니스센터-데이터모델링

회원관리

• 수강회원조회 - 휘트니스 센터 내 강좌를 수강하는 회원만 해당 - 각각의 회원은 수강회원코드를 부여

Ⅰ. 업무분석 : 업무기술

특성에 따른 코드부여

수강회원코드는 회원구분문자 , 가입순서 순으로 표기

예 ) CM0035 = CM ( 수강회원일련번호 ) 0035 (35 번째로 가입 )

Page 8: [명우니닷컴]DB-휘트니스센터-데이터모델링

강좌관리• 수강회원 등록 - 강좌를 듣고자 하는 수강생 정보를 등록 - 회원코드와 강좌신청일만을 기록

• 수강회원 조회 - 해당 강좌를 수강하는 수강생 정보를 확인 - 회원명 , 생년월일 , 성별 , 핸드폰번호 , 주소 등을 확인

Ⅰ. 업무분석 : 업무기술

Page 9: [명우니닷컴]DB-휘트니스센터-데이터모델링

강좌관리• 강사정보 등록 - 강좌를 담당하고 있는 강사에 대한 정보를 확인 - 강사명 , 생년월일 , 성별 , 핸드폰번호 , 주소 등을 확인

• 강의실 조회 - 강좌가 이루어지는 강의실 검색 - 강의실 구분을 위해 강의실코드를 부여

Ⅰ. 업무분석 : 업무기술

강의실코드는 강의실구분문자 , 호수순서 순으로 표기

예 ) FR0111 = FR( 지상 ) 0111(111 호 강의실 ) BR0105 = BR( 지하 ) 0105(105 호 강의실 )

Page 10: [명우니닷컴]DB-휘트니스센터-데이터모델링

강사관리• 강사정보조회 - 강좌를 담당하고 있는 강사에 대한 정보를 검색 - 강좌를 담당하는 강사를 구분하기 위해 강사코드를 부여 - 강사명 , 생년월일 , 성별 , 핸드폰번호 , 주소 등을

확인

Ⅰ. 업무분석 : 업무기술

강사코드는 강사구분문자 , 입사순서 순으로 표기

예 ) TM0012 = TM ( 강사 ) 0012 (12 번째로 입사 )

Page 11: [명우니닷컴]DB-휘트니스센터-데이터모델링

강의실관리

• 강의실명 조회 - 검색하는 강좌에 해당하는 강의실명을

확인 • 수강회원 조회 - 해당 강의실의 최대 수용인원수를 확인

Ⅰ. 업무분석 : 업무기술

Page 12: [명우니닷컴]DB-휘트니스센터-데이터모델링

요구사항• 회원에게 발송할 우편물이 필요하면 부착할 수 있게 주소와 회원명의 라벨이

출력 가능해야 함

• 모든 강좌에 대한 수강인원 수 및 수강회원 정보는 확인 가능해야 함

• 모든 강좌에 대한 강사정보는 확인 가능해야 함

• 현재 진행중인 강좌에 대한 설명이 상세해야 함

• 시스템은 처음 사용사도 쓰기 쉽게 구현하되 직접입력을 최소화

• 현재 진행중인 강좌 검색 시 화면에 한 번에 보여줄 수 있는 최대 갯수는 10-30 개

• 기간이 종료된 강좌 등은 모아두었다 월말에 일괄처리

Ⅰ. 업무분석 : 그 밖의 요구사항 분석

Page 13: [명우니닷컴]DB-휘트니스센터-데이터모델링

관리자 개체

Ⅱ. 개념적 설계 : 엔티티 도출

Page 14: [명우니닷컴]DB-휘트니스센터-데이터모델링

강좌 개체

Ⅱ. 개념적 설계 : 엔티티 도출

Page 15: [명우니닷컴]DB-휘트니스센터-데이터모델링

개설강좌 개체

Ⅱ. 개념적 설계 : 엔티티 도출

Page 16: [명우니닷컴]DB-휘트니스센터-데이터모델링

강사 개체

Ⅱ. 개념적 설계 : 엔티티 도출

Page 17: [명우니닷컴]DB-휘트니스센터-데이터모델링

강의장 개체

Ⅱ. 개념적 설계 : 엔티티 도출

Page 18: [명우니닷컴]DB-휘트니스센터-데이터모델링

강좌수강등록 개체

Ⅱ. 개념적 설계 : 엔티티 도출

Page 19: [명우니닷컴]DB-휘트니스센터-데이터모델링

회원정보 개체

Ⅱ. 개념적 설계 : 엔티티 도출

Page 20: [명우니닷컴]DB-휘트니스센터-데이터모델링

관리 관계

Ⅱ. 개념적 설계 : 관계 설정

Page 21: [명우니닷컴]DB-휘트니스센터-데이터모델링

등록 관계

Ⅱ. 개념적 설계 : 관계 설정

Page 22: [명우니닷컴]DB-휘트니스센터-데이터모델링

강의 관계

Ⅱ. 개념적 설계 : 관계 설정

Page 23: [명우니닷컴]DB-휘트니스센터-데이터모델링

수강 관계

Ⅱ. 개념적 설계 : 관계 설정

Page 24: [명우니닷컴]DB-휘트니스센터-데이터모델링

강좌 개설 및 폐강

Ⅱ. 개념적 설계 : 업무 설정

Page 25: [명우니닷컴]DB-휘트니스센터-데이터모델링

강좌에 새로운 회원 등록

Ⅱ. 개념적 설계 : 업무 설정

Page 26: [명우니닷컴]DB-휘트니스센터-데이터모델링

회원이 수강 중인 강좌 조회

Ⅱ. 개념적 설계 : 업무 설정

Page 27: [명우니닷컴]DB-휘트니스센터-데이터모델링

강좌에 수강 중인 회원 조회

Ⅱ. 개념적 설계 : 업무 설정

Page 28: [명우니닷컴]DB-휘트니스센터-데이터모델링

강좌명에 따른 강사 조회

Ⅱ. 개념적 설계 : 업무 설정

Page 29: [명우니닷컴]DB-휘트니스센터-데이터모델링

강좌명에 따른 강의실 조회

Ⅱ. 개념적 설계 : 업무 설정

Page 30: [명우니닷컴]DB-휘트니스센터-데이터모델링

휘트니스 센터 강좌관리 개념적 모델링

Ⅱ. 개념적 설계 : 개념적 ERD

Page 31: [명우니닷컴]DB-휘트니스센터-데이터모델링

논리적 설계

Ⅲ. 논리적 설계 : 엔티티 , 속성 및 식별자 정의

Entity : 회원 Attribute : 회원코드 (PK), 회원명 , 생년월일 , 성별 , 핸드폰번호 ,

주소

Entity : 개인수강등록정보 Attribute : 회원코드 (PK)(FK), 수강강좌일련코드 (FK), 강좌명 ,

수강신청일 , 수강시작일 , 수강종료일 Entity : 강좌 Attribute : 강좌코드 (PK), 강좌명 , 강좌설명 , 개설인원 , 개강일 , 종강일

강의시작시간 , 강의종료시간 , 강사코드 (FK), 강의실코드 (FK)

Page 32: [명우니닷컴]DB-휘트니스센터-데이터모델링

논리적 설계

Ⅲ. 논리적 설계 : 엔티티 , 속성 및 식별자 정의

Entity : 강의실 Attribute : 강의실코드 (PK), 강의실명 , 수용가능인원수

Entity : 강사 Attribute : 강사코드 (PK), 강사명 , 생년월일 , 성별 , 핸드폰번호 , 주소

Entity : 관리자 Attribute : 관리자코드 (PK), 관리자명 , 비밀번호

Entity : 수강회원목록 Attribute : 강좌코드 (PK)(FK), 수강회원일련번호 (PK), 회원정보 (FK)

Page 33: [명우니닷컴]DB-휘트니스센터-데이터모델링

관계 매트릭스

Ⅲ. 논리적 설계 : 관계 매트릭스

Page 34: [명우니닷컴]DB-휘트니스센터-데이터모델링

3. 엔티티 검토

Ⅲ. 논리적 설계 : 통합 및 검증 ( 모델의 검토 )

1. 각 엔티티는 현실세계의 정보를 효과적으로 관리할 수 있는 구조인가 ?

- 회원 엔티티에서 해당 회원이 수강하는 강좌를 검색함에 있어 발생하는 문제

2. 유사한 내용을 관리하는 엔티티들은 없는가 ? - 없다

Page 35: [명우니닷컴]DB-휘트니스센터-데이터모델링

엔티티 검토

Ⅲ. 논리적 설계 : 통합 및 검증 ( 모델의 검토 )

3. 통합 또는 분리되어야 할 엔티티들은 없는가 ?

- 강좌 엔티티에서 분리되어야 할 엔티티를 발견

Page 36: [명우니닷컴]DB-휘트니스센터-데이터모델링

엔티티 검토

Ⅲ. 논리적 설계 : 통합 및 검증 ( 모델의 검토 )

4. 주식별자는 인스턴스의 유일성을 보장해 주는가 ?

- 인스턴스의 유일성을 보장해 준다

Page 37: [명우니닷컴]DB-휘트니스센터-데이터모델링

엔티티 검토

Ⅲ. 논리적 설계 : 통합 및 검증 ( 모델의 검토 )

4. 주식별자는 인스턴스의 유일성을 보장해 주는가 ?

- 인스턴스의 유일성을 보장해 준다

5. 주식별자에 불필요한 속성이 포함되어 있지는 않은가 ?

- 포함되어 있지 않음

Page 38: [명우니닷컴]DB-휘트니스센터-데이터모델링

엔티티 검토

Ⅲ. 논리적 설계 : 통합 및 검증 ( 모델의 검토 )

6. 주식별자에 속하는 속성이 너무 많지는 않은가 ?

-class_apply 엔티티 → 복합키 ( 주식별자 2 개 ) 를 제외한 모든 엔티티의 주식별자 속성값은 1 개입니다 .

7. 여러 엔티티 사이에 중복된 속성이 존재하지는 않는가 ?

-기본키 (PK) ↔ 외래키 (FK) 를 제외한 키 (Key) 에서는 -중복이 발생하지 않는다 .

Page 39: [명우니닷컴]DB-휘트니스센터-데이터모델링

엔티티 검토

Ⅲ. 논리적 설계 : 통합 및 검증 ( 모델의 검토 )

8. 날짜를 저장하는 속성이 올바르게 구성되었는가 ?

9. 속성의 성격상 코드화해야 하는 것은 없는가 ?

- 이미 코드화가 필요한 속성은 코드화를 완료하였다 .

Page 40: [명우니닷컴]DB-휘트니스센터-데이터모델링

관계의 검토

Ⅲ. 논리적 설계 : 통합 및 검증 ( 모델의 검토 )

1. ERD 상에서 다른 엔티티와 관계없이 독립적으로 존재하는 엔티티는 없는가 ?

- 관리자 엔티티가 독립적으로 존재하나 교수님께 조언을 구한 결과 다른 엔티티와의 관계가 필수적으로 필요하진 않다고 판단하였다 .

2. 관계를 너무 복잡하게 맺지는 않았는가 ?

- 그런지 않다 . 모든 엔티티는 1:1, 1:N, N:1 의 관계로 구성

Page 41: [명우니닷컴]DB-휘트니스센터-데이터모델링

논리적 ERDⅢ. 논리적 설계 : 논리적 ERD

논리적 ERD 설계

Page 42: [명우니닷컴]DB-휘트니스센터-데이터모델링

물리적 ERDⅣ. 물리적 설계 : 물리적 ERD

물리적 ERD 설계

Page 43: [명우니닷컴]DB-휘트니스센터-데이터모델링

테이블 기술서

Ⅳ. 물리적 설계 : 테이블 기술서

Page 44: [명우니닷컴]DB-휘트니스센터-데이터모델링

테이블 기술서

Ⅳ. 물리적 설계 : 테이블 기술서

Page 45: [명우니닷컴]DB-휘트니스센터-데이터모델링

테이블 기술서

Ⅳ. 물리적 설계 : 테이블 기술서

Page 46: [명우니닷컴]DB-휘트니스센터-데이터모델링

테이블 기술서

Ⅳ. 물리적 설계 : 테이블 기술서

Page 47: [명우니닷컴]DB-휘트니스센터-데이터모델링

테이블 기술서

Ⅳ. 물리적 설계 : 테이블 기술서

Page 48: [명우니닷컴]DB-휘트니스센터-데이터모델링

테이블 기술서

Ⅳ. 물리적 설계 : 테이블 기술서

Page 49: [명우니닷컴]DB-휘트니스센터-데이터모델링

테이블 기술서

Ⅳ. 물리적 설계 : 테이블 기술서

Page 50: [명우니닷컴]DB-휘트니스센터-데이터모델링

뷰 정의서

Ⅳ. 물리적 설계 : 뷰 정의서

뷰명 뷰 설명 관련 테이블 SQL

high_class_apply 회원별수강신청 목록 class_apply

SELECT mem_class_name From class_apply

WHERE mem_num = 'MM????';

high_class_member_list

강좌별 수강회원 목록

class_member_list

SELECT member_num From class_member_list

WHERE class_num = 'CL????';

high_teacher 강좌별 강사정보 teacherSELECT tea_name

FROM teacherWHERE tea_num = 'TM????';

Page 51: [명우니닷컴]DB-휘트니스센터-데이터모델링

인덱스 정의서

Ⅳ. 물리적 설계 : 인덱스 정의서

Table index_id index_column orderadministrator idx_administrator_num admin_num ASC

idx_administrator_name admin_name ASCidx_administrator_password admin_password ASC

class_apply idx_class_app_num class_app_num ASCidx_mem_num mem_num ASCidx_mem_class_name mem_class_name ASCidx_class_apply_date class_apply_date ASCidx_class_real_st_date class_real_st_date ASCidx_class_real_fin_date class_real_fin_date ASC

member idx_mem_num mem_num ASCidx_mem_name mem_name ASCidx_mem_birth mem_birth ASCidx_mem_sex mem_sex ASCidx_mem_mobile mem_mobile ASCidx_mem_addr mem_addr ASC

class_open idx_class_num class_num ASCidx_class_name class_name ASCidx_class_inform class_inform ASCidx_open_num open_num ASCidx_open_class_date open_class_date ASCidx_close_class_date close_class_date ASCidx_start_time_class start_time_class ASCidx_fin_time_class fin_time_class ASCidx_tea_num tea_num ASCidx_class_room_num class_room_num ASC

class_member_list idx_class_num class_num ASCidx_class_mem_num class_mem_num ASCidx_member_num member_num ASC

teacher idx_tea_num tea_num ASCidx_tea_name tea_name ASCidx_tea_birth tea_birth ASCidx_tea_sex tea_sex ASCidx_tea_mobile tea_mobile ASCidx_tea_addr tea_addr ASC

class_room idx_class_room_num class_room_num ASCidx_class_room_name class_room_name ASCidx_class_seat_num class_seat_num ASC

Page 52: [명우니닷컴]DB-휘트니스센터-데이터모델링

Referencehttp://

anonymous_cs.blog.me/40190108205 - 데이터잡스 블로그http://ko.wikipedia.org/wiki/DB

- 위키백과https://

www.facebook.com/groups/database – 데이터베이스의 예술https://www.facebook.com/dbstudy1

- 데이터베이스를 공부합시다http://myeonguni.tistory.com

- 명우니닷컴- 데이터베이스 설계 밎 구축 [ 개정 2 판 ], 오세종 지음

발표끝 !@ 감사합니다 ~*^^*