slide1
Download
Skip this Video
Download Presentation
2 부 3 장 DataBase 를 이용한 XML 문서작성

Loading in 2 Seconds...

play fullscreen
1 / 57

2 부 3 장 DataBase 를 이용한 XML 문서작성 - PowerPoint PPT Presentation


  • 180 Views
  • Uploaded on

2 부 3 장 DataBase 를 이용한 XML 문서작성. XML 데이터의 저장과 검색 (1). ▶ 텍스트파일로 저장과 검색 확장자가 .xml 인 파일 형태로 XML 데이터를 저장하여 검색 시스템 등으로 검색하는 방법 트랜잭션이나 베타 제어 등과 같은 비교적 소규모인 웹 프로그램에서 사용되는 방법 모든 문서의 검색 - 워드프로세서의 '찾기' 기능과 같이 모든 문서에 대하여 검색

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '2 부 3 장 DataBase 를 이용한 XML 문서작성' - sirius


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
2부 3장

DataBase를 이용한 XML 문서작성

xml 1
XML 데이터의 저장과 검색 (1)

▶텍스트파일로 저장과 검색

  • 확장자가 .xml인 파일 형태로 XML 데이터를 저장하여 검색 시스템 등으로 검색하는 방법
  • 트랜잭션이나 베타 제어 등과 같은 비교적 소규모인 웹 프로그램에서 사용되는 방법
  • 모든 문서의 검색

- 워드프로세서의 '찾기' 기능과 같이 모든 문서에 대하여 검색

- XML문서의 논리구조를 유지하고 있는 파일을 검색하면 그 구조를 고려하지 않고내용에관계없는 정보까지 나타나게 된다는 문제점을 가지고 있음

  • 구조를 의식한 검색

- XML 문서에서 요소들 사이의 구조를 고려하여 검색

- XML구조는 그 정보의 의미를 반영하고 있는 것이 일반적이므로 구조를 사용한 검색은 비교적 검색결과가 정확

xml 2
XML 데이터의 저장과 검색 (2)

▶관계형 데이터베이스로의 저장과 검색

  • 일반적으로 사용되는 데이터베이스는 관계형 데이터베이스
  • 관계형 데이터베이스는 기본적으로 행과 열로 테이블을 구성하므로 트리 구조를 가진 XML을 그대로 저장하지 않음
  • XML의 구조나 내용을 복수의 테이블로 나누고 XML문서의 각요소를 매핑하는 기법을 사용

- XML문서의 논리구조를 유지하고 있는 파일을 검색하면 그 구조를 고려하지 않고내용에 관계없는 정보까지 나타나게 된다는 문제점을 가지고 있음

  • XML 문서를 테이블로 표현
  • <학생테이블>
  • <학생>
  • <학번>2001103
  • <이름>홍길동
    • .....................중략(반복)
  • <학생>
  • <학번>2003001
  • <이름>이은미
xml 3
XML 데이터의 저장과 검색 (3)

▶관계형 데이터베이스의 검색

  • SQL에서는 테이블에서 정보를 추출할 때 SELECT 구문을 사용하는데 이때 SELECT 와FROM 구 및 WHERE 절을 사용하여 특정 테이블을 검색
  • 학년이 2학년이상인 학생이름을 검색하고 싶을 경우, WHERE 조건절에 학년 > 2 라는 조건을 추가하여 검색

SELECT컬럼이름 FROM테이블 이름 WHERE조건

SELECT 이름 FROM 학생테이블 WHERE 학년 > 2

xml 4
XML 데이터의 저장과 검색 (4)
  • 복수테이블에 대한 질의문은 학과명이 컴퓨터공학과인 학생의 이름을 검색하기위해 컴퓨터공학과의 학과코드가 학생테이블의 학과 코드와 같은 조건을 사용

SELECT 학생테이블.이름

FROM 학생테이블, 학과테이블

WHERE 학생테이블.학과코드= 학과테이블.학과코드

AND학과테이블.학과명= ‘컴퓨터공학과’

