Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자료구조
- attribute
- 블록체인강의
- 단국대학교 k-mooc
- StringBuilder
- 블록체인 강의
- 해시
- 힙
- national instruments
- 자바
- 2차원배열정렬
- K-MOOC 단국대학교 홍보단
- K-MOOC
- StringTokenizer
- 컴파일시스템
- 자바입력받기
- 혁신의기술2:신뢰의미래 블록체인을 만나다
- 우선순위큐
- 블록체인
- javascript
- stringreader
- 자바스크립트
- biginteger사용법
- html기초
- Node
- Entity
- 자바문자열구분
- CSS 기초
- 시스템프로그래밍
- html 태그
Archives
- Today
- Total
열정 실천
008. 관계대수와 관계해석 Relational Algebra & Relational Calculus 본문
728x90
Relational Algebra 관계대수와 Relational Calculus 관계 해석의 의미와 차이
관계 대수는 어떻게 질의를 수행할 것인가를 명시하는 절차적(query language) 언어이고,
관계 해석은 원하는 데이터만 명시하고 질의를 어떻게 수행할 것인가는 명시하지 않는 선언적 언어이다.
관계 대수는 SQL문법을 생각하면 된다. 관계 대수의 셀렉트 연산자는 SQL의 WHERE 절과 대응되고, 프로젝트 연산자는 SQL의 SELECT 절과 대응된다. SQL문 처럼 관계 대수는 어떻게 데이터를 처리할 지를 효율적으로 정하는데 사용된다.
반면,
어떤 데이터가 필요한지 더욱 간단하게 정의하는데에 사용되는 관계해석식은 이렇게 생겼다.
관계 대수 연산자
우리가 숫자를 더하거나 나누어 원하는 수를 도출하듯,
릴레이션을 관계대수라는 전용 연산자를 통해 더하거나 곱해 새로운 릴레이션을 도출해낸다.
σ | Selection_셀렉션 | 조건에 맞는 튜플(행)을 선택한다. | |
π | Projection_프로젝션 | 특정 속성(열)만 선택한다. | |
∪ | Union_합집합 | 두 테이블의 튜플을 합친다. (중복 제외) | |
∩ | Intersection_교집합 | 두 테이블에서 공통된 튜플만 반환한다. | |
- | Difference_차집합 | A테이블에서 B테이블에 없는 값만 반환한다. | |
× | Cartesian product_카티션 곱 | 두 테이블의 모든 가능한 튜플 조합은 반환한다. | |
⨝ | Join_조인 | 두 테이블을 특정 조건에 따라 결합한다. | |
÷ | Division_디비전 | A테이블에서 B테이블의 모든 값을 가지고 있는 튜플을 반환한다. |
관계 해석
1. 튜플 관계 해석
:: 특정 조건을 만족하는 튜플(행)을 반환
SYSTAX :: {t | 조건(t)}
t : 튜플 변수 / 조건(t)는 튜플 t가 만족해야하는 조건
예시 : 학생 테이블에서 나이가 20세인 학생을 찾는 질의:
- { t | t ∈ 학생 AND t.나이 = 20 }
구분 | 구성요소 | 기호 | 설명 |
연산자 | OR 연산 | ∧ | 또는 |
AND 연산 | ∨ | 그리고 | |
NOT 연산 | 부정 | ||
정량자 | 전칭 정량자 | For All | |
존재 정령자 | There Exists |
2. 도메인 관계 해석
:: 테이블의 특정 속성 값(열)을 기반으로 질의하는 방식
SYSTAX :: {<d1, d2, ... dn> | 조건(d1, d2, ... dn) }
<d1, d2, ... dn> : 테이블 속성의 도메인 변수들 / 조건(d1, d2, ... dn) : 도메인 변수들이 만족해야하는 조건
튜플 관계 해석 vs 도메인 관계 해석
튜플 관계 해석(TRC) | 도메인 관계 해석(DRC) | |
질의 방식 | 테이블의 전체 튜플(행)을 기준으로 조건을 지정함 | 속성 값(열)을 기준으로 조건을 지정함 |
결과 | 조건을 만족하는 튜플(행) 전체를 반환 | 조건을 만족하는 속성 값의 조합을 반환 |
변수 사용 | 튜플 변수를 사용하여 각 튜플(행)을 참조함 | 도메인 변수를 사용하여 각 속성(열)을 참조함 |
사용 용도 | 여러 속성에 걸친 복잡한 관계를 다룰 때 유용 | 특정 속성에만 초점을 맞추어 간단한 질의를 할 때 유용 |
가독성 | 튜플 변수를 사용하여 상대적으로 직관적일 수 있음 | 각 속성을 개별로 다뤄야 하므로, 다소 복잡하게 보일 수 있음 |
728x90
'CS > DATABASE' 카테고리의 다른 글
[SQLD] 001. 데이터 모델링의 이해 (4) | 2024.10.24 |
---|---|
010. ERD-to-Realation __ E-R 다이어그램보고 테이블 만들기 (0) | 2024.10.05 |
007. 관계형 데이터 모델 & 관계형 데이터베이스 제약조건 (1) | 2024.10.02 |
006. SQL - DCL 데이터 조작어 COMMIT, ROLLBACK, GRANT, REVOKE + SAVEPOINT, ROLE (1) | 2024.09.24 |
005. SQL - DML 데이터 조작어 _ 연산 및 SQL함수(산술,문자,집계), GROUP BY (0) | 2024.09.24 |