ㅎㅎ MS-SQL서버 2000과 XML MS-SQL 서버 2000과 XML 활용 HTTP를 이용한 XML 데이터 접근

Slides:



Advertisements
Similar presentations
Python Essential 세미나 1 Python Databases Module - Part 2 (MySQL Module) 발표자 : 박영국 ( 화 )
Advertisements

CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
LOGO 중소기업체 대상 무료 정보보안컨설팅 제안서. LOGOClick To Edit Title Style 목 차 한국 IT 전문학교 해킹 피해 사례 제안의 개요 및 목적 보안컨설팅 수행 절차 기대효과 조직도 및 연락처.
SQLite 소개 및 안드로이드에서의 사용법
국가도서관통계시스템 수치입력자 매뉴얼 이의신청 방법 Version. 1.0.
DB Injection과 대응방안 nwkim.
보건의료DB (2) 김성환
2011년 봄학기 정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
소리가 작으면 이어폰 사용 권장!.
김 상 국, 김 기 훈 한남대학교 컴퓨터공학과 데이터베이스 실험실
XML 응용 프로그래밍 3장 XML 문서 제작 기본
웹 해킹 기초와 실습.
XML Views in SQL Server 2000 컴퓨터 언어연구실 석사 3학기 강 소 희.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
SQL Server 2005 XML Features
C#에서 데이터베이스 연동 방법.
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
Chapter 05 SQL 인젝션 공격.
JDBC 프로그래밍 이수지 이동주 1.
Apache Hive 빅데이터 분산 컴퓨팅 박영택.
Overview : XML과 Database
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
10장. 데이터베이스 보안과 권한 관리 데이터베이스 보안과 권한 관리
Web Server와 DB 연동.
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
JDBC 소개 및 설치 슬라이드 노트에 모든 설명을 작성 Database Laboratory.
ㅎㅎ 파일업로드와 이메일 발송 HTTP 파일 업로드와 탭스 업로드 컴포넌트 데이터베이스 연동 자료실 만들기
11장. 데이터베이스 서버 구축과 운영.
ASP 정 보 보 호 학 과 양 계 탁.
기초 T-SQL.
MySQL 기본 사용법.
Chapter 05 데이터베이스 프로그래밍.
SQL Server 2000 세미나 Profiler를 이용한 문제해결
차례 튜닝 - 프로필러를 이용한 튜닝 프로필러 친해지기 프로필러 결과 테이블로 만들기 프로필러 결과 분석하기
프로젝트 중간보고서 조재영 지승우.
단일 테이블 조회를 위한 SELECT 문을 이해한다. 열 제약조건과 행 제약조건을 이해한다. 결과 집합 변경 방법을 이해한다.
ASP를 이용한 전자상거래 사이트 구축 지도교수님: 이형원 컴퓨터응용과학부 박정선.
자격증 모의 테스트 시스템 담당 교수 : 이 상 문 교수님 팀명 : CSCLAB
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
XML XSLT.
16장. 테이블의 변경 새로운 행 삽입 테이블에서 테이블로 행을 복사 행 값의 변경 테이블에서 행 삭제
~27 윤형기 Python 프로그래밍 (보충) ~27 윤형기
고급 T-SQL.
상용 DBMS에서 사용하는 다차원색인 컴퓨터과학과 이돈규 상용 DBMS에서의 다차원색인.
포토서버 (PhotoServer) 제품 소개서
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
SQL Query in the SSMS : DB, Table
KRISTAL 2006 워크숍 KRISTAL 개발 업체 발표
JSP 게시판 구현.
II. XML과 Database 연동 [Beginning XML, 제13장]
CGI (Common Gateway Interface)
View(뷰) 1 가상 테이블(Virtual Relation)
JSP Programming with a Workbook
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
Database 중고차 매매 DB 비즈니스IT 윤동섭.
Web RSS 서비스 구축 조이름 : A 도상훈 김진범 정도영 공정호.
제11회 SQL 고급과정 세미나 SQL Server 보안 핵심만 알면 확 달라진다
CGI (Common Gateway Interface)
3장. SQL Server 2008전체 운영 실습 및 DB와 프로그램의 연동
기본적인 SELECT문 작성.
SQL INJECTION MADE BY 김 현중.
MS-SQL7.0 Implementation 강의 노트
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Data Base Mysql.
ㅎㅎ DTD DTD 개념 DTD 문법 [실습] DTD 활용.
제 5 장 MariaDB인덱스 생성 및 관리.
Presentation transcript:

ㅎㅎ MS-SQL서버 2000과 XML MS-SQL 서버 2000과 XML 활용 HTTP를 이용한 XML 데이터 접근 OpenXML을 사용한 XML 데이터 저장

