관계 대수 : 어떻게 질의를 실행할 것인지 명시하는 절차적 언어
관계 대수는 필수적인 연산자, 편의를 위해 유도된 연산자로 나눌 수 있다.
다른 관계 연산자들은 필수적인 관계 연산자를 두 개 이상 조합하여 표현할 수 있음
임의의 질의어가 적어도 필수적인 관계 대수 연산자들만큼의 표현력을 갖고 있으면 관계적으로 완전하다고 함
아래는 편의를 위해 유도된 연산자임
조인 연산자
두 개의 릴레이션으로부터 연관된 튜플을 결합하는 연산자
세타 조인, 동등 조인, 자연 조인, 외부 조인, 세미 조인 등이 있음
세타 조인
동등 조인
세타 조인 중에서 비교 연산자가 =인 조인
동등 조인 예시
자연 조인
자연 조인 예시
디비전 연산자
디비전 연산자 예시
관계 대수의 한계
관계 대수는 산술 연산 불가능
집단 함수를 지원하지 않음
정렬을 나타낼 수 없음
데이터베이스 수정할 수 없음
중복된 튜플을 명시하고 싶을 때 명시하지 못함
따라서 추가된 관계 대수 연산자가 존재함
집단 함수
AVG, SUM, MIN, MAX, COUNT
집단함수 예시
그룹화
각 그룹에 대해 집단 함수를 적용한다.
그룹화 예시
외부 조인
대응되지 못하는 튜플이나 애트리뷰트에 널값이 들어가 있는 튜플까지 포함하는 조인 연산
왼쪽 외부 조인, 오른쪽 외부 조인, 완전 외부 조인으로 나뉨
왼쪽 외부 조인
왼쪽 튜플들은 모두 결과에 포함시키고, 왼쪽 튜플과 관련된 튜플이 오른쪽에 없으면 널 값으로 채움
오른쪽 외부 조인
오른쪽 튜플들은 모두 결과에 포함시키고, 오른쪽 튜플과 관련된 튜플이 왼쪽에 없으면 널 값으로 채움
완전 외부 조인
왼쪽과 오른쪽 튜플들을 모두 결과에 포함시키고, 반대쪽 릴레이션에 관련된 튜플이 없으면 결과 릴레이션에서 반대쪽 릴레이션의 애트리뷰트들은 널 값으로 채움
'CS > DB' 카테고리의 다른 글
[DB] SQL 사용법(1) (0) | 2022.04.26 |
---|---|
[DB] 관계 대수 예시 (0) | 2022.04.26 |
[SQL] Table 생성 및 수정, 삭제 (0) | 2022.04.25 |
[SQL] 내포된 SQL (0) | 2022.04.24 |
[DB] 연산자 (0) | 2022.03.23 |