2 3 database xml
This presentation is the property of its rightful owner.
Sponsored Links
1 / 57

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


  • 121 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

2 부 3 장 DataBase 를 이용한 XML 문서작성

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


2 3 database xml

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 대화상자가 나타나는데 그림과 같이 설정


Stylesheet

⑩ Stylesheet 탭을 누른후 그림과 같이 공백으로 처리

Excel 2000/97 데이터의 XML 변환 (9)


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 문서를 실행한 결과

실행결과

실행결과


2 3 database xml

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

▶객체지향 데이터베이스

  • XML 데이터를 객체지향 데이터베이스(Object Oriented DataBase:OODB)에 저장할 경우 XML의 트리 구조를 객체지향의 데이터모델에 맞추어 저장

  • 객체지향 언어에서는 다양한 정보를 객체로서 관리

  • 보통 객체는 메모리 상에 존재하고 컴퓨터전원을 끄면 소멸되므로 실제 프로그 램에서는 객체에 대한 정보를 파일 시스템이나 관계형 데이터베이스에 저장하고 프로 그램이 실행될 때마다 정보를 읽어내어 객체를 재구축 함

  • 객체를 재구축 하는 코드는 복잡해지기 쉽고 보수성이 떨어지므로 객체간의 구조를 유 지한 채 디스크에 기록할 수 있는 데이터베이스가 고안됨

  • 객체지향 데이터베이스에서는 문자와 숫자 데이터의 처리와 저장을 중심으로 하는 관계형 데이터베이스보다 다양한 데이터를 취급하는 것이 용이해 짐.

  • 객체지향 데이터베이스는 복잡한 정보관리가 요구되는 분야를 중심으로 수요가 넓어지 고 있었는데, XML의 등장과 함께 XML 데이터구조를 무리 없이 저장할 수 있어서 각광 을 받게 됨.


2 3 database xml

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

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

  • DOM형 데이터모델

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

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

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

  • DTD형 데이터모델

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

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

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


2 3 database xml

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과의 일반적 특징을 비교하면 다음의 표와 같다.


2 3 database xml

관계형 데이터베이스와 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 테이블의 정보를 각각의 요소로 표현한 결과

<!ELEMENT Student (StudentNumber, StudentName, Address, TelNumber, EmailAddress)>

<!ELEMENT StudentNumber (#PCDATA)>

<!ELEMENT StudentName (#PCDATA)>

<!ELEMENT Address (#PCDATA)>

<!ELEMENT TelNumber (#PCDATA)>

<!ELEMENT EmailAddress (#PCDATA)>

<Student>

<StudentNumber> 001 </StudentNumber>

<StudentName> 홍길동 </StudentName>

<Address> 대전시 중구 오정동 </Address>

<TelNumber>042-111-1111 </TelNumber>

<EmailAddress> [email protected] </EmailAddress>

</Student>


Xml 32

관계형 데이터베이스와 XML (3)

  • XML 검색

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

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

<!ELEMENT Student EMPTY>

<!ATTLIST Student

StudentNumber CDATA #REQUIRED

StudentName CDATA #REQUIRED

Address CDATA #REQUIRED

TelNumber CDATA #REQUIRED

EmailAddress CDATA #REQUIRED>

<Student StudentNumber=“001”

StudentName=“홍길동”

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

TelNumber=“042-111-1111"

[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 구문을 수행하면 최상위 요소가 <row> 태그로 표현

    - 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)

③ 작성한 코드를 실행하면 <row>태그가 최상위 요소로 전환, 컬럼들은 속성이름(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 테이블 이름이 최상위 요소이름(<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 테이블 이름이 최상위 요소이름(<student>)이 되었고, 각각의 컬럼이 그 하위 요소이름(<number>,<name>,<cs_number>)으로 표현

  • <student>

  • <number>20002206</number>

  • <name>김기동</name>

  • <cs_number>791103-1234567</cs_number>

  • </student>

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

  • <student>

  • <number>20021124</number>

  • <name>홍길동</name>

  • <cs_number>810624-1386522</cs_number>

  • </student>


  • 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 테이블 이름이 최상위 요소이름(<student>)이 되었고, dept 테이블 이름이 하위 요소이름(<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 1as Tag,

    NULLas Parent,

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

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

    student.cs_numberas [학생정보! 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 1as Tag,

    NULLas Parent,

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

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

    etcas [병역사항! 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 1as Tag,

    NULLas Parent,

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

    student.cs_numberas [학생정보! 1! ! CDATA]

    FROM student

    FOR XML EXPLICT

    • <학생정보이름="김기동”<![CDATA[791103-1234567]]></학생정보>

    • <학생정보이름="이순정”<![CDATA[800208-1587890]]></학생정보>

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

  • <학생정보이름="이영진”<![CDATA[810822-1356545]]></학생정보>

  • <학생정보이름="홍길동”<![CDATA[810624-1386522]]></학생정보>


  • Ms sql server 2000 xml 16

    MS-SQL Server 2000과 XML과의 연동 (16)

    • ID, IDREF, IDREFS명령어을 이용한 검색

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

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

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

    SELECT 1as Tag,

    NULLas Parent,

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

    student.nameas [학생정보! 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 1as Tag,

    NULLas Parent,

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

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

    FROM student

    FOR XML EXPLICT, XMLDATA


    Ms sql server 2000 xml 18

    MS-SQL Server 2000과 XML과의 연동 (18)

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

    • <Schema name="Schema1" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">

    • <ElementTypename="학생정보" content="mixed" model="open">

    • <AttributeTypename="학번" dt:type="id"/>

    • <AttributeTypename="이름" dt:type="string"/>

    • <attribute type="학번"/>

    • <attribute type="이름"/>

    • </ElementType>

    • </Schema>

    • <학생정보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 문서를 작성

    <root xmlns:sql="urn:schemas-microsoft-com:xml-sql">

    <sql:header>

    <sql:paramname ="xmldata">

    </student>

    <sql:param>

    </sql:header>

    <sql:query> exec insert_student @xmldata</sql:query>

    </root>

    ⑨ 입력폼을 가지고 있는 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:[email protected]

    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 예제 사이트 이용시 데이터 삭제 금지!


  • Login