728x90
💡 관계 대수란
Relational Algebra
주로 순수 관계 연산자와 일반 집합 연산자로 구분됩니다.
기존 관계형 DB 내 릴레이션(테이블)에서 새로운 릴레이션을 생성하는 절차적 언어 문법입니다.
즉, 릴레이션을 관계 대수라는 전용 연산자를 통해 더하거나 곱해 원하는 릴레이션을 도출하는 것입니다.
이렇게 관계형 DB에서 원하는 정보를 검색하고 조작하는데 사용됩니다.
✅ 순수 관계 연산자
1️⃣ 셀렉션 연산자 σ
조건에 만족하는 튜플들의 부분 집합을 선택하여 새로운 릴레이션을 생성합니다.
릴레이션 행에 해당하는 튜플을 구하는 것이므로 "수평 연산"이라고도 합니다.
2️⃣ 프로젝션 연산자 π
속성 값의 부분집합을 추출하여 새로운 릴레이션을 생성합니다. 중복된 값은 자동으로 제거됩니다.
셀렉션 연산 결과는 중복 튜플이 존재할 수 없지만 프로젝션 연산은 중복 튜플이 존재할 수 있습니다.
릴레이션의 열에 해당하는 튜플을 구하는 것이므로 "수직 연산"이라고도 합니다.
3️⃣ 조인 연산자 ⋈
연산 방식에 따라 세타, 동등, 자연, 외부, 세미 조인으로 나뉩니다.
공통 속성을 이용하여 두 개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 생성합니다.
4️⃣ 디비전 연산자 ÷
X⊃Y인 두개의 릴레이션 R(x), S(y)가 있을 때 R의 속성이 S의 속성 값을 모두 가진 튜플에서
S가 가진 속성을 제외한 속성만을 구하는 연산입니다.
즉, 한 릴레이션에서 다른 릴레이션의 속성 도메인 값과 일치하는 튜플들을 찾아냅니다.
✅ 일반 집합 연산자
1️⃣ 합집합 연산자 ∪
UNION
아래의 합집합 호환 조건이 맞아야만 실행이 가능합니다.
더보기
합집합 호환 (union compatible)
서로 다른 테이블에 union 하는데 있어 갯수가 다르거나 도메인이 다르면 안됩니다.
이 규칙은 합집합, 차집합, 교집합 모두 적용됩니다.
두 릴레이션에 존재하는 튜플의 합집합을 구하되, 중복 튜플은 제거합니다.
2️⃣ 교집합 연산자 ∩
INTERSECTION
두 릴레이션에 존재하는 튜플의 중복되는 값들만 추출합니다.
3️⃣ 차집합 연산자 -
DIFFERENCE
한 릴레이션에서 다른 릴레이션에 중복되지 않은 값들만 추출합니다.
4️⃣ 교차곱 연산자 x
CARTESIAN PRODUCT
두 릴레이션의 가능한 모든 튜플들의 집합을 구합니다.
💡 관계 해석이란
Relational Calculus
튜플 관계 해석과 도메인 관계 해석으로 구분 됩니다.
프레디킷(Predicate) 해석을 기반으로 하여, 원하는 정보가 "무엇"인지 선언하는 비절차적 언어 문법입니다.
명제와 변수로 구성되며, 명제는 참 또는 거짓의 값을 가지고, 변수는 릴레이션의 튜플 등의 값을 나타냅니다.
✅ 관계 해석 연산자
구분 | 구성 요소 | 기호 | 설명 |
연산자 | OR 연산 | V | 원자식 간 "또는"이라는 관계로 연결 |
AND 연산 | ∧ | 원자식 간 "그리고"라는 관계로 연결 | |
NOT 연산 | ㄱ | 원자식에 대해 부정 | |
정량자 | 전칭 정량자 (Universal Quantifier) |
∀ | 모든 가능한 튜플 "For All" |
존재 정량자 (Existential Quantifier) |
∃ | 어떤 튜플 하나라도 존재 "There Exists" |