▶추출된 데이터의 XML로의 변환

  • 데이터베이스에 저장된 데이터를 검색하여 XML문서를 작성하려면 SQL을 이용하여 추출한 정보를 XML로 변환
  • 데이터베이스에서 검색한 데이터를 XML로 변환하고 다시 HTML 문서형태로 만들어 지기까지 작업순서는 다음과 같다.
excel 2000 97 xml
Excel 2000/97 데이터의 XML 변환

▶Excel 2000/97 데이터의 XML 변환

  • Excel 문서를 XML로 변환하는 Converter를 설치해야하는데 교재의 부록을 참고하여 DB2XML 프로그램을 설치
  • 다음의 순서에 따라 작업

① 윈도우즈에 설치되어있는 Microsoft Excel 2000프로그램을 실행시킨후, Sheet1에 그림과 같이 입력하고 ExcelExam.xls로 저장

excel 2000 97 xml 2
Excel 2000/97 데이터의 XML 변환 (2)

② 윈도우즈에서 설정(S)의 제어판(C)에 있는 관리도구에서 데이터 원본(ODBC)를 실행시키면 그림과 같은 대화상자가 나타나는데 이때 추가(D)버튼을 클릭

excel 2000 97 xml 3
Excel 2000/97 데이터의 XML 변환 (3)

③ 새 데이터 원본 만들기 대화 상자에서 Microsoft Excel Driver(*.xsl)를 선택한 뒤 마침버튼을 클릭

excel 2000 97 xml 4
Excel 2000/97 데이터의 XML 변환 (4)

④ 그림과ODBC Microsoft Excel 설정 대화상자에서 데이터원본 이름(N) 항목에 ExcelOdbc 라고 입력하고 통합 문서 선택(S) 버튼을 클릭후, 통합 문서 선택 대화 상자에서 저장된ExcelExam.xls 파일을 선택하고 확인버튼을 클릭

excel 2000 97 xml 5
Excel 2000/97 데이터의 XML 변환 (5)

⑤ DB2XML 프로그램을 실행시키면 DB2XML Application 대화상자가 나타나면, 그림과 같이DTD를 클릭한다.

excel 2000 97 xml 6
Excel 2000/97 데이터의 XML 변환 (6)

⑥ Specification of Output 대화상자가 나타나는데 이때 그림과 같이 선택하고 ok버튼을 클릭

⑦ DB2XML Application대화상자에서 Database를 선택하면 Specification of Database 대화상자가대화상자가 나타나는데 그림과 같이 설정하고ok버튼을 클릭.

excel 2000 97 xml 7
Excel 2000/97 데이터의 XML 변환 (7)

⑧ DB2XML Application 대화상자에서 XML Attribute를 선택하면 Specification of XML Attributes 화면이 나타나는데 그림과 같이 설정

excel 2000 97 xml 8
Excel 2000/97 데이터의 XML 변환 (8)

⑨ DB2XML Application 대화상자에서 XML Element를 선택한다. 그러면 Specification of XML Elements 대화상자가 나타나는데 그림과 같이 설정

excel 2000 97 xml 10
Excel 2000/97 데이터의 XML 변환 (10)

⑪Database query부분에 검색할 질의문을 작성후, File name 부분에 ExcelExam.xml이름을 입력하고 Generate XML버튼을 클릭

excel 2000 97 xml 11
Excel 2000/97 데이터의 XML 변환 (11)

⑫①∼⑩ 번 과정을 마치고 나면 그림과 같이 ExcelExam.xml 파일이 생성

⑬ XML 문서를 실행한 결과

실행결과

access 2000 97 xml
Access 2000/97 데이터의 XML 변환

▶Access 2000/97 데이터의 XML변환

  • 앞서 설명한 Excel 2000/97 데이터의 XML변환에서처럼 DB2XML을 사용하여 변환
  • XML 문서를 실행한 결과

실행결과

실행결과

slide18
객체지향 데이터베이스로의 저장과 검색

