관계대수
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게(How) 유도하는가를 기술하는 절차적인 언어
순수관계 연산자
- Select(선택)
- 기호: σ
- 조건(Predicate)을 만족하는 튜플들의 부분 집합(수평 연산)
- Project(추출)
- 기호: π
- 속성들의 부분 집합, 중복은 제거됨(수직 연산)
- Join(조인)
- 기호: ▷◁
- 두 개의 릴레이션이 공통으로 가지고 있는 속성을 이용하여 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산
- 두 개의 릴레이션의 연관된 튜플들을 결합
- Division
- 기호: ÷
- R릴레이션에서 S 릴레이션의 속성 도메인 값과 일치하는 R릴레이션의 튜플들을 찾아내는 연산
일반집합 연산자
- Union(합집합)
- 기호:∪
- 두 개의 릴레이션의 합이 추출되고, 중복은 제거됨
- Intersection(교집합)
- 기호: ∩
- R릴레이션과 S릴레이션의 중복되는 값들만 추출
- Difference(차집합)
- 기호: -
- R릴레이션에서 S릴레이션에 중복되지 않는 값들만 추출
- Cartesian Product(교차곱)
- 기호: X
- 두 릴레이션의 가능한 모든 튜플들의 집합
- 차수(Degree)는 더하고, 카디널리티(Cardinality)는 곱해서 값을 구함
관계해석(Relational Calculus)
- 관계 데이터 모델의 제안자인 코드(E. F. Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 데이터베이스를 위해 제안
- 원하는 정보가 무엇(What)이라는 것만 정의하는 비절차적 특성
- 튜플 관계해석, 도메인 관계해석
- 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등
- 관계 대수로 표현한 식은 관계해석으로 표현할 수 있음
연산자
- OR 연산자
- 기호: ∪
- 원자식 간 "또는"이라는 관계로 연결
- AND 연산
- 기호: ∩
- 원자식 간 "그리고"라는 관계로 연결
- NOT 연산
정량자
- 전칭 정량자(Universal Quantifier)
- 기호: ∀
- 모든 가능한 튜플 "For All"
- All의 'A'를 뒤집은 형태
- 존재 정량자(Existential Quantifier)
- 기호: ∃
- 어떤 튜플 하나라도 존재 "There Exists"
- Exists의 'E'를 뒤집은 형태
관계대수와 관계해석 비교
- 관계대수
- 절차적 언어(순서 명시)
- 어떻게 유도하는가?(How)
- 순수관계 연산자, 일반집합 연산자
- 관계해석
- 비절차적 언어(계산 수식의 유연적 사용)
- 프레디킷 해석(Predicate Calculus) 기반
- 무엇을 얻을 것인가(What)
- 튜플 관계 해석, 도메인 관계 해석
출처: https://m.blog.naver.com/wook2124/222108771135