- 프로야구 선수 관리를 위한 데이터베이스 구축을 위한 요구 사항 -
500만여명이 넘는 관중을 확보하고 있는 인기 스포츠 프로야구는 여러 팀에 소속된 선수에 대 한 상세한 정보를 관리하고 이를 관중에게 다양한 분석 정보로 제공하기 위해 데이터베이스 시스템을 구축하고자 한다.
프로리그에는 여러 팀이 포함되며 각 팀은 한 프로리그에만 출전 가능하다. 각 프로리그에 대 하여 리그 이름, 스폰서이름, 슬로건을 관리한다. 팀에 대하여 팀이름, 소속지역소속 지역, 구단주이름, 예산을 관리한다. 각 팀에는 최대 50여 명의 선수가 소속되며 한 선수에는 한 팀에만 소속될 수 있다. 선수에 대하여 선수 이름,, 포지션, 연봉, 입단 연도를 관리한다. 선수에 대한 자세한 정보를 제공하기 위해 신체정보를 관리한다. 신체정보는 키, 몸무게, 혈액형, 점프높이점프 높이, 100m 달리기 기록, 흡연 여부를 관리한다. 한 신체정보는 한 선수에만 관리되며, 한 선수는 한 신체정보만을 관리한다. 선수의 은퇴 시 선수의 정보뿐만 아니라 신체정보 또한 같이 삭제된다.
개체 집합 탐색
- 팀
- 프로리그
- 선수
- 선수 신체 정보
속성 탐색
- 프로리그 (PK:리그 이름, 스폰서 이름, 슬로건)
- 팀 (PK: 팀이름, 리그 이름, 소속 지역, 구단주 이름, 예산)
- 선수 (PK,:선수 이름, FK:팀이름, 포지션, 연봉, 입단 연도)
- 선수 신체 정보 (PK, FK:선수 이름, 키, 몸무게, 혈액형, 점프 높이, 100M 달리기 기록, 흡연 여부)
요구 조건
팀은 한 프로리그에만 출전 가능하다 따라서 팀과 프로리그는 N:1 관계를 가지고 있다.
팀에는 여러 선수가 존재하지만 선수는 한 팀에만 포함될 수 있기 때문에 선수와 팀은 N:1
선수와 선수 신체정보는 1:1 관계를 가지고 있으며 전체적 참가이다.
선수가 은퇴 시 선수 정보도 삭제가 되어야 하므로 선수 신체정보는 강한 개체이다.
선수는 팀을 가지고 있지 않아도 되기 때문에 관계 집합에 부분적으로 참여가 가능하다
프로리그에는 꼭 팀이 전부 참여하는 것도 아니기 때문에 부분참여가 가능할 것이다.
팀에는 최대 50명의 선수가 소속될 수 있다. 제약조건을 건다.
--
사실 관계를 정할 때 식별 관계로 관계를 이루는 것을 좋아하진 않지만 이번에 한번 경험해보기 위해 진행한다.
또한 FK는 전부 N 쪽에 두는 걸로 한다.
신체 정보와 선수 테이블의 FK는 선수 테이블에서 관리한다. 선수 이름을 활용해도 될 것 같다.
- 문제 -
문 1) ER(5점)
문 2) 다이어그램을(기본키, 기본키-기본키-외래 키 참조 관계 등의 제약조건 명시) (10점)
프로리그
리그 이름(PK) | 스폰서 | 슬로건 |
팀
팀이름 (PK ) | 리그이름(FK) | 지역 | 구단주 | 예산 |
선수
선수 이름(PK) | 팀 이름(FK) | 포지션 | 연봉 | 입단 연도 |
선수 신체 정보
선수 이름(PK,FK) | 키 | 몸무게 | 혈액형 | 점프높이 | 100미터 달리기 기록 | 흡연 여부 |
문 3) SQL문을(각 5점)
가) 모든 팀에 대한 팀이름, 구단주 이름, 지역을 출력하시오
SELECT 팀이름, 구단주, 지역 FROM 팀;
나) 연봉이 1억 ~ 5억 인 선수의 선수 이름,, 포지션, 입단 연도를 출력하시오.
SELECT 선수 이름, 포지션, 입단 연도 FROM 선수
WHERE 연봉 >= 1억 AND 연봉 <= 5억
다) 100m 달리기 기록이 달리기 기록이 12초 이하인 선수의 선수 이름,, 연봉, 100m 달리기 기록을 출력하시오.
SELECT 선수. 선수 이름, 선수.연봉, 신체.100미터 달리기 기록
FROM 선수 AS 선수
JOIN 선수 신체 정보 AS 신체
ON 선수.선수이름 = 신체. 선수 이름
WHRER 신체. 100미터 달리기 기록 <= 12;
'Database' 카테고리의 다른 글
데이터 모델링 (2) (0) | 2021.04.22 |
---|---|
데이터 모델링 (1) (0) | 2021.04.21 |
ER 모델 (0) | 2021.04.12 |
데이터베이스 관리자 DBA (0) | 2021.04.12 |
Indexing (0) | 2021.03.01 |
댓글