Relational algebra
- Select
- Project
- Cartesian product
- Join
- Rename
- Union
- Set-intersection
- Set-difference
Operands and Operators
- Operands: 변수나 값. (새로운 값을 구성할 수 있는)
- Operators: 절차를 나타내는 기호 (지정된 operands에서 새 값을 구성하는)
Relational Algebra
- operations 들의 집합을 포함하는 절차적인 언어
- 하나 혹은 두개의 relations을 input으로 갖고 새로운 relation을 output으로 갖는다.
- Basic operaties
- Select, Project, Cartesian Product, Join, Rename, Union, Set-intersection, Set-difference
Select Operation
- select
- 주어진 조건을 만족하는 모든 column을 가져온다.
ex1. select those tuples if the instructor relation where the instructor is in the "Comp. Sci." department
Project operation
- unary(단항의, 1진법) operation
- returns its argument relation
- certain attributes left out
- result → a relation with k columns(k개를 선택했다면)
- A1, A2, ..., Ak에 속하지 않은 column은 결과에서 제외된다.
- 중복한 rows는 제거된다. (the resulting relation은 집합이다. )
- 조건을 붙여서 특정 column만 가져오는 경우를 말한다.
Ex2. eliminate the dept_name attibute of instructor
Composition of Relational Operations
- Relational-algebra 연산은 relational-algebra 표현으로 함께 구성될 수 있다.
- 다시 불려진 relational algebra의 결과는 relation이다.
- relation이름을 projection operation로 지정하는 대신, rel32ation을 평가하는 표현을 줄 수 있다..
Cartesian-Product Operation
- denoted by X
- 어떤 두 개의 relation으로 부터 information을 결합한다.
- 각각의 가능한 모든 쌍의 튜플로 부터 relation 의 결과를 구성.
- 모든 가능한 경우의 수를 만든다.
- 12 instructors * 15 courses = total 180 tuples
Join Operation
- 모든 teaches의 tuple과 모든 instructor의 tuple이 연관된다.
- 선택한 operation과 cartesian-product를 단일 operation으로 결합한다.
Union Operation (합집합)
- 두 개의 relations의 superset
- notation: r U s
- r, s의 attribute의 수가 같아야 한다. (same arity)
- attribute의 domain이 양립가능.
- 예를 들어, 같은 열에 있는 애들은 각각 같은 type의 데이터를 처리함
Set-Intersection Operation (교집합)
- notation: r (교집합 부호) s
- 조건은 합집합과 같다.
Set-Difference Operation (차집합)
The Assignment Operation
- notation: ←
- assigning parts of it to temporary relation variables
- Query
- Physics ← select dept_name="Physics"(instructor)
- Music ← select dept_name = "Music"(instructor)
- Physics U Music
- Find all instructor in the Physics and Music departments
- 쿼리는 sequential program으로 쓰여질 수 있다.
- sequential program은 일련의 assignment와 query의 결과로 값이 표시되는 식으로 구성된다.
Rename Operation
- 다른 relational-algebra 표현에 참조할 수 있는 이름이 없다.
- rename operator를 이용해서, 기울여진 p같이 생김. [로우]
- notation; px(E)
- x이름 아래 E라는 표현의 결과를 return한다.
Equivalent queries
- 하나의 쿼리를 사용하는 데 여러가지 방법이 존재한다.
Find information about courses taught by instructors in the Comp. Sci. department with salary greater than 50,000