열정 실천

008. 관계대수와 관계해석 Relational Algebra & Relational Calculus 본문

CS/DATABASE

008. 관계대수와 관계해석 Relational Algebra & Relational Calculus

구운오니 2024. 10. 3. 16:10
728x90

 

Relational Algebra 관계대수 Relational Calculus 관계 해석의미와 차이 

 

 

관계 대수는 어떻게 질의를 수행할 것인가를 명시하는 절차적(query language) 언어이고,

관계 해석은 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적 언어이다. 

 

관계 대수는 SQL문법을 생각하면 된다. 관계 대수의 셀렉트 연산자는 SQL의 WHERE 절과 대응되고, 프로젝트 연산자는 SQL의 SELECT 절과 대응된다. SQL문 처럼 관계 대수는 어떻게 데이터를 처리할 지를 효율적으로 정하는데 사용된다. 

 

반면,

 

어떤 데이터가 필요한지 더욱 간단하게 정의하는데에 사용되는 관계해석식은 이렇게 생겼다. 

 

 

 

 

관계 대수 연산자 

 

 

우리가 숫자를 더하거나 나누어 원하는 수를 도출하듯,

릴레이션을 관계대수라는 전용 연산자를 통해 더하거나 곱해 새로운 릴레이션을 도출해낸다. 

 

σ Selection_셀렉션 조건에 맞는 튜플(행)을 선택한다.   
π Projection_프로젝션 특정 속성(열)만 선택한다.  
Union_합집합 두 테이블의 튜플을 합친다. (중복 제외)  
Intersection_교집합 두 테이블에서 공통된 튜플만 반환한다.  
- Difference_차집합 A테이블에서 B테이블에 없는 값만 반환한다.   
× Cartesian product_카티션 곱 두 테이블의 모든 가능한 튜플 조합은 반환한다.   
Join_조인 두 테이블을 특정 조건에 따라 결합한다.   
÷ Division_디비전 A테이블에서 B테이블의 모든 값을 가지고 있는 튜플을 반환한다.   

 

 

 

 

관계 해석

1. 튜플 관계 해석

 

:: 특정 조건을 만족하는 튜플(행)을 반환

 

SYSTAX :: {t | 조건(t)}

t : 튜플 변수 / 조건(t)는 튜플 t가 만족해야하는 조건

 

예시 : 학생 테이블에서 나이가 20세인 학생을 찾는 질의:

  • { t | t ∈ 학생 AND t.나이 = 20 }

 

구분 구성요소 기호 설명
연산자 OR 연산 또는
AND 연산 그리고
NOT 연산 부정
정량자 전칭 정량자 For All
존재 정령자 There Exists

 

 

 

2. 도메인 관계 해석

 

:: 테이블의 특정 속성 값(열)을 기반으로 질의하는 방식

 

SYSTAX :: {<d1, d2, ... dn> | 조건(d1, d2, ... dn) }

<d1, d2, ... dn> : 테이블 속성의 도메인 변수들 / 조건(d1, d2, ... dn) : 도메인 변수들이 만족해야하는 조건

 

 

 

튜플 관계 해석 vs 도메인 관계 해석

  튜플 관계 해석(TRC) 도메인 관계 해석(DRC)
질의 방식 테이블의 전체 튜플(행)을 기준으로 조건을 지정함 속성 값(열)을 기준으로 조건을 지정함
결과 조건을 만족하는 튜플(행) 전체를 반환 조건을 만족하는 속성 값의 조합을 반환
변수 사용 튜플 변수를 사용하여 각 튜플(행)을 참조함 도메인 변수를 사용하여 각 속성(열)을 참조함
사용 용도 여러 속성에 걸친 복잡한 관계를 다룰 때 유용 특정 속성에만 초점을 맞추어 간단한 질의를 할 때 유용
가독성 튜플 변수를 사용하여 상대적으로 직관적일 수 있음 각 속성을 개별로 다뤄야 하므로, 다소 복잡하게 보일 수 있음

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90