본문 바로가기
DB/Modeling_Example

중학교 성적관리 프로젝트(part 1)

by Mr.DonyStark 2023. 10. 19.

□ 상황
 ○ 과목, 학년별 담당 선생님이 따로있음
 ○ 시엄은 중간/기말고사 두가지임
 ○ 학생들은 학년, 반에 배정되며 반별로 학생들에게 고유 번호를 부여함
 ○ 각 반에는 담임 선생님이 배정되어 있음. 선생님 중에는 담임을 맡지 않는 선생님도 있음
 ○ 한 번의 학생은 대략 40명 정도이고 남녀 공학임
 ○ 석차는 남녀 공통 1등부터 순서대로 정함


▼▼▼▼▼▼1단계 : 키워드 추출▼▼▼▼▼

○ 과목 선생

○ 담당 선생
○ 시험 - 중간고사, 기말고사
○ 학생, 학년, 반, 배정, 고유번호(반별)
○ 담임, 선생님
○ 한반의 학생 40명
○ 남녀 공학
○ 석차(남녀 공통 1등부터 순서대로)


▼▼▼▼▼2단계 : 명사/동사에 따른 테이블 분류▼▼▼▼▼


○ 마스터 테이블(명사) = 기준 테이블
   * 한번 선정되어 모델링되면 수정이 될 일이 적음
   * 때문에 파악할 때 정확히 분석하여 모델링을 진행해야함
   * 코드성 인 고정 테이블은 모델링 후 데이터를 적재한후 봉인(Insert, update 방지)함
 - 학생(40명 가량, 반/반별 고유번호 존재), 학년, 반
 - 과목 선생님(담임/비담임)
 - 성적(석차 = 반/학년별 석차)   [테이블 내 속성정도로 인지, but 인터뷰 중 중요하다는 사실이 파악되면 마스터 테이블로 모델링]
 - 중간고사, 기말고사
○ 관계 테이블(동사)
 - 시험
 - 반 배정

TIP 1) 업무 프로세스 파악을 위해 업무 담당자 또는 고객사 실무진과 지속적인 인터뷰를 통해 정보를 파악하여 모델링 반영
TIP 2) 요약 후 선천적인 부모/자식간의 관계 테이블 파악
TIP 3) ****우리가 알고있는 상식으로 임의로 모델링하면 절대 안됌. 때문에 아는 상식이더라도 확인차 파악할 필요가 절대적으로 필요함. 만약 이를 어긴다면 확장성이 낮은 모델링을 진행하게됨

□ 활용 쿼리문

--데이터 삽입(다중삽입)
--insert into 테이블 명 valuse (삽입값)
--학년 데이터 적재
insert into grade values(1, '1학년'), (2, '2학년'), (3, '3학년');