(1) 기본키
개체 무결성 규칙(튜플들은 중복 X) 을 구현하는 수단이다.
기본키 컬럼은 NULL값이 저장될 수 없다.
튜플의 고유성을 식별하는 기준이 되는 컬럼
후보키는 기본키가 될 수 있는 기본키가 될 수 있는 자격이 있는 컬럼이고 기본키로 선정되지 못한 다른 후보키들을 대체키라고 한다.
여러 개의 컬럼이 모여서 기본키 역할을 하는 경우를 복합키라고 하고 하나의 칼럼이 기본키 역할을 하는 경우를 단순키라고 한다.
(2) 외래키
참조 무결성 규칙(연관된 두 테이블은 저장된 데이터 사이에 일관성을 유지)을 구현하는 수단이다.
NULL을 포함할 수 있다.
참조 되는 테이블을 부모 테이블, 참조하는 테이블을 자식 테이블
자식 테이블 쪽에 있는 컬럼이 외래키이다.
자식 테이블의 외래키가 부모 테이블의 기본키와 연결된다.
<무결성을 지키기 위한 조치 방법>
1) RESTRICT: 삭제하거나 변경하려는 부모 테이블의 튜플을 참조하는 자식 테이블의 튜플이 있으면 삭제/변경을 하지 못하도록 막는다.
2) CASCADE: 자식 테이블의 튜플도 함께 삭제하거나 변경한다.
3) NULLIFY: 그 튜플의 외래키 컬럼 값을 NULL로 변경
(1) 기본 조인 연산
SELECT emp.ename, dept.dname, dept.loc
FROM emp, dept --연결 대상 테이블 목록
WHERE emp.deptno = dept.deptno; --두 테이블의 튜플 연결 조건
조인 연산이 필요한 경우는 반드시 WHERE절에 조인 조건을 포함해야 한다.
(2) 테이블 이름 대신 별칭 붙여 사용하기
SELECT ename, dname, loc
FROM emp e, dept d
WHERE e.deptno = d.deptno;
(3) 다양한 형태의 조인 연산
--표준 SQL에서 방법
SELECT T1.code, name, discount
FROM T1 LEFT OUTER JOIN T2 ON T1.code = T2.code;
Right outer join : 오른쪽 테이블의 튜플은 모두 표시되고 여기에 대응하는 왼쪽 테이블의 튜플 연결. 왼쪽 튜플에서 연결할 튜플이 없으면 NULL로 표시
Full outer join : 왼쪽, 오른쪽 튜플들을 모두 표시. 연결할 튜플이 없는 경우는 NULL로 표시
(4) 셀프 조인
반드시 별칭 사용
SELECT e.ename, m.ename
FROM emp e, emp m
WHERE e.mgr = m.empno;
-- NULL 값은 추출 안됨
NULL 값도 추출하고 싶다면 Left join 또는 Right join을 사용
(5) 3개 이상의 테이블 조인
N개의 테이블을 조인하기 위해서는 N-1개의 조인 조건을 AND로 연결하여 서술
(1) 중첩 SQL 용어
(2) 서브 쿼리와 비교 연산자
비교 연산자를 통해 서브 쿼리의 결과와 비교하는 경우는 반드시 서브 쿼리의 결과가 단일값이어야 한다.
(3) 서브 쿼리와 IN (...) , NOT IN (...)
서브 쿼리의 실행 결과가 복수 개의 값이라면 비교 연산자(=) 대신 IN (...) 또는 NOT IN (...) 으로 사용해야 한다.
SELECT ename, job, deptno
FROM emp
WHERE deptno IN (SELECT deptno
FROM dept
WHERE dname LIKE %'S'%);
SELECT ename, job, sal
FROM emp
WHERE job NOT IN (SELECT job
FROM emp
WHERE ename = 'SMITH' or ename = 'ALLEN');
다음중 기본키에 대한 설명으로 잘못된 것을 고르시오 - ⓸
⓵ 개체 무결성 규칙을 구현하는 수단이다.
⓶ 새로운 튜플이 테이블에 입력될 때 중복성 여부를 체크하는 기준이 된다
⓷ 기본키는 하나의 컬럼이어야 한다
⓸ 하나의 테이블에 2개 이상의 기본키를 설정할 수 있다.
튜플의 고유성을 식별하는 기준이 될 수 있는 모든 컬럼 또는 컬럼의 집합을 (후보키)라
고 한다. 이중 기본키로 지정되지 못한 컬럼 또는 컬럼의 집합을 ( 대체키)라고 한다.
외래키에 대한 설명으로 잘못된 것을 고르시오 - ⓵
⓵ 모든 테이블에는 외래키가 있어야 한다.
⓶ 외래키는 참조 무결성 규칙을 구현하는 수단이다.
⓷ 외래키는 두 테이블의 데이터간에 연관성이 있을 때 설정한다.
⓸ 자식 테이블의 외래키는 부모 테이불의 기본키와 연결된다.
다음은 외래키에 의해서 연결된 두 테이블에서 무결성을 지키기 위한 조치방법의 설
명이다. 보기에서 알맞은 명칭을 고르시오.
[보기] ㉠ RESTRICT ㉡ CASCADE ㉢ NULLIFY ㉣ NO ACTION
(1) 삭제하거나 변경하려는 부모 테이블의 튜플을 참조하는 자식 테이블의 튜플이 있으면 그 튜플의 외래키 컬럼값을 널(NULL)로 변경한다. (㉢ NULLIFY)
(2) 삭제하거나 변경하려는 부모 테이블의 튜플을 참조하는 자식 테이블의 튜플이 있으면 자식 테이블의 튜플도 함께 삭제하거나 변경한다. (㉠ RESTRICT )
(3) 삭제하거나 변경하려는 부모 테이블의 튜플을 참조하는 자식 테이블의 튜플이 있으면 삭제/변경을 하지 못하도록 막는다. (㉡ CASCADE)
(4) 삭제하거나 변경하려는 부모 테이블의 튜플을 참조하는 자식 테이블의 튜플이 있어도 아무 조치도 취하지 않는다. (그 결과 일관성이 깨어진다.) (㉣ NO ACTION )