학습목표 12장. MS-SQL서버 2000과 XML RDB구조에 XML 데이터 저장과 검색방법 학습 MS-SQL Server 2000과 XML과의 연동 방법 학습 데이터베이스로부터 XML문서 검색 방법 이해 웹 서버를 통한 XML 문서 검색과 저장 방법 학습

Section 01 MS-SQL 2000 서버와 XML 활용 SELECT ~ FOR XML 모드 SELECT문에 FOR XML을 덧붙이는 것만으로 SQL서버 질의처리기는 결과셋 대신 XML 스트림을 결과값으로 보냄 FOR XML 키워드를 추가하는 것과 함께 해당하는 XML 결과가 어떤 모드로 반환되지 적절히 지정해야 한다. 지정 모드: RAW, AUTO, EXPLICIT 모드 형식 SELECT 조회할_컬럼목록 FROM 테이블_이름 WHERE 검색_조건 FOR XML AUTO | RAW | EXPLICIT [, XMLDATA] [, ELEMENTS] [, BINARY BASE64]

Section 01 MS-SQL 2000 서버와 XML 활용 RAW 모드 가장 쉬운 FOR XML 모드 RAW 모드를 사용한 질의는 수행한 결과를 각 XML 요소로 구성된 결과셋으로 반환 요소는 각각의 컬럼을 속성으로 포함 반환된 요소는 단순하게 매칭되는 컬럼 이름을 속성 이름으로 각각의 로우로 표현 형식 SELECT 조회할_컬럼목록 FROM 테이블_이름 WHERE 검색_조건 FOR XML RAW

Section 01 MS-SQL 2000 서버와 XML 활용 AUTO 모드 반환되는 XML 결과를 원하는 형태로 생성할 수 있음 테이블에서 조회된 결과셋은 조회된 테이블명을 XML 요소명으로 표현 형식 RAW 모드와 AUTO 모드 차이 AUTO 모드에서 ELEMENTS를 지정하면 요소 중심적인 XML 데이터를 반환할 수 있다. AUTO 모드에서 ELEMENTS를 지정하면 모든 테이블의 컬럼은 소속된 테이블을 표현하는 요소의 하위 요소로 표현된다. SELECT 조회할_컬럼목록 FROM 테이블_이름 WHERE 검색_조건 FOR XML AUTO

Section 01 MS-SQL 2000 서버와 XML 활용 EXPLICIT 모드 복잡하지만, 유연하고 세부적으로 XML 결과 제어 가능 각 컬럼의 일부 데이터를 적절히 이용해서 테이블형 데이터로 XML 데이터를 구성

Section 01 MS-SQL 2000 서버와 XML 활용 EXPLICIT 질의문에서 지원하는 명령 명령 내용 element 컬럼 데이터가 인코딩되며 XML 결과의 자식 요소로 표현할 때 사용 xml XML 결과의 자식요소로 해당 컬럼이 표현. 데이터 인코딩 × hide 특정 컬럼이 테이블형 데이터에 존재하는 것을 인식하지만, XML 결과로 반환되지 않도록 함 xmltext 오버플로우 컬럼의 XML 데이터 추출에 사용 오버플로우 컬럼은 현재 요소에 더할 경우 사용 오버플로우 컬럼이 테이블의 다른 곳에 속하지 않는 XML 문자열을 사용자가 지정해 저장하기 위해 사용 cdata 결과로 생긴 XML 데이터에 CDATA 섹션으로 컬럼 표현 ID, IDREF, IDREFS XMLDATA와 함께 ID, IDREF, 또는 IDREFS 타입 속성을 인라인 스키마로 반환할 때 사용 여러 문서를 서로 교환할 경우 요소간 관계를 생성할 때 유용

Section 02 HTTP를 이용한 XML 데이터 접근 Microsoft IIS의 가상 디렉토리를 구축하는 방법 XML 데이터 처리, 다른 애플리케이션 적용이 용이 ASP 애플리케이션보다 적은 코드를 이용하면서도 쉽고 빠르게 데이터 중심적인 웹 사이트 구축 가능 XSL 스타일시트를 XML 데이터에 적용해서 HTML 문서로 변형한 후, 브라우저 기반 클라이언트로 전송하거나 WML과 같은 다른 문서 형태로 변환해서 WAP 형식으로 휴대폰, PDA 등에 사용할 수 있는 솔루션 개발도 가능

Section 02 HTTP를 이용한 XML 데이터 접근 SQL 서버의 HTTP 처리 구조 SQL 서버는 SQLISAPI를 이용해서 HTTP 처리 IIS에 가상 디렉토리 루트를 생성한 후, HTTP URL을 이용하면 SQL 서버의 데이터베이스로 접근 가능 SQLISAPI 애플리케이션은 SQL 서버 2000의 OLE-DB 공급자를 이용해서 클라이언트로 XML이나 HTML 데이터를 전송 [그림 12-21] SQL 서버의 HTTP 데이터 접근 구조

