2020년 5월 15일 금요일

Day_09. Relational calculus VS algebra

Relational calculus VS algebra

특징
=fundamentally equivalent to each other
==둘다 상호 표현이 가능하다, calculus나 algebra나 방법론의 차이로 같다



Tuple calculus express를 algrbra로 동등하게(equivalent) 바꾸기
===1.Tuple 을 제한하는 변수를 범위로 지정한다
===2.Cartesian product를 수행한다
===3.cartesian product의 결과를 join조건(where절에 조건) 에 의해 restriction 연산 수행
===4.apply the quantifiers from right to left
=====where 조건절을 우측에서 좌측으로 읽어가며 결과 table을 만들어라
===5.최종적으로 원하는 column 데이터만 뽑아서 결과를 만들어라
======step4는 row base 연산, step5는 column base 연산이라는걸 어렵게 적어둠



Computational capabilities
====aggregate function의 기능
=====”단일행 함수”
=====count, sum, max, min, avg
=====여러 개의 field를 1개의 field 로 모아주는 것



====count 함수의 특징
=====distinct 기능이 안됨
=====null 값은 제외하고 계산함
=====전체 행의 개수를 가져오기 위해서는 아스테리크(*) 연산자를 사용한다



===group by 의 특징
=====select 절에 존재하는 데이터를 묶어서 1줄로 표현하게 한다



Domain calculus
====특정 table에서 domain (column)이 가질수 있는 값의 범위를 제한하기
=====제약조건(constraint)을 설정한것과 같음, 말을 엄청 어렵게 적어놧음



Query By Example
===언어의 한 종류, QBE라고 부른다
===별로 성능 안좋음
===암묵적으로(적지않아도) Exist 연산은 작동하나 Not exist 연산은 없음
===관계대수의 표현이 완벽하지 않음 (QBE is not relationally complete)
====(원하는 쿼리를 QBE로는 못 짠다는 이야기)

댓글 없음:

댓글 쓰기