1. Foreign key (FK)
1) 정의
A FOREIGN KEY in 1 table point to a PRIMARY/UNIQUE key in another table
ex) EMPLOYEE / DEPARTMENT table 이 있고, DEPARTMENT table 의 Primary Key(PK) 가 department_id 일 때, EMPLOYEE table 의 department_id 는 foreign key가 된다.
EMPLOYEE table은 DEPARTMENT table을 참조(reference)한다고 한다.
DEPARTMENT table에 데이터가 먼저 들어가야 하므로, DEPARTMENT table은 부모 테이블, EMPLOYEE table은 자식 테이블이 된다. DEPARTMENT table 의 한 row의 department_id 는 EMPLOYEE table 의 여러 row 에 올 수 있다. 따라서 EMPLOYEE table 과 DEPARTMENT table의 관계는 M:1 관계다.
2) 목적
데이터 무결성 확보
- INSERT 시 : 부모 테이블 데이터 입력 → 자식 테이블 데이터 입력
ex) DEPARTMENT table에 없는 department_id는 불필요한 데이터이다. EMPLOYEE table 이 DEPARTMENT table을 참조하고, department_id 가 foreign key로 잡혀있을때, EMPLOYEE table 에 DEPARTMENT table 에 없는 department_id 를 입력하는 것은 불가능하다. 따라서 부모 테이블인 DEPARTMENT table에 데이터를 먼저 입력해야 한다.
- DELETE 시 : 자식 테이블 데이터 삭제(수정) → 부모 테이블 데이터 삭제(수정)
ex) EMPLOYEE table에 departmend_id가 70인 데이터가 1건 존재하는데, DEPARTMENT table 에서 departmend_id가 70인 데이터를 삭제할 수 없다. EMPLOYEE table에 departmend_id가 70인 데이터를 먼저 삭제해야 한다.
2. Schema
1) 정의
A database schema is the skeleton structure that represents the logical view of the entire database.
A database schema defines its entities and the relationship among them
2) 분류
Physical Database Schema : actual storage of data and its form of storage like files, indices
Logical Database Schema : It defines tables, views and integrity constraints
'Programming Practice > SQL' 카테고리의 다른 글
일시 차이 구하기 (0) | 2015.10.25 |
---|---|
대용량의 데이터 한꺼번에 테이블에 집어넣기 (0) | 2014.10.02 |
서버에서 직접 수행한 쿼리 결과를 텍스트 파일로 저장하기 (0) | 2014.10.01 |
특정 기간의 모든 날짜에 대한 데이터 보여주기 (0) | 2014.10.01 |
조회된 여러 결과를 같은 COLUMN 에 표시하기 (0) | 2014.09.13 |