더북(TheBook)

RDBMS 이론은 수학 이론을 기초로 해서 만들어졌다고 합니다. 구체적으로 어떤 수학 이론을 어떻게 적용했는지는 E.F.커드 박사의 논문을 읽어 봐야 정확히 알 수 있을 것 같습니다만, SQL 구문 중에 우리가 수학 시간에 배운 개념과 비슷한 내용이 있습니다. 바로 집합 개념입니다. 집합은 원소로 구성되어 있고 그 종류로는 교집합, 합집합, 차집합 등이 있지요. 정확히 일치하진 않지만 이와 매우 유사한 개념이 SQL 구문에도 있습니다. 바로 SQL의 집합 쿼리입니다.

SQL의 집합 쿼리는 집합 연산자를 이용해서 구현할 수 있는데, 이 집합 연산자의 동작 방식이 수학의 집합 연산과 매우 유사합니다. SQL의 집합 연산자는 기본적으로 두 개 이상의 독립적인 SELECT 문장을 연결하는 형태입니다. 논의를 단순하게 하기 위해 이 장에서는 두 개의 SELECT 문장, 즉 두 개의 집합만을 대상으로 설명하겠습니다.

독립적인 각 SELECT 문이 반환하는 결과를 하나의 집합으로 보고, 집합 연산자를 사용해 두 집합을 교집합 형태로 가져올 것인지 합집합 형태로 가져올 것인지 처리할 수 있습니다. 수학에서 집합을 이루는 원소를 SQL에서는 SELECT 문에서 반환하는 데이터라고 생각하면 됩니다. 수학에서는 집합의 원소가 단일 숫자인 반면, SQL에서는 SELECT 문에 따라 반환하는 컬럼이 여러 개일 수 있고 각 컬럼의 데이터형이 다양하다는 점을 차이점으로 꼽을 수 있겠군요. 따라서 집합 쿼리로 연결되는 독립적인 두 SELECT 문이 반환하는 결과의 컬럼 수와 데이터형은 각각 모두 동일해야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.