데이터 중복을 방지하기 위해 사용하는 모델링 기술
이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정
하나의 SQL문 안에 포함되어 있는 또 다른 SQL문
select count(emp_no) from salaries where salary in (select salary from salaries
where emp_no='10001');
//샐러리 테이블에서 10001번 직원의 급여를 가져온 다음, 샐러리 테이블에서 급여가 같은 사원의 수를 출력함
select count(*) from city where CountryCode =
(select Code from country where Name=‘South Korea’)
//컨트리 테이블에서 SOUTH KOREA 인 코드를 가져온 다음, 시티 테이블에서 이에 해당되는 도시의 수를 표시
select Name, Population from city where Population > (select avg(Population) from city
where code=’KOR’) order by Population desc;
//도시 테이블에서 코드가 KOR인 도시의 평균인구보다 많은 도시를 내림차순 정렬하시오
select CountryCode, count(*) from city where CountryCode IN (select Code from country
where Name in ('South Korea','China','Japan')) group by CountryCode;
//국가명이 코리아 차이나 재팬인 국가코드를 찾아서 이에 해당되는 도시의 수를 표시하시오
샤딩처럼 DB가 크면 조인이 불가능 한 경우나
속도향상을 위해 (EX. 기사 댓글 대댓글에 갯수 표시하는 것)
정규화를 포기하고 중복을 허용함