정보처리기사 필기발행일 2024. 2. 26.원본 https://blog.naver.com/jword_/223363779596 ↗

관계대수와 관계해석이란?

관계대수와 관계해석이란? — #관계해석 #관계대수 #정보처리기사 #개발자의도구들 24년도 1회차 정보처리기사 필기 시험대비 공부를 진...

#정보처리기사 필기#Naver Blog

#관계해석 #관계대수 #정보처리기사 #개발자의도구들

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) : 가능한 모든 튜플에 대하여
  • ∪: 합집합

​


​