관계해석

From IT Wiki
Revision as of 05:38, 15 October 2024 by SOLO (talk | contribs)
Relational Calclus
'어떻게 검색할 것인가?' 보다 '무엇을 검색할 것인가' 만을 기술하는 선언적 표현법을 사용하는 비절차적 질의어
  • 수학의 프레디킷 해석(predicate calculus)에 기반을 두고 있다.
  • E. F. Codd가 데이터베이스에 적용할 수 있도록 설계하여 제안하였다.
  • 릴레이션을 정의하는 방법을 제공한다.
  • 어떤 데이터가 도출되어야 하는 가만 정의하므로 출력 순서(ORDER BY)의 개념이 없다.
  • 현대 SQL이 기본적으로 튜플 관계 해석 + 관계 대수를 기반으로 만들어졌다고 볼 수 있다.

종류

튜플 관계해석

Tuple Relational Calculus

튜플을 기준으로 데이터를 조회한다.

  • 셀렉트 연산
    • { t | EMPLOYEE(t) and t.SALARY>5000 }
  • 프로젝트 연산
    • { t.FNAME, t.LNAME | EMPLOYEE(t) }
  • 셀렉트 + 프로젝트
    • { t.FNAME, t.LNAME | EMPLOYEE(t) and t.SALARY > 50000 }
  • 조인 + 셀렉트 + 프로젝트
    • { e.FNAME, e.LNAME | EMPLOYEE(e) and DEPARTMENT(d) and (d.DNAME = 'Research' and d.DNUMBER = e.DNO) }

도메인 관계해석

속성을 기준으로 데이터 조회
  • { SALARY, ADDRESS | (EMPLOYEE(FNAME,MNAME,LNAME,SALARY,ADDRESS) and FNAME='John" and MNAME='B' and LNAME='Smith') }

관계 해석 기호

  • ∃: 존재한다(There exist)
  • ∈: t가 r에 속함( t ∈ r )
  • ∀: 모든 것에 대하여(for all)
  • ∪: 합집합

관계대수와 관계해석 비교

기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력 면에서 동일하다.

구분 관계 대수 관계 해석
예시 δLev=4(EMP) EMP(t) and t.Lev>3 }
목적 어떻게(How) 무엇을(What)
기반 집합과 관계연산 프레디킷 논리
접근법 절차적 비절차적
관점 규범적 기술적
표현력 동일

같이 보기