Relational Algebra   관계 대수

(2020-10-18)

관계 연산, 관계 해석

1. 관계 연산 (Relational Operation)

  ㅇ 관계 대수 (Relational Algebra)
     - 원하는 데이터를 얻기위한 처리 절차를 단계적으로 적용 (절차적)

  ㅇ 관계 해석 (Relational Calculus)
     - 원하는 데이터를 얻도록 질의문 형식으로 한번에 요구 (비 절차적 => SQL)


2. 관계 대수의 특징

  ㅇ 입출력
     - 1 이상의 릴레이션을 입력으로 받아들여 새로운 결과 릴레이션을 만들어내는 연산 집합

  ㅇ 표현식 형태
     - 사칙 연산과 같은 대수적 표기 보다는, 술어논리(명제함수)를 이용한 관계적 대수식 사용

  ㅇ 연산의 구성/종류  
     - 수학집합 연산릴레이션 간의 상호관계 표현용 연산을 모두 포함  ☞ 아래 3.항 참조


3. 관계 대수의 연산 구분

  ㅇ 기본 연산 : 하나의 논리적 기능 수행 (E.F. Codd가 정의한 8가지 연산)
     - 일반 집합 연산으로부터 차용
        . 합집합 (Union) : ∪
        . 교집합 (Intersection) : ∩
        . 차집합 (Difference) : -
        . 카테시안곱 (Cartesian Product) : ×
     - 순수 관계 연산
        . 선택 (Select) : σ
        . 추출 (Project) : π
        . 조인 (Join) : ⨝
        . 나누기 (Divide)

  ㅇ 복합 연산 : 여러 기본 연산의 조합으로 표현 가능
     - 자연 조인 (Natural Join)
     - 교집합 (Intersection)
     - 배정 (Assignment)
     - 외부 조인 (Outer Join) 등

  ㅇ 단항 연산 : 하나의 릴레이션에 대해서만 연산 수행
     - 선택 (Selection), 추출 (Project), 이름변경 (Rename)

  ㅇ 이항 연산 : 두개의 릴레이션에 대해서 연산 수행
     - 교집합 (Intersection), 자연 조인 (Natural Join), 배정 (Assignment)


4. 관계 대수의 기본 연산별 설명

  ㅇ 선택 (Select)                              ☞ SELECT 구문 참조
     - 주어진 술어(Predicate)를 만족하는 튜플들을 선택(필터링)하여, 튜플의 수를 줄임
        . SQL 例) WHERE,HAVING절을 이용하여 튜플(행)을 걸러냄

  ㅇ 추출 (Project)
     - 어떤 속성(열,칼럼) 만을 결과 릴레이션에 돌려줌으로써, 튜플의 범위를 줄임
        . SQL 例) 집계 함수,GROUP BY절을 포함한 SELECT절로 구현함

  ㅇ 조인 (Join)                                 ☞ 조인(JOIN) 참조
     - 키 값으로 연결된 테이블들을 서로 결합하여, 튜플의 크기를 줄임
        . SQL 例) FROM절JOIN 키워드를 사용하여 조인 수행

  ㅇ 나누기 (Divide)         
     - 모든 요구사항(특정 데이터 집합)을 만족하는 데이터 집합
        . SQL 例) 이를 직접 구현한 상용 RDBMS는 없음

  ㅇ 합집합 (Union)                             ☞ 유니온(UNION) 참조
     - 선택과 추출 작업을 한 두 결과 집합을 병합한 결과를 반환
        . SQL 例) SELECT () UNION SELECT ()

  ㅇ 교집합 (Intersection)
     - 선택과 추출 작업을 한 두 결과 집합 중 동일 컬럼인 경우 만 반환 수행
        . SQL 例) SELECT () INTERSECT SELECT ()  (DB2,SQL Server,오라클,PostgresSQL 등 만 지원)

  ㅇ 차집합 (Difference)
     - 한 집합에서 다른 집합을 빼는 것
        . SQL 例) SELECT () EXCEPT SELECT () : DB2, MS SQL Server,PostgreSQL
                  SELECT () MINUS SELECT () : Oracle

  ㅇ 카테시안곱 (Cartesian Product)
     - 두 결과 테이블 간에 모든 결합 가능한 결과를 반환
        . SQL 例) FROM절JOIN절 없이 해당 테이블들 만 명시하면 됨 (또는, 명시적으로 CROSS JOIN)


[관계형데이터베이스] 1. RDB 2. RDBMS 3. 관계 대수 4. 실행 계획
[RDB 용어] [SQL] [MySQL]

 
        최근수정     요약목록     참고문헌