관계 대수

From CS Wiki
Revision as of 16:23, 12 October 2024 by SOLO (talk | contribs)

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

관계대수와 관계해석 비교

구분 관계 대수 관계 해석
예시 δLev=4(EMP) EMP(t) and t.Lev>3 }
목적 어떻게(How) 무엇을(What)
기반 집합과 관계연산 프레디킷 논리
접근법 절차적 비절차적
관점 규범적 기술적
표현력 동일

같이 보기