ER to Relational Mapping
ER to Relational Mapping
동아리 관리 시스템 실습 - ER 다이어그램 → 릴레이션 스키마
요구사항 요약
회원(학생)
- 학번, 이름, 성별, 연락처로 식별
- 역할(회장, 부회장, 총무, 임원 등)
- 동아리 가입, 활동 참여, 회비 납부 가능
동아리
- 동아리명, 활동 장소, 참여 인원으로 식별
- 동아리실: 호실, 사용 상태, 유지보수 정보
- 지도교수와 회장 배정
- 여러 활동 개최, 공지사항 관리, 회비 관리
지도교수
- 교수번호, 이름, 이메일로 식별
- 동아리 감독
활동(Activity)
- 활동명, 활동일, 활동 장소 기록
- 여러 학생 동시 참여 가능
활동 보고서
- 제목, 제출일, 활동 내역, 성과 기록
- 회장이 제출
공지사항
- 임원진이 작성
- 동아리 또는 활동과 관련
회비
- 동아리별 구분, 금액/유형/비고 관리
- 총무가 관리
ER to Relational Mapping 단계
Step 1: 기본 엔티티 타입
| 테이블 | 속성 |
|---|---|
| 학생(Student) | 학번(PK), 이름, 성별, 연락처 |
| 동아리(Club) | 동아리명(PK), 건물번호, 호실번호, 안전 여부 |
| 활동(Activity) | 활동명(PK), 활동일, 책임자 |
| 공지사항(Announcement) | 공지사항명(PK), 작성일, 작성자 |
| 교수(Professor) | 교수번호(PK), 이름, 이메일 |
| 조교(TeachingAssistant) | 조교번호(PK), 이름, 이메일 |
Step 2: 약한 엔티티 타입
| 테이블 | 속성 |
|---|---|
| 회비(Fee) | 동아리명(PK, FK), 금액(PK), 유형, 비고 |
| 활동 보고서(ActivityReport) | 활동명(PK, FK), 제목(PK), 작성일, 활동 내용 |
Step 3: 1:1 관계
- 동아리 ↔ 교수:
동아리에교수번호(FK)추가
Step 4: 1:N 관계
- 동아리 ↔ 조교:
동아리에조교번호(FK)추가 - 동아리 ↔ 활동:
활동에동아리명(FK)추가 - 동아리 ↔ 공지사항:
공지사항에동아리명(FK)추가
Step 5: M:N 관계 (별도 테이블 생성)
| 테이블 | 속성 |
|---|---|
| 동아리 가입(ClubMembership) | 동아리명(PK, FK), 학번(PK, FK), 가입날 |
| 동아리 관리(ClubManagement) | 동아리명(PK, FK), 학번(PK, FK), 역할 |
| 활동 참가(ActivityParticipation) | 활동명(PK, FK), 학번(PK, FK) |
최종 릴레이션 스키마
학생(학번, 이름, 성별, 연락처)
동아리(동아리명, 건물번호, 호실번호, 안전여부, 교수번호(FK), 조교번호(FK))
활동(활동명, 활동일, 동아리명(FK))
공지사항(공지사항명, 작성일, 작성자, 동아리명(FK))
교수(교수번호, 이름, 이메일)
조교(조교번호, 이름, 이메일)
회비(동아리명, 금액, 유형, 비고) ← 복합 PK: (동아리명, 금액)
활동보고서(활동명, 제목, 작성일, 활동내용) ← 복합 PK: (활동명, 제목)
동아리가입(동아리명, 학번, 가입날)
동아리관리(동아리명, 학번, 역할)
활동참가(활동명, 학번)