Relational Algebra   관계 대수

(2020-11-07)

관계 연산 [DB], 관계 해석

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

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]

    요약목록

Copyrightⓒ written by 차재복 (Cha Jae Bok)     (소액후원)