Relational Algebra   관계 대수

(2020-11-07)

관계 연산, 관계 해석

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)

  ㅇ 기타 연산
     - 집계 연산 (Aggregate Function) : SUM,AVERAGE,MAX,MIN,COUNT 등


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]
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   전기전자공학
  5.   방송/멀티미디어/정보이론
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
    4.   데이터베이스
          1. DB
      1.   데이터베이스 기초
      2.   관계형데이터베이스
            1. RDB
            2. RDBMS
            3. 관계 대수
            4. 실행 계획
        1.   RDB 용어
        2.   SQL
        3.   MySQL
      3.   DB 모델링/설계
      4.   회복,병행제어
      5.   데이터웨어하우스
      6.   데이터베이스(기타일반)
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공학일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

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