관계 해석 : 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인지는 명시하지 않는 선언적 언어

관계 대수 : 어떻게 질의를 수행할 것인가를 명시하는 절차적 언어

          -> 상용 관계 DBMS에서 널리 사용되는 SQL의 기초로써 DBMS의 내부 언어로서도 사용된다.


SQL : 사용자가 관계 DB 릴레이션에 정의, 검색, 갱신, 제약조건 등 여러가지 질의를 수행하기 위한 표준 질의어


관계 대수의 특징

  • 기존 릴레이션들로부터 새로운 릴레이션을 생성
  • 릴레이션이나 관계 대수식에 연산자를 적용해 복잡한 관계 대수식을 만들 수 있음
  • 기본적인 연산자들의 집합
  • 결과 릴레이션은 또 다른 관계 연산자의 입력으로 사용될 수 있음

필수적인 관계 연산자 : 실렉션, 프로젝션, 합집합, 차집합, 카티션 곱

실렉션 연산자 (Selection)
  • δ<조건>릴레이션
  • 단항 연산자로서 릴레이션에서 조건을 만족하는 투플들의 부분 집합을 생성한다.
  • 결과 릴레이션의 차수는 입력 릴레이션의 차수와 같다.
  • 결과 릴레이션의 카디날리티는 항상 기존 릴레이션의 카디날리티보다 작거나 같다.
  • 임의의 애트리뷰트와 상수, 비교 연산자, 부울 연산자를 포함할 수 있다.
  • 중복 투플이 존재할 수 없음
프로젝션 연산자 (Projection)
  • π<애트리뷰트 리스트>릴레이션
  • 릴레이션에서 애트리뷰트들의 부분 집합을 구한다.
  • 결과 릴레이션은 <애트리뷰트 리스트>에 명시된 애트리뷰트만 갖는다.
  • 중복 투플이 존재할 수 있음
집합 연산자 : 합집합, 교집합, 차집합이 있으며 입력으로 사용되는 릴레이션은 합집합 호환이어야 한다.

합집합 연산자 
  • 릴레이션1 ∪ 릴레이션2
  • 중복된 투플들은 제외된다.
  • 결과 릴레이션의 차수는 입력 릴레이션 중 하나의 차수와 같다.
차집합 연산자
  • 릴레이션1 - 릴레이션2
  • 릴레이션1에는 속하지만 릴레이션2에는 속하지 않는 투플들로 이루어진 릴레이션
  • 결과 릴레이션의 차수는 입력 릴레이션 중 하나의 차수와 같다.
카티션 곱 연산자 : 릴레이션1 × 릴레이션2 에서 릴레이션 1과 릴레이션2의 투플들의 모든 가능한 조합으로 이루어진 릴레이션이다.


유도된 연산자 : 교집합, 세타 조인, 동등 조인, 자연 조인, 세미 조인, 디비전

교집합 연산자
  • 릴레이션1 ∩ 릴레이션2
  • 결과 릴레이션의 차수는 입력 릴레이션 중 하나의 차수와 같다.
조인 연산자 : 두 개의 릴레이션으로부터 연관된 투플들을 결합하는 연산자

세타 조인
  • R ⋈<조인조건>S
  • 두 릴레이션 R과 S의 세타 조인의 결과는 두 릴레이션의 차수, 애트리뷰트를 합친 것이다.
  • 조인 조건은 비교 연산자를 이용한다.
  • 세타 조인 결과는 두 릴레이션의 카티션 곱에 조인 조건을 적용한 결과와 같다. 
동등 조인 : 세타 조인 중에서 비교 연산자가 =인 조인

자연 조인
  • R ⋈ S
  • 두 릴레이션의 공통된 애트리뷰트에 대해 동등 조인을 수행하고, 결과 릴레이션에 있는 조인 애트리뷰트 중 하나를 제외한 조인
  • 관계 DB에 있어서 대부분의 질의는 실렉션, 프로젝션과 자연 조인으로 표현이 가능하다.
디비전 연산자
  • R ÷ S
  • 릴레이션 S의 모든 투플 값과 쌍을 이루는 릴레이션 R의 애트리뷰트 값
  • "모든 ~에 대해 ~하는" , "~하지 않는 ~가 없다" 형태의 질의에 사용될 수 있다.

관계 대수의 한계 : 정렬을 나타낼 수 없고, 데이터베이스를 수정할 수 없으며 중복된 투플을 명시하지 못한다.

추가된 관계 대수 연산자
  • 집단 함수 : AVG, SUM, MIN, MAX, COUNT
  • 그룹화 : 각 그룹에 대해 집단 함수를 적용
  • 외부 조인 : 상대 릴레이션에서 대응되는 투플을 갖지 못하거나 널값이 들어 있는 투플들을 다루기 위한 조인
  1. 왼쪽 외부 조인 (R ⟕ S) : 왼쪽 릴레이션의 투플을 결과에 모두 포함시키고, 오른쪽 릴레이션에 관련 투플이 없다면 널값으로 채움
  2. 오른쪽 외부 조인 (R ⟖ S) : 오른쪽 릴레이션의 투플을 결과에 모두 포함시키고, 왼쪽 릴레이션에 관련 투플이 없다면 널값으로 채움
  3. 완전 외부 조인 (R ⟗ S) : 양쪽 릴레이션의 투플을 모두 결과에 포함시키고, 양쪽에 관련 투플이 없다면 널값으로 채움 . R ⟗ S = (R ⟕ S) ∪ (R ⟖ S)


+ Recent posts