DB 구축 - 관계 대수 및 관계 해석

강신찬·2023년 5월 19일

관계대수

  • 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게(How) 유도하는가를 기술하는 절차적인 언어

순수관계 연산자

  • Select(선택)
    • 기호: σ
    • 조건(Predicate)을 만족하는 튜플들의 부분 집합(수평 연산)
  • Project(추출)
    • 기호: π
    • 속성들의 부분 집합, 중복은 제거됨(수직 연산)
  • Join(조인)
    • 기호: ▷◁
      • ex) R ▷◁ S
    • 두 개의 릴레이션이 공통으로 가지고 있는 속성을 이용하여 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산
    • 두 개의 릴레이션의 연관된 튜플들을 결합
  • Division
    • 기호: ÷
      • ex) R ÷ S
    • R릴레이션에서 S 릴레이션의 속성 도메인 값과 일치하는 R릴레이션의 튜플들을 찾아내는 연산

일반집합 연산자

  • Union(합집합)
    • 기호:∪
      • ex) R ∪ S
    • 두 개의 릴레이션의 합이 추출되고, 중복은 제거됨
  • Intersection(교집합)
    • 기호: ∩
      • ex) R ∩ S
    • R릴레이션과 S릴레이션의 중복되는 값들만 추출
  • Difference(차집합)
    • 기호: -
      • ex) R - S
    • R릴레이션에서 S릴레이션에 중복되지 않는 값들만 추출
  • Cartesian Product(교차곱)
    • 기호: X
      • ex) R X S
    • 두 릴레이션의 가능한 모든 튜플들의 집합
    • 차수(Degree)는 더하고, 카디널리티(Cardinality)는 곱해서 값을 구함

관계해석(Relational Calculus)

  • 관계 데이터 모델의 제안자인 코드(E. F. Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 데이터베이스를 위해 제안
  • 원하는 정보가 무엇(What)이라는 것만 정의하는 비절차적 특성
  • 튜플 관계해석, 도메인 관계해석
  • 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등
  • 관계 대수로 표현한 식은 관계해석으로 표현할 수 있음

연산자

  • OR 연산자
    • 기호: ∪
    • 원자식 간 "또는"이라는 관계로 연결
  • AND 연산
    • 기호: ∩
    • 원자식 간 "그리고"라는 관계로 연결
  • NOT 연산
    • 기호: ┓
    • 원자식에 대해 부정

정량자

  • 전칭 정량자(Universal Quantifier)
    • 기호: ∀
    • 모든 가능한 튜플 "For All"
    • All의 'A'를 뒤집은 형태
  • 존재 정량자(Existential Quantifier)
    • 기호: ∃
    • 어떤 튜플 하나라도 존재 "There Exists"
    • Exists의 'E'를 뒤집은 형태

관계대수와 관계해석 비교

  • 관계대수
    • 절차적 언어(순서 명시)
    • 어떻게 유도하는가?(How)
    • 순수관계 연산자, 일반집합 연산자
  • 관계해석
    • 비절차적 언어(계산 수식의 유연적 사용)
    • 프레디킷 해석(Predicate Calculus) 기반
    • 무엇을 얻을 것인가(What)
    • 튜플 관계 해석, 도메인 관계 해석

출처: https://m.blog.naver.com/wook2124/222108771135

profile
꾸준히 공부하는 풀스텍 개발자

0개의 댓글