본문 바로가기
Department/Database

데이터베이스 관계 데이터 연산 - 관계 대수

by mean. 2020. 7. 14.
728x90
반응형

관계 데이터 모델에서의 데이터베이스 언어

: 관계 데이터 모델 기반 DBMS에서 원하는 정보를 얻기 위해 사용하는 언어

▣ 관계 데이터모델에서 지원되는 두 가지 정형적인 언어(“pure”language) - 컴퓨터에서 사용X, 언어 그 자체

: 관계형 데이터베이스 언어의 이론적 바탕이 되는 언어

◈관계대수(relational algebra)

원하는 데이터를 얻기 위해, 데이터를 어떻게 찾는지에 대한 처리 과정을 명시하는 절차적인 언어

◈관계해석(relational calculus)

원하는 결과를 얻기 위해, 찾기를 원하는 데이터가 무엇인지만 명시하는 선언적인(비절차적인)언어

▣ 관계 데이터 모델에서의 상용 데이터베이스 언어 : SQL

◈ 상용 관계 DBMS들의 사실상의 표준 질의어

정형적인 언어는 상용 데이터베이스 언어에 직접, 간접적으로 영향을 끼친다.

관계 대수와 관계 해석의 역할

▣ 관계형 모델 기반 데이터베이스 언어의 유용성 검증 기준

▣ 관계 대수나 관계 해석으로 기술할 수 있는 모든 질의를 기술할 수 있는 데이터베이스 언어를 관계적으로 완전(relationally complete) 하다고 판단함.

◈ 질의(query): 원하는 정보를 얻기 위한, 데이터에 대한 처리요구

관계대수

관계대수식 (원인 릴레이션 TO 결과 릴레이션 = 둘 다 릴레이션)

▣ 관계대수는 릴레이션 간 연산을 통해 결과 릴레이션을 찾는 절차를 기술한 언어

▣ 이 연산을 수행하기 위한 식을 관계대수식(relational algebra expression)이라고 한다.

▣ 대상이 되는 릴레이션과 연산자로 구성

▣ 관계대수식의 결과는 릴레이션

◈ 결과 릴레이션은 릴레이션의 모든 특성을 그대로 따름

▣ 관계대수식의 결과 릴레이션은 또 다른 관계 대수 연산자의 입력으로 사용될 수 있음. ex) (1+2)+5 = 8

◈관계 대수 연산자들을 여러 개 조합하여 복잡한 데이터베이스 질의들을 표현할 수 있음.

▣관계대수식

◈단항연산자 (대상이 되는 피연산자 1개) : 연산자<조건>릴레이션

◈이항연산자 (대상이 되는 피연산자 2개) : 릴레이션1 연산자<조건> 릴레이션2

결과는 무조건 1개.

관계 대수 연산자

관계 대수 연산자 : 셀렉트(select)
▣ 릴레이션에서 원하는 투플을 추출하기 위한 연산자
▣ 단항연산자
▣ 찾고자 하는 투플의 조건(predicate)을 명시하고 그 조건에 만족하는 투플을 반환한다.
▣ 형식: σ조건(R)
◈ 결과 릴레이션의 차수 ≡ 입력 릴레이션의 차수(속성)
◈ 결과 릴레이션의 카디널리티(행의 수) ≤ 입력 릴레이션의 카디널리티

1개의 릴레이션 = 단항 연산자

▣ 셀렉트조건 ( 변수 이름 대체 = 속성 )
◈ 프레디킷(predicate)라고도함
◈ 셀렉트조건은 릴레이션의 속성, 상수, 비교연산자 ( =,<>,<=, <, >=, >), 논리연산자(AND,OR,NOT)를 조합하여 사용
◈형식
σ셀렉션조건(릴레이션)

예1 고객

등급이 ‘gold'인 고객을 검색하라 - σ등급=’gold'(고객)

예2

Q. 등급이 ‘gold’이고, 적립금이 2000 이상인 고객을 검색하라.


A. σ등급=‘gold’ AND 적립금>= 2000 (고객)

관계 대수 연산자 : 프로젝트(project)
▣ 릴레이션에서 원하는 속성을 추출하기 위한 연산
▣ 단항연산자
▣ 형식 : π속성리스트(R)
▣ 셀렉션의 결과 릴레이션은 중복 투플이 없지만, 프로젝트 결과 릴레이션은 중복된 투플들이 존재 가능. 그러나, 최종 결과 릴레이션에는 중복된 투플은 제거됨 -> 중복된 튜플을 뽑아내지 않는다면, 핵심 KEY가 될 수 있다.
▣ 결과 릴레이션의 차수 ≤ 입력 릴레이션의 차수
▣ 결과 릴레이션의 카디날리티 ≡ 입력 릴레이션의 카디날리티 (중복 투플이 없는경우)

Example 01

고객의 고객이름, 등급, 적립금을 검색하라.

π고객이름, 등급, 적립금(고객)

Example 02

고객등급을 검색하라
π등급(고객)

중복 제거를 통한 결과

최종적인 결과 릴레이션 : 중복제거
행의 수가 원래 릴레이션보다 작을 수 있다.

관계 대수 연산자 : 예

등급이 ‘gold'인 고객의 이름과 나이를 검색하라.
π 고객이름, 나이(σ등급=‘gold’(고객))

사원(사원번호, 사원이름, 직급, 급여, 부서번호)
부서(부서번호, 부서이름, 부서위치)
Q1) 모든 사원의 사원번호와 사원이름을 검색하라.
π사원번호, 사원이름(사원)
Q2) 부서번호가 ‘A123’인 부서 정보를 검색하라.
σ부서번호=‘A123'(부서)
Q3) 부서번호가 ‘A123’이거나 급여가 1000이상인 사원의 부서번호와 사원이름을 검색하라.
π사원번호,사원이름(σ부서번호=‘A123' OR 급여 >= 1000 (사원))

728x90
반응형