05. 관계 데이터 연산

2023. 11. 9. 23:24· CS/데이터베이스
목차
  1. 관계 데이터 연산의 개념
  2. 관계 데이터 연산
  3. 관계 대수 (Relational Algebra)
  4. 일반 집합 연산자
  5. 순수 관계 연산자
  6. 관계 해석 (Relational Calculus)
  7. 도메인 관계 해석
  8. 투플 관계 해석

관계 데이터 연산의 개념

💡 Remind
데이터 모델 = 데이터 구조 + 연산 + 제약 조건

 

관계 데이터 연산

관계 데이터 연산 (Relational data operation)

  • 관계 데이터 모델의 연산
  • 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것

관계 대수와 관계 해석

  • 관계 대수
    • 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술
  • 관계 해석
    • 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술
  • 관계 대수와 관계 해석 모두 기능과 표현력 측면에서 능력이 동등하다.
  • 관계적으로 완전(Relationally complete)한 언어: 관계 대수나 관계 해석을 사용하여 데이터베이스의 모든 유형의 질의를 표현하고 처리할 수 있는 언어

관계 대수 (Relational Algebra)

관계 대수 (Relational Algebra)

  • 원하는 결과를 얻기 위해 릴레이션의 처리 과정을 순서대로 기술하는 언어 (procedural language == 절차적 언어)
  • 릴레이션을 처리하는 연산자들의 모임: 일반 집합 연산자, 순수 관계 연산자
  • 폐쇄 특성 (closure property): 피연산자도 릴레이션이고 연산의 결과도 릴레이션이다.

일반 집합 연산자

일반 집합 연산자 (set operation)

  • 릴레이션이 투플의 집합이라는 개념을 이용하는 연산자

 

일반 집합 연산자의 특성

  • 2개의 릴레이션을 대상으로 연산 수행 -> 피연산자가 2개 필요
  • 합집합, 교집합, 차집합은 피연산자인 두 릴레이션이 합병 가능해야 함
    • 합병 가능 (union-complete) 조건: 두 릴레이션의 차수와 서로 대응되는 속성의 도메인이 같아야 한다.

카디션 프로덕트 (Cartesian Product)

  • 두 릴레이션 R과 S의 카디션 프로덕트: R X S
  • 결과 릴레이션은 R에 속한 투플과 S에 속한 각 투플을 모두 연결하여 만들어진 새로운 투플
    • 차수 = R의 차수 * S의 차수
    • 카디널리티 = R의 카디널리티 * S의 카디널리티

 

순수 관계 연산자

순수 관계 연산자 (relational operation)

  • 릴레이션의 구조와 특성을 이용하는 연산자

 

셀렉트 (Select)

  • 릴레이션에서 조건을 만족하는 투플만 선택하여 결과 릴레이션을 구성
    • 결과 릴레이션은 연산 대상 릴레이션의 수평적 부분집합
  • 릴레이션 where 조건식

프로젝트 (Project)

  • 릴레이션에서 선택한 속성의 값으로 결과 릴레이션을 구성
    • 결과 릴레이션에서 동일한 투플은 중복되지 않고 한 번만 나타남
    • 결과 릴레이션은 연산 대상 릴레이션의 수직적 부분집합
  • 릴레이션[속성리스트]

조인 (Join)

  • 조인 속성(두 릴레이션이 공통으로 가지고 있는 속성)의 값이 같은 투플만 연결하여 결과 릴레이션을 구성
  • 자연 조인 (natural join)이라고도 함: 일반적으로 조인 조건을 명시적으로 지정하지 않고, 공통 열을 기준으로 두 테이블을 조인
  • 세타 조인 (theta join): 주어진 조인 조건을 만족하는 두 릴레이션의 모든 투플을 연결
  • 동일 조인 (equal join): 세타 조인에서 연산자가 "="인 조인
  • 세미 조인 (semi join): 조인 속성으로 프로젝트 연산을 수행한 릴레이션을 이용하는 조인
    • 릴레이션2를 조인 속성으로 프로젝트 연산한 후, 릴레이션 1에 자연 조인
    • 불필요한 속성을 미리 제거하여 조인 연산 비용을 줄이는 장점
  • 외부 조인 (outer join): 자연 조인 연산에서 제외되는 투플도 결과 릴레이션에 포함
    • 두 릴레이션에 있는 모든 투플을 결과 릴레이션에 포함
