-
10일차 - 관계 데이터 연산CS지식/데이터베이스 2021. 5. 6. 23:17
지금까지 데이터베이스 모델링과 이상현상을 없애기 위한 정규화에 대해 배웠다.
오늘은 릴레이션끼리 연산을 하거나 하나의 릴레이션에 연산을 하여 원하는 릴레이션을 얻는 관계 데이터 연산에 대해 배웠다.
1. 관계 데이터 연산이란
관계 데이터 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것으로 관계 대수와 관계 해석이 존재한다.
관계 대수는 원하는 결과를 얻기 위해 데이터의 처리과정을 순서대로 기술한 것이고
관계 해석은 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술한 것이다.
정의를 보았을 때는 무엇을 의미하는지 감이 안 올 것이다.
지금부터 관계 대수에 대해 자세히 알아보자.
2. 관계 대수 언어
관계 대수는 위에서 정의한대로 결과를 얻기 위해 릴레이션의 처리과정을 순서대로 기술하는 것이고
이를 언어로 표현한 것이 관계 대수 언어로 절차적 언어이다.
관계 대수 언어는 릴레이션을 처리하는 연산자들의 모임으로 대표연산자는 총 8개가 있고 일반 집합 연산자와 순수 관계 연산자로 분류된다.
관계 대수 언어는 폐쇄 특성을 가지고 있는데 폐쇄 특성이란 피연산자도 릴레이션이고 연산을 통해 나온 결과도 릴레이션이다.
관계 대수 언어에서의 일반 집합 연산자에 대해 알아보자.
일반 집합 연산자는 릴레이션이 튜플의 집합이라는 개념을 이용하는 연산자이다.
여기에는 합집합, 교집합, 차집합, 카티션 프로덕트가 있다.
합집합, 교집합, 차집합은 수학 시간에 배운 개념과 동일하다.
카티션 프로덕트는 릴레이션 R의 튜플과 릴레이션 S의 튜플을 모두 연결하여 만들어진 새로운 튜플을 반환한다.
일반 집합 연산자의 특성은 다음과 같다.
- 피연산자가 2개 필요하다.
즉, 릴레이션 2개가 있어야 연산이 가능하다는 것이다.
- 합집합, 교집합, 차집합은 피연산자인 두 릴레이션이 합병이 가능해야한다.
여기서 합병이 가능한 조건은 두 릴레이션의 차수가 같아야하고 두 릴레이션에서 서로 대응되는 속성의 도메인이 같아야한다.
(차수는 속성의 개수, 도메인은 속성이 갖는 특성으로 char, int, float 등이 있다.)
다음으로 순수 관계 연산자에 대해 알아보자.
순수 관계 연산자는 릴레이션의 구조와 특성을 이용하는 연산자로 4가지가 존재한다.
종류 표현법 설명 셀렉트 σ조건(R) 릴레이션 R에서 조건을 만족하는 튜플을 반환 프로젝트 π속성리스트(R) 릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플들을 반화 조인 R⋈S 공통속성을 이용해 릴레이션 R과 S의 튜플들을 연결하여 만들어진 새로운 튜플들을 반환 디비전 R÷S 릴레이션 S의 모든 튜플과 관련이 있는 릴레이션 R의 튜플들을 반환 'CS지식 > 데이터베이스' 카테고리의 다른 글
12일차 - SQL (데이터 조작, DML) (1) (0) 2021.05.12 11일차 - 데이터베이스 언어 SQL (0) 2021.05.09 9일차 - 정규형과 정규화 예제 (0) 2021.05.03 8일차 - 정규화 (0) 2021.04.30 7일차 - 관계 데이터 모델링: 실습 (0) 2021.04.27