본문 바로가기
AI, 빅데이터/Database

[데이터베이스] - 관계 대수

by Foxy현 2022. 10. 13.
728x90
반응형

데이터 모델의 구성 요소로는 연산 + 데이터 구조 + 제약 조건이 있다고 했었죠.

관계형 데이터 모델은 관계 대수(연산) + 릴레이션(데이터 구조) + 무결성 제약 조건(제약 조건)으로 이루어진다고 했었구요.

잘 기억이 안 나시면 이전 글들 참고해주세요.

2022.10.04 - [AI, 빅데이터/Database] - Database - 데이터베이스 시스템

 

Database - 데이터베이스 시스템

이 글에서 다룰 내용 * 데이터베이스의 정의 및 특징 * 데이터 모델 * DB 관련 용어 "데이터베이스 : 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임" 쉽게

foxyprogramming.tistory.com

2022.10.11 - [AI, 빅데이터/Database] - [데이터베이스] - 관계형 데이터 모델

 

[데이터베이스] - 관계형 데이터 모델

안녕하세요! 저번 글에서는 데이터베이스 시스템에 대해서 다뤘었죠~ 2022.10.04 - [AI, 빅데이터/Database] - Database - 데이터베이스 시스템 데이터베이스 시스템이란 DB + User + DBMS + HW로 구성된 시스템

foxyprogramming.tistory.com

 

관계 대수

관계 대수는 릴레이션을 처리하는 연산의 집합입니다.

각 연산의 피연산자가 모두 릴레이션이고, 그 연산의 결과 또한 릴레이션이죠.

관계 대수 연산자의 종류로는 크게 일반 집합 연산자, 순수 관계 연산자로 나뉘는데,

일반 집합 연산자에는 우리에게 조금 더 익숙한 합집합, 교집합, 차집합, 그리고 카티션 프로덕트가 있습니다.

순수 관계 연산자로는 셀렉션, 프로젝트, 조인, 디비전이 있습니다.

하나씩 살펴볼까요?

 

합집합 연산자

두 개의 릴레이션을 합하여 하나의 릴레이션을 반환하는 연산자입니다.

1

이름 학번 학과 학년
이시현 20180000 전자공학과 3
코코 00002222 애견학과 1

 

2

이름 학번 학과 학년
수달 11111111 수영할과 2

 

1U2 

이름 학번 학과 학년
이시현 20180000 전자공학과 3
코코 00002222 애견학과 1
수달 11111111 수영할과 2

교집합 연산자

두 릴레이션 모두에 속한 튜플 반환

 

3

이름 학번 학과 학년
이시현 20180000 전자공학과 3
졍니 20190000 전자공학과 4

 

1 교집합 3

이름 학번 학과 학년
이시현 20180000 전자공학과 3

 

차집합 연산자

A-B라고 한다면, A에는 속하지만 B에는 속하지 않는 튜플 반환

 

1 - 3

이름 학번 학과 학년
코코 00002222 애견학과 1

카티션 프로젝트 연산자

A X B라고 한다면, A에 속한 튜플들과 릴레이션 B에 속한 튜플들의 모든 연결 가능한 조합으로 구성하는 릴레이션

 

A

회원 번호 회원명
1 이시현
2 졍니

B

뭐로 할까
2 냐냐
3 쿄쿄

A X B

회원 번호 회원명 뭐로 할까
1 이시현 2 냐냐
1 이시현 3 쿄쿄
2 졍니 2 냐냐
2 졍니 3 쿄쿄

 

셀렉션

하나의 릴레이션에 주어진 조건을 만족하는 튜플들을 선택

릴레이션을 수평 분할하는 효과가 있음

프로젝트

하나의 릴레이션에서 주어진 속성들의 값으로 구성된 튜플들을 선택

릴레이션을 수직 분할하는 효과가 있음

조인

두 개의 릴레이션의 공통 속성을 기준으로 속성 값이 같은 튜플들을 수평으로 결합하여 새로운 하나의 릴레이션을 만듦

조인은 비교 연산자를 사용하는 세타 조인, 그중 = 연산을 다루는 동등 조인, 동등 조인에서 중복 사용 속성 제거하는 자연 조인으로 나뉩니다.

 

세타 조인

비교 연산자를 이용하여 다양한 조건을 표현

동등 조인

비교 연산자가 =인 세타 조인

자연 조인

동등 조인의 결과 두 릴레이션에서 공통으로 사용된 중복되는 키 속성 중 하나를 제외한 것

디비전

특정 값들을 모두 가지고 있는 튜플을 찾는 연산


관계형 데이터 모델의 구성 요소인 관계 대수에 대해서 알아보았습니다.

 

정리해보자면 '합집합, 교집합, 차집합, 카티션 프로젝트, 셀렉트, 프로젝트, 조인, 디비젼 각각 릴레이션과 릴레이션 간의 연산을 하여 새로운 릴레이션을 만들 수 있다'

 

오늘 공부한 내용은 나중에 SQL 명령어의 기본 바탕이 되므로 한 번씩은 훑어보길 추천드립니다!

 

728x90
반응형