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