[DB] 관계 데이터 모델 - 관계대수 및 관계해석

Yujeong·2024년 7월 6일
0

데이터베이스

목록 보기
4/14
post-thumbnail

관계대수

관계대수(relation algebra)는 원하는 결과를 얻기 위해 어떠한(how) 연산을 수행해야 할지 사용자가 시스템에 알려주는 절차식 언어(procedural language)이다.
하나 또는 두 개의 릴레이션을 입력으로 받아 결과로서 새로운 릴레이션을 생성해내는 연산들의 집합으로 구성된다.

구분연산 종류
일반 집합 연산자합집합(∪), 교집합(∩), 차집합(-), 카티션 프로덕트(×)
순수 관계 연산자SELECT(σ), PROJECT(π), JOIN(⋈), DIVISION(÷)

 

연산자기호설명예시
셀렉션σ테이블에서 주어진 조건을 만족하는 튜플 선택σ_{학년=2}(학생)
프로젝션π테이블에서 지정된 속성만 선택하여 새로운 테이블 생성π_{학번, 이름}(학생)
합집합두 테이블의 모든 튜플을 합친 후 중복된 튜플은 하나만 남김학생 ∪ 졸업생
교집합두 테이블에서 공통된 튜플들만 선택학생 ∩ 장학생
차집합-첫 번째 테이블에만 존재하고 두 번째 테이블에는 없는 튜플들을 선택학생 - 졸업생
카티션 프로덕트×두 테이블의 모든 튜플의 조합을 만들어 새로운 테이블 생성학생 × 강의
조인두 테이블을 결합하여 새로운 테이블 생성. 일반적으로 공통 속성을 기준으로 결합학생 ⋈_{학생.학과=강의.학과} 강의
디비전÷한 테이블을 다른 테이블로 나누어, 두 번째 테이블의 모든 값과 일치하는 첫 번째 테이블의 튜플을 선택학생(학번, 이름) ÷ 수강(학번, 강의)
  • select + project = join
  • 합병 가능: 두 릴레이션의 차수가 같고, 대응 애트리뷰트별로 도메인이 같은 경우

조인

자연 조인(natural join)
선택과 카티션 곱을 하나로 결합한 이항 연산이다.
두 릴레이션의 카티션 곱을 구하여, 두 릴레이션 스키마에서 공통으로 나타나는 속성들에서 같은 값을 가진 튜플들만 선택한 후에, 중복 속성 중 하나를 제거한다.

외부 조인(outer join)
- 좌측 외부 조인
오른쪽 릴레이션의 어떤 튜플과도 부합되지 않는 왼쪽 릴레이션 내의 모든 튜플들을 취해, 그 튜플들의 오른쪽 릴레이션의 속성들을 NULL 값으로 채우고, 자연 조인의 결과에 이 튜플들을 추가한다.
- 우측 외부 조인
왼쪽 릴레이션의 어떤 튜플과도 부합되지 않는 오른쪽 릴레이션 내의 모든 튜플들을 취해서 NULL 값으로 채우고, 자연 조인의 결과에 따라 추가한다.
- 완전 외부 조인
좌측 외부 조인과 우측 외부 조인을 합친 결과

세미 조인(semi join)
조인 애트리뷰트로 오른쪽 릴레이션을 프로젝션한 결과 릴레이션을 얻고 이것을 왼쪽 릴레이션에 자연조인한다.

관계 해석

관계해석(relational calculus)은 사용자가 정보를 얻기 위한 구체적 수행 과정을 제공하지 않고, 어떤(what) 정보를 원하는지에 대해서만 기술하는 비절차적 언어(non-procedural language)이다.

결과를 얻기 위한 특정 대수 프로시저를 사용하지 않고, 결과를 얻기 위해 술어 논리(predicate logic)를 사용한다.

튜플 관계 해석과 도메인 관계 해석의 두 종류가 있다.

구분연산 종류연산 단위
튜플 관계 해석E, ∀튜플 변수
도메인 관계 해석E, ∀도메인 변수

 

구분구성요소기호설명
연산자OR 연산V원자식 간 “또는”이라는 관계로 연결
AND 연산원자식 간 “그리고”라는 관계로 연결
NOT 연산원자식에 대해 부정
정량자전칭 정량자(Universal Quantifier)모든 가능한 튜플 “For All”# All의 ‘A’를 뒤집은 형
존재 정량자(Existential Quantifier)어떤 튜플 하나라도 존재 “There Exists”# Exists의 ‘E’를 뒤집은 형

기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등하다.


참고
데이터베이스론
관계 대수 & 관계 해석 표현법 💯 총정리

profile
공부 기록

0개의 댓글