관계대수에서 집합 연산자의 호환성(compatibility), SQL의 SELECT 구문과 관계 대수의 SELECTION과의 차이점, 기본 인덱스와 보조 인덱스의 유사점과 차이점, INSURED_AUTOS 테이블은 복합 애트리뷰트 (YEAR, MAKE,
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

관계대수에서 집합 연산자의 호환성(compatibility), SQL의 SELECT 구문과 관계 대수의 SELECTION과의 차이점, 기본 인덱스와 보조 인덱스의 유사점과 차이점, INSURED_AUTOS 테이블은 복합 애트리뷰트 (YEAR, MAKE,에 대한 보고서 자료입니다.

목차

1. 카티션 곱, 동등조인, 자연조인, 왼쪽외부조인, 오른쪽외부조인에 대해 설명하라

2. 관계대수에서 집합 연산자의 호환성(compatibility)에 대해 설명해 봅시다.

3. SQL의 SELECT 구문은 관계 대수의 SELECTION과는 다르다. 그 차이점을 생각해 봅시다.

4. 기본 인덱스와 보조 인덱스의 유사점과 차이점을 설명하라

5. INSURED_AUTOS 테이블은 복합 애트리뷰트 (YEAR, MAKE, MODEL)와 단일 애트리뷰트 (VIN)에 인덱스가 정의되어 있다. 다음 SELECT문 중에서 이들 인덱스의 혜택을 보지 못하는 것은 첫 번째 이다. 그 이유와 나머지 2~4번은 왜 인덱스 이용이 가능한 지 설명하라

① select vin from insured_autos where make='Ford' and model='Taurus';
② select count(*) from insured_autos where make='Ford' and year=1998;
③ select vin from insured_autos where year=1998 and owner='Dahlman';
④ select min(year) from insured_autos where make='Ford' and model='Taurus';

본문내용

인덱스가 없으면 선형탐색을 이용해야 한다. 파일의 키가 아닌 필드에 대한 보조 인덱스도 만들 수 있다. 이 경우 여러 개의 레코드들이 인덱스 필드에 같은 값을 가질 수 있는데,
- 선택사항 1은 같은 K(i)값을 갖는 인덱스 엔트리들을 각 레코드당 하나씩 여러개 두는 것이다.
- 선택사항 2는 인덱스 엔트리들에 대해서 가변길이(variable-length) 레코드를 갖는 것이다.
- 선택사항 3은 인덱스 엔트리들 자체는 고정길이를 갖고 각 인덱스 필드 값에 대해서 하나의 엔트리를 갖도록 하지만, 각 엔트리는 여러 개 레코드 포인터들을 갖는 블록을 가리킨다. 이 방법이 가장 일반적으로 사용된다.
4. 기본 인덱스와 보조 인덱스 생성하기
1) 기본 XML 인덱스 생성하기
USE AdventureWorks;
GO
IF EXISTS (SELECT * FROM sys.indexes
WHERE name = N'PXML_ProductModel_CatalogDescription')
DROP INDEX PXML_ProductModel_CatalogDescription
ON Production.ProductModel;
GO CREATE PRIMARY XML INDEX PXML_ProductModel_CatalogDescription
ON Production.ProductModel (CatalogDescription);
GO
2) 보조 XML 인덱스 생성하기
USE AdventureWorks;
GO
IF EXISTS (SELECT name FROM sys.indexes
WHERE name = N'IXML_ProductModel_CatalogDescription_Path')
DROP INDEX IXML_ProductModel_CatalogDescription_Path
ON Production.ProductModel;
GO
CREATE XML INDEX IXML_ProductModel_CatalogDescription_Path
ON Production.ProductModel (CatalogDescription)
USING XML INDEX PXML_ProductModel_CatalogDescription FOR PATH ;
GO
5. 결론
인덱스는 꼭 필요한 부분이 아니기 때문에 동적으로 만들었다가 제거할 수 있다. 특정한 필드를 탐색조건으로 파일을 자주 접근해야 한다면 이 필드에 대해 보조 인덱스를 사용한다. 모든 필드들에 대해서 각각의 보조 인덱스를 갖는 파일을 완전 역 파일(fully inverted file) 이라고한다. 인덱스는 일반적으로 B+ 트리로 구현하기 때문에 동적으로 갱신하여 레코드들의 삽입과 삭제를 반영한다. 순서 키필드에 대한 다단계 기본 인덱스를 갖는 순서파일을 인덱스 순차파일이라고 한다.
INSURED_AUTOS 테이블은 복합 애트리뷰트 (YEAR, MAKE, MODEL)와 단일 애트리뷰트 (VIN)에 인덱스가 정의되어 있다. 다음 SELECT문 중에서 이들 인덱스의 혜택을 보지 못하는 것은 첫 번째 이다. 그 이유와 나머지 2~4번은 왜 인덱스 이용이 가능한 지 설명하라
① select vin from insured_autos where make='Ford' and model='Taurus';
② select count(*) from insured_autos where make='Ford' and year=1998;
③ select vin from insured_autos where year=1998 and owner='Dahlman';
④ select min(year) from insured_autos where make='Ford' and model='Taurus';
복합 애트리뷰트(YEAR, MAKE, MODEL)순으로 인덱스가 지정이 되면 인덱스에 저장되는 내용도 YEAR, MAKE, MODEL순 입니다. 다시 말해 YEAR가 가장 빠른순으로 정렬을 하고, 그 다음에 각 YEAR별로 MAKE가 가장 빠른순으로 정렬하고 그 다음에 각각의 YEAR,MAKE별로 MODEL이 가장 빠른 순으로 정렬을 하는겁니다.
그러니 검색을 하실때 YEAR로 검색을 거나 YEAR와 MAKE로 검색을 하거나 YEAE, MAKE, MODEL로 검색을 하면 인덱스 사용이 가능합니다. YEAR와 MODEL로 검색을 하더라도 YEAR에 대해서는 인덱스를 사용하겠네요. 그러나 MAKE나 MODEL 단독으로 검색을 하거나 MAKE와 MODEL로 같이 검색을 하면 데이터값으로 정렬이 되어있는 인덱스에서 처음부터 끝까지 다 검색해야하기 때문에 인덱스에서 검색을 하는거와 테이블에서 검색하는것이 다를 바가 없습니다. 그러니 인덱스를 사용하지 않는거죠.
그런데 4번은 make와 model로 검색을 하는데 왜 인덱스를 사용하느냐?
그건 min(year)를 구하는것이기 때문에 그렇죠.
인덱스에서 찾는다면 year의 최소값이니까 인덱스의 제일 마지막 부터 찾기 시작해서 make='Ford' and model='Taurus'인것을 찾으면 되니까 인덱스를 사용하는게 효과적입니다.
INDEX1 : VIN
INDEX2 : YEAR+MAKE+MODEL
1~4번 모두 where절에 and로 묶여있다.
인덱스는 year,make,model순으로 타야하는데 and절 일때는 순서가 상관없다.
2번은 where절에 year,make가 있으니깐 이거 2개로 인덱스 가능,
3번은 where절에 year,owner이 있으니깐 year에 해당하는 만큼은 인덱스 가능,
4번은 where절에는 make,model만 있지만 select절에 year가 있으므로 year, make, model로 인덱스가 가능하다.
하지만 1번은 결합인덱스의 첫컬럼인 year가 존재하지 않으므로 인덱스를 타지 못한다. 그리고 vin도 where절에는 없으므로 인덱스가 타지 못한다. 4번에서 인덱스를 타는 것처럼 select절 + where절이 같이 쓰이면 인덱스가 가능하다.
여기서 인덱스를 가장 잘 쓰려면
select vin
from insured_autos
where year=1998
and make='Ford'
and model='Taurus';
  • 가격2,500
  • 페이지수14페이지
  • 등록일2011.08.31
  • 저작시기2011.8
  • 파일형식한글(hwp)
  • 자료번호#699012
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니