DNF LOVE
[데이터베이스론 기초 - 9] 관계 데이터 연산과 데이터 언어(관계 대수, 관계 해석) 본문
관계 데이터에는 연산을 위한 언어가 존재한다. 그것은 정형어라 부르며 관계 대수와 관게 해석 두개로 나뉜다.
관계 해석과 관계 대수는 표현과 기능 면에서는 동등하다. 그러나 형태가 다르며 보통은 관계 해석보다는 관계 대수를 위주로 공부한다.
1. 관계 해석 : 비절차적 언어이며, WHAT만 명세되어 있다
- 튜플 관계 해석
- 도메인 관계 해석
2. 관계 대수 : 절차 언어이며, HOW(어떻게)와 WHAT(무엇을)만 명세되어 있다.
관계 대수는, 릴레이션(튜플들의 집합)을 처리하기 위한 연산의 집합이다. 집합이기 때문에 폐쇄 성질을 가지고 있다. 즉 정수 + 정수 = 정수라할때 정수들은 덧셈 연산에 닫혀 있다고 하는 것 처럼, 관계 대수 역시 피연산자와 결과 모두 릴레이션이어야 한다.
1) 일반 집합 연산자
- 합집합(Union, U)
R∪S = { t | t∈R ∨ t∈S } * t : Tuple, R U S의 원소임.
|R∪S| ≤ |R| + |S| -> |R∪S| = |R| + |S| 인 경우는 교집합이 존재하지 않을 때.
- 교집합 (intersect,∩)
R∩S = { t | t∈R ∧ t∈S }
|R∩S| ≤ min{ |R|, |S| } -> { |R|, |S| }가 최소값일 때 : 하나의 R이 다른 하나의 R에 포함될 때
- 차집합(Difference, -)
RS = { t | t∈R ∧ t S }
|RS| ≤ |R| -> |RS| = |R|인 경우는 R∩S = 공집합 일 경우
- 카티션 프로덕트(Cartesian Product, X)(Product - 곱 집합)
R×S = { r·s | r∈R ∧ s∈S } : 접속(concatenation)
|R×S| = |R|×|S|
** 차수(Degree) : 애트리뷰트(속성)의 개수
** 카디널리티 : 튜플(레코드)의 개수
** 일반 집합 연산자의 특징
- 합병 가능한 릴레이션(합집합, 교집합, 차집합) : 합병이란, 2개의 릴레이션을 합쳐서 하나의 릴레이션으로 만든느 행위이다. 이때 1> 차수가 동일해야 하며 2> 대응 애트리뷰트 쌍 별로 도메인이 같아야 한다는 전제조건을 갖는다.
- 결합적 속성(합집합, 교집합, 카티션 프로덕트) : R U S U T = (R U S) U T = R U (S U T)
- 교환적 속성(합집합, 교집합, 카티션 프로덕트) : R U S = S U R, R ∩ S = S ∩ R
2) 순수 관계 연산자 : 순수하게 릴레이션을 위한 연산자이다.
- 셀렉트(Select, Sigma ∂) : A, B은 릴레이션 R의 애트리뷰트일때 AθB를 만족시키는 연산을 말한다. 연산 결과는 투플의 집합임.
- ∂Dept = '컴퓨터'(Student) (시그마 속성 = 조건 내용(테이블))
- A와 B를 비교하기 위해서 두 속성의 도메인은 동일해야 한다.
- 셀렉트의 결과는 선택 조건을 만족하는 릴레이션의 수평적 부분 집합이다.
- 셀렉트는 DML로 따지자면 Select 구문과 동일하다.
- 셀렉트 역시 결합적인 성질을 가지고 있다.
- 프로젝트(Project, pi π) : 릴레이션 R(X)에서 Y⊆X(x의 부분집합 x : 학년, 학과, 이름) - 즉, y는x의 포함관계에 있을 시 이고 Y={B1,B2, … ,Bm} 인 전제 조건이 존재한다.
- πSno Dept(Student) (파이 속성들(테이블))
- 프로젝트의 연산 결과는 릴레이션의 수직적 부분집합이다.
- 결과에 튜플이 중복되는 경우는 제거 된다.
- 조인(Join, ⋈) : R(X), S(Y), A∈X, B∈Y 에 대하여 A, B은 조인 애트리뷰트라고 한다.
- STUDENT⋈Sno=Sno ENROL
- 조인을 쓰는 이유는 두 릴레이션을 FK를 사용해서 연관 있는 것들끼리 조인을 하면 같이 연산할 수 있음.
- 결과 릴레이션의 애트리뷰트는 원 소속 릴레이션 이름을 애트리뷰트 앞에 한정어로 붙여 일관성 유지함.
- 카티션은 두 릴레이션을 무조건 다 연결시킨 것이고 조인은 조건에 맞는 것만 연결
- 동일 조인 : 세타 조인이 '='인 경우
- 자연 조인 : 동일 조인에서 중복된 애트리뷰트를 삭제한다.
- 세미 조인 : R⋉S S와 자연 조인이 가능한 R의 투플의 집합 R(X), S(Y)의 조인 애트리뷰트를 Z(=X∩Y)라 하면
- 외부 조인 : 내부 조인을 확장한 개념, 실제 참여하지 않은 투플들도(null로) 포함하여 흔적을 남김.
-> 누락된 정보를 처리하기 위해 조인을 확장함. 두 조인 릴레이션의 투플들이 전부 결과 릴레이션에 포함됨
- 외부 합집합 : 합병 가능하지 않은 두 릴레이션의 모든 애트리뷰트를 포함하는 확장된 릴레이션
-> 대응 가능한 투플들을 연결시키고 불가능한 것들은 null로 둠
- 계명연산(RENAME: ρ: rho) : 중간 처리 결과 릴레이션에 이름을 지정하거나 애트리뷰트의 이름을 변경할 때 사용
- ρS(E) : 관계 대수식 E의 결과 릴레이션의 이름을 S로 지정
- ρS(B1,B2, … ,Bm )(E) : 관계 대수식 E의 결과 릴레이션의 이름을 S로 지정하고애트리뷰트 이름은 각각 B1,B2, … ,Bm 으로 지정
- ρ(B1,B2, … ,Bm )(R) : 릴레이션 R의 애트리뷰트 이름을 각각 B1,B2, … ,Bm 으로 변경
- 집계 연산
- AVG성적(등록) : 등록 R의 성적의 모든 값들에 대해 평균값 계산 => 테이블이 아닌 하나의 Value
- GROUP학년(학생) : 1학년, 2학년 등 학생 릴레이션의 투플들을 학년 값에 따라 그룹을 나눔
- GROUP과목번호AVG성적(등록) : 등록 릴레이션에서 과목별 그룹에 대한 평균 성적
-> 실행 순서는 그룹 -> 평균 순서임
- 일반 형식 : GAFB(E) -> E : 관계 대수식, F : 집계 함수 ( SUM, AVG, MAX, MIN, COUNT)
B : 집계 함수의 적용 대상 애트리뷰트 , G : 그룹 함수 GROUP,
A : 그룹 함수가 적용할 애트리뷰트
3) 기본연산과 복합연산
- 기본연산(합집합, 차집합, 카티션 프로덕트, 프로젝트, 셀렉트) : 다른 연산으로 대체할 수 없다.
- 복합 연산(교집합, 조인, 자연주인, 디비전-%) : 몇 개의 기본 연산으로 대체 가능하다
'Computer Science > 데이터베이스' 카테고리의 다른 글
[데이터베이스론 기초 - 11] SQL (0) | 2019.10.22 |
---|---|
[데이터베이스론 기초 - 10] 데이터 종속성과 정규화 (0) | 2019.10.22 |
[데이터베이스론 기초 - 8] 관계 데이터베이스 모델과 릴레이션 개념에 대하여 (0) | 2019.08.14 |
[데이터베이스론 기초 - 7] DBS, DDL, DML, DCL, DBMS, DBA 등 데이터베이스 관련 용어 정리 (0) | 2019.08.04 |
[데이터베이스론 기초 - 6] 데이터 모델링 3개의 종류, E-R다이어그램 & Entity Type, Relationship Type의 간단 설명 (0) | 2019.08.04 |