DB - 관계대수 / 관계해석

윤지영·2024년 3월 25일

관계대수 / 관계해석

관계대수: 절차적

- 순수관계 연산자

  • σ(Select)
    • 행 선택(수평적 부분집합)
  • π(Project)
    • 열 선택(수평적 부분집합)
  • ⋈(Join)
    • 공통 속성 합쳐서 새로운 릴레이션 만듦
  • ÷(Division)
    • 두 릴레이션 A, B에 대해 B의 모든 조건 만족하는 튜플을 A에서 분리하여 프로젝션

- 일반 집합 연산자 : 비절차적

  • UNION(∪) : 합집합
  • Intersection(∩) : 교집합
  • Difference(-) :차집합
  • CARTESIAN Product(×) : 교차곱 (카티션 프로덕트)

관계해석 : 비절차적

- 연산자

  • ∨ : OR
  • ∧ : AND
  • ¬ :NOT

- 정량자

  • ∀ : 모든 가능한 튜플 "For All"
  • ∃ : 어떤 튜플 하나라도 존재

예제

관계해석 / 관계대수
㉠ 프리디키트 해석으로 질의어를 표현한다.
㉡ 튜플 관계 해석과 도메인 관계해석이 있다.
㉢ 기본적으로 관계해석과 관계대수는 관계 데이터를 처리하는 기능과 능력 면에서 동등하다.
㉣ 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 언어이다.

  ㉠ 관계해석 ㉡ 관계해석 ㉢ 관계해석 ㉣ 관계대수

①는(은) 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적인 특징을 가지며, ②는(은) 원하는 정보가 무엇이라는 것만 정의하는 비절차적인 특징을 가진다. 그러나 ②과(와) ①는(은) 관계 데이터베이스를 처리하는 기능과 능력 면에서 동등하다. ②는(은) 원래 수학의 프레디켓 해석에 기반을 두고 있으며, 관계 데이터 모델의 제안자인 Codd가 특별히 관계 데이터 베이스에 적용할 수 있도록 설계, 제안하였다.

① 관계대수 ② 관계해석

고객 릴레이션에서 등급이 gold이고 나이가 25 이상인 고객들을 검색하는 관계대수를 작성하시오.

σ 등급 = ‘gold’ ∧ 나이 ≥ 25 (고객)

고객 릴레이션에서 등급이 gold인 고객의 고객아이디와 등급을 가져오는 관계대수를 작성하시오.

π 고객아이디, 등급 ( σ 등급 = ‘gold’ (고객) )

다음 SQL문장과 동일한 관계대수의 의미를 약술하시오.
π 이름 ( σ 학과=‘물리학과’ (학생) )

학생 테이블에서 물리학과인 학생 이름 조회

다음 SQL문장과 동일한 관계대수를 작성하시오.
SELECT SNO, NAME FROM STUDENT WHERE AGE > 20;

π SNO, NAME ( σ AGE>20 (STUDENT) )

다음 SQL문장과 동일한 관계대수를 작성하시오.
SELECT name, dept FROM student WHERE year >= 3;

π name, dept ( σ year≥3 (student) ) 
  • 다음 SQL문장과 동일한 관계대수를 작성하시오.
    SELECT SNO, NAME FROM T1, T2 ON T1.SNO = T2.SNO
π SNO, NAME (T1 ⨝T1.SNO = T2.SNO T2)

해설

  • sql - join
    SELECT ... FROM 테이블1 JOIN 테이블2 ON 조인조건
    조인조건은 두 테이블 간의 관계를 정의하는 부분으로, 대개 테이블1의 속성 = 테이블2의 속성의 형태를 가진다.
  • 관계대수 ⋈
    테이블명 ⋈ 조건 테이블명
  • 다시 풀어보기!
    • ÷(Division) 관련 문제!!
    • db특강 17번 19번

🔥 주의 🔥

a가 b보다 크거나 같다

  • 관계대수 : a ≥ b
  • sql : a>=b
profile
쑥쑥쑥쑥 레벨업🌱🌼🌳

0개의 댓글