Mysql에서 제공되는 직원(Employees) 데이터 베이스는 

다음 그림과 같이 6개의 테이블로 구성되어 있다.



원본 주소: https://dev.mysql.com/doc/employee/en/sakila-structure.html

직원(employees), 부서(departments), 급여(salaries)의 기본 테이블이 있고

직원이 속한 부서를 나타내는 dept_emp, 해당부서의 부서장을 저장하는 dept_manager 있다.

마지막으로 직원의 업무(titles)를 저장하는 테이블이 있다.

 

직원(employees)

설명

필드명

자료형

크기

기타

직원번호emp_noINT 기본키
생년월일birth_dateDATE  
이름first_nameVARCHAR14 
last_nameVARCHAR16 
성별genderEUM  
입사일자hire_dateDATE  

급여(salaries)

설명필드명자료형크기기타
직원번호emp_noINT 외래키
급여salaryINT  
지급시작일from_dateDATE 보조키
지급종료일to_dateDATE  

부서(departments)

설명필드명자료형크기기타
부서번호dept_noCHAR4기본키
부서명dept_nameVARCHAR40 

소속부서(dept_emp)

설명필드명자료형크기기타
직원번호emp_noINT 외래키
부서번호dept_noCHAR4외래키
근무시작일from_dateDATE  
근무종료일to_dateDATE  

부서장(dept_manager)

설명필드명자료형크기기타
직원번호emp_noINT 외래키
부서번호dept_noCHAR4외래키
부서장시작일from_dateDATE  
부서장종료일to_dateDATE  

직원의 업무(titles)

설명필드명자료형크기기타
직원번호emp_noINT 외래키
업무명titleVARCHAR50보조키
업무시작일from_dateDATE 보조키
업무종료일to_dateDATE  

 

직원이 속한 부서를 나타내는 소속부서(dept_emp) 테이블은

직원(employees) 테이블의 직원번호(emp_no)와 부서(departments) 테이블의 부서번호(dept_no)를 기본키(Primary key)로 가지는데

이것을 외래키(Foreign Key)라고 한다.

부서의 부서장을 저장하는 부서장(dept_manager) 테이블도 동일한 방식으로 생성되었다.


급여(salaries) 테이블은 직원번호(emp_no)가 외래키로 지정되었는데

직원번호만 외래키로 할 경우 데이터 중복이 발생한다.

한 직원이 1년 동안 2,000원을 받는 다고 할 때 퇴사할 때까지 2,000원 받는 것이 아니고

3,000, 4,000 등으로 변하기 때문이다.

따라서 한 개인의 급여(연봉)는 중복 될 수 있고 중복을 피하기 위해서는 보완적인 키가 필요하다.

급여 테이블에서는 지급시작일(from_date)이 보조키로 지정되어 있다.


직원의 업무(titles)도 시간의 흐름에 따라 바뀌기 때문에 이와 유사한 구조로 되어 있는데

업무명(title)이 키로 지정되어 3개의 복합키(Composite Key)로 지정되었다.

      


 

'Database > SQL 연습' 카테고리의 다른 글

1. 설치  (2) 2016.04.02
실습 1  (2) 2016.04.02
실습 2 - GROUP  (2) 2016.04.02
실습 3 - Join  (0) 2016.04.02
실습 4 - SubQuery  (0) 2016.04.02

+ Recent posts