▶객체지향 데이터베이스

  • XML 데이터를 객체지향 데이터베이스(Object Oriented DataBase:OODB)에 저장할 경우 XML의 트리 구조를 객체지향의 데이터모델에 맞추어 저장
  • 객체지향 언어에서는 다양한 정보를 객체로서 관리
  • 보통 객체는 메모리 상에 존재하고 컴퓨터전원을 끄면 소멸되므로 실제 프로그 램에서는 객체에 대한 정보를 파일 시스템이나 관계형 데이터베이스에 저장하고 프로 그램이 실행될 때마다 정보를 읽어내어 객체를 재구축 함
  • 객체를 재구축 하는 코드는 복잡해지기 쉽고 보수성이 떨어지므로 객체간의 구조를 유 지한 채 디스크에 기록할 수 있는 데이터베이스가 고안됨
  • 객체지향 데이터베이스에서는 문자와 숫자 데이터의 처리와 저장을 중심으로 하는 관계형 데이터베이스보다 다양한 데이터를 취급하는 것이 용이해 짐.
  • 객체지향 데이터베이스는 복잡한 정보관리가 요구되는 분야를 중심으로 수요가 넓어지 고 있었는데, XML의 등장과 함께 XML 데이터구조를 무리 없이 저장할 수 있어서 각광 을 받게 됨.
slide19
객체지향 데이터베이스로의 저장과 검색 (2)

▶객체지향 데이터베이스와 XML

  • DOM형 데이터모델

- DOM에서 사용되고 있는 객체를 그대로 객체지향 데이터베이스에 저장하는 형식

- 사용하는 클래스는 Node 클래스와 이것을 계승한 Document 클래스 등으로 구성

- 다양한 형태의 XML을 객체지향언어로 조작하고 싶거나 또는 객체지향 데이터 베이스에 저장할 때 매우 적합함

  • DTD형 데이터모델

- XML 문서의 구조는 DTD 정의에 의해 제약을 받을 수 있음.

- DTD 제약에 따라 XML 문서가 작성되었을 때 DTD와 XML 문서 내용은 객체지향의 클래스와 인스턴스 관계에 대응됨.

- 다만 DTD 전체를 하나의 클래스로 취급하는 것은 현실적이 아니므로 보통의 경우 요소형 선언마다 클래스를 작성

slide20
XML 전용데이터베이스로의 저장과 검색

▶XML 전용데이터베이스로의 저장과 검색

  • XML 전용 데이터베이스의 특징

- XML 전용 데이터베이스의 특징은 XML과 데이터베이스 데이터모델의 다른 점을 의식할 필요가 없음

- XML 전용 데이터베이스를 사용하는 장점

  • XML 검색

- 데이터베이스에 저장된 XML 데이터를 검색하는 경우에 관계형 데이터베이스에서는 주로 SQL을 사용

- XML 전용 데이터베이스 등에서는 XML 전용의 질의 언어가 많이 사용되고 있으며XML의 계층구조로 검색하는 특징이 있음

xml 21
XML 전용데이터베이스로의 저장과 검색 (2)
  • XML-QL

- XML-QL은 DTD간의 XML 데이터변환이나 다수의 XML 데이터를 통합하기 위한 목적으로 설계된 XML 질의언어

- SQL과 비슷한 WHERE-IN-CONSTRUCT구조로 중첩된 질의를 지원

- WHERE-IN-CONSTRUCT 구조

  • XQL(XML Query Language)

- XQL은 XML문서나 프로그래밍 언어 안에 삽입하여 사용하는 간단한 질의언어

- XQL은 XQL식이라 하는 문법에 따라 기술되며 패턴이 XPath와 같고 노드가 기준

- XQL은 1998년 2월 문서계 XML 연구자 사이에서 처음 초안이 만들어지고 같은해9월에 W3C에 제안되었고 XquerY라고도 불리며 사용시스템으로는Tamino(Software AG)와 eXcelon(excelon Corp.)이 있음

xml 31
XML 전용데이터베이스로의 저장과 검색 (3)

- XQL규격은「http://www.w3c.org/TR/xquery」에서 확인

- XML-QL과 XQL과의 일반적 특징을 비교하면 다음의 표와 같다.

slide23
관계형 데이터베이스와 XML

▶관계형 데이터베이스의 XML 표현

  • 요소로의 데이터베이스 표현

- 관계형 데이터베이스에서는 큰 개념을 기술하는 데이터 포인트들이 컬럼으로 구성된 테이블로 표현

- 학생 정보를 표현하기위한 테이블 생성구문

