티스토리 뷰
안녕하세요 강정호입니다. 오늘은 데이터베이스의 관계 대수(Relational Algebra)와 관계 논리(Relational Calculus)에 대해 공부해 볼게요.
오늘 공부할 내용은 다음과 같습니다.
- 단항 관계 연산
- 집합 이론을 기반한 관계 대수 연산
- 이항 관계 연산
단항 관계 연산
관계대수란?(Relational Algebra)
관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술한 절차적 정형언어
관계해석이란?(Relational Calculus)
튜플관계 해석과 도메인 관계 해석을 하는 비절차적 언어.
단항 연산 : SELECT, PROJECT
1. SELECT
- 릴레이션에서 주어진 조건을 만족하는 튜플을 선택하는 연산자.
- 결과 릴레이션의 차수 = 입력 릴레이션의 차수.
- 결과 릴레이션의 Cardinality <=원래 릴레이션의 Cardinality.
*Cardinality란? 튜플의 수를 뜻한다.
- 하나의 입력 릴레이션에 적용되므로 단항 연산자.
2. PROJECT
- 릴레이션에서 Attribute 리스트에 제시된 Attribute만을 추출하는 연산자.
- 한 릴레이션의 Attribute들의 부분집합
- 하나의 입력 릴레이션에 적용되므로 단항 연산자.
- **PROJECT 연산을 하면 중복이 제거 된다 --> PROJECT 연산의 결과는 중복이 제거된 distinctive한 튜플이다.
집합 연산 : UNION, INTERSECT, DIFFERENCE, CARTESIAN
1. 합집합(Union)
- 이항 연산으로 관계성이 있는 두개의 릴레이션을 합집합 하여 하나의 릴레이션을 만들어내는 연산.
- 즉 테이블을 합해서 추출
2. 교집합(Intersect)
- 이항 연산으로 관계성이 있는 두개의 릴레이션에서 중복되어 있는 내용을 선택하여 새로운 릴레이션을 만들어 내는 연산.
- 즉 겹치는 부분을 추출
3. 차집합(Difference)
- 이항 연산으로 관계성이 있는 두개의 릴레이션이 있을 때 그 중 하나의 릴레이션에서 또 다른 릴레이션의 내용과 겹치는 내용을 제거해서 새로운 릴레이션을 생성하는 연산.
- 즉, 중복된거 제거하고 결과값 추출
4. 카티션 프로덕트(Cartesian Product)
- 이항 연산으로 두 릴레이션의 현재 튜플로 구성 가능한 모든 조합 만듬.
- 결과 릴레이션의 차수 = R의 차수 + S의 차수
- 결과 릴레이션의 카디널리티 = R의 카디널리티 * S의 카디널리티
단항 연산자, 집합 연산자 예시
종류 | 설명 |
합집합 | <기준> |
차집합(DIFFERENCE) | 두 릴레이션의 차집합(difference)은 첫 번째 릴레이션에는 나타나지만 두 번째 릴레이션에는 나타나지 않는 투플들을 포함하는 세 번째 릴레이션이 된다. 두 릴레이션은 합병 가능 해야 한다 |
교집합(INTERSECTION) | 두 릴레이션의 교집합(intersection)은 첫 번째와 두 번째 릴레이션에 모두 나타나는 투플들을 포함하는 세 번째 릴레이션이 된다. 여기서도 릴레이션들은 합병 가능해야 한다. |
프로덕트(PRODUCT) |
프로덕트는 A × B 또는 A TIMES B라고 표시한다. |
프로젝션(PROJECTION) | 프로젝션(projection)은 한 릴레이션에서 지정된 속성들을 선택하는 연산이다. 프로젝션의 결과는 선택된 속성을 포함하는 새로운 릴레이션이 된다. 즉, 프로젝션은 주어진 릴레이션에서 열들을 선택해낸다. 그림 9-17 STUDENT 릴레이션의 프로젝션: |
셀렉션(SELECTION) |
|
오늘은 데이터베이스의 관계 대수에 대해 알아보았습니다.
다음 시간에는 JOIN 연산에 대해 다뤄 볼게요.
'Computer Science' 카테고리의 다른 글
[데이터베이스] Inner Join, Outer Join (0) | 2018.10.17 |
---|---|
[도메인 분석설계] 도메인 모델 연관관계 추가하기 (0) | 2018.10.16 |
[도분설] 도메인 모델링 (0) | 2018.10.11 |
[데이터베이스] VIEW 테이블(가상 테이블) (0) | 2018.10.10 |
[데이터베이스] 서브쿼리 (0) | 2018.10.09 |
- Total
- Today
- Yesterday
- GIT
- 2023년
- 항해플러스백엔드
- 깃허브
- github
- 깃
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 항해솔직후기
- 폭포수
- 관계대수
- Use case
- 월급쟁이부자들
- 개발자 회고
- push_back
- Spring boot
- 내년은 빡세게!!
- resize
- 유즈케이스
- 도커
- 파라메터
- Inception
- 열반스쿨기초반
- 월부닷컴
- 재테크공부
- front
- docker
- pop_back
- 부동산공부
- 항해플러스후기
- 인셉션
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |