2020년 5월 1일 금요일

Day_07. Relational Algebra – 관계 대수

***들어 가기전 선수 지식**
Table 에서의
Heading = table의 Column이름
Body = table의 data 부분
********************************



Relational Algebra
=CODD 박사가 제한한 방법론
=연산의 주체가 relation 이며 연산의 결과 역시 relation 으로 나온다



기본연산
Union , intersction , difference , Cartesian product

특수연산
Restrict , project join , divide

**모든 연산에 사용되어야 하고 연산의 결과 역시 이것으로 표현이 가능 해야 한다**



연산 살펴보기

1 Restrict
=특정 조건에 맞는 tuple 을 추출한다, row기반 연산으로 “Horizontal” 연산이다
= σ로 표현한다
**Restriction 연산에서θ 의 의미**
=대수, 부등호처럼 =,=/,<= , >= , < , > 를 의미, sql에서 where 절에 들어가는 연산이라고 보면 쉽다



2 project
= 특정조건에 맞는 column을 추출한다 column기반 연산 “vertical” 연산이다
= π로 표현한다



3 cartesian project
=그룹간의 모든 가능성을 더해서 만드는 그룹



4 union
=합집합



5 intersect
=교집합
=∩로 표현한다



6 difference
=차집합



7 join
=column간의 연결로 value를 묶어서 새로운 table을 만드는 것
=⋈ 로 표현한다



8 divide
=A , B 그룹이 있고 이들의 조합 c가 있을 때 a,b그룹에서 모든 조합의 가능성이 있는 원소를 뽑아주는것
=Ex) A=a,b,c B=x,y,z C=ax,ay,az,bx,cy 가 있을 때 A divide by B into C 에서 결과는 a가 된다



9 closure property
=연산의 결과와 입력, 출력이 같을 때



Relation Type inference rules
=relation 의 input 형태를 알 때 출력(output)의 데이터 타입 역시 추론이 가능하다



Rename operator
=relation(쉽게말해 Table)의 column의 이름을 바꾸는 연산



Relation algebra 의 semantic – 의미
=입력으로 사용되는 relation type이 같은 type이여야 결과의 type이 동일하게 유지된다 (Type의 속성이 보존된다)



Primitive operation
=Codd 박사가 제한한 operation의 최소단위
=restriction m projection , product ,union , difference 5개로 이루어져 있음
=join ,intersection , divide by 를 사용한 연산이 가능하다



관계 대수의 사용이유
=데이터 update 범위 지정
=데이터의 무결성 지원
=데이터 안전성 지원
=사용자 관점에서 high level 언어
=symbolic-representation (상징적 표현) 이 가능함



Semijoin
=a,b테이블에서 join에 필요한 column만 추출해서 조인하고 만족하는 row만 결과로 전송해서 부하를 줄이는 join의 방법



Extend
=Table(attribute)에 새로운 column을 추가하는 것, 이때 column은 기존의 column에 연산을 가한 결과를 저장하는 경우임
=horizontal 연산이라 한다
=Ex)나이가 저장되어있는 column “AGE” 가 있을 때 해당 field 에 3을 더한 값을 저장하는 plus_age를 생성해서 저장하는 것



Aggregate operator
=count , sum , avg ,min , max 처럼 여러 개의 값을 하나의 값으로 바꿔주는 기능
=쉽게 말해 ”단일행 함수”



Summarize
=vertical 연산으로 column-wise 연산이라 한다
=SQL 에서 GROUP BY 키워드와 같다, 그룹을 지어서 그룹에 해당하는 결과를 보여주는 것



Tclose 연산
=table에서 두개의 column X,Y가 있다 이는 같은 Data type이며 이를 A 테이블 이라 할 때 A’ 테이블을 생성하는데 Column 의 이름은 X,Y로 같으나 A’ 테이블의 값들은 테이블 A에 있는 value로 생성할수 있는 부분집합으로 생성 되어있을 때 Tclose 연산을 이용 한 것


댓글 없음:

댓글 쓰기