티스토리 뷰
*공부 기록용으로 하는 블로그입니다.잘못된 개념이나 오타가 있을 수 있습니다. 잘못된 정보알려주시면 수정하겠습니다!*
관계 대수란?
-데이터베이스에서 원하는 정보를 효율적으로 검색할 수 있는 질의(Query) 언어입니다. 이 언어는 집합 연산자를 기반으로 구성되어 있으며 데이터를 검색, 조작하는데 사용이 됩니다. 기본 관계대수와 추가 관계대수로 이루어져 있습니다. 이번 글에서는 추가 관계 대수에 대해서 정리 하겠습니다.
EXAM_RESULT (예시로 쓰이는 테이블입니다)
Student_ID | Exam_Name | Score |
1 | Math | 95 |
2 | English | 80 |
3 | Korean | 40 |
4 | Science | 70 |
EXAM_RESULT2
Student_ID | Exam_Name | Score |
3 | Korean | 40 |
4 | Science | 70 |
5 | Computer | 100 |
6 | Music | 30 |
관계 대수 연산자
1.← 할당(Assignment) - 결과를 임시 저장 하는 연산이다. 주로 복잡한 질의문을 작성할 때 중간 결과를 임시저장 하는 용도로 사용한다.
r ← σ Exam_Name ="Math" (EXAM_RESULT)
-> EXAM_RESULT 테이블에서 Exam_Name = "Math"인 튜플을 r에 할당한다.
4.∩ 교집합(intersection) - 두개의 관계에서 공통으로 존재하는 튜플을 선택하는 연산자입니다. 이 과정에서 속성이 같아야 합니다. 속성의 개수가 다르거나 속성의 이름이 다르면 교집합연산을 할 수 없습니다.
EXAM_RESULT ∩ EXAM_RESULT2
-> EXAM_RESULT 테이블과 EXAM_RESULT2의 테이블 사이에서 공통으로 존재하는 튜플을 선택하여 표시합니다.
3.⨝ 내부 조인(Inner Join) - 조인은 두 테이블의 카타시안 곱 결과에서 겹치는 속성들 중 값이 조건에맞는 튜플들 표시합니다. 종류에는 세타 조인, 동등조인,자연 조인이 있는데
세타 조인은 이 조인하는 과정에서 값비교 연산자(<,>,<=.....)가 있는경우를 뜻합니다.
동등조인은 값비교 연산자가 = 인 경우 입니다.
자연조인은 동등조인에서 중복되는 속성을 제거한 것입니다.
(자연조인은 결합성과 교환성이라는 특징이 있어, 괄호의 순서 or 조인 테이블의 순서가 뒤바뀌어도 상관없음)
EXAM_RESULT ⨝ EXAM_RESULT2
-> EXAM_RESULT 테이블과 EXAM_RESULT2을 자연조인합니다.
EXAM_RESULT ⨝ (EXAM_RESULT.score>EXAM_RESULT.score) EXAM_RESULT2
-> EXAM_RESULT 테이블과 EXAM_RESULT2을 score점수조건에 맞춰 세타조인을 합니다.
4. 외부 조인(Outer Join) - 내부조인은 조인조건을 만족하지 않는 튜플은 배제하는거에 반해 외부조인은 조건에 만족하지않아도 NULL값을 사용해 관계에 포함시킵니다.
⟕ 왼쪽 외부 조인은 왼쪽 테이블 튜플이 다 나와야 하는것 입니다.
⟖ 오른쪽 외부조인은 오른쪽 테이블 튜플이 다 나와야하는 것입니다.
⟗ 양쪽 외부조인은 양쪽 테이블 모두의 튜플이 다 나와야 합니다.
EXAM_RESULT ⟕ EXAM_RESULT2
-> EXAM_RESULT 과 EXAM_RESULT2를 조인하는데 EXAM_RESULT의 모든 튜플이 포함되어야 합니다.
5.÷ 나눔(Division) - 앞 테이블 중에서 뒤 테이블의 속성을 모두가지고 있는 튜플을 구하는 연산자입니다. (두 테이블의 공통 속성이 있어야함)
EXAM_RESULT ÷ EXAM_RESULT
->EXAM_RESULT중에서 EXAM_RESULT의 속성들의 데이터를 다 가지고 있는 튜플을 구합니다. (이 예시에서 만족하는 결과는 없습니다.)
'DB' 카테고리의 다른 글
SELECT 기본구조 (0) | 2023.04.21 |
---|---|
SQL 언어 종류 (DML , DDL, DCL) (0) | 2023.03.27 |
기본 관계 대수 (0) | 2023.03.27 |
관계형 데이터베이스 제약조건 (Constraint) (0) | 2023.03.26 |
데이터베이스 키 (0) | 2023.03.26 |