1. 관계대수의 개요
- 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어
- 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어
- 피연산자와 결과 모두 릴레이션
- 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시
- 관계대수의 종류
- 순수 관계 연산자
- 관계 데이터베이스에 적용
- Select, Project, Join, Division
- 일반 집합 연산자
- 수학적 집합 이론에서 사용
- 합집합 UNION, 교집합 INTERSECTION, 차집합 DIFFERENCE, 교차곱 CARTESIAN PRODUCT
- 교차곱
- 두 릴레이션이 존재하는 모든 튜플들을 대응시켜 새로운 릴레이션을 만드는 연산
- 연산의 결과 차수 = 두 릴레이션의 차수를 합한 것
- 튜플 = 두 릴레이션의 튜플 수를 곱한 것과 같음
- 교차곱의 결과는 두 릴레이션을 연결하여 나타낼 수 있는 모든 튜플들을 표현할 수 있으므로 여기에서 필요한 튜플만 식별하는 Select 연산을 수행하면 Join 연산의 결과와 같아지는 것
- 교차곱
- 순수 관계 연산자
2. Select
- 릴레이션에 존재하는 튜플 중 선택 조건을 만족하는 튜플의 부분집합을 구하여 새로운 릴레이션을 만드는 연산
- 수평 연산 : 릴레이션의 행(가로)에 해당하는 튜플을 구하는 것
- 표기형식 : σ (조건) (R)
- R : 릴레이션 이름
- 조건 : 비교 연산이 허용 (=, ≠, <, ≤, >, ≥ 등의 기호 사용), 논리 연산자를 사용하여 여러 개의 조건들을 하나의 조건으로 결합시킬 수도 있음
3. Project
- 주어진 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출하여 새로운 릴레이션을 만드는 연산
- 연산 결과에 중복이 발생하면 중복이 제거
- 수직 연산자 : 릴레이션의 열(세로)에 해당하는 Attribute를 추출하는 것
- 표기 형식 : π <속성리스트> (R)
4. Join
- 공동 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만드는 연산
- Join의 결과로 만들어진 릴레이션의 차수 = 조인된 두 릴레이션의 차수를 합한 것
- Join의 결과 : Cartesian Product(교차곱)를 수행한 다음 Select를 수행한 것과 같음
- 표기 형식 : R ⋈키속성r π 키속성s S
- 키 속성 r은 릴레이션 R의 속성, 키 속성 s는 릴레이션 S의 속성
- 자연 조인 Natural Join
- 조인 조건이 '='일 때 동일한 속성이 두 번 나타나게 되는데, 이중 중복된 속성을 제거하여 같은 속성을 한 번만 표기하는 방법
- 자연 조인이 성립되려면 두 릴레이션의 속성명과 도메인이 같아야 함
5. Division
- X⊃Y인 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성 값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
- 표기 형식 : R [속성r ÷ 속성s] S
- 속성 r은 릴레이션 R의 속성, 속성 s는 릴레이션 S의 속성, 속성 r과 속성 s는 동일 속성값을 가지는 속성이어야 함
6. 일반 집합 연산자
- 수학적 집합 이론에서 사용하는 연산자
- 릴레이션 연산에도 그대로 적용할 수 있음
- 합집합, 교집합, 차집합을 처리하기 위해서는 합병 조건을 만족해야 함
- 합병 조건
- 합병하려는 두 릴레이션 간에 속성의 수가 같음
- 대응되는 속성별로 도메인이 같아야 함
- 속성의 이름이 같아야 되는 것은 아님
- 합병 조건
- 연산별 특징
연산자 | 기능 및 수학적 표현 | 카디널리티 |
합집합 UNION ∪ |
• 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 결과로 생성된 릴레이션에서 중복되는 튜플은 제거되는 연산 • t는 릴레이션 R 또는 S에 존재하는 튜플 • R ∪ S = { t | t ∈ R ∨ t ∈ S} |
• |R∪S| ≤ |R| + |S| • 합집합의 카디널리티는 두 릴레이션 카디널리티의 합보다 크지 않음 |
교집합 INTERSECTON ∩ |
• 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산 • R ∩ S = { t | t ∈ R ∧ t ∈ S} • t는 릴레이션 R 그리고 S에 동시에 존재하는 튜플 |
• |R∩S| ≤ MIN{|R|, |S|} • 교집합의 카디널리티는 두 릴레이션 중 카디널리티가 적은 릴레이션의 카디널리티보다 크지 않음 |
차집합 DIFFERENCE - |
• 두 릴레이션에 존재하는 튜플의 차집합을 구하는 연산 • R - S = { t | t ∈ R ∧ t ∉ S} • t는 릴레이션 R에는 존재하고 S는 없는 튜플 |
• |R-S| ≤ |R| • 차집합의 카디널리티는 릴레이션 R의 카디널리티 보다 크지 않음 |
교차곱 CARTESIAN PRODUCT x |
• 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산 • R X S = { r ∙ s | r ∈ R ∧ s ∈ S} • r은 R에 존재하는 튜플, s는 S에 존재하는 튜플 |
• |R x S| ≤ |R| x |S| • 교차곱의 디그리는 두 릴레이션의 디그리를 더한 것과 같고, 카디널리티는 두 릴레이션의 카디널리티를 곱한 것과 같음 |
7. 관계해석 Relational Caiculus
- 관계 데이터 모델의 제안자인 코드 (E. F. Codd)가 수학의 Predicate Calculus(술어 해석)에 기반을 두고 관계 데이터베이스를 위해 제안
- 관계 데이터의 연산을 표현하는 방법
- 원하는 정보를 정의할 때는 계산 수식을 사용
- 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지님
- 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등, 관계대수로 표현한 식은 관계해석으로 표현할 수 있음
- 질의어로 표현
- 관계해석의 종류 : 튜플 관계해석, 도메인 관계해석
- 주요 논리기호
기호 | 구성 요소 | 설명 |
∀ | 전칭 정량자 | 가능한 모든 튜플에 대하여 (For All) |
∃ | 존재 전량자 | 하나라도 일치하는 튜플이 있음 (There Exists) |
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 데이터베이스 설계 - 068. 반정규화 Denormalization (0) | 2025.02.14 |
---|---|
[정보처리기사 필기] 데이터베이스 설계 - 067. 정규화 Normalization (0) | 2025.02.14 |
[정보처리기사 필기] 데이터베이스 설계 - 065. 관계형 데이터베이스의 제약 조건 - 무결성 (0) | 2025.02.13 |
[정보처리기사 필기] 데이터베이스 설계 - 064. 관계형 데이터베이스의 제약 조건 - 키 Key (0) | 2025.02.13 |
[정보처리기사 필기] 데이터베이스 설계 - 063. 관계형 데이터 베이스의 구조 (0) | 2025.02.13 |