이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

포스트그레스포츠 토토 결과 시스템

포스트그레강력한 지원스포츠 토토 결과 시스템다음 사양에 대한조회그리고 모호함업데이트 보기. 원래는포스트그레스포츠 토토 결과 시스템은 두 가지로 구성됨 구현:

  • 첫 번째는 다음을 사용하여 작동했습니다.튜플 수준처리 중이며 깊은 곳에서 구현되었습니다.집행자. 스포츠 토토 결과 시스템은 언제든지 호출되었습니다. 개별 튜플에 액세스했습니다. 이 구현은 1995년에 마지막 공식 릴리스가 나올 때 제거되었습니다.포스트그레스프로젝트는 다음과 같습니다 으로 변형됨포스트그레스95.

  • 스포츠 토토 결과 시스템의 두 번째 구현은 기술입니다. 전화함쿼리 재작성.시스템 재작성은 사이에 존재하는 모듈입니다.파서 단계그리고플래너/최적화 프로그램. 이 기술은 아직도 구현되었습니다.

다음의 구문 및 규칙 생성에 대한 정보는포스트그레시스템 참조PostgreSQL 사용자 가이드.

재작성 시스템

쿼리 재작성 시스템모듈입니다 파서 단계와 플래너/옵티마이저 사이. 처리합니다 파서 단계에서 전달된 트리(사용자를 나타냄) 쿼리)에 적용해야 하는 규칙이 있는 경우 쿼리는 트리를 대체 형식으로 다시 작성합니다.

기술을 뷰 구현

이제 우리는 쿼리 재작성 시스템의 알고리즘을 스케치하겠습니다. 더 나은 설명을 위해 규칙을 사용하여 뷰를 구현하는 방법을 보여줍니다. 예를 들면.

다음 규칙을 따르십시오:

스포츠 토토 결과 생성 view_rule
  선택과 마찬가지로 
  test_view로
  대신에 해라
     s.sname, p.pname 선택
     공급업체 s에서 se, 부품 p를 판매합니다.
     여기서 s.sno = se.sno이고
           p.pno = se.pno;

주어진 규칙은 다음과 같습니다.해고됨언제든지 관계에 대해 선택테스트_뷰이다 감지되었습니다. 에서 튜플을 선택하는 대신테스트_뷰다음에 제공된 select 문작업 부분스포츠 토토 결과이 실행됩니다.

다음 사용자 쿼리를 허용합니다.테스트_뷰주어지다:

스네임을 선택하세요 
  test_view에서
  여기서 sname < '스미스';

다음은 쿼리 재작성에 의해 수행되는 단계 목록입니다. 사용자 쿼리가 발생할 때마다 시스템테스트_뷰나타납니다. (다음 목록은 매우 단지 기본 목적으로만 고안된 알고리즘에 대한 비공식적 설명 이해. 자세한 설명은 다음을 참조하세요.Stonebraker 외, 1989).

테스트_뷰다시 작성

  1. 규칙의 작업 부분에 제공된 쿼리를 받으십시오.

  2. 대상 목록을 조정하여 대상 수와 순서를 충족시키십시오. 사용자 쿼리에 제공된 속성입니다.

  3. 다음의 where 절에 제공된 자격을 추가하세요. 사용자 쿼리를 주어진 쿼리의 자격으로 규칙의 작업 부분입니다.

위의 규칙 정의에 따라 사용자 쿼리는 다음과 같습니다. 다음 형식으로 다시 작성됩니다. (다시 작성은 다음에서 수행됩니다. 에 의해 전달된 사용자 쿼리의 내부 표현 파서 단계이지만 파생된 새 데이터 구조는 다음 쿼리):

s.sname 선택
  공급업체 s에서 se, 부품 p를 판매합니다.
  여기서 s.sno = se.sno이고
        p.pno = se.pno 및
        s.sname < '스미스';