- 테이블 생성결과

CREATE TABLE Student (

StudentNumber varcher(50),

StudentName varcher(50),

Address varchar(100),

TelNumber varchar(50),

EmailAddress varchar(60))

xml 22
관계형 데이터베이스와 XML (2)

- XML에서는 데이터 포인트들의 그룹을 다시 그룹핑되어 요소로 표현되는 더 큰 개념 으로 기술 할 수 있음.

- Student 테이블의 정보를 각각의 요소로 표현한 결과

001

홍길동

대전시 중구 오정동

042-111-1111

[email protected]

xml 32
관계형 데이터베이스와 XML (3)
  • XML 검색

- XML 문서내의 데이터 포인트를 표현하는 또 다른 방법은 속성을 이용

- 아래는 속성을 이용하여 를 정의한 소스와 상세 데이터가 요소의 속성으로 저장된 부분임.

StudentNumber CDATA #REQUIRED

StudentName CDATA #REQUIRED

Address CDATA #REQUIRED

TelNumber CDATA #REQUIRED

EmailAddress CDATA #REQUIRED>

StudentName=“홍길동”

Address=“대전시 중구 오정동”

TelNumber=“042-111-1111"

EmailAddress=“[email protected]"/>

ms sql server 2000 xml
MS-SQL Server 2000과 XML과의 연동

▶FOR XML을 이용한 SQL Server 2000에서의 검색

  • FOR XML을 이용한 SQL Server 2000에서의 데이터 추출과정
  • FOR XML의 기본 문법
ms sql server 2000 xml 2
MS-SQL Server 2000과 XML과의 연동 (2)
  • FOR XML에서의 3가지 모드
  • FOR XML의 3가지 옵션
ms sql server 2000 xml 3
MS-SQL Server 2000과 XML과의 연동 (3)
  • RAW 모드를 이용한 데이터 검색

- FOR XML의 RAW 모드를 이용하여 SELECT 구문을 수행하면 최상위 요소가 태그로 표현

- XML의 계층구조로 표현되지는 않음.

① 학번(number)과 이름(name) 그리고 주민등록번호(cs_number) 등으로 구성된student 테이블을 생성

②student 테이블의 number, name, cs_number 데이터를 추출하기위한 SELECT구문으로 RAW 모드를 사용

SELECT number, name, cs_number

FROM student

FOR XML RAW

ms sql server 2000 xml 4
MS-SQL Server 2000과 XML과의 연동 (4)

③ 작성한 코드를 실행하면 태그가 최상위 요소로 전환, 컬럼들은 속성이름(number, name, cs_number)이 되고 검색된 데이터는 속성값으로 표현

ms sql server 2000 xml 5
MS-SQL Server 2000과 XML과의 연동 (5)
  • AUTO 모드를 이용한 데이터 검색

- 단순 검색: 한 개의 테이블에서 검색할 때 RAW 모드로 검색한 결과와 비슷하게 표현되지만, AUTO 모드에서는 최상위 요소의 이름이 테이블의 이름으 로 표현

① student 테이블에서 number, name, cs_number 컬럼을 검색하는 구문으로AUTO 모드만을 사용

SELECT number, name, cs_number

FROM student

FOR XML AUTO

② 검색결과는 student 테이블 이름이 최상위 요소이름()이 되었고, 각각의 컬럼은 속성이름(number, name, cs_number, dept_name)으로 표현

ms sql server 2000 xml 6
MS-SQL Server 2000과 XML과의 연동 (6)

- ELEMENTS 옵션을 이용한 검색 : AUTO 모드에서 ELEMENTS 옵션을 사용하여 검색 을 하면 테이블의 모든 컬럼들이 각각 최상위 요소 와 그 하위 요소로 표현

① AUTO 모드와 ELEMENTS 옵션을 함께 사용하여 검색

SELECT number, name, cs_number

FROM student

FOR XML AUTO, ELEMENTS

② 검색결과는 student 테이블 이름이 최상위 요소이름()이 되었고, 각각의 컬럼이 그 하위 요소이름(,,)으로 표현

  • 20002206
  • 김기동
  • 791103-1234567
        • .....................중략(반복)
  • 20021124
  • 홍길동
  • 810624-1386522
