반응형

관계 데이터 모델

관계 데이터 모델에서 지원하는 언어는 총 2가지가 있다.

  1. 관계 해석 - 원하는 데이터만 명시하고 질의를 "어떻게 수행할 것인가"는 명시하지 않는 선언적 언어
  2. 관계 대수 - "어떻게 질의를 수행할 것인가"를 명시하는 절차적 언어

 

관계 대수 (Relation Algebra)

  • 릴레이션들을 다루는 연산들
  • 기존의 릴레이션들로부터 새로운 릴레이션을 생성함.
  • 연산자들을 사용하여 보다 복잡한 관계 대수식을 점차적으로 만들 수 있음.
    기본적인 연산자들의 집합으로 이루어짐.
  • 결과 릴레이션은 또 다른 관계 연산자의 입력으로 사용될 수 있음.
    1. 단일 혹은 두 개의 테이블들을 입력 받아 결과 테이블을 생성.
    2. 집합 연산을 토대로 만든 것이 관계 대수이며, 기본적으로는 집합 연산자에 속함.
  • 특징

 

셀렉션 (Selection)

  • 릴레이션 R에서 어떤 선택 조건을 만족하는 튜플들을 선택(원하는 데이터를 수평적으로 도출)
  • 결과 릴레이션은 R과 동일한 애트리뷰트(속성)을 가짐

 

 

프로젝션 (Projection)

  • 한 릴레이션의 속성들의 부분 집합을 구함(원하는 데이터를 수직적으로 도출)
  • 중복 튜플 존재 X

 

합집합 (Union)

  • 릴레이션1에 있거나, 릴레이션2에 있는 튜플들로 이루어진 릴레이션을 반환
  • 결과 릴레이션에서 중복된 튜플들을 제거

 

 

교집합 (Intersection)

  • 릴레이션1과 릴레이션2에 동시에 속하는 튜플들로 이루어진 릴레이션

 

차집합 (Relative Complement)

  • 릴레이션R과 릴레이션S에 대해 R에는 속하지만 S에는 속하지 않은 튜플들로 이루어진 릴레이션

 

 

카티션 프로덕트 (카티션 곱 연산자(Cartesian Product))

  • 카디널리티가 i인 릴레이션 R(A1, A2, ... An)과 카디널리티가 j인 릴레이션 S(B1, B2, ... Bn)의 카티션 곱 R X S는
    차수가 n+m이고 카디널리티가 i*j이고, 속성이 (A1, A2, ... An, B1, B2, ... Bn)이다
  • R과 S의 튜플들의 모든 가능한 조합인 릴레이션으로, 카티션 곱의 결과 릴레이션은 크기가 매우 클 수 있다.
  • 유용하지 않음(보통 카티션 곱의 일부분만 원하기 때문)

 

 

디비전 (Division)

  • 차수가 n+m인 릴레이션R 과 차수가 m인 릴레이션S 의 디비전 R / s는 차수가 n이 되고,
    S에 속하는 모든 튜플 u에 대하여 tu가 R에 존재하는 튜플 t들의 집합

릴레이션R % 릴레이션S 로 표현

 

 

조인(Join)

  • 두 개의 릴레이션으로부터 연관된 튜플들을 결합하는 연산자이다.
    관계형 데이터베이스에서 두 개 이상의 릴레이션들의 관계를 다루는데 매우 중요한 연산자
  • 세타 조인, 동등 조인, 자연 조인, 외부 조인 등이 있다.

 

오늘은 이렇게 데이터베이스의 관계대수에 대해 알아보았습니다.

이외에 전체적인 CS주제들은 https://github.com/HongEunho  https://github.com/MLifeFam/cs_interview 에 정리되어 있습니다.

반응형

+ Recent posts