정보처리산업기사 실기/데이터베이스

관계 데이터 연산

미웡할꺼야 2020. 11. 6. 17:27

관계 대수(Relational Algebra)

- 릴레이션에서 사용자가 원하는 결과를 얻기 위해 연산자를 표현하는 방법.

- 결과를 얻기 위한 절차를 표현하기 때문에 절차적 언어라고 한다.

분류 연산자 표기법 설명
순수 관계 연산자 SELECT(기호 : σ) σ<선택조건>(테이블명) - 릴레이션에서 조건을 만족하는 수평적 부분 집합(퓨틀)을 구하기 위한 연산.
- 결과는 조건을 만족하는 튜플들로 테이블이 만들어진다.
PROJECT(기호 : π) π<추출 속성리스트>(테이블명) - 릴레이션에서 수직적 부분 집합(속성의 값)을 구하는 연산.
- 원하는 속성만 추출하기 위한 연산.
JOIN(기호 : ) 테이블1<조인 조건>테이블2 - 두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로 만드는 연산.
동일 조인(Equi Join) - 관계 연산자 =, ≠, <, ≤, >, ≥ 중 '=' 연산자만을 사용하여 조건을 표현.
- 가장 기본적인 조인이며, 중복이 되는 속성도 모두 표현.
자연 조인(Natural Join) - 동일 조인한 결과에서 중복되는 속성을 제거하여 표현.
외부 조인(Outer Join) - 조인 시 두 테이블 간에 관련 없는, 즉 조건에 맞지 않는 튜플도 결과 테이블에 포함시켜 조인하는 방법.
- 해당 자료가 없는 부분은 NULL값이 된다.
세타 조인(Theta Join) - 세타 연산자(=, ≠, <, ≤, >, ≥) 중 '' 외의 연산자를 이용해 조건 수식을 표현하여 조인하는 연산.
- 동일 조인과 같이 종복이 되는 속성도 모두 표현.
DIVISION(기호 : ÷) 테이블1(테이블1속성 ÷ 테이블2속성)테이블2 - A, B 두 테이블에 대해 "A ÷ B"는 테이블B의 조건을 만족하는 튜플들을 테이블A에서 추출하는 연산.
- 연산에 사용된 속성은 결과에서 제외.
일반 집합 연산자 합집합(기호 : ∪) X∪Y - X테이블과 Y테이블의 속성값을 합집합하여 모두 표현.
- 중복되는 속성은 한 번만 표현.
교집합(기호 : ∩) XY - X테이블과 Y테이블의 속성값을 교집합하여 표현.
- 서로 같은 속성값만 표현.
차집합(기호 : -) XY - X테이블과 Y테이블의 속성값을 차집합하여 표현.
- X테이블의 속성값에서 Y테이블의 속성값을 제외한 값을 표현.
카티션 프로덕트(기호 : ×) X×Y - 두 테이블의 속성값을 모두 대응시켜 모든 경우를 표현.

관계 해석(Relational Calculus)

- 릴레이션에서 결과를 얻기 위한 과정을 표현하는 것.

- 연산자 없이 정의하는 방법을 이용하는 비절차적 언어.

- 튜플 관계 해석과 도메인 관계 해석이 있다.

- 표기 형식 : {결과값 | 조건}
ex) 학점 테이블에서 수강번호가 'B123'이고, 점수가 80 이상인 학생의 이름을 구하여라.
{학점.이름 | 학점 ∧ 학점.수강번호='B123' ∧ 학점.점수≥80}