입력받은 SQL을 분석하고, 어떤 순서로 기억장치의 데이터에 접근할지 결정한다.이때 결정되는 계획을 '실행 계획'이라고 부른다.실행 계획에 기반을 둬서 데이터에 접근하는 방법을 '접근 메서드(access method)'라고 부른다.쿼리 평가 엔진 = 계획을 세우고 실행
Ch.2의 경우 기본적인 SQL을 설명하는 단원이라 스킵하였다.UNION은 외부적으로 하나의 SQL 구문을 실행하는 것처럼 보이지만, 내부적으로는 여러 개의 SELECT 구문을 실행하는 실행 계획으로 해석된다. 따라서 I/O 비용이 크게 증가한다.UNION을 사용해도
트랜잭션(Transaction)이란, 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위를 뜻함데이터베이스의 상태를 변경시킨다는 것은 SELECT, UPDATE, INSERT, DELETE와 같은 질의어(SQL)을 통해 데이터베이스에 접근하는 것을 의미한다.
좋은 설계를 위해서 지켜야 하는 것이 무엇이 있을까?FaithfulnessAvoiding redundancySimplicity countsChoosing the right relationshipsPicking the right kind of element디자인은 구체화
집약 함수의 종류에는 다음 5가지 종류가 있다.5가지에 대한 설명은 다들 알 것이라고 생각하고 생략하겠다.COUNTSUMAVGMAXMINGROUP BY를 사용해 집약을 수행할 경우에 정렬보다 해시 알고리즘을 많이 사용한다.경우에 따라서 정렬을 사용하기도 하지만, 보다
SQL은 일부러 반복문을 언어 설계에서 제외했다.일반적으로 SQL에서 반복문이 지원되지 않아, 다음과 같은 방식으로 프로그래밍을 하는 경우가 많다.레코드에 하나씩 접근하는 SELECT 구문을 반복해서 사용한다.호스트 언어에서 반복문을 처리한 뒤 테이블에 갱신한다.그렇지
CROSS Join, INNER JOIN, OUTER JOIN에 대한 내용은 생략하겠다.옵티마이저가 선택 가능한 결합 알고리즘의 종류Nested LoopsHashSort Merge알고리즘을 선택하는 기준은 데이터의 크기, 결합 키의 분산이다.가장 기본적으로 사용하는 것
서브쿼리란 SQL 내부에서 작성되는 일시적인 테이블이다. 테이블과 서브쿼리는 기능적인 관점에서 차이가 없기 때문에 SQL은 두 가지를 모두 같은 것으로 취급한다. 테이블 : 영속적인 데이터를 저장 뷰 : 영속적이지만 데이터는 저장하지 않음. (접근할 때마다 SELECT
레크드에 순번을 붙이는 방법은 앞에서 많이 정리해서 생략하고 응용부터 가도록 하겠다.양쪽 끝에서 숫자 세기오름차순, 내림차순한 뒤 같은 속도로 움직인다.그때 lo와 hi가 똑같은 시점이 중앙값이다.그런데 왜 lo+1, lo-1 도 있을까? -> 짝수일 경우 2개의 평균
SQL의 대부분은 SELECT 구문이라고 할 수 있다. 반면 UPDATE, DELETE라는 갱신을 위한 기능은 상세하게 다뤄볼 기회가 거의 없다. 그 결과 갱신과 관련된 SQL 구문은 검색 SQL 구문 이상으로 비효율적으로 성능이 좋지 않은 방향으로 작성된다. 이번 장
"가장 일반적이면서 중요한 인덱스 방법은 B-Tree다. 모든 애플리케이션을 만족시킬 수 있는 최적의 메모리 구조란 존재하지 않지만, 그래도 하나를 선택해야 한다면 B-Tree를 선택할 것이라는 뜻이다." -Christopher J. Date 데이터베이스 시스템 6판인