[DB] 4.1 관계 대수와 SQL

Cherish·2023년 10월 14일
0

DataBase

목록 보기
3/7
post-thumbnail

✅ 관계 데이터 모델의 언어

  • 관계 해석(relational calculus)
    데이터만 명시 / 어떻게 질의를 수행할지는 명시 X
  • 관계 대수(relational algebra)
    어떻게 질의를 수행할지 명시하는 절차적 언어

✅ SQL

사용자는 SQL을 이용해

  • 관계 DB에 relation 정의
  • 정보 검색
  • 관계 DB 갱신
  • 무결성 제약조건 명시

🍏 관계 대수 ( relational algebra )

  • 기존의 릴레이션들로부터 새로운 릴레이션을 생성
  • 릴레이션이나 관계 대수식에 연산자들을 적용하여 보다 복잡한 관계 대수식을 점차적으로 만들 수 있음
  • 기본적인 연산자들의 집합

🍏 관계 연산자

< 필수적인 연산자 >

  • 실렉션 σ
  • 프로젝션 π
  • 합집합 ∪
  • 차집합 -
  • 카티션 곱 x

임의의 질의어가 필수 연산자들 만큼의 표현력을 가지면 관계적으로 완전하다고 표현


✅ 실렉션 연산자 ( σ )

실렉션 조건(selection condition)을 만족하는 투플들의 부분 집합

  • 실렉션 조건 = 프레디키트(predicate)
  • 중복된 튜플 존재 X

✅ 프로젝션 연산자 ( π )

애트리뷰트들의 부분 집합 = 열!

  • 중복된 튜플 존재 가능

✅ 합집합 호환

두 릴레이션 R1(A1, A2, ..., An)과 R2(B1, B2, ..., Bm)이 합집합 호환일 필요 충분 조건은 n=m이고, 모든 1<=i<=n에 대해 domain(Ai)=domain(Bi)

  • 집합 연산자 = 합집합, 교집합, 차집합
  • 집합 연산자의 입력으로 사용되는 두개의 릴레이션은 합집합 호환이어야 한다.

✅ 합집합 연산자 ( ∪ )

R 또는 S에 있거나 R과 S 모두에 속한 투플들로 이루어진 릴레이션

  • 중복된 튜플은 제거된다.
  • 결과 릴레이션 차수 = R or S의 차수

✅ 교집합 연산자 ( ∩ )

R과 S 모두에 속한 투플들로 이루어진 릴레이션

  • 결과 릴레이션 차수 = R or S의 차수

✅ 차집합 연산자 ( - )

R-S = R에는 속하지만 S에는 속하지 않은 투플들로 이루어진 릴레이션

  • 결과 릴레이션 차수 = R or S의 차수

✅ 카티션 곱 연산자 ( R x S )

R과 S의 투플들의 모든 가능한 조합으로 이루어진 릴레이션


✅ 디비전 연산자 ( R ÷ S )

릴레이션 S의 모든(ALL) 투플 값과 쌍을 이루는 릴레이션 R의 A1, A2, ..., An 값



🍏 조인 연산자

  • 두 개의 릴레이션으로부터 연관된 투플들을 결합하는 연산자
    • 세타 조인
    • 동등 조인
    • 자연 조인
    • 외부 조인
    • 세미 조인

✅ 세타 조인 (R▷◁(조건)S)

조인 조건을 만족하는 튜플들로 이루어진 릴레이션
= R,S의 카티션 곱에 조인 조건을 적용


✅ 동등 조인

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


✅ 자연 조인 ( R * S )

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

  • 조인 연산자들 중에서 가장 자주 사용된다.
  • 실제로 대부분 질의는 실렉션, 프로젝션, 자연 조인으로 표현 가능


✅ 외부 조인

상대 릴레이션에서 대응되는 투플을 갖지 못하는 투플이나 조인 애트리뷰트에 널값이 들어 있는 투플들을 다루기 위해서 조인 연산을 확장

  • 왼쪽 외부 조인
  • 오른쪽 외부 조인
  • 완전 외부 조인

✅ 왼쪽 외부 조인 ( R ⟕ S )

S에 관련된 투플이 없으면 결과 릴레이션에 널값으로 채운다


✅ 오른쪽 외부 조인 ( R ⟖ S )

R에 관련된 투플이 없으면 결과 릴레이션에 널값으로 채운다


✅ 완전 외부 조인 ( R ⟗ S )

R과 S의 모든 투플들을 결과에 포함시키고, 관련된 투플이 없으면 널값으로 채운다.












0개의 댓글

관련 채용 정보