새소식

반응형
밥벌이/데이터베이스

관계형 데이터 연산

  • -
반응형
  • 관계 대수(Relational Algebra)
    • 관계 대수의 개념
      • 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어
      • 릴레이션 조작을 위한 연산의 집합으로 연산지를 이용하여 표현(절차적 언어)
      • 관계 대수는 8개의 연산자들로 구성
        • 관계 연산자 : SELECT, PROJECT, JOIN, DIVISION
        • 잡합 연산자 : UNION, INTERSECTION, DIFFERENCE, CARTESIAN PRODUCT
      • 특성에 따른 연산자 구분
        • 기본 연산자 : SELECT, PROJECT, UNION, DIFFERENCE, CARTESIAN PRODUCT
        • 파생 연산자 : INTERSECTION, JOIN, DIVISION
    • 관계 연산자 : 특수 연산자
      예제 테이블 : 학생
학번 이름 학년 전공 점수
01 오태훈 3 컴퓨터 80
02 이재현 2 전자 85
03 노병두 1 수학 70
04 이영덕 4 전기 79

   

  • SELECT(σ)
    • 릴레이션에 존재하는 튜플들 중에서 특정 조건을 만족하는 튜플들의 부분 집합을 구하여 새로운 릴레이션을 생성
    • 릴레이션에서 행에 해당하는 조건을 만족하는 튜플을 구하는 것이므로, 수평 연산이라고도 함.
      표기형식 :
    •    
    • 예) '학생' 릴레이션에서 점수 속성의 값이 80점 이상인 튜플을 SELECT :
  • PROJECT(π)
    • 주어진 릴레이션에서 속성 리스트에 제시된 속성값만을 추출하여 새로운 릴레이션을 생성
    • 릴레이션에서 열에 해당하는 속성을 추출하는 것이므로, 수직 연산이라고도 함
      표기형식:
    • 예) '학생'릴레이션에서 이름과 전공 속성을 PROJECT :
  • JOIN()
    • 공통 속성을 중심으로 두 릴레이션을 하나로 합쳐서 새로운 릴레이션을 생성
      표기형식 : 릴레이션1 릴레이션2
    • 예) '학생' 릴레이션과 '성적' 릴레이션에서 학번이 같은 속성을 JOIN : 학생성적
    • 조인의 종류
      • 동등 조인(Equi Join) : 릴레이션의 공통 속성을 기준으로 같은 값을 가지는 행을 조인
      • 자연 조인(Natural Join) : 동등 조인 결과에서 중복되는 속성을 제거
      • 외부 조인(Outer Join) : 조인 조건에 만족하지 않는 튜플도 결과로 출력하기 위한 조인
      • 세미 조인(Semi Join) : 분산 데이터베이스 환경에서 두 릴레이션 간의 조인 시 한 릴레이션을 다른 사이트에 전송하기 전에 먼저 조인 속성만을 추출하는 프로젝션을 실시하여 전송한 후 , 다른 사이트에서 조인에 성공한 튜플만을 전송 받아 다시 조인을 수행함으로써, 네트워크를 통해 전송되는 데이터의 양을 줄이고자 하는 개념을 도입
  • DIVISION(÷)
    • 2개의 릴레이션의 관계에서 한 릴레이션의 모든 튜플들과 관계를 갖는 특정 속성값들을 검색
      표기형식 : 릴레이션1÷릴레이션2
      • 공급(회사명,부품번호,수량)
      • 부품(부품번호, 부품명,색상,용량)
    • 예) 모든 부품들을 다 공급하는 회사명을 구하여라 : 공급[회사명,부품번호]÷부품[부품번호]
집합 연산자 연산 집합
UNION(U)
  • En 릴레이션에 존재하는 튜플의 합집합을 구하는 연산
  • 결과로 생성된 릴레이션에서 중복되는 튜플은 제거
  • R1 U R2 = {t : t R1 or t R2}
INTERSECTION()
  • 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
  • R1 R2 = {t : t R1 and t R2}
DIFFERENCE(-)
  • 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산
  • R1 - R2 = {t : t R1 and t R2}
CARTESIAN PRODUCT(X)
  • 두 릴레이션에 존재하는 튜플들의 겹합된 튜플들을 구하는 연산
  • R1 X R2 = {t1 · t2 : t1 R1 and t2 R2}
  • 관계 대수 연산자의 특징 및 고려 사항
    • 닫힘 특성(Closure Property)
      관계 대수의 연산자의 결과는 항상 릴레이션의 형태가 보장
    • 비관계(Non-Relational) 대수
      • 그룹 함수(Aggregate Function) : COUNT, SUM, AVG, MAX, MIN 등
      • 관계 대수는 재귀적 질의(Recursive Query)를 지원하지 못함
        예) 사원 테이블을 조인하여 사장 밑에 속한 모든 사원의 계층을 구하라.
  • 연산자들의 종류와 기호
종류 연산자 기호 비고
순수관계 연산 셀렉트(select) σ 기본연산
   프로젝트(project) Π 기본연산
   조인(join) 복합연산
   디비전(division) ÷ 복합연산
집합 연산 합집합(union) 기본연산
   교집합(intersect) 복합연산
   차집합(difference) 기본연산
   카티션프로덕트(cartesian product) x 기본연산
확장관계 연산 세미조인(semi join) 복합연산
   외부조인(outer join) + 복합연산
  • 관계 해석(Relational Calculus)
    • 관계 해석의 개념
      • 원하는 릴레이션을 정의하는 방법을 제공(비절차적 언어)
      • { 결과 | 조건 } : 조건을 만족하는 결과를 나타냄
      • 튜플 관계 해석과 도메인 관계 해석이 존재
    • 튜플 관계 해석
      { t | P(t) } : 술어 P가 참인 모든 튜플 t들의 집합을 나타냄 { t | t ∈ 학생 ∧ t[점수] > 90 }
    • 예) 학생(학번,이름,점수) 테이블에서 성적이 90점보다 큰 학생은 ?
    • 도메인 관계 해석
      {<x1,x2,…, xn> | P(x1, x2, .. , xn) : xi(1 ≤ i ≤ n}는 도메인 변수를 나타냄 { <학번,이름,점수> | <학번,이름,점수> ∈ 학생 점수 > 90 }
    • 예) 학생(학번,이름,점수) 테이블에서 성적이 90점 보다 큰 학생은 ?
    • 관계 해석의 특징
      • 비절차적(Non-procedural) 또는 선언적(Declarative) 언어 : 검색 연산의 과정을 명시할 필요 없음.
      • 술어 놀리(Predicate Logic)에 기반을 둠
      • 튜플 해석과 도메인 해석 2가지 모두가 관계 대수와 동등한 검색 표현 능력(Retrieval Expressive Power)을 보유
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.