Section 02 HTTP를 이용한 XML 데이터 접근 클라이언트 애플리케이션의 데이터 요청 방법 FOR XML 질의문을 질의 스트링으로 URL에 전송 XML 질의 템플릿을 ISAPI 애플리케이션에 포스팅 XML 질의 템플릿을 웹 서버의 가상 루트에 지정 XML 스키마를 웹 서버의 가상 루트에 정의

Section 02 HTTP를 이용한 XML 데이터 접근 IIS 가상 디렉토리를 통한 데이터베이스 처리 SQL XML 지원 구성 도구

Section 02 HTTP를 이용한 XML 데이터 접근 IIS 가상 디렉토리를 통한 데이터베이스 처리 새로운 가상 디렉토리 설정

Section 02 HTTP를 이용한 XML 데이터 접근 IIS 가상 디렉토리를 통한 데이터베이스 처리 가상 디렉토리 이름과 경로 지정

Section 02 HTTP를 이용한 XML 데이터 접근 IIS 가상 디렉토리를 통한 데이터베이스 처리 가상 디렉토리 보안 설정

Section 02 HTTP를 이용한 XML 데이터 접근 IIS 가상 디렉토리를 통한 데이터베이스 처리 데이터 원본 지정

Section 02 HTTP를 이용한 XML 데이터 접근 IIS 가상 디렉토리를 통한 데이터베이스 처리 데이터 접근 지정 URL 쿼리는 URL 쿼리 문자열이 가상 디렉토리에 접근될 때 사용 되는 T-SQL 구문 템플릿 질의는 가장 일반적인 애플리케이션이 가상 디렉토리를 통해 처리되는 것을 허용하는 방법 XPath 질의는 XPath 언어의 주석 스키마로 된 데이터를 검색할 수 있다. 수행된 결과는 클라이언트로 반환 템플릿을 보낼 때 POST 방식을 사용하려면 POST 허용과 URL 쿼리 허용 옵션이 모두 체크해야 함

Section 02 HTTP를 이용한 XML 데이터 접근 가상 이름 생성

Section 02 HTTP를 이용한 XML 데이터 접근 고급 옵션 설정

Section 02 HTTP를 이용한 XML 데이터 접근 URL 질의 사용 가상 디렉토리가 제대로 설정되었는지 확인할 때 사용 URL 질의를 가능하게 한 후, XML 가능 브라우저로 질의문 실행 URL에서 데이터를 추출할 경우 질의와 다른 설정이 적절한지 확인하기 위해 파라미터를 이용할 수 있음 파라미터는 URL 질의 문자열에 표준 형식을 사용 전송 URL과 파라미터를 분리하려면 ? 기호를 사용 여러 개의 파라미터를 보낼 때는 각 파라미터를 & 기호 이용 사용 예(2개의 파라미터 이용) http://localhost/northwinddata?param1=value&param2=value

Section 02 HTTP를 이용한 XML 데이터 접근 URL 질의문에서 자주 사용하는 특수문자 인코딩 값 문자 16진수 인코딩 값 설명 + %20 공백 / %2F 디렉토리 구분자 ? %3F 파라미터 구분자 % %25 인코딩 문자 식별자 # %23 북마크 식별자 & %26

[실습] URL 질의에서 저장 프로시저 수행 (1/3) 새 저장 프로시저 선택

[실습] URL 질의에서 저장 프로시저 수행 (2/3) 질의문 입력과 구문 검사

[실습] URL 질의에서 저장 프로시저 수행 (3/3) EXECUTE 구문과 저장 프로시저 이름, 파라미터를 브라우저 주소란에 입력 → 실행 → 결과 확인

템플릿(template) 템플릿 생성과 사용 Section 03 XML 템플릿 사용 데이터를 처리하기 위해 질의문을 미리 생성해 놓은 문서 XML 템플릿을 이용하면 좀더 안정적이고, 제어 가능한 환경을 만들 수 있다. 템플릿 생성과 사용 SQL문을 사용하기 위해서 최상위 요소에 "sql" 네임스페이스를 지정하고 <query> 요소를 사용

northwind DB에서 제품목록을 보여주는 템플릿생성 예 Section 03 XML 템플릿 사용 northwind DB에서 제품목록을 보여주는 템플릿생성 예 <?xml version='1.0' ?> <categorylist xmlns:sql='urn:schemas-microsoft-com:xml-sql'> <sql:query> SELECT categoryid, categoryname FROM categories FOR XML AUTO, ELEMENTS </sql:query> </categorylist> categories.xml [그림 12-38] XML 템플릿을 IIS 웹 서버를 통해 실행한 결과

