3-1 066 관계대수 및 관계해석 [A]

이지우·2024년 5월 8일
0

정보처리기사

목록 보기
54/68

관계대수

관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어

  • 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어
  • 피연산자와 결과가 모두 릴레이션
  • 질의에 대한 해를 구하기 위해 연산의 순서를 명시해야 함
  • 관계 데이터베이스에 적용하기 위해 특별히 개발한 순수 관계 연산자와 수학적 집합에 사용하는 일반 집합 연산자가 있음

순수 관계 연산자: Select, Project, Join, Division
일반 집합 연산자: UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)


순수 관계 연산자

Select

릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산

표기 형식

: σ<조건>(R)

  • 조건에서 비교 연산이 허용됨
  • 논리 연산자로 여러 개의 조건을 하나의 조건으로 결합 가능

Project

주어진 릴레이션에서 속성 리스트(Attribute List)에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산

  • 중복이 발생하면 중복 제거됨
  • 열에 해당하는 속성을 추출하는 것으로 수직 연산자라고도 함

표기 형식

: π<속성리스트> (R)

Join

공통 속성을 중심으루 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산

  • Join의 결과의 차수는 두 릴레이션의 차수를 합한 것과 같음
  • 결과는 Cartesian Product(교차곱)를 수행한 다음 Select를 수행한 것과 같음

표기 형식

DIVISION

X⊃Y인 두 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성 값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산

표기 형식

R [속성r ÷ 속성s] S


일반 집합 연산자

수학적 집합 이론에서 사용하는 연산자

합집합 UNION ∪

튜플의 합집합을 구하고 중복퇴는 튜플은 제거

카디널리티는 두 릴레이션의 카디널리티의 합보다 크지 않음
|R∪S| ≤ |R| + |S|

교집합 INTERSECTION ∩

두 릴레이션에 존재하는 튜플의 교집합을 구함

카디널리티는 두 릴레이션 중 적은 릴레이션의 카디널리티보다 크지 않음
|R∪S| ≤ MIN{|R|, |S|}

차집합 DIFFERENCE -

튜플의 차집합을 구하는 연산
R에는 존재하고 S에는 없는 튜플

카디널리티는 R의 카디널리티보다 크지 않음
|R-S| ≤ |R|

교차곱 CARTESIAN PRODUCT ×

튜플의 순서쌍을 구하는 연산

교차곱은 두 릴레이션의 카디널리티를 곱한 것과 같음
|R×S| = |R| × |S|


관계 해석

코드(E.F.Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 데이터베이스를 위해 제안

  • 연산을 표현하는 방법
  • 원하는 정보를 정의할 때는 계산 수식 사용
  • 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성
  • 튜플 관계해석과 도메인 관계해석이 있음
  • 관계해석과 관계대수는 기능과 능력면에서 동등함
  • 관계대수로 표현한 식은 모두 관계해석으로 표현 가능
  • 질의어로 표현

논리기호

∀ 전칭 정량자

가능한 모든 튜플에 대하여 (For All)

∃ 존재 전량자

하나라도 일치하는 튜플이 있음 (There Exists)

profile
노력형 인간

0개의 댓글