관계 대수
From IT위키
분류:데이터베이스분류:정보처리기사 Relational Algebra
관계 대수는 관계형 데이터베이스에서 데이터를 조회하고 조작하기 위한 수학적 언어를 말한다. 관계 대수는 테이블(관계)에 대한 여러 가지 연산을 정의하며, 이러한 연산을 통해 데이터를 필터링하고 조합할 수 있다.
개요
- 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다.
- 일반 집합 연산과 순수 관계 연산으로 구분된다.
- 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
- 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 특징을 가지고 있다.
- 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력 면에서 동일하다.
순수 관계 연산자
연산자 | 기호 | 표기법 | 설명 | 예시 |
---|---|---|---|---|
SELECT | δ(시그마) | δ<조건>(R) | 선택 조건, 열 조회 | δDNO=4(EMP) |
PROJECT | π(파이) | π<리스트>(R) | 속성 선택, 행 조회 | πDNO,NAME(EMP) |
JOIN | ⋈(보타이) | R⋈<조건>S | 두 릴레이션 결합 | DEPT⋈dssn=essn EMP |
DIVISION | ÷(나누기) | R÷S | R 중 S 기준 교집합 | EMP÷DEPT |
일반 집합 연산자
연산자 | 표기법 | 집합 표현 | 카디널리티 |
---|---|---|---|
합집합 | ∪ | R∪S = {t|t∈R∨t∈S} | |R∪S|≤|R|+|S| |
교집합 | ∩ | R∩S = {t|t∈R∧t∈S} | |R∩S|≤MIN(|R|,|S|) |
차집합 | - | R-S = {t|t∈R∧t∉S} | |R-S|≤|R| |
교차곱(=카티션 프로덕트, 크로스 조인) | × | R×S = {rs|r∈R∧s∈S} | |R×S|=|R|×|S| |
예시
아래 두 릴레이션을 사용하여 몇 가지 관계 대수 연산의 예를 살펴본다.
1. EMPLOYEE 테이블
Ssn | Name | Age | Dept_no |
---|---|---|---|
123-45-6789 | Alice | 30 | 1 |
234-56-7890 | Bob | 40 | 2 |
345-67-8901 | Charlie | 35 | 1 |
456-78-9012 | David | 28 | 3 |
567-89-0123 | Eva | 50 | 2 |
2. DEPARTMENT 테이블
Dept_no | Dept_name |
---|---|
1 | HR |
2 | IT |
3 | Finance |
예시 1: 선택 조건 (Selection)
조건: 나이가 30세 이상인 직원의 정보를 선택한다.
관계 대수:
σ(Age ≥ 30)(EMPLOYEE)
결과:
Ssn | Name | Age | Dept_no |
---|---|---|---|
123-45-6789 | Alice | 30 | 1 |
234-56-7890 | Bob | 40 | 2 |
345-67-8901 | Charlie | 35 | 1 |
567-89-0123 | Eva | 50 | 2 |
예시 2: 속성 선택 (Projection)
쿼리: 직원의 이름과 나이만 선택한다.
관계 대수:
π(Name, Age)(EMPLOYEE)
결과:
Name | Age |
---|---|
Alice | 30 |
Bob | 40 |
Charlie | 35 |
David | 28 |
Eva | 50 |
예시 3: 조인 (Join)
쿼리: 각 직원의 이름과 소속 부서 이름을 함께 출력합니다.
관계 대수:
EMPLOYEE ⨝ (EMPLOYEE.Dept_no = DEPARTMENT.Dept_no) DEPARTMENT
결과:
Ssn | Name | Age | Dept_no | Dept_name |
---|---|---|---|---|
123-45-6789 | Alice | 30 | 1 | HR |
234-56-7890 | Bob | 40 | 2 | IT |
345-67-8901 | Charlie | 35 | 1 | HR |
456-78-9012 | David | 28 | 3 | Finance |
567-89-0123 | Eva | 50 | 2 | IT |