템플릿 확장: 파라미터 추가 Section 03 XML 템플릿 사용 파라미터는 사용자가 다양한 결과를 볼 수 있게 함 파라미터는 템플릿 헤더에 위치하고, <header> 태그를 사용해서 정의 각 파라미터는 <param> 태그로 정의

템플릿 확장: 파라미터 추가 예 Section 03 XML 템플릿 사용 <?xml version='1.0' ?> <productlist xmlns:sql='urn:schemas-microsoft-com:xml-sql'> <sql:header> <sql:param name='categoryid'>1</sql:param> </sql:header> <sql:query> SELECT productid, productname, unitprice FROM products WHERE categoryid = @categoryid FOR XML AUTO, ELEMENTS </sql:query> </productlist> products.xml [그림 12-39] 템플릿 실행 결과(카테고리 번호=2)

XSL 스타일시트를 템플릿에 적용하는 방법 Section 03 XML 템플릿 사용 클라이언트에서 스타일시트 적용하는 방법 서버에서 스타일시트를 적용하는 방법

클라이언트 XSL 적용 방법 Section 03 XML 템플릿 사용 스타일시트에 접근해 적용할 수 있다. 처리 명령은 템플릿에 스타일시트 위치를 선언

서버 XSL 적용 방법 Section 03 XML 템플릿 사용 템플릿으로 추출된 데이터에 정확한 스타일시트를 적용 서버에서 XSL를 적용하려면 xsl 속성을 템플릿에 최상위 요소에 추가해야 함

HTML 폼에 템플릿 사용 Section 03 XML 템플릿 사용 웹 페이지에서 템플릿을 사용하기 위해 숨김 폼(hidden form) 이용 숨김 폼은 브라우저에는 나타나지 않지만, 내부적으로 데이터나 문자열을 전송하기 위해 유용하게 사용

Section 04 OpenXML을 사용한 XML 데이터 저장 애플리케이션(DOM, SAX 활용)을 작성해서 XML 문서에서 데이터를 추출하고, 추출한 데이터를 데이터베이스에 저장하는 방식 애플리케이션을 별도로 개발해야 하는 부담이 있음 데이터베이스에서 제공하고 있는 API나 프로시저 사용 MS-SQL 서버는 XML 문서를 데이터베이스에 저장하기 위해 OpenXML 기능을 제공

Section 04 OpenXML을 사용한 XML 데이터 저장

Section 04 OpenXML을 사용한 XML 데이터 저장 데이터 형 최대 크기 char 8000문자 varchar nchar 4000문자 nvarchar Text 2,147,483,647 문자 nText 1,073,741,823 문자

Section 04 OpenXML을 사용한 XML 데이터 저장 로우셋의 로우와 컬럼은 T-SQL에 지정한 파라미터에 의해 결정 OPENXML(iDoc, rowpattern, flags) [WITH (rowsetschema [colpatterns] | tablename)] OpenXML 함수 정의 OPENXML (@iTree, 'Order', 1) WITH (OrderID INTEGER, CustomerID nCHAR(5), EmployeeID INTEGER, OrderDate DATETIME) OpenXML 함수 사용 예

[실습] OpenXML을 이용한 XML 데이터 저장 (1/3) Create Database XMLDB ; 데이터베이스 생성 Create Table Imageinfo ( id int, title varchar(50), category varchar(50), rcolor int, gcolor int, bcolor int ) 테이블 생성

[실습] OpenXML을 이용한 XML 데이터 저장 (2/3) 간단한 SQL 질의문을 OpenXML을 사용하여 작성 DECLARE @xmlDATA VARCHAR(2000) SET @xmlDATA = ' <?xml version="1.0"?> <images> <image rcolor="255" gcolor="192" bcolor="38"> <id> 001</id> <title> shirt </title> <category> cloth </category> </image> </images> ' -- XML 문서 파싱 DECLARE @iTree INTEGER EXEC sp_xml_preparedocument @iTree OUTPUT, @xmlDATA INSERT imageinfo (id, title, category, rcolor, gcolor, bcolor) SELECT id, title, category, rcolor, gcolor, bcolor FROM OPENXML(@iTree, 'images/image', 1) WITH ( id INTEGER 'id', title varchar(50) 'title', category varchar(50) 'category', rcolor INTEGER '@rcolor', gcolor INTEGER '@gcolor', bcolor INTEGER '@bcolor') 앞에서 생성한 테이블이 존재하기 때문에 INSERT 구문을 사용하여 생성된 테이블에 XML 문서의 속성을 추출해서 저장한다.

[실습] OpenXML을 이용한 XML 데이터 저장 (3/3) XML 문서의 데이터가 실제 테이블에 저장되었는지 SELECT 구문을 사용해서 확인 select * from imageinfo;