본문 바로가기
CS/데이터베이스

[Database] 관계대수와 SQL

by 루시킴 2021. 9. 23.

관계 데이터 모델의 두가지 언어

1. 관계 해석 : 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적 언어 

2. 관계 대수 : 어떻게 질의를 수행할 것인가를 명시하는 절차적 인어 

 

관계 대수

  • 기존의 릴레이션으로 부터 새로운 릴레이션을 생성
  • 기본적인 연산자들이나 집합으로 구성
  • 결과 릴레이션은 또다른 관계 연산자의 입력으로 사용가능

관계 연산자

  • 셀렉션 : 한 릴레이션에서 셀렉션 조건을 만족하는 튜플들의 부분집합으로 중복된 튜플들이 존재할 수 없다.
  • 프로젝션 : 한 릴레이션에서 애트리뷰트 리스트에 해당하는 애트리뷰트들의 부분집합으로 중복된 튜플이 존재할 수도 있다.
  • 합집합 : 두 릴레이션의 합집합
  • 차집합 : 두 릴레이션의 차집합
  • 카티션 곱 : 두 릴레이션에서의 튜플들로 만들수 있는 모든 조합으로 이루어진 릴레이션이다. 각 릴레이션의 차수가 R과 S일때 차수는 R+S, 카디날리티는 RXS가 된다.

Note ) 교집합은 필수적인 연산자가 아니다. 유도된 연산자는 필수적인 연산자를 두개이상 조합하여 표현할 수 있다.

집합 연산자

입력으로 사용되는 두개의 릴레이션은 합집합 호환이어야한다. 합집합 호환이란 두 릴레이션 애트리뷰트의 도메인이 같고 애트리뷰트 수(차수)가 같은걸 의미한다.

 

조인 연산자

두 개의 릴레이션으로부터 연관된 투플들을 결합하는 연산자로 세타 조인(theta join), 동등 조인(equijoin), 자연 조인(natural join), 외부 조인(outer join), 세미 조인(semijoin) 등 여러 종류가 존재한다.

 

세타 조인

  • 두 릴레이션의 카티션 곱에 조인조건을 적용한 결과와 동일
  • 두개의 릴레이션 R,S가 있을때 조인조건은 R.A⊙S.B 형태로 주어지며, ⊙는 {=,>,<,>≥,≤} 중 하나이다. 

동등 조인

  • 세타 조인중에서 비교 연산자가 =인 조인

자연 조인 (형식 : R*S)

  • 두 릴레이션의 공통된 애트리뷰트에 대해 동등 조인을 수행하고, 동등 조인의 결과 릴레이션에 있는 두 개의 조인 애트리뷰트 중 하나를 제외한 조인 

디비전 연산자 (형식 : R ÷ S)

  • 차수가 n+m인 릴레이션 R(A1, A2, ..., An, B1, B2, ..., Bm)과 차수가 m인 릴레이션 S(B1, B2, ..., Bm)의 디비전 R ÷ S는 차수가 n이고, S에 속하는 모든 투플 u에 대하여 투플 tu(투플 t와 투플 u을 결합한 것)가 R에 존재하는 투플 t들의 집합 
  • “모든 …에 대해 ~하는“ 형태의 질의에 사용될 수 있다

'CS > 데이터베이스' 카테고리의 다른 글

[Database] SQL  (0) 2021.10.08
[Database] 관계 대수와 SQL (2)  (0) 2021.10.08
[Database] 관계 데이터 모델 / 릴레이션  (0) 2021.09.14
[Database] DBMS 발전과정/분류/언어  (0) 2021.09.07
[Database] 데이터베이스란?  (0) 2021.09.02

댓글