기본키 (Primary Key) : 후보키 중 선정된 키
대체키 (Alternate Key) : 기본키로 선정되지 않은 후보키
슈퍼키 (Super Key) : 릴레이션 내 투플을 식별할 수 있는 속성의 집합
외래키 (Foreign Key) : 다른 테이블의 데이터를 참조하여 테이블간의 관계를 연결
후보키 (Candidate Key) : 각 행을 유일하게 식별할 수 있는 최소한의 속성들의 집합 (기본키가 될 수 있는 후보들)
무결성 제약조건
데이터 무결성(integrity)은 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것을 말함
도메인 무결성 제약조건
도메인 제약(domain constraint), 릴레이션 내의 투플들이 각 속성의 도메인에 지정된 값만 가져가야함
SQL 문에서 데이터 형식(type), 널(null/not null), 기본값(default), 체크(check)등을 사용하여 지정 가능
개체 무결성 제약조건
기본키 제약(primary key constraint), 릴레이션은 기본키를 지정하고 그에 따른 무결성 원칙
기본키는 NULL 값을 가져와서는 안된다.
참조 무결성 제약조건
외래키 제약(foreign key constraint), 릴레이션 간의 참조 관계를 선언
자식 릴레이션의 외래키는 부모 릴레이션의 기본키와 도메인이 동일해야 함
자식 릴레이션의 값이 변경될 때 부모 릴레이션의 제약을 받는다.
참조 무결성 제약조건
명령어 | 의미 |
RESTRICTED | 자식 릴레이션에서 참조하고 있을 경우 부모 릴레이션의 삭제 작업 거부 |
CASCADE | 자식 릴레이션의 관련 투플을 같이 삭제 처리 |
DEFAULT | 자식 릴레이션의 관련 투플을 미리 설정해둔 값으로 변경 |
NULL | 자식 릴레이션의 관련 투플을 NULL값으로 설정(NULL을 허가한 경우만) |
조인 (JOIN)
- 두 릴레이션의 공통 속성을 기준
- 속성 값이 같은 투플을 수평으로 결합하는 연산
- 두 릴레이션의 조인에 참여하는 속성이 서로 동일한 도메인으로 구성되어야 함
- 조인 연산의 결과는 공통 속성의 속성 값이 동일한 투플만 반환
두 개 이상의 테이블에서 SQL질의를 사용하기 위함
한 테이블의 행을 다른 테이블의 행에 연결하여 두 개 이상의 테이블을 결합하는 연산
관계 대수를 기반으로 진화되어 개발
조건 없이 테이블 연결 -> 카디션프로덕트
조건을 두고 연결->where 테이블명.속성명 = 테이블명.속성명
Inner join의 경우 존재하는 값에 대해서만 출력하기 때문에조건의 위치나 테이블의 순서에 무관
Outter join의 경우 조건의 위치와 순서가 중요
표준조인
- 테이블 간의 조인 조건을 from절에서 명시적으로 정의
- ON 조건절 : 동일하지 않은 이름을 갖는 속성에 대해서도 조인 조건을 사용할 수 있는 기법
- USING 조건절 : 동일한 이름을 갖는 속성 중에서 원하는 속성만 선택적으로 조인하는 기
inner join
- 조인 조건에서 동일한 값이 있는 튜플만 반환
outer join
- 조인 조건에서 동일한 값이 없더라도 튜플 반환
- Left outer join : 왼쪽 테이블 기준으로 조인 수행
- Right outer join : 오른쪽 테이블 기준으로 조인 수행
- Full outer join : 왼쪽, 오른쪽 모두 조건이 일치하지 않더라도 조인 수행
세타조인 (theta join, θ)
- 조인에 참여하는 두 릴레이션의 속성 값을 비교하여 조건을 만족하는 투플만 반환
- 세타조인의 조건은 {=, ≠, ≤, ≥, <, >} 중 하나가 됨
동등조인 (equi join)
- 세타조인에서 = 연산자를 사용한 조인을 말한다.
- select *
from (첫 번째 테이블) inner join (두 번째 테이블)
on (조인조건);
자연조인 (natural join)
- 동등조인에서 조인에 참여한 속성이 두 번 나오지 않도록 두 번째 속성을 제거한 결과를 반
- select *
from (첫 번째 테이블) natural join (두 번째 테이블);
'Database' 카테고리의 다른 글
데이터 모델링, 속성, IE 표기법 (0) | 2023.04.24 |
---|---|
DML (Data Manipulation Language) , 와일드 문자, 다중행 함수 (0) | 2023.04.22 |
데이터베이스와 데이터베이스 시스템 (0) | 2023.04.17 |