확장된 질의 (2)
[ Aggregate Functions ]
▪ 집단 함수 : 여러 투플의 정보를 요약하여 하나의 투플로 요약하는데 사용
▪ COUNT, SUM, AVG, MIN, MAX
▪ 이 함수들은 SELECT 절이나 HAVING 절에서 사용할 수 있다.
▪ MAX와 MIN 함수는 도메인값들이 서로 간에 전체 순서를 가진다면 수치 도메인이 아닌 애트리뷰트들에도 사용될 수 있다.
▪ 이 함수들은 중첩 질의를 포함하는 선택 조건에도 사용될 수 있다. 집단 함수를 가진 상관 중첩 질의를 명시한 수, 이 중첩 질의를 외부 질의의 WHERE 절 내에 사용할 수 있다.
[ Grouping : GROUP BY 와 HAVING 절 ]
▪ 그룹화 : 요약하기 전에 투플들을 부분 그룹으로 나누기 위해 사용한다.
▪ SQL 내에 GROUP BY 절을 가진다면. SELECT 절 내에 그 grouping attribute 들이 반드시 있어야 한다.
▪ 릴레이션 내에 있는 투플들을 어떤 애트리뷰트의 값을 기준으로 여러 부분 집단으로 나누고, 이 부분 집 단들에 집단 함수를 적용하기도 한다.
▪ 릴레이션을 서로 겹치지 않는 투플들의 부분집합으로 분할할 필요가 있다. 각 그룹은 그룹화 애트리뷰트 라고 부르는 애트리뷰트의 값이 같은 투플로 그성된다. 그런 후 각 그룹마다 독립적으로 집단 함수들을 적용하여 각 그룹별로 요약된 정보를 얻을 수 있다.
▪ 그루핑 애트리뷰트 내에 널이 존재하면 그 널값을 가진 모든 투플들을 위한 별도의 그룹을 만든다.
▪ HAVING 절은 그룹화 애트리뷰트에 같은 값을 갖는 투플들의 그룹에 대한 요약된 정보의 조건을 나타내며 이런 조건을 만족하는 그룹들만 질의 결과로 검색된다.
▪ 각 조건이 적용되는 규칙은 먼저 WHERE 절이 실행되어 WHERE 절을 만족하는 투플들 또는 조인된 테이 블들만 검색되고, 나중에 HAVING 절이 적용되어 투플들의 각 그룹을 선택 하게 된다. 따라서 HAVING 절에 있는 함수를 적용하기 전에 이미 급여가 40,000 달러를 넘는 사원 투플들만 검색된다.
[ Aggregate Function 과 Grouping 을 관계 모델에 속한다고 말할 수 없는 이유는? ]
▪ relational algebra는 set을 지원한다.(중복제거)
▪ 이 함수들은 multi-set을 지원하기 때문에 관계모델에 포함 될 수가 없다.
▪ 그러나, 무척 유용하기에 SQL에 포함하여 사용한다.
[ SQL 질의에 대한 논의와 요약 ]
▪ SQL 에서 하나의 검색 질의는 최대로 6개의 절을 갖지만, 필수적으로 질의에 나타내야 하는 두개의 절은 SELECT와 FROM 절이다.
- SELECT 절 : 검색하려고 하는 애트리뷰트나 함수들의 리스트를 나열한다.
- FROM 절 : 조인된 릴레이션들을 포함해서 질의에 필요한 모든 릴레이션을 명시하지만 중첩된 릴레이션들 을 포함해서 질의에 필요한 모든 릴레이션(테이블)을 명시하지만 중첩 질의에 사용되는 릴레이 션들은 명시하지 않는다.
- WHERE 절 : 필요하다면 조인 조건을 포함하여 FROM 절에 명시된 릴레이션들로부터 투플들을 선택하기 위한 조건들을 명시한다.
- GROUP BY 절 : 그룹화 애트리뷰트들을 명시한다.
- HAVING 절 : 선택된 투플들의 그룹들에 대한 조건들을 명시한다.
- ORDER BY 절 : 질의 결과를 출력하는 순서를 명시한다.
- 내장된 집단 함수 COUNT, SUM, AVG, MIN, MAX는 그룹화와 함께 사용 된다. GROUP BY 절이 없는 질 의 에서는 모든 검색된 투플에 적용된다.
댓글이나 공감 남겨주는 사람 착한사람