2. 샘플 데이터 베이스 개요
Mysql에서 제공되는 직원(Employees) 데이터 베이스는 6개의 테이블로 구성되어 있다.
원본 주소
직원(employees), 부서(departments), 급여(salaries)의 기본 테이블이 있고
직원이 속한 부서를 나타내는 dept_emp, 해당부서의 부서장을 저장하는 dept_manager, 직원의 업무를 저장하는 titles 테이블이 있다.
설명 |
필드명 |
자료형 |
크기 |
기타 |
직원번호 |
emp_no |
INT |
|
기본키 |
생년월일 |
birth_date |
DATE |
|
|
이름 |
first_name |
VARCHAR |
14 |
|
성 |
last_name |
VARCHAR |
16 |
|
성별 |
gender |
EUM |
|
|
입사일자 |
hire_date |
DATE |
|
|
설명 |
필드명 |
자료형 |
크기 |
기타 |
직원번호 |
emp_no |
INT |
|
외래키 |
급여 |
salary |
INT |
|
|
지급시작일 |
from_date |
DATE |
|
보조키 |
지급종료일 |
from_date |
DATE |
|
|
설명 |
필드명 |
자료형 |
크기 |
기타 |
부서번호 |
dept_no |
CHAR |
4 |
기본키 |
부서명 |
dept_name |
VARCHAR |
40 |
|
설명 |
필드명 |
자료형 |
크기 |
기타 |
직원번호 |
emp_no |
INT |
|
외래키 |
부서번호 |
dept_no |
CHAR |
4 |
외래키 |
근무시작일 |
from_date |
DATE |
|
|
근무종료일 |
from_date |
DATE |
|
|
설명 |
필드명 |
자료형 |
크기 |
기타 |
직원번호 |
emp_no |
INT |
|
외래키 |
부서번호 |
dept_no |
CHAR |
4 |
외래키 |
부서장시작일 |
from_date |
DATE |
|
|
부서장종료일 |
from_date |
DATE |
|
|
설명 |
필드명 |
자료형 |
크기 |
기타 |
직원번호 |
emp_no |
INT |
|
외래키 |
업무명 |
title |
VARCHAR |
50 |
보조키 |
업무시작일 |
from_date |
DATE |
|
보조키 |
업무종료일 |
from_date |
DATE |
|
|
- 직원이 속한 부서를 나타내는 소속부서(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)로 지정되었다.
출처 : SW 개발이 좋은 사람