👉 조인 vs 카디션 프로덕트
- 카디션 프로덕트는 두 관계의 모든 가능한 조합을 생성하는데 사용하고, 조인은 두 관계 사이의 특정 관계를 찾는 데 사용된다.

 

디비전 (Division)

  • 릴레이션 1 나누기 릴레이션 2
  • 릴레이션2의 모든 투플과 관련이 있는 릴레이션1의 투플로 결과 릴레이션을 구성
    • 릴레이션1이 릴레이션2의 모든 속성을 포함해야 연산 가능 (도메인이 같아야 함)

관계 해석 (Relational Calculus)

관계 해석 (Relational Calculus)

  • 처리를 원하는 데이터가 무엇인지만 기술하는 언어 (nonprocdural language == 비절차적 언어)

도메인 관계 해석

도메인 관계 해석 (Domain Relational Calculus)

  • 관계형 데이터베이스의 도메인(열의 데이터 유형)을 기반으로 데이터를 검색하는 방법을 설명하는 관계 해석의 형태

투플 관계 해석

투플 관계 해석 (Tuple Relational Calculus)

  • 관계형 데이터베이스에서 어떤 투플(레코드 또는 행)을 선택하거나 어떤 조건을 만족하는 투플을 찾는 방법을 설명하는 관계 해석의 형태
저작자표시 (새창열림)

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

7. 데이터베이스 설계  (1) 2023.11.27
6. SQL 기본 문법  (1) 2023.11.18
04. 데이터 모델링  (0) 2023.11.06
Week3 오라클과 MySQL  (0) 2023.10.30
Week2: 관계 데이터 모델  (0) 2023.10.21
  1. 관계 데이터 연산의 개념
  2. 관계 데이터 연산
  3. 관계 대수 (Relational Algebra)
  4. 일반 집합 연산자
  5. 순수 관계 연산자
  6. 관계 해석 (Relational Calculus)
  7. 도메인 관계 해석
  8. 투플 관계 해석
'CS/데이터베이스' 카테고리의 다른 글
  • 7. 데이터베이스 설계
  • 6. SQL 기본 문법
  • 04. 데이터 모델링
  • Week3 오라클과 MySQL
호프
호프
호프
Untitled
호프
전체
오늘
어제
  • 분류 전체보기 (341)
    • 오류😬 (4)
    • 스터디📖 (96)
      • 웹 개발 기초 (8)
      • Spring (20)
      • ML, DL (30)
      • Node.js (22)
      • React (0)
      • 블록체인 (12)
      • Go (3)
      • Javascript (1)
    • 알고리즘💻 (153)
      • 그리디 (23)
      • Bruteforce&Backtracking (16)
      • DP (17)
      • 이분탐색&정렬&분할정복 (17)
      • 누적합&투포인터 (6)
      • 스택&큐&덱 (19)
      • 그래프(DFS&BFS) (19)
      • 트리 (7)
      • 우선순위큐&다익스트라 (11)
      • 벨만포드&플로이드와샬 (8)
      • map&set&number theory (5)
      • 기타 (5)
    • 프로젝트 (3)
      • 캡스톤 디자인 프로젝트 (3)
    • 블록체인🔗 (3)
      • Solana (2)
      • 개발 (0)
      • Harmony (1)
    • ASC (6)
    • CS (73)
      • 데이터베이스 (12)
      • 클라우드컴퓨팅 (21)
      • 운영체제 (11)
      • 컴퓨터네트워크 (14)
      • 블록체인응용 (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 복습

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
호프
05. 관계 데이터 연산
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.