ms sql server 2000 xml 7
MS-SQL Server 2000과 XML과의 연동 (7)
  • -두개 이상의 테이블에서 검색 : 두 개 이상의 테이블에서 검색할 때 검색 결과가 계층적 구조로 나타남

① student 테이블과 dept 테이블이 존재하며, AUTO 모드를 이용하여 검색

② Student 테이블과 Dept 테이블에서 number, name, cs_number, dept_name데이터를 추출하기 위한 SELECT 구문

SELECT student.number, student.name, student.cs_number,

dept.dept_name FROM student, dept

WHERE student.number = dept.number

FOR XML AUTO

ms sql server 2000 xml 8
MS-SQL Server 2000과 XML과의 연동 (8)

③ 작성한 코드를 실행하면 student 테이블 이름이 최상위 요소이름()이 되었고, dept 테이블 이름이 하위 요소이름()이 되었다. 또한 각 컬럼은 속성이름(number, name, cs_number, dept_name)으로, 데이터는 속성값으로 표현

ms sql server 2000 xml 9
MS-SQL Server 2000과 XML과의 연동 (9)
  • EXPLICIT 모드를 이용한 데이터 검색

- EXPLICIT 모드에서 컬럼별칭 지정 문법

: EXPLICIT 모드를 사용하기 위해서는 SELECT 구문에서 컬럼의 별칭을 기술, 만약 컬럼별칭을 지정하지 않고 검색할 경우 에러가 발생, 다음은 컬럼의 별칭을 기술 하는 형식을 나타내고 있음

ElementName ! TagNumber ! PropertyName ! Directive

ms sql server 2000 xml 10
MS-SQL Server 2000과 XML과의 연동 (10)
  • ① EXPLICIT 모드에서 지원되는 명령어를 사용하지 않고 태그의 별칭을 지정하는 소스

SELECT 1as Tag,

NULLas Parent,

student.numberas [학생정보! 1 ! 학번],

student.nameas [학생정보! 1 ! 이름],

student.cs_numberas [학생정보! 1 ! 주민등록번호]

FROM student

FOR XML EXPLICT

② 실행시킨 결과를 보면 학생정보가 요소이름이 되었고 학생정보의 속성이름으로학번,이름,주민등록번호가 생성

<학생정보학번="20002206" 이름="김기동”주민등록번호="791103-1234567"/>

<학생정보학번="20011126" 이름="이순정”주민등록번호="800208-1587890"/>

.....................중략(반복)

<학생정보학번="20021100" 이름="이영진”주민등록번호="810822-1356545"/>

<학생정보학번="20021124" 이름="홍길동”주민등록번호="810624-1386522"/>

ms sql server 2000 xml 11
MS-SQL Server 2000과 XML과의 연동 (11)

- EXPLICIT 모드에서 지원되는 명령어

ms sql server 2000 xml 12
MS-SQL Server 2000과 XML과의 연동 (12)
  • ELEMENT, XML 명령어을 이용한 검색

- ELEMENT와 XML 명령어는 EXPLICIT 모드와 함께 사용되는데 XML 문서에서 요소를 생성

① 학생의 학번과 이름을 XML의 요소로 지정한 소스코드

② 위와같은 소스를 실행시키면 학생정보가 최상위 요소이름이 되었고 학번, 이름,주민등록번호가 하위 요소의 이름으로 생성

SELECT 1 as Tag,

NULL as Parent,

student.number as [학생정보! 1! 학번 ! ELEMENT],

student.name as [학생정보! 1! 이름 ! ELEMENT],

student.cs_number as [학생정보! 1! 주민등록번호 ! ELEMENT]

FROM student

FOR XML EXPLICT

  • <학생정보>
  • <학번>20002206
  • <이름>김기동
  • <주민등록번호>791103-1234567
        • .....................중략(반복)
ms sql server 2000 xml 13
MS-SQL Server 2000과 XML과의 연동 (13)
  • XMLTEXT명령어를 이용한 검색

- XMLTEXT명령어는 데이터베이스의 컬럼에 포함된 데이터를 XML 문서에서 요소의 속성으로 표현할 때 사용

