Relational Algebra   관계 대수

(2022-01-22)

관계 연산, 관계 해석

1. 관계 연산 (Relational Operation)

  ㅇ 관계 대수 (Relational Algebra)
     - 관계 모델을 위한 기본적인 연산들의 집합
        . 원하는 데이터를 얻기위해 처리 절차를 단계적으로 적용 
     - (절차적 => 연산들의 모음)

  ㅇ 관계 해석 (Relational Calculus)
     - 단지 원하는 데이터가 무엇인지를 나타내는 상위 레벨의 선언적 질의문 형식
        . 한번에 요구하면 됨 
     - (비 절차적 => SQL)


2. 관계 대수의 특징

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

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

  ㅇ 연산의 구성/종류                                                     ☞ 아래 3.항 참조
     - `수학집합 연산`과 `릴레이션 간의 상호관계 표현용 연산`을 모두 포함
        . 피연산자는, 릴레이션이며,
        . 연산자는, 셀렉션, 프로젝션, 디비전 등 수학집합 개념에 기초한 연산자


3. 관계 대수의 연산 구분수학집합이론에서 차용 : 하나의 논리적 기능 수행 (E.F. Codd가 정의한 8가지 연산)
     - 일반 집합 연산  :  수학집합 연산으로부터 차용
        . 합집합 (Union) : ∪
        . 교집합 (Intersection) : ∩
        . 차집합 (Difference) : -
        . 카테시안곱 (Cartesian Product) : ×
     - 순수 관계 연산
        . 선택 (Select, Selection) : σ
        . 추출,사영 (Project, Projection) : π
        . 조인 (Join) : ⨝
        . 나누기 (Divide, Division) : ÷
        . 때론, 이름변경 (Rename)도 포함

  ㅇ 유도 가능 연산 여부에 따른 구분
     - 기본 연산 : 선택, 추출, 합집합, 차집합, 카테시안곱 (이들 5개 만 독립적임)
     - 유도 연산 : 나누기, 교집합, 조인
        . 例) R∩S = R - (R - S) 처럼, 차집합 2번이면 교집합이 됨

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

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

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

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


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

  ㅇ 선택 (Select)                              ☞ SELECT 구문 참조
     - 주어진 술어(Predicate)를 만족하는 튜플들을 선택(필터링)하여, 튜플의 수를 줄임
        . SQL 例) WHERE,HAVING절을 이용하여 튜플(행)을 걸러냄
     - 릴레이션을 가로로 잘라내는 것으로써,
        . 관심있는 튜플만 추출하는 것이 가능함

  ㅇ 추출 (Project), 사영 (Projection)
     - 어떤 속성(열,칼럼) 만을 뽑아내어, 결과 릴레이션에 돌려줌으로써, 튜플의 범위를 줄임
        . 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.   기술경영

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