관계대수와 관계해석이란?
관계대수와 관계해석이란? — #관계해석 #관계대수 #정보처리기사 #개발자의도구들 24년도 1회차 정보처리기사 필기 시험대비 공부를 진...
#관계해석 #관계대수 #정보처리기사 #개발자의도구들
24년도 1회차 정보처리기사 필기 시험대비 공부를 진행하였습니다.
\* 본글은 PC버전에 최적화 되어있습니다.
**\\ **공부방법론은 가장 첫글에 있습니다. 참고하실 분들은 참고하세요! \\ - 개발자의도구들
\\ 정보처리기사 전체 총 저리는 여기 있습니다!! \\
3과목,데이터베이스 구축
view
관계대수
관계대수는 RDBMS에서 원하는 정보를 검색하기 위해 어떻게 유도하는가를 기술하는 언어이다.
피연산자가 릴레이션이고 결과 역시 릴레이션이다. 질의에 대한 해를 구하기 위해 수행할 연산의 순서를 명시합니다.
관계대수는 SQL로 변형하여 표현이 가능합니다.
관계대수 - 연산자의 종류
특별히 개발한 순수 관계 연산자와 집합이론에서 가져온 일반 집합 연산자가 있다.
순수관계연산자:
Select, Project, Join, Division
일반 집합 연산자:
UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)
순수관계연산자
Select: 릴레이션에 존재하는 튜플 중에 조건을 만족하는 튜플들의 부분집합을 구해 새로운 릴레이션을 산출한다.
가로(행)에 대한 부분을 구하는 연산이기 때문에 수평연산이라고도 한다.
연산자 기호는 시그마 σ 이다
Project: 릴레이션 속성 리스트에 제시된 속성값을 추출하여 새로운 릴레이션을 만드는 연산이다.
\* 연산결과에 중복이 있을 경우 중복이 제거된다.
세로(열)에 대한 부분을 구하는 연산이기 때문에 수직 연산자라고 한다.
연산자 기호는 파이(π)를 사용한다.
Join: 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐 새로운 릴레이션을 만든다.
연산자 기호는 ⋈를 사용한다.
| 이름 | 기호 | 기능 |
|---|---|---|
| 동등조인 | ⋈ | 두 릴레이션 간의 같은 값을 가진 집합 |
| 세타조인 | ⋈θ | 두 릴레이션 간의 비교 조건에 만족하는 집합 |
| 자연조인 | ⋈N | 동등조인에서 중복 속성을 제거 |
| 세미조인 | ⋉ | 자연조인 후 기호의 열린쪽의 속성을 제거 |
| 외부조인 Left | ⟕ | \ 자연조인 후 각각 왼쪽, 오른쪽, 양쪽의 모든 값을 결과로 추출한다.\ 조인이 실패 또는 값이 없을 경우 한 쪽의 값을 NULL로 채용 |
| 외부조인 Right | ⟖ | |
| 외부조인 Full | ⟗ |
출처: https://m.blog.naver.com/aservmz/221960633361
Division: x ⊃ y의 두 개의 릴레이션 x, y가 있다고 하자. 이 때 x의 속성이 y의 속성값을 모두 가진 튜플에서 y의 속성을 모두 제거한 속성을 구하는 연산
\* 즉, y에 없는 속성을 구할 때 사용한다고도 볼 수 있다.
연산자 기호는 ÷이다.
일반 집합 연산자
합집합(UNION): 두 릴레이션이 존재하는 튜플의 합집합을 구한다. 다만, 중복되는 튜플은 제거된다.
\* 카디널리티: 합집합의 카디널리티는 두 릴레이션의 카디널리티의 합보다 크지 않다.
연산자 기호는 ∪를 사용한다.
교집합(INTERSECTION): 두 릴레이션이 존재하는 튜플의 교집합을 구한다.
\* 교집합의 카디널리티는 두 릴레이션 중 작은 릴레이션의 카디널리티보다 크지않다.
연산자 기호는 ∩를 사용한다
차집합(DEFFERNCE): 두 릴레이션이 존재하는 튜플의 차집합을 구한다.
\* 차집합의 카디널리티는 두 릴레이션의 어느 한 쪽보다도 크지않다.
연산자 기호는 -를 사용한다
교차곱(CARTESIAN PRODUCT): 두 릴레이션에 있는 튜플의 순서쌍을 구한다.
\* 교차곱의 디그리는 두 릴레이션의 디그리를 더한 것과 같다.
\* 교차곱의 카디널리티는 두 릴레이션의 카디널리티를 곱한 것과 같다.
연산자 기호는 x 를 사용한다
\* 카디널리티(root = essential): 행
\* 디그리: 차수
관계해석
관계해석이란? 관계 데이터 모델의 제안자 코드(E. F. Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 데이터베이스를 위해 제안한 것
- 관계해석은 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산수식을 사용한다.
- 관계해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 가진다.
- 튜플 관계 해석과 도메인 관계해석이 있다.
- 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등하다.
- 관계대수로 표현한 식은 관계해석으로 표현할 수 있다.
- 질의어로 표현한다
주요 논리 기호
- ∃: 존재한다(There exist)
- ∈: t가 r에 속함( t ∈ r ) : 하나라도 일치하는 튜플이 존재한다.
- ∀: 모든 것에 대하여(for all) : 가능한 모든 튜플에 대하여
- ∪: 합집합