① student 테이블이 구성되었다고 가정

② 저장되어있는 데이터를 병역사항 요소의 속성으로 표현

SELECT 1 as Tag,

NULL as Parent,

student.number as [병역사항! 1! 학번],

student.name as [병역사항! 1! 이름],

etc as [병역사항! 1! ! XMLTEXT]

FROM student

FOR XML EXPLICT

ms sql server 2000 xml 14
MS-SQL Server 2000과 XML과의 연동 (14)

③ 작성한 구문을 실행시키면 다음과 같이 etc 컬럼에 저장되어있던 데이터가 학생 정보 요소의 속성으로 표현

  • <병역사항학번="20002206" 이름="김기동“ 군별=육군">소집해제
  • <병역사항학번="20021100" 이름="이영진“ 군별=해군">군필
        • .....................중략(반복)
  • <병역사항학번="20021124" 이름="홍길동“ 군별=공군">군필
ms sql server 2000 xml 15
MS-SQL Server 2000과 XML과의 연동 (15)
  • CDATA명령어을 이용한 검색

- CDATA명령어는 데이터가 text, ntext, varchar, nvarchar형식일 때만 사용이 가능 데이터를 CDATA형식으로 표현

① 학생의 주민등록번호를 CDATA형식으로 표현하기 위해 student.cs_number 컬럼을 검색할 때 별칭을 CDATA로 표현

② 실행시킨 결과를 보면 학생의 주민등록번호(cs_number)가 CDATA형태로 표현컬럼 별칭을 지정할 때 PropertyNmae을 지정해서는 안됨

SELECT 1 as Tag,

NULL as Parent,

student.name as [학생정보! 1! 이름],

student.cs_number as [학생정보! 1! ! CDATA]

FROM student

FOR XML EXPLICT

  • <학생정보이름="김기동”
  • <학생정보이름="이순정”
        • .....................중략(반복)
  • <학생정보이름="이영진”
  • <학생정보이름="홍길동”
ms sql server 2000 xml 16
MS-SQL Server 2000과 XML과의 연동 (16)
  • ID, IDREF, IDREFS명령어을 이용한 검색

- ID, IDREF, IDREFS명령어는 XML 문서 내의 요소들이 식별되어야 할 경우에 사용

① 학생의 학번을 ID 형식으로 선언하여 EXPLICIT 모드로 검색하는 소스코드

② 실행시킨 결과를 보면 일반적인 검색과 동일하게 각각의 요소와 속성으로 표현

SELECT 1 as Tag,

NULL as Parent,

student.number as [학생정보! 1! 학번 ! ID],

student.name as [학생정보! 1! 이름]

FROM student

FOR XML EXPLICT

  • <학생정보학번="20002206" 이름="김기동”>
  • <학생정보학번="20011126" 이름="이순정”>
        • .....................중략(반복)
  • <학생정보학번="20021100" 이름="이영진”>
  • <학생정보학번="20021124" 이름="홍길동”>
ms sql server 2000 xml 17
MS-SQL Server 2000과 XML과의 연동 (17)
  • XMLDATA옵션을 이용한 검색

- ID 명령어와 XMLDATA옵션을 사용하여 EXPLICIT 모드로 검색,검색 결과는 스키마 구조를 포함한 XML 형태로 표현하고자 할 때 이용

① 학생의 학번을 ID 형식으로 선언하고 FOR XML 부분에 EXPLICIT 모드와XMLDATA옵션을 함께 사용

SELECT 1 as Tag,

NULL as Parent,

student.number as [학생정보! 1! 학번 ! ID],

student.name as [학생정보! 1! 이름]

FROM student

FOR XML EXPLICT, XMLDATA

ms sql server 2000 xml 18
MS-SQL Server 2000과 XML과의 연동 (18)

② 소스를 실행시키면 다음과 같이 스키마 정보를 포함한 형태로 나타나며,실행결 과처럼 학번의 dt:type속성이 id형식으로 정의

  • <학생정보xmlns="x-schema:#Schema1" 학번="20002206" 이름="김기동 " >
  • <학생정보xmlns="x-schema:#Schema1" 학번="20011126" 이름="이순정 " >
        • .....................중략(반복)
  • <학생정보xmlns="x-schema:#Schema1" 학번="20021100" 이름="이영진 " >
  • <학생정보xmlns="x-schema:#Schema1" 학번="20021124" 이름="홍길동 " >
