[오답정리] 관계 대수 : 순수 관계 연산자,일반 집합 연산자

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
    • 일반 집합 연산자 : 테이블을 집합의 개념으로 보고, 두 테이블 연산에 집합 연산자를 사용하는 방식
      • 합집합 (UNION)
        • 연산자 기호 : ⋃
        • 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플 제거
      • 교집합 (INTERSECTION)
        • 연산자 기호 : ⋂
        • 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
      • 차집합 (DIFERENCE)
        • 연산자 기호 : −
        • 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
      • 교차곱 (CARTESIAN PRODUCT)
        • 연산자 기호 : ⨉
        • 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
     
순수 관계 연산자
종류 기호 설명
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