CKtrace's Devlog
[DB] - 관계 데이터 연산 본문
Operation in Relation Data Model
Relationship Data Operation(관계 데이터 연산)은 관계 데이터 모델에서 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것이며 DB 시스템의 구성 요소 증 데이터 언어의 역할을 합니다.
관계 데이터 연산에는 관계 대수와 관계 해석이 있습니다.
이 둘에 대해서는 아래에서 자세히 알아보도록 하겠습니다.
Relation Algebra & Relation Calculus
관계 대수(Relation Algebra)는 원하는 결과를 얻기 위해 릴레이션을 처리하는 과정을 순서대로 기술하는 언어입니다.
또한, 관계 대수는 릴레이션을 연산하고 피연산자인 릴레이션에 연산자를 적용해 얻을 결과도 릴레이션이며 이러한 관계 대수의 특성을 폐쇄 특성(Closure Property)이라 합니다.
관계 대수에 속하는 대표적인 연산자 8개는 특성에 따라 순수 관계 연산자(Relational Operation), 일반 집합 연산자(Set Operation)로 나눌 수 있습니다.
관계 해석(Relation Calculus)은 원하는 결과를 얻기 위해서 처리를 원하는 데이터가 무엇인지만 기술하는 언어입니다.
관계 해석에 대해서는 SQL 관련 포스팅에서 자세히 설명드리도록 하겠습니다.
이번 포스팅에서는 관계 대수에 대해 집중적으로 알아보도록 하겠습니다.
Relational Operation
순수 관계 연산자(Relational Operation)는 릴레이션의 구조와 특성을 이용하는 연산자입니다.
- Select
- Project
- Join
- Division
- Semi-Join
- Outer-Join
Select
→ 릴레이션에서 조건을 만족하는 튜플을 구합니다.
Project
→ 릴레이션에서 주어진 속성들의 값으로만 구성된 튜플을 구합니다.
Join
→ 공통 속성을 이용해 두 릴레이션의 튜플들 연결한 후, 생성된 튜플을 구합니다.
Division
→ 나누어지는 릴레이션에서 나누는 릴레이션의 모든 튜플과 관련이 있는 튜플을 구합니다.
Semi-Join
→ 조인 속성으로 프로젝트한 릴레이션을 이용해 조인합니다.
Outer-Join
→ 결과 릴레이션에 조인 연산에서 제외되었던 모든 튜플을 포함시킵니다.
Set Operation
일반 집합 연산자(Set Operation)는 릴레이션이 튜플의 집합이라는 개념을 이용하는 연산자이며, 두 릴레이션을 대상으로 연산을 수행합니다.
- 합집합
- 교집합
- 차집합
- 카티션 프로덕트
합집합
→ 두 릴레이션의 합집합 튜플을 구합니다.
교집합
→ 두 릴레이션의 교집합 튜플을 구합니다.
차집합
→두 릴레이션의 차집합 튜플을 구합니다.
카티션 프로덕트
→ 두 릴레이션의 모든 튜플을 각각 연결하여 생성된 튜플을 구합니다.
단, 합집합, 교집합, 차집합은 두 릴레이션, 즉 차집합에 해당하는 두 릴레이션이 합병이 가능해야만 연산 수행이 가능합니다.
이상으로 관계 데이터 연산에 대한 글을 마치도록 하겠습니다.
다음에는 더 좋은 글로 찾아뵙도록 하겠습니다!
감사합니다.
'DB' 카테고리의 다른 글
[DB] - SQL의 데이터 조작 기능 (0) | 2022.06.27 |
---|---|
[DB] - SQL의 데이터 정의 기능 (0) | 2022.06.23 |
[DB] - 논리적 데이터 모델 / 관계 데이터 모델 (0) | 2022.06.23 |
[DB] - ERD (0) | 2022.06.22 |
[DB] - 데이터 모델링 (0) | 2022.06.22 |