openxml sql server 2000
OPENXML을 이용한 SQL Server 2000에서의 저장

▶OPENXML을 이용한 SQL Server 2000에서의 저장

  • OPENXML을 이용한 SQL Server 2000에서의 데이터 저장과정
  • OPENXML의 기본 문법

- OPENXML은 SQL Server 2000에서 로우셋 제공자로 XML문서의 로우셋 뷰를 생성

- 로우셋은 테이블과 같기 때문에 SELECT쿼리에서 테이블 혹은 관계형 뷰 대신에 사용

- OPENXML은 XML 문서나 조각으로부터 데이터를 데이터베이스 테이블에 저장

openxml sql server 2000 2
OPENXML을 이용한 SQL Server 2000에서의 저장(2)
  • OPENXML의 파라미터

- OPENXML의 파라미터는 XML문서를 받아서 sp_preparedocument프로시저를 사용 하여 XML문서를 분석하여 메모리에 올려놓고 핸들값을 반환해 주고, 핸들값이 유지 되는 한 메모리상에 분석된 XML문서가 상주하도록 함

ms sql server 2000 xml 31
MS-SQL Server 2000과 XML과의 연동 (3)
  • WITH 구문

- WITH문을 사용하여 실제 테이블이나 컬럼에 각 노드를 매핑시킬수 있고, 생성할 로우셋의 설명을 제공하는데 사용

openxml sql server 2000 1
OPENXML을 이용한 SQL Server 2000에서의 저장 (1)

▶OPENXML을 이용한 데이터 저장

  • OPENXML이 데이터베이스 테이블에 데이터를 저장하는 단계

① FOR XML에서와 동일하게 학번(number)과 이름(name), 주민등록번호(cs_number)등으로 구성된 student 테이블을 생성하여 파라미터와 구문을 적용

openxml sql server 2000 21
OPENXML을 이용한 SQL Server 2000에서의 저장(2)

② XML을 삽입하기 위한 사용자 저장 프로시저를 생성하기 위해 CREATE PROCEDUER(PROC 생략 가능)의 구문을 사용, 프로시저 이름은 insert_student, 매개 변수는 xmldata라고 입력하여 지정

- 저장 프로시저 종류

CREATE PROCinsert_student @xmldata ntext AS

........ 중략

openxml sql server 2000 3
OPENXML을 이용한 SQL Server 2000에서의 저장(3)

③ hDoc이라는 하나의 변수를 선언하기 위하여 DECLARE 구문을 이용

④ XML을 문서로 읽어들여 구문 분석을 하기 위해 EXEC 구문을 사용, sp_xml_preparedocument저장 프로시저를 통해서 xmldata변수의 내용을 읽음

CREATE PROC insert_student @xmldata ntext AS

[email protected] int

........ 중략

DECLARE @idocint

[email protected], @xmldata

........ 중략

⑤ 읽어온 XML 문서에서 root 엘리먼트 이하를 student 테이블에 삽입하기 위하여INSERT INTO 구문과 WITH 구문을 사용.

OPENXML을 사용하여 XML구조와 관계형 구조를 매칭

INSERT INTOstudent

SELECT*FROMOPENXML[@hDoc, '/root/student',2]

WITHstudent

openxml sql server 2000 4
OPENXML을 이용한 SQL Server 2000에서의 저장(4)

⑥읽어온 XML문서를 메모리에서 sp_xml_removedocument저장프로시저를 통해 제거

⑦ OPENXML을 이용한 프로시저를 작성후 SQL Server 2000의 저장프로시저에 저장

WITH student

[email protected]

GO

CREATE PROC insert_student @xmldatantextAS

DECLARE @idocint

EXEC [email protected], @xmldata

INSERT INTO student

SELECT *FROM OPENXML[@idoc, '/root/student',2]

WITH student

EXEC [email protected]

GO

openxml sql server 2000 5
OPENXML을 이용한 SQL Server 2000에서의 저장(5)

