관계대수와 관계해석 - 관계대수 기호, 정보처리기사 실기 대비 문제 포함
요약
정보처리기사 실기 시험의 핵심 개념인 관계 대수의 연산자와 특징을 알아봅니다. 절차적 언어와 비절차적 언어의 차이점을 이해하고, 실제 기출문제 유형을 통해 시험을 완벽하게 대비하세요.
기출문제에서 기호를 묻는 간단한 형식으로 출제되었습니다.
하단 문제를 풀 수 있을 정도로만 공부하세요.
관계 대수(Relational Algebra)란?
관계 대수는 관계형 데이터베이스에서 원하는 데이터를 찾는 방법을 기술하는 절차적 정형 언어입니다. 하나 이상의 릴레이션(테이블)을 입력으로 받아 결과적으로 새로운 릴레이션을 생성하는 연산들의 집합으로 구성됩니다.
관계 대수 vs. 관계 해석: 절차적 언어와 비절차적 언어
데이터베이스 언어는 크게 절차적 언어와 비절차적(선언적) 언어로 나뉩니다.
-
절차적 언어 (Procedural Language)
- "어떻게(How)" 데이터에 접근하고 가져올 것인지를 명시합니다.
- 원하는 결과를 얻기 위한 구체적인 처리 절차와 순서를 단계별로 기술합니다.
- 관계 대수가 대표적인 예입니다.
SELECT
을 먼저 할지,JOIN
을 먼저 할지 등 순서가 정해져 있습니다.
-
비절차적 언어 (Non-procedural Language)
- "무엇(What)" 을 원하는지만을 명시합니다.
- 원하는 결과가 무엇인지만 선언하고, 그것을 얻는 구체적인 방법이나 절차는 시스템(DBMS)에 위임합니다.
- 관계 해석과 SQL이 대표적인 예입니다. 사용자는
SELECT * FROM ... WHERE ...
와 같이 원하는 데이터의 조건만 명시하면, 내부적인 처리 절차는 DBMS의 옵티마이저가 결정합니다.
따라서 관계 대수는 '과정'을, 관계 해석은 '목표'를 중심으로 기술하는 언어라고 이해할 수 있습니다.
관계 대수 연산자
관계 대수 연산자는 크게 일반 집합 연산자와 순수 관계 연산자로 나뉩니다.
일반 집합 연산자
수학의 집합 이론을 기반으로 하며, 두 릴레이션이 **합병 가능(Union-compatible)**해야 한다는 전제 조건이 있습니다. (두 릴레이션의 애트리뷰트 개수가 같고, 대응되는 애트리뷰트의 도메인이 같아야 함)
연산자 | 기호 | 설명 |
---|---|---|
합집합 | ∪ | 두 릴레이션의 튜플을 모두 포함하는 릴레이션을 반환합니다. (중복 제외) |
교집합 | ∩ | 두 릴레이션에 공통으로 존재하는 튜플만으로 구성된 릴레이션을 반환합니다. |
차집합 | - | 첫 번째 릴레이션에는 속하지만 두 번째 릴레이션에는 속하지 않는 튜플을 반환합니다. |
카티션 프로덕트 | × | 두 릴레이션의 튜플들을 순서쌍으로 조합하여 만들 수 있는 모든 튜플을 반환합니다. |
순수 관계 연산자
관계형 데이터베이스 모델을 위해 특별히 만들어진 연산자입니다.
연산자 | 기호 | 설명 |
---|---|---|
셀렉트 (Select) | σ(Sigma) | 릴레이션에서 주어진 조건을 만족하는 튜플(행)만으로 구성된 수평적 부분집합을 반환합니다. |
프로젝트 (Project) | π(Pi) | 릴레이션에서 주어진 애트리뷰트(열)만으로 구성된 수직적 부분집합을 반환합니다. (중복 제외) |
조인 (Join) | ⋈ | 공통 애트리뷰트를 기준으로 두 릴레이션을 결합하여 새로운 릴레이션을 반환합니다. |
디비전 (Division) | ÷ | A ÷ B는 B의 모든 튜플에 대해 관계를 맺고 있는 A의 튜플을 반환합니다. |
📝 정보처리기사 실기 예상 문제
아래 보기에서 알맞은 관계 대수 연산자 기호를 찾아 답란에 작성하시오.
[보기]
σ
, π
, ⋈
, ÷
, ∪
, ∩
, -
, ×
문제 | Select 관계 대수 연산자의 기호를 쓰시오. |
답변 | |
정답 | 정답 보기 |
문제 | Project 관계 대수 연산자의 기호를 쓰시오. |
답변 | |
정답 | 정답 보기 |
문제 | Join 관계 대수 연산자의 기호를 쓰시오. |
답변 | |
정답 | 정답 보기 |
문제 | Division 관계 대수 연산자의 기호를 쓰시오. |
답변 | |
정답 | 정답 보기 |
문제 | 합집합 관계 대수 연산자의 기호를 쓰시오. |
답변 | |
정답 | 정답 보기 |
문제 | 교집합 관계 대수 연산자의 기호를 쓰시오. |
답변 | |
정답 | 정답 보기 |
문제 | 차집합 관계 대수 연산자의 기호를 쓰시오. |
답변 | |
정답 | 정답 보기 |
문제 | 카티션 프로덕트 관계 대수 연산자의 기호를 쓰시오. |
답변 | |
정답 | 정답 보기 |
관계 대수 수행 문제
다음 EMPLOYEE 테이블에 대하여 연산을 수행한 결과는 무엇인가요?
EMPLOYEE 테이블
EMPNO | NAME | DEPT | TTL |
---|---|---|---|
1001 | 홍길동 | 총무 | 부장 |
1002 | 이순신 | 영업 | 과장 |
1003 | 강감찬 | 개발 | 대리 |
결과 테이블
(1) |
---|
(2) |
(3) |
(4) |
기출 | |
문제 | 1,2,3,4에 들어갈 값을 쓰시오. |
답변 | |
정답 | 정답 보기 |