3과목. 데이터베이스 구축 > 1장. 논리 데이터베이스 설계 > 관계 대수 : 순수 관계 연산자,일반 집합 연산자
- 관계 데이터 언어
- 관계 데이터베이스의 릴레이션을 조작하기 위한 기본 연산에 관계대수와 관계해석이 있음
- 사용자의 입장에서 데이터를 처리하는 데이터 언어가 됨
- 관계대수는 절차적 언어, 관계해석은 비절차적 언어
- 관계 해석
- 코드 박사가 제안한 것
- 수학의 술어해석에 기반을 두고 있으며 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특징을 갖고 있음
- SQL문과 같은 질의어를 사용하며 튜플 관계해석과 도메인 관계해석으로 구성
- 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적인 언어
- 관계 대수
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어
- 릴레이션을 처리하기 위해 연산자와 연산 규칙을 제공하는 언어
- 피연산자가 릴레이션, 결과도 릴레이션
- 관계 대수의 연산자
- 순수 관계 연산자 : 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자
- Select
- 연산자 기호 : 시그마( σ)
- 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션 생성
- 릴레이션의 행에 해당하는 튜플을 구하는 것 (수평 연산)
- 표기 형식 : σ<조건>(R)
- Project
- 연산자 기호 : 파이(𝝿)
- 주어진 릴레이션에서 속성 리스트에서 제시된 속성만 추출하는 연산
- 릴레이션의 열에 해당하는 속성을 추출하는 것 (수직 연산)
- 표기 형식 : π <아트리뷰트 리스트>(R)
- Join
- 연산자 기호 : ⋈
- 공통 속성을 중심으로 두 개 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산
- 표기형식 : R ⋈ 키 속성 r = 키 속성 s S
- 카티션 프로덕트
- 조인 조건 : 두 테이블 사이에 속하는 컬럼 값들을 비교 연산자로 연결한 형태
- 조인 조건을 생략한 경우 또는 조인 조건을 잘못 작성하게 되면 카티션 프로덕트(Cartesian Product, Cross Join) 연산이 수행되어 원하지 않은 결과를 얻게 됨
- 예시
R1 학번 R2 이름 카티션 프로덕트 수행 결과 학번 이름 1000 홍길동 1000 홍길동 2000 이순신 1000 이순신 2000 홍길동 2000 이순신
- Division
- 연산자 기호 : ÷
- X ⊃ Y인 두 개의 릴레이션 R(X)와 S(Y) 가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
- 표기 형식 : R [속성 r ÷ 속성 s] S
- Select
- 일반 집합 연산자 : 테이블을 집합의 개념으로 보고, 두 테이블 연산에 집합 연산자를 사용하는 방식
- 합집합 (UNION)
- 연산자 기호 : ⋃
- 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플 제거
- 교집합 (INTERSECTION)
- 연산자 기호 : ⋂
- 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
- 차집합 (DIFERENCE)
- 연산자 기호 : −
- 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
- 교차곱 (CARTESIAN PRODUCT)
- 연산자 기호 : ⨉
- 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
- 합집합 (UNION)
- 순수 관계 연산자 : 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자
순수 관계 연산자 | ||
종류 | 기호 | 설명 |
Select | 시그마 σ |
•릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션 생성 •릴레이션의 행(가로)에 해당하는 튜플을 구하는 것(수평 연산) |
Project | 파이 π |
•주어진 릴레이션에서 속성 리스트에 제시된 속성만 추출하는 연산 •릴레이션의 열(세로)에 해당하는 속성을 추출하는 것 (수직 연산자) |
Join | ⋈ | 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산 |
Division | ÷ | X ⊃ Y 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산 |
일반 집합 연산자 | ||
종류 | 기호 | 설명 |
합집합 UNION | ⋃ | 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플 제거 |
교집합 INTERSECTION | ⋂ | 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산 |
차집합 DIFERENCE | – | 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산 |
교차곱 CARTESIAN PRODUCT | ⅹ | 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산 |
800제-351번. 조건을 만족하는 릴레이션의 수평적 부분집합으로 구성하며, 연산자의 기호는 그리스 문자 시그마(σ)를 사용하는 관계대수 연산은?
① Select
② Project
③ Join
④ Division
정답 : 1
800제-446번. 테이블 R1, R2에 대하여 다음 SQL 문의 결과는?
(SELECT 학번 FROM R1)
INTERSECT
(SELECT 학번 FROM R2)
정답 : 2
800제-552번. 관계 대수에 대한 설명으로 틀린 것은?
① 원하는 릴레이션을 정의하는 방법을 제공하며 비절차적 언어이다.
② 릴레이션 조작을 위한 연산의 집합으로 피연산자와 결과가 모두 릴레이션이다.
③ 일반 집합 연산과 순수 관계 연산으로 구분된다.
④ 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.
정답 : 1
1000제-386번. 서로 다른 테이블에서 유사한 형태의 결과를 반환하는 것을 하나의 결과로 합치고자 할 때 사용하는 연산자는?
① 집합 연산자
② 조인 연산자
③ 서브 쿼리 연산자
④ 다중 쿼리 연산자
정답 : 1
1000제-417번. 관계대수 중 순수 관계 연산자 종류가 아닌 것은?
① Select
② Union
③ Join
④ Division
정답 : 2
1000제-418번. 다음의 관계 대수식을 SQL 질의로 옳게 표현한 것은?
π A(σ p(r1 ⋈ r2))
① select P from r1, r2 where A;
② select A from r1, r2 where P;
③ select r1, r2 from A where P;
④ select A from r1, r2
정답 : 2
1000제-419번. 관계 대수의 일반집합 연산자 중 다음 설명에 해당하는 것은?
① 합집합(∪)
② 교집합(∩)
③ 차집합(-)
④ 교차곱(x)
정답 :
1000제-482번. 테이블 R1, R2에 대하여 다음 SQL 문의 결과는?
(SELECT 학번 FROM R1)
INTERSECT
(SELECT 학번 FROM R2)
정답 : 2
1000제-500번. 다음 두 릴레이션 R1과 R2의 카티션 프로덕트(cartesian product) 수행 결과는?
정답 : 4
'보관함 > 정보처리기사_25년 02차' 카테고리의 다른 글
[오답정리] 데이터 모델링 (0) | 2025.05.16 |
---|---|
[오답정리] 데이터 제약 조건 (0) | 2025.05.16 |
[오답정리] SQL 성능 튜닝 (0) | 2025.05.14 |
[오답정리] 인터페이스 보안 코딩 (0) | 2025.05.14 |
[오답정리] 유지보수 (0) | 2025.05.14 |