티스토리 뷰
[한빛아카데미] 오라클로 배우는 데이터베이스 개론과 실습 책으로 학습한 내용을 정리한 것입니다.
* 관계대수(Relational Algebra)와 관계해석(Relational Calculus)
- 관계 데이터 모델에서의 연산은 원하는 데이터를 얻기 위해 릴레이션에 필요한 처리 요구를 수행하는 것으로, 데이터베이스 시스템의 구성 요소 중 데이터 언어의 역할을 함
- 대표적인 관계 데이터 연산으로 관계대수와 관계해석이 있음
- 관계대수 : 원하는 결과를 얻기 위해 데이터의 처리 과정을 순서대로 기술하는 절차 언어
- 관계해석 : 원하는 결과를 얻기 위해 처리를 원하는 데이터가 무엇인지만 기술하는 비절차 언어
* 관계대수 연산자
* 관계대수식(Relational Algebra Expression)
- 관계대수 연산을 수행하기 위한 식
- 단항 연산자 : 연산자<조건> 릴레이션
- 이항 연산자 : 릴레이션1 연산자<조건> 릴레이션2
* 셀렉션(Selection)
- 하나의 릴레이션을 대상으로 하는 단항 연산자며, 찾고자 하는 투플의 조건을 명시하고 그 조건에 만족하는 투플을 반환함
- 결과 릴레이션의 차수는 대상 릴레이션 차수보다 작거나 같으며 카디널리티는 동일함
- 여러 개의 조건을 지정해야 한다면, ∧(and) ∨(or) ¬(not) 와 같은 기호를 이용하면 됨
- σ<조건>(R)
* 프로젝션(Projection)
- 릴레이션의 속성을 추출하기 위한 연산으로 단항 연산자임
- 결과 릴레이션의 차수는 대상 릴레이션 차수보다 작거나 같으며 카디널리티는 동일함
- π<조건>(R)
* 합집합(Union)
- 두 개의 릴레이션을 합하여 하나의 릴레이션을 반환함
- 두 개의 릴레이션은 서로 같은 속성 순서와 도메인을 가져야 함 -> 합병 가능 상태라고 함
- A ∪ B
* 교집합(Intersection)
- 두 릴레이션이 공통으로 가지고 있는 투플들을 반환함
- 합병 가능 상태여야 함
- A ∩ B
* 차집합(Set-difference)
- 첫번째 릴레이션에는 속하고 두번째 릴레이션에는 속하지 않는 투플을 반환함
- 합병 가능 상태여야 함
- A ㅡ B
* 카티전 프로덕트(Cartesian-product)
- 합집합, 교집합, 차집합은 수직적 연산인 반면, 카티전 프로덕트는 수평적 연산임
- 두 릴레이션을 연결시켜 하나로 합칠 때 사용함
- 합병 가능 상태가 아니어도 됨
- A X B
-> A의 릴레이션 오른쪽에 B릴레이션의 모든 튜플을 순서대로 배열한 형태
-> 차수 = A의 차수 + B의 차수, 카디날리티 = A의 카디날리티 x B의 카디날리티
* 조인(Join)
- 두 릴레이션의 공통 속성을 기준으로 속성 값이 같은 투플을 수평으로 결합하는 연산
- 두 릴레이션을 카티전 프로덕트 연산을 한 후 셀렉션 연산을 한 것
이름 | 기호 | 기능 |
동등조인/내부조인 | ⋈ | 두 릴레이션 간의 같은 값을 가진 집합 |
세타조인 | ⋈θ | 두 릴레이션 간의 비교 조건에 만족하는 집합 |
자연조인 | ⋈N | 동등조인에서 중복 속성을 제거 |
세미조인 | ⋉(Left 기호) | 자연조인 후 기호의 열린 쪽의 속성을 제거 |
외부조인 Left | ⟕ | - 자연조인 후 각각 왼쪽, 오른쪽, 양쪽의 모든 값을 결과로 추출함 - 조인이 실패 또는 값이 없을 경우 한 쪽의 값을 NULL로 채용함 |
외부조인 Right | ⟖ | |
외부조인 Full | ⟗ |
* 디비전(Division)
- 다른 연산과 달리 릴레이션의 속성 값의 집합으로 연산을 수행함
- R ÷ S
-> 속성 A와 B로 이루어진 릴레이션 R과 속성 B로 이루어진 릴레이션 S의 디비전 연산은, 릴레이션 S의 속성 B값과 서로 동일하게 대응하는 릴레이션 R의 속성 A의 투플들을 반환함
'개인공부 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 데이터베이스 프로그래밍 (0) | 2023.12.04 |
---|---|
[데이터베이스] SQL 고급 (0) | 2023.12.04 |
[데이터베이스] SQL 기초 (0) | 2023.12.04 |
[데이터베이스] 관계 데이터 모델(Relational Data Model) (0) | 2023.12.04 |
[데이터베이스] 데이터베이스 시스템(Database System) (0) | 2023.12.04 |