03 집합
Last updated
Last updated
집합은 특정 조건에 따라 구분된 객체들의 모임을 의미하고 각각의 객체를 원소(Element)라고 부름
원소의 순서가 없음: 집합 내의 원소는 순서가 없으며, 순서와 상관없이 집합을 구성함
중복이 없음: 집합 내의 원소는 중복될 수 없음. 동일한 원소가 여러 번 존재할 수 없음
릴레이션(본체)은 튜플(행)의 집합
아래 학생 릴레이션은 3가지 튜플의 집합임
릴레이션을 수학적 집합 형태로 나타내면 우측 그림과 같음
집합의 연산은 집합 이론에서 집합들 간의 관계를 정의하고, 이를 통해 새로운 집합을 생성하는 다양한 연산을 의미함
집합 연산은 두 개 이상의 집합에 대해 수행되며, 데이터베이스 이론뿐만 아니라 수학, 논리학, 프로그래밍 등 다양한 분야에서 사용됨
합집합(Union), 교집합(Intersection), 차집합(Difference), 곱(Product) 등이 있음
수학적으로 합집합은 두 집합 A와 B의 합집합은 A 또는 B에 속하는 모든 원소의 집합을 의미함
합집합은 두 집합의 모든 원소를 포함하지만, 동일한 원소는 한 번만 포함함
기호 : A∪B
예시
집합 A = {1, 2, 3}
집합 B = {3, 4, 5}
합집합 A∪B={1,2,3,4,5}
관계형 모델에서 합집합은 두 개의 릴레이션에 포함된 모든 튜플로 구성된 릴레이션을 반환함
두 개의 릴레이션에 공통된 속성값이 포함됐다면 합집합은 중복 값이 제거된 상태로 반환
수학적 집합 이론에서는 각 원소가 집합 내에 존재하기만 하면 그 구조나 속성(모양)이 달라도 합집합을 수행할 수 있음
하지만 관계형 모델에서는 열의 개수와 데이터 타입이 동일해야 합집합 연산을 수행할 수 있음
수학적 모델에선 다음과 같은 연산이 가능
집합 A = {1, 2, 3}
집합 B = {"apple", "banana"}
A ∪ B = {1, 2, 3, "apple", "banana"}
관계형 모델에선 두 테이블 간 열의 개수와 데이터 타입이 다르기 때문에 다음과 같은 연산이 불가
이 경우 데이터베이스는 오류를 반환함
학생1 ∪ 학생2
수학적으로 교집합은 두 집합 A와 B의 교집합은 A와 B에 모두 속하는 원소의 집합을 의미
기호 : A∩B
예시
집합 A = {1, 2, 3}
집합 B = {3, 4, 5}
교집합 A∩B={3}
관계형 모델에서 교집합은 두 개의 릴레이션에 모두 포함된 공통 부분을 릴레이션으로 반환함
수학적 집합 이론에서는 합집합과 마찬가지로 그 구조나 속성(모양)이 달라도 교집합을 수행할 수 있음
하지만 관계형 모델에서는 열의 개수와 데이터 타입이 동일해야 교집합 연산을 수행할 수 있음
수학적 모델에선 다음과 같은 연산이 가능
집합 A = {1, "apple", 3.14}
집합 B = {"apple", "banana"}
A ∩ B = {"apple”}
관계형 모델에선 두 테이블 간 열의 개수와 데이터 타입이 다르기 때문에 다음과 같은 연산이 불가
이 경우 데이터베이스는 오류를 반환함
학생1 ∩ 학생2
수학적으로 두 집합 A와 B의 차집합은 집합 A에는 속하지만 B에는 속하지 않는 원소의 집합을 의미함
기호 : A−B
예시
집합 A = {1, 2, 3}
집합 B = {3, 4, 5}
차집합 A−B = {1,2}
관계형 모델에서 차집합은 첫 번째 테이블에는 존재하지만 두 번째 테이블에는 없는 튜플을 반환함
수학적 집합 이론에서는 합집합, 교집합과 마찬가지로 그 구조나 속성(모양)이 달라도 차집합을 수행할 수 있음
하지만 관계형 모델에서는 열의 개수와 데이터 타입이 동일해야 교집합 연산을 수행할 수 있음
수학적 모델에선 다음과 같은 연산이 가능
집합 A = {1, "apple", 3.14}
집합 B = {"apple", "banana"}
A - B = {1, 3.14}
관계형 모델에선 두 테이블 간 열의 개수와 데이터 타입이 다르기 때문에 다음과 같은 연산이 불가
이 경우 데이터베이스는 오류를 반환함
학생1 - 학생2
수학적으로 두 집합 A와 B의 곱은 A의 모든 원소와 B의 모든 원소의 순서쌍으로 이루어진 집합을 의미함
기호 : A×B
예시
집합 A = {1, 2}
집합 B = {a, b}
곱집합 A×B={(1,a),(1,b),(2,a),(2,b)}
관계형 모델에서 곱집합은 두 테이블의 모든 행 조합을 반환함
아래 예제에서는 모든 학생이 모든 과목을 수강하는 것
두 릴레이션의 모든 튜플을 조합하여 새로운 튜플을 생성하기 때문에 열의 개수나 데이터 타입에 상관없음