본문 바로가기

Programming/데이터 베이스

관계 데이터 연산 3

1. 관계대수의 확장

1.1 관계 연산자들의 기능

  • 주요 연산: 실렉션, 프로젝션, 합집합, 교집합, 차집합, 카티션 곱, 디비전 등.
  • 관계 연산자들의 기능

1.2 관계대수의 한계

  • 제한사항:
    • 산술 연산 불가.
    • 집단 함수(집계 함수) 미지원.
    • 데이터 수정 불가.
    • 중복된 튜플 처리 불완전.
    • 결과 정렬 불가.

1.3 관계대수의 확장

  • 새로운 연산:
    1. 세미조인: 연결 관계 일부만 반환.
    2. 외부조인: NULL 포함 관계 처리.
    3. 외부 합집합: 차수 확장으로 이질 릴레이션 결합.
    4. 집단 함수:
      • SUM, AVG, COUNT, MAX, MIN.
      • 예: AVG(SALARY)는 급여 평균 계산.
    5. 그룹화:
      • 속성(애트리뷰트)값으로 그룹 나누고 집단 함수 적용.
      • 예: DNO 별로 평균 급여 계산.

2. 관계 해석

2.1 개념

  • 프레디킷 논리 기반의 선언적 언어.
  • 비절차적 질의:
    • 데이터를 어떻게 조회할지보다 무엇을 조회할지 명시.
  • 투플 관계 해석: 투플을 기준으로 데이터 조회
  • 도메인 관계 해석: 속성을 기준으로 데이터 조회

2.2 기본 기호

  • ∃ (There exists): 존재.
  • ∀ (For all): 전칭.
  • : 원소 포함.
  • : 합집합.

2.3 투플 관계 해석

  • 구성 요소:
    • 투플 변수: 특정 릴레이션의 투플만 가짐.
    • 원자(atom):  R(t), t.Aθ u.B, t.A θ c
    • 정형식(WFF): 원자+불리언 연산자+정량자 조합.
  • 표현 예:
    • 특정 급여 조건:
      셀렉트 연산 { t | EMPLOYEE(t) and t.SALARY > 50000 }
    • 특정 속성 조회:
      프로젝트 연산 { t.FNAME, t.LNAME | EMPLOYEE(t) }

2.4 도메인 관계 해석

  • 구성 요소:
    • 도메인 변수: 속성값(도메인)의 특정 원소만 가짐.
    • 원자(atom): R(x1, x2, ..., xn), x θ y, x θ c.
    • 정형식(WFF): 원자+불리언 연산자+정량자 조합.
  • 표현 예:
    • 급여 90점 이상 학생: { x학번, x이름 | (학생(x학번, x이름, x학년, x학과) ∧ (∃x기말성적) (x기말성적 ≥ 90)) }

주요 사례

  1. 특정 사원의 이름 조회:
    { e.EMPNAME | EMPLOYEE(e) ∧ e.EMPNO = '2106' }
  2. 특정 과목(C413) 등록한 학생의 이름과 학과:
    { s.이름, s.학과 | 학생(s) ∧ (∃e)(등록(e) ∧ s.학번 = e.학번 ∧ e.과목번호 = 'C413') }
  3. 기말 성적 90점 이상 학생:
    { x학번, x이름 | (학생(x학번, x이름, x학년, x학과) ∧ (∃x기말성적) (x기말성적 ≥ 90)) }

도메인 관계 해석


핵심 요약

  • 관계대수는 데이터 조회 연산의 기초지만 한계가 있음.
  • 확장된 연산(집단 함수, 외부조인 등)과 관계 해석(투플/도메인 해석)을 통해 복잡한 질의 처리 가능.
  • 선언적 언어는 사용자가 "무엇"을 원하는지 표현하도록 하여, 내부 수행 방법은 데이터베이스가 담당.