⑧ 생성한 저장프로시저를 실행하기 위하여 다음과 같이 XML 문서를 작성

exec insert_student @xmldata

⑨ 입력폼을 가지고 있는 HTML 문서를 작성한 후 그림과 같이 입력하여 전송.

InsertExam_1.html에서는 입력된 데이터를 student_insert.xml파일로 보내고,student_insert.xml은 데이터를 받아서 OPENXML구문이 있는 프로시저를 실행.

CLICK

openxml sql server 2000 6
OPENXML을 이용한 SQL Server 2000에서의 저장(6)

⑩ 저장작업이 실행된 후의 student 테이블의 모습.저장프로시저에서 OPENXML구문과 함께 사용한 INSERT INTO가 데이터를SQL Server 2000의 테이블에 저장

sql server 2000 http
SQL Server 2000에서의 HTTP 접근
  • SQL Server 2000의 설정과정은 교재 424 Page를 참고
http 1
HTTP를 이용한 데이터 검색 (1)

▶URL 쿼리 허용

  • URL 쿼리는 URL 쿼리 문자열이 가상 디렉터리에 접근될 때 사용되는 T-SQL 구문
  • URL 쿼리는 개발한 SQL Server 애플리케이션을 테스트할 때 유용
  • 클라이언트 애플리케이션이 T-SQL 문장을 서버측에 보내기 위한 문자열을 사용할 수 있기 때문에 이 URL 쿼리는 보안적인 측면이 약하다.
  • 컬럼 중에서 number, name, css_number의 값만을 검색, 공백이었던 부분에 +기호를 사용하여 연결

http://203.247.40.92/student?sql=SELECT* FROM member

FOR XML AUTO&root=root

URL 쿼리 실행 결과

http://203.247.40.92/student?sql=SELECT+number,name,css_number+FROM+

member+FOR+XML+AUTO&root=root

URL 쿼리 실행 결과

※ test용 임시 ID 및 PASSWORD

http 2
HTTP를 이용한 데이터 검색 (2)

▶템플릿 쿼리 허용

  • 템플릿 쿼리는 애플리케이션이 가상디렉터리를 통해 처리되는 것을 허용하는 방법으로 템플릿은 웹서버에 xml파일로 저장
  • T-SQL 구문을 파일 내에 포함하며 쿼리를 수행하기 위해 서버측의 템플릿을 사용하는 데 이때 쿼리 결과만을 클라이언트에게 보여줌.
  • 이러한 방법은 실제 쿼리의 내용을 완전히 숨길수 있기 때문에 데이터 처리에 대해 보 안효과를 가지고 있음
  • 설정 방법은 교재 432 페이지 참고
  • ‘student.xml’파일 -> CLICK

http://203.247.40.92/student/template/student.xml

템플릿 쿼리 실행 결과

  • 저장프로시저 저장과 프로시저 호출을 위한 XML 문서 작성 => 교재 435 페이지 및 사례연구 1(학생정보관리편) 참고
http 3
HTTP를 이용한 데이터 검색 (3)

▶XPath 허용

  • XPath언어는 표준 탐색언어로 W3C에 의해서 표준규약이 완성
  • XPath쿼리는 XPath언어의 주석 스키마로 된 데이터를 검색하는 것을 가능하게 한다.
  • 스키마는 데이터베이스의 데이터와 XML 요소 속성을 매핑하는 파일로 웹서버 상에 저장, 스키마에 의해 지정된 데이터가 반환될 것인지를 XPath로 지정할 수 있음.

http://203.247.40.92/student/student_dbobject/member/@number

XPath 실행 결과

▶Post 허용

  • post 방식은 XML 이외의 다른 스크립트 언어나 웹언어에서 데이터를 전송할 때에도 많이 사용하는 방식
database xml
DataBase를 이용한 XML 문서 작성
  • 교재 440 페이지 및 사례연구 1(학생정보관리편) 참고
  • 사례연구 1 (학생정보관리편)
  • 사례연구 2 (XML을 이용한 쇼핑몰)

http://203.247.40.92/

CLICK

http://203.247.40.92/shop

CLICK

※ 사례연구 1, 2 예제 사이트 이용시 데이터 삭제 금지!

ad