XQuery 를 사용 하여 DB2 XML 데 이 터 를 조회 합 니 다.

5543 단어 쓰다X 로XQQuueer
보고 있 는 db2 튜 토리 얼 은 XQuery 를 사용 하여 DB2 XML 데 이 터 를 조회 합 니 다.XQuery 에 대하 여 XQuery 는 여러 가지 관건 적 인 부분 에서 SQL 과 다르다.이 두 가지 언어 는 서로 다른 특징 을 가 진 데이터 모델 을 대상 으로 디자인 되 었 기 때문이다.XML 문 서 는 계층 구 조 를 포함 하고 고유 한 순서 가 있 습 니 다.한편,SQL 기반 데이터 베이스 관리 시스템 이 지원 하 는 표 데이터 구 조 는 평면 적(flat)이 고 집합 을 바탕 으로 한다.따라서 줄 사이 에는 순서 가 없다.이 두 가지 데이터 모델 의 차이 로 인해 그들 각자 의 조회 언어 는 매우 기본 적 인 차이 가 있다.예 를 들 어 XQuery 는 XML 의 계층 구조 에서 프로그래머 가 탐색 할 수 있 도록 경로 표현 식 을 지원 하고 순수 SQL(XML 확장 없 음)은 지원 하지 않 습 니 다.XQuery 는 형식 이 있 고 형식 이 없 는 데 이 터 를 지원 합 니 다.SQL 데 이 터 는 항상 지정 한 형식 으로 정 의 됩 니 다.XQuery 는 XML 문서 가 부족 하거나 알 수 없 는 데 이 터 를 무시 하기 때문에 null 값 이 없습니다.물론 SQL 은 null 을 사용 하여 부족 하거나 알 수 없 는 데이터 값 을 표시 합 니 다.XQuery 는 일련의 XML 데 이 터 를 되 돌려 주 고 SQL 은 각종 SQL 데이터 형식의 결과 집합 을 되 돌려 줍 니 다.이것 은 XQuery 와 SQL 사이 의 기본 적 인 차이 점 중의 일부분 일 뿐이다.상세 한 목록 을 제공 하 는 것 은 본 고의 범 위 를 넘 어 섰 지만 곧 발 표 될 IBM Systems Journal 은 이러한 언어의 차 이 를 더욱 상세 하 게 토론 할 것 이다.이제 XQuery 언어의 기본 적 인 부분 을 탐색 하고 이 를 어떻게 사용 하여 DB2 Viper 의 XML 데 이 터 를 조회 하 는 지 살 펴 보 자.샘플 데이터베이스 본문 에서 의 조회 방문 은'DB2 Viper 빠 른 입문'(developerWorks,2006 년 4 월)에서 만 든 샘플 표 입 니 다.목록 1 은 샘플 데이터베이스 에 있 는"items"와"clients"표 의 정 의 를 내 렸 습 니 다.목록 1.표 정의
create table items(id int primary key not null,brandname varchar(30),itemname varchar(30),sku int,srp decimal(7,2),comments xml)create table clients(id int primary key not null,name varchar(50),status varchar(10),contactinfo xml)그림 1 에'items.comments'열 에 포 함 된 샘플 XML 데이터 가 표 시 됩 니 다.그림 2 에는'clients.contact info'열 에 포 함 된 샘플 XML 데이터 가 표 시 됩 니 다.다음 예 조 회 는 이 두 XML 문서 중 하나 또는 두 개의 특정한 요 소 를 참조 합 니 다.그림 1.'items'표 의'comments'열 에 저 장 된 샘플 XML 문서使用XQuery查询DB2 XML数据(图一)그림 2.'clients'표 의'contactinfo'열 에 저 장 된 샘플 XML 문서使用XQuery查询DB2 XML数据(图二)조회 환경 본 고의 모든 조 회 는 상호작용 을 통 해 이 루어 진다.이 는 DB2 명령 행 프로세서 나 DB2 Control Center 의 DB2 Command Editor 를 통 해 수행 할 수 있다.본 논문 의 화면 이미지 와 설명 은 주로 뒤의 방식 을 사용한다.(DB2 Viper 는 프로그래머 가 도형 화 된 방식 으로 조 회 를 구성 하 는 데 도움 을 줄 수 있 는 Eclipse 기반 Developer Workbench 도 추가 했다.본 고 는 응용 프로그램 개발 문제 와 Developer Workbench 를 토론 하지 않 습 니 다.)DB2 Command Editor 를 사용 하려 면 Control Center 를 시작 하고 Tools->Command Editor 를 선택 하 십시오.그림 3 과 같은 창 이 나타 납 니 다.위 판 넬 에 검색 어 를 입력 하고 왼쪽 상단 의 녹색 화살 표를 눌 러 서 이 검색 어 를 실행 한 다음 아래 판 넬 이나'Query Results'옵션 에서 출력 을 볼 수 있 습 니 다.그림 3.DB2 Command Editor 는 DB2 Control Center 에서 시작 할 수 있 습 니 다使用XQuery查询DB2 XML数据(图三)XQuery 예 는'SQL 로 DB2 XML 데 이 터 를 조회 합 니 다'와 마찬가지 로 본 고 는 흔히 볼 수 있 는 업무 장면 을 점차적으로 설명 하고 XQuery 를 사용 하여 XML 데이터 에 대한 요 구 를 만족 시 키 는 방법 을 보 여 줍 니 다.이 글 은 XQuery 에 SQL 을 삽입 해 야 하 는 더 복잡 한 상황 도 모색 했다.XQuery 는 다양한 종류의 표현 식 을 제공 합 니 다.이 표현 식 들 은 마음대로 조합 할 수 있 습 니 다.각 표현 식 은 일련의 값 을 되 돌려 줍 니 다.이 값 들 은 다른 표현 식 으로 입력 할 수 있 습 니 다.가장 바깥 표현 식 의 결 과 는 검색 결과 입 니 다.본 고 는 주로 두 가지 중요 한 XQuery 표현 식 인'FLWOR'표현 식 과 경로 표현 식 을 토론 한다.FLWOR 표현 식 은 SQL 의 SELECT-FROM-WHERE 표현 식 과 매우 비슷 합 니 다.여러 가지 로 구 성 된 목록 을 교체 하고 각 항목 을 통 해 계 산 된 값 을 되 돌려 주 는 것 을 선택 할 수 있 습 니 다.경로 표현 식 은 분 층 된 XML 요소 사이 에서 내 비게 이 션 을 하고 경로 끝 에서 찾 은 요 소 를 되 돌려 줍 니 다.SQL 의 SELECT-FROM-WHERE 표현 식 과 유사 합 니 다.XQuery FLWOR 표현 식 은 특정한 키워드 로 시작 하 는 몇 개의 자 구 를 포함 할 수 있 습 니 다.FLWOR 표현 식 에는 다음 과 같은 자구 로 시작 하 는 키워드 가 있 습 니 다.
  • for:입력 서열 을 교체 하고 한 변 수 를 각 입력 항목 에 순서대로 연결 합 니 다
  • let:변 수 를 설명 하고 값 을 부여 합 니 다.여러 가지 목록 을 포함 할 수 있 습 니 다
  • where:필터 조회 결 과 를 지정 하 는 기준orderby:지 정 된 결과 의 정렬 순서
  • return:되 돌아 오 는 결 과 를 정의 합 니 다
  • XQuery 의 경로 표현 식 은 일련의'걸음(step)'으로 구성 되 고 사 이 를 슬 래 쉬 로 구분 합 니 다.가장 간단 한 형식 에서 한 걸음 한 걸음 XML 차원 에서 아래로 탐색 하여 이전 단계 에서 돌아 온 요 소 를 발견 하 는 아 이 를 발견 합 니 다.경로 표현 식 의 모든 단 계 는 서술 어 를 포함 할 수 있 습 니 다.이 단계 에서 돌아 오 는 요 소 를 걸 러 내 고 특정한 조건 을 만족 시 키 는 요소 만 유지 할 수 있 습 니 다.예 를 들 어 변수$clients 가요 소 를 포함 하 는 XML 문서 의 목록 에 연결 되 어 있다 고 가정 하면 4 단계 경로 표현 식$clients/client/Address[state="CA"]/zip 는 캘 리 포 니 아 에 거주 하 는 고객 의 우편 번 호 를 되 돌려 줍 니 다.많은 경우 FLWOR 표현 식 이나 경로 표현 식 을 사용 하여 조 회 를 작성 할 수 있 습 니 다.DB2 XQuery 를 최상 위 검색 언어 로 사용 하려 면 DB2 Viper 에서 XQuery 를 직접 실행 해 야 합 니 다(SQL 구문 에 끼 워 넣 는 것 이 아 닙 니 다).키워드 xquery 를 검색 의 시작 으로 해 야 합 니 다.이 키 워드 는 DB2 가 요청 을 처리 하기 위해 XQuery 해상도 기 를 호출 하도록 지시 합 니 다.XQuery 를 최 외층(꼭대기 층)언어 로 사용 할 때 만 이렇게 해 야 합 니 다.XQuery 표현 식 을 SQL 에 끼 워 넣 으 려 면 문장 앞 에 xquery 키 워드 를 붙 일 필요 가 없습니다.그러나 본 고 는 XQuery 를 기본 언어 로 사용 하기 때문에 모든 조회 전에 xquery 를 추가 합 니 다.XQuery 가 최상 위 언어 로 사용 되 었 을 때 입력 데이터 의 원본 이 필요 합 니 다.XQuery 가 입력 데 이 터 를 얻 는 방법 은 db2-fn:xmlcolumn 이라는 함 수 를 호출 하 는 것 입 니 다.호출 할 때 하나의 인 자 를 가지 고 DB2 표 에 있 는 XML 열 이 있 는 표 이름과 이 열 에 있 는 열 이름 을 표시 합 니 다.db2-fn:xmlcolumn 함 수 는 주어진 열 에 저 장 된 일련의 XML 문 서 를 되 돌려 줍 니 다.예 를 들 어 아래 의 조 회 는 고객 연락처 정 보 를 포함 하 는 XML 문 서 를 되 돌려 줍 니 다.목록 2.고객 연락처 데 이 터 를 되 돌려 주 는 간단 한 XQuery 입 니 다.
    x[1]  [2]   [3]   [4]   [5]   다음 편

    좋은 웹페이지 즐겨찾기