관계 해석: Difference between revisions
From CS Wiki
(관계해석 문서로 넘겨주기) |
(관계해석에 대한 넘겨주기를 제거함) Tags: Removed redirect Visual edit: Switched |
||
Line 1: | Line 1: | ||
[[분류:데이터베이스]][[분류:정보처리기사]] | |||
;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) | |||
* ∪: 합집합 | |||
== 관계대수와 관계해석 비교 == | |||
기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력 면에서 동일하다.{{틀:관계대수와 관계해석}} | |||
== 같이 보기 == | |||
* [[관계 대수]] |
Revision as of 15:53, 14 October 2024
- 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) |
기반 | 집합과 관계연산 | 프레디킷 논리 |
접근법 | 절차적 | 비절차적 |
관점 | 규범적 | 기술적 |
표현력 | 동일 |