03 집합
집합
집합은 특정 조건에 따라 구분된 객체들의 모임을 의미하고 각각의 객체를 원소(Element)라고 부름
집합의 특징
원소의 순서가 없음: 집합 내의 원소는 순서가 없으며, 순서와 상관없이 집합을 구성함
중복이 없음: 집합 내의 원소는 중복될 수 없음. 동일한 원소가 여러 번 존재할 수 없음

릴레이션과 집합
릴레이션(본체)은 튜플(행)의 집합
아래 학생 릴레이션은 3가지 튜플의 집합임
릴레이션을 수학적 집합 형태로 나타내면 우측 그림과 같음

집합의 연산
집합의 연산은 집합 이론에서 집합들 간의 관계를 정의하고, 이를 통해 새로운 집합을 생성하는 다양한 연산을 의미함
집합 연산은 두 개 이상의 집합에 대해 수행되며, 데이터베이스 이론뿐만 아니라 수학, 논리학, 프로그래밍 등 다양한 분야에서 사용됨
합집합(Union), 교집합(Intersection), 차집합(Difference), 곱(Product) 등이 있음
합집합(Union)
수학적으로 합집합은 두 집합 A와 B의 합집합은 A 또는 B에 속하는 모든 원소의 집합을 의미함
합집합은 두 집합의 모든 원소를 포함하지만, 동일한 원소는 한 번만 포함함
기호 : A∪B
예시
집합 A = {1, 2, 3}
집합 B = {3, 4, 5}
합집합 A∪B={1,2,3,4,5}
관계형 모델에서 합집합은 두 개의 릴레이션에 포함된 모든 튜플로 구성된 릴레이션을 반환함
두 개의 릴레이션에 공통된 속성값이 포함됐다면 합집합은 중복 값이 제거된 상태로 반환

수학적 이론과 관계형 모델에서 합집합(Union)의 차이
수학적 집합 이론에서는 각 원소가 집합 내에 존재하기만 하면 그 구조나 속성(모양)이 달라도 합집합을 수행할 수 있음
하지만 관계형 모델에서는 열의 개수와 데이터 타입이 동일해야 합집합 연산을 수행할 수 있음
수학적 모델에선 다음과 같은 연산이 가능
집합 A = {1, 2, 3}
집합 B = {"apple", "banana"}
A ∪ B = {1, 2, 3, "apple", "banana"}
관계형 모델에선 두 테이블 간 열의 개수와 데이터 타입이 다르기 때문에 다음과 같은 연산이 불가
이 경우 데이터베이스는 오류를 반환함
학생1 ∪ 학생2

교집합 (Intersection)
수학적으로 교집합은 두 집합 A와 B의 교집합은 A와 B에 모두 속하는 원소의 집합을 의미
기호 : A∩B
예시
집합 A = {1, 2, 3}
집합 B = {3, 4, 5}
교집합 A∩B={3}
관계형 모델에서 교집합은 두 개의 릴레이션에 모두 포함된 공통 부분을 릴레이션으로 반환함

수학적 이론과 관계형 모델에서 교집합(Intersection)의 차이
수학적 집합 이론에서는 합집합과 마찬가지로 그 구조나 속성(모양)이 달라도 교집합을 수행할 수 있음
하지만 관계형 모델에서는 열의 개수와 데이터 타입이 동일해야 교집합 연산을 수행할 수 있음
수학적 모델에선 다음과 같은 연산이 가능
집합 A = {1, "apple", 3.14}
집합 B = {"apple", "banana"}
A ∩ B = {"apple”}
관계형 모델에선 두 테이블 간 열의 개수와 데이터 타입이 다르기 때문에 다음과 같은 연산이 불가
이 경우 데이터베이스는 오류를 반환함
학생1 ∩ 학생2

차집합 (Difference)
수학적으로 두 집합 A와 B의 차집합은 집합 A에는 속하지만 B에는 속하지 않는 원소의 집합을 의미함
기호 : A−B
예시
집합 A = {1, 2, 3}
집합 B = {3, 4, 5}
차집합 A−B = {1,2}
관계형 모델에서 차집합은 첫 번째 테이블에는 존재하지만 두 번째 테이블에는 없는 튜플을 반환함

수학적 이론과 관계형 모델에서 차집합(Difference)의 차이
수학적 집합 이론에서는 합집합, 교집합과 마찬가지로 그 구조나 속성(모양)이 달라도 차집합을 수행할 수 있음
하지만 관계형 모델에서는 열의 개수와 데이터 타입이 동일해야 교집합 연산을 수행할 수 있음
수학적 모델에선 다음과 같은 연산이 가능
집합 A = {1, "apple", 3.14}
집합 B = {"apple", "banana"}
A - B = {1, 3.14}
관계형 모델에선 두 테이블 간 열의 개수와 데이터 타입이 다르기 때문에 다음과 같은 연산이 불가
이 경우 데이터베이스는 오류를 반환함
학생1 - 학생2

곱집합(Product)
수학적으로 두 집합 A와 B의 곱은 A의 모든 원소와 B의 모든 원소의 순서쌍으로 이루어진 집합을 의미함
기호 : A×B
예시
집합 A = {1, 2}
집합 B = {a, b}
곱집합 A×B={(1,a),(1,b),(2,a),(2,b)}
관계형 모델에서 곱집합은 두 테이블의 모든 행 조합을 반환함
아래 예제에서는 모든 학생이 모든 과목을 수강하는 것
두 릴레이션의 모든 튜플을 조합하여 새로운 튜플을 생성하기 때문에 열의 개수나 데이터 타입에 상관없음

Last updated