[정처기 필기] 「3」 | 논리 데이터베이스 설계 - (1.3) 관계대수 및 관계해석

728x90

[정처기 필기] 3」 | 논리 데이터베이스 설계 - (1.3) 관계대수 및 관계해석

「1」 소프트웨어 설계

「2」 소프트웨어 개발

> 「3」 데이터베이스 구축

> 논리 데이터베이스 설계, 물리 데이터베이스 설계, SQL 응용, SQL 활용, 데이터 전환

「4」  프로그래밍 언어 활용

「5」  정보시스템 구축 관리

 

1 데이터베이스 설계

2 데이터 모델의 개념

3 E-R 모델

4 관계형 데이터베이스의 구조

5 관계형 데이터베이스의 제약 조건 - 키(Key)

6 관계형 데이터베이스의 제약 조건 - 무결성

> 7 관계대수 및 관계해석

8 정규화(Normalization)

9 반정규화(Denormalization)

10 시스템 카탈로그

7. 관계대수 및 관계해석

관계대수의 개요

 

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

 

- 릴레이션을 처리하기 위해 연산자, 연산규칙 제공, 피연산자가 릴레이션, 결과도 릴레이션

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

- 릴레이션 조작을 위한 연산의 집합

- 특별히 개발한 순수 관계 연산자와 수학적 집합 이론에서 사용하는 일반 집합 연산자

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

- 일반 집합 연산자 : UNION(합집합), INTERSECTION(교집합), DIFFERENCE(차집합), CARTESIAN PRODUCT(교차곱)

 

Select

 

튜플 중 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션으로 만드는 연산

 

- 릴레이션의 에 해당하는 튜플을 구하는 것, 수평연산

- 연산자 기호 : 시그마 σ

표기 형식 : σ<조건>(R)

: R은 릴레이션 이름

: 조건에서 =, , <, 비교 연산 허용, AND(∧), OR(∨), NOT(¬)논리 연산자 사용하여 여러 조건을 결합

 

ex) σAvg ≥ 90 (성적) : <성적> 릴레이션에서 'Avg'이 90점 이상인 튜플들 추출

 

Project

 

속성 리스트(Attribute List)에 제시된 속성 값만 추출하여 새로운 릴레이션으로 만드는 연산, 중복 제거

 

- 릴레이션의 에 해당하는 속성을 추출하는 것, 수직 연산자

- 연산자 기호 : 파이 π

표기 형식 : π<속성리스트>(R)

: R은 릴레이션 이름

 

ex) πName, Avg(성적) : <성적> 릴레이션에서 'Name'과 'Avg' 속성을 추출

 

Join

 

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

 

- 만들어진 릴레이션 차수두 릴레이션의 차수합한 것

- 결과는 Cartesian Product(교차곱) 수행 후 Select 수행한 것과 같음

- 조건이 '='일 때 동일한 속성이 2번 나타남

- 연산자 기호 : 보타이

표기 형식 : R ⋈키속성 r = 키속성 s S

: 키 속성 r은 릴레이션 R의 속성, 키 속성 s은 릴레이션 S의 속성

 

ex) 성적 ⋈No = No 학적부 : <성적> 릴레이션과 <학적부> 릴레이션을 'No' 속성을 기준으로 합침

 

>자연 조인(Natural Join)<

 

조인 조건이 '='일 때 동일한 속성이 2번 나타나는데, 중복된 속성을 제거하여 표기하는 방법, 자연 조인이 성립되려면 두 릴레이션의 속성명, 도메인 같아야

 

Division

 

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

 

- 연산자 기호 : 나누기 ÷

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

: 속성 r은 릴레이션 R의 속성, 속성 s는 릴레이션 S의 속성, 속성 r과 속성 s는 동일 속성값을 가지는 속성

 

ex) 구입자 [이름, 구입품 코드 ÷ 이름, 생산품 코드] 생산품 : <구입자> 릴레이션에서 '이름', '구입품 코드' 속성을 제외한 나머지 속성 추출하는데, 이때 <생산품> 릴레이션의 모든 튜플과 연관되어 있는 튜플만 추출

 

일반 집합 연산자

 

수학적 집합 이론에서 사용하는 연산자로 그대로 적용

 

- 합집합(UNION), 교집합(INTERSECTION), 차집합(DIFFERENCE)을 처리하기 위해 합병 조건(릴레이션 R의 i번째 속성과 릴레이션 S의 i번째 속성의 도메인이 서로 같아야 함)을 만족해야 함

 

합집합 UNION ∪

: 두 릴레이션에 존재하는 튜플의 합집합, 중복 제거

: R ∪ S = { t | t ∈ R ∨ t ∈ S } (t는 릴레이션 R 또는 릴레이션 S에 존재하는 튜플)

- 카디널리티

: |∪ S| ≤ |R| + |S|

 

ex) π이름(사원) π이름(직원) : <사원> 릴레이션과 <직원> 릴레이션에서 '이름'을 추출한 것의 합집합

 

교집합 INTERSECTION

: 두 릴레이션에 존재하는 튜플의 교집합

: R ∩ S =  { t | t ∈ R ∈ S } (t는 릴레이션 R 그리고 릴레이션 S에 동시에 존재하는 튜플)

- 카디널리티

: |R  S| ≤ MIN{|R|, |S|}

 

ex) π이름(사원) π이름(직원) : <사원> 릴레이션과 <직원> 릴레이션에서 '이름'을 추출한 것의 교집합

 

차집합 DIFFERENCE

: 두 릴레이션에 존재하는 튜플의 차집합

R ㅡ S = { t | t ∈ R t S } (t는 릴레이션 R에는 존재, 릴레이션 S에 없는 튜플)

- 카디널리티

: |R ㅡ S| |R|

 

ex) π이름(사원)  π이름(직원) : <사원> 릴레이션과 <직원> 릴레이션에서 '이름'을 추출한 것의 차집합

 

교차곱 CARTESIAN PRODUCT X

: 두 릴레이션에 있는 튜플들의 순서쌍을 구함

R X S = { r · s | r ∈ Rs∈ S} (r은 릴레이션 R에 존재, s는 릴레이션 S에 존재하는 튜플)

- 카디널리티

: |R X S| = |R| X |S|

: 교차곱의 디그리 - 두 릴레이션 디그리 더한 것, 카디널리티 - 두 릴레이션의 카디널리티 곱한 것

 

ex) π이름(사원) X π이름(직원) : <사원> 릴레이션과 <직원> 릴레이션에서 '이름'을 추출한 것의 교차곱

 

관계해석(Relational Calculus)

 

코드(E. F. Codd)수학의 술어 해석에 기반을 두고 관계 데이터베이스를 위해 제안, 원하는 정보무엇이라는 것만 정의하는 비절차적 언어

 

- 관계 데이터의 연산을 표현하는 방법, 원하는 정보를 정의할 때 계산 수식 사용

- 튜플 관계해석, 도메인 관계해석

- 관계해석과 관계대수는 관계 데이터를 처리하는 기능, 능력에서 동등, 관계대수로 표현한 식관계해석으로도 표현 가능

- 질의어로 표현

 

전칭 정량자 ∀ : 가능한 모든 튜플에 대하여(For All)

존재 정량자 ∃ : 하나라도 일치하는 튜플이 있음(There Exists)

 

 

 

 

 

 

 

출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)

728x90