본문 바로가기

프로그래밍/정보처리기사

정보처리기사 1과목 데이터베이스 관계대수 및 관계해석



http://blog.naver.com/wlsgkr91/220904221037


1.관계대수의 개요

-관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도되는가를 기술하는 절차적인 언어.

-관계대수는 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로 피연산자가 릴레이션이고 결과도 릴레이션이다. 

-질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다.

순수관계연산자: Select//Project//Join//Division

일반집합연산자:

UNION합집합//INTERSECTION교집합

DIFERENCEC차집합//CARTESIAN PRODUCT교차곱


2.순수 관계 연산자

-순수 관계 연산자란 관계 데이터베이스에 적용할 수 있도록 특별히 개발한 관계 연산자를 말한다.

Select

-Select는 릴레이션에 존재하는 튜플 중에서 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만든다.

-릴레이션의 행에 해당하는 튜플을 구하는 것이므로 수평연산이라고도 한다.

-연산자의 기호는 그리스 문자 시그마를 사용한다.

-표기형식:σ <조건>(R) R은 릴레이션 이름.

Project

-Project는 주어진 릴레이션에서 속성 List에 제시된 속성만을 추출하는 연산이다.

-릴레이션의 열에 해당하는 속성을 추출하는 것이므로 수직 연산자라고도한다.

-연산의 기호는 그리스 문자 파이π를 사용한다. 

Join

-Join은 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산이다.

Division

-X에 속하는 Y인 두개의 릴레이션이 R,S가 있을 때 R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산이다.

-연산자의 기호는 %를 사용한다.

표기형식:R[속성r%속성s]S


3.일반 집합 연산자

-일반 집합 연산자는 수학적 집합 이론에서 사용하는 연산자로서 릴레이션 연산에도 그대로 적용할 수 있다.

-일반 집합 연산자 중 합집합, 교집합, 차집합은 합병 조건이 가능해야한다.

-합병조건: 합병하려는 두 릴레이션 간에 애트리뷰트의 수가 같고, 각 애트리뷰트가 취할 수 있는 도메인의 범위가 같아야 한다.

-합병가능한 두 릴레이션 R과 S가 있을 때 각 연산의 특징을 요약하면 다음과 같다. 


합집합-두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거된다.

합집합의 카디널리티는 두 릴레이션 커디널리티의 합보다 크지않다.

교집합-두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산. 교집합의 카디널리티는 두 릴레이션 중 카디널리티가 적은 릴레이션의 카디널리티보다 크지 않다.

차집합-두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산 차집합의 카디널리티는 릴레이션 R의 카디널리티보다 크지않다.

교차곱-두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산

교차곱은 두 릴레이션의 카디널리티를 곱한 것과 같다.


4.관계해석

-관계 데이터 모델의 제안자인 코드가 수학의 술어해석에 기반을 두고 관계 데이터베이스를 위해 제안했다.

-관계해석은 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산 수식을 사용한다.

-관계해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지닌다.

-튜플 관계해석과 도메인 관계해석이 있다.

-기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등하며 , 관계대수로 표현한 식은 관계해석으로 표현할 수 있다. 

-질의어로 표현한다.