II. XML과 Database 연동 [Beginning XML, 제13장]

Slides:



Advertisements
Similar presentations
Web Based Data Warehouse Query Tool 이화여자대학교 2002 년 컴퓨터학과 졸업프로젝트 14 조.
Advertisements

CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
이혁재 /KASA NoSQL. 요약 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머 NoSQL 소개 데이타베이스 관련 문서 대상 : 클라이언트 프로그래머.
1 SQL 정보보호학과 양 계 탁. 2 SQL 개요 SQL 개요 3 Database u 연관된 데이터들의 집합 u 데이터를 쉽게 관리하는 프로그램 종 류종 류 관계형 데이터베이스 객체지향형 데이터베이스 계층형 데이터베이스 네트워크 데이터베이스 데이터를 2 차원적인 테.
SQLite 소개 및 안드로이드에서의 사용법
프랜차이즈 본사 인트라넷 구축 제안서 제출처 : ㈜마세다린 제출사 : ㈜데이타캠프 제출일 :
웹 프로그래밍 HTML, 자바스크립트, ASP를 중심으로
2011년 봄학기 정보컴퓨터공학부 컴퓨터 소프트웨어 설계 및 실험
소리가 작으면 이어폰 사용 권장!.
김 상 국, 김 기 훈 한남대학교 컴퓨터공학과 데이터베이스 실험실
데이터 모델링 방법론 2003년 03월.
APPEON SOLUTION INTRODUCTION.
데이터베이스 시스템.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
오라클 데이터베이스 성능 튜닝.
SQL Server Migration Assistant For Oracle
Database & Internet Computing Laboratory 한 양 대 학 교
C#에서 데이터베이스 연동 방법.
제 5 장 인덱스 생성 및 관리.
SELECT 문 사원 테이블의 모든 정보를 출력하는 예제 1. 비교 연산자 SELECT 문의 형태
Chapter 05 SQL 인젝션 공격.
JDBC 프로그래밍 이수지 이동주 1.
Overview : XML과 Database
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
Information Technology
Toad for Oracle 설치 방법.
Web Server와 DB 연동.
Excel OLAP Reporting / OWC를 이용한
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
DB2.
데이터 베이스 란? 데이터 베이스 기능 데이터 베이스 관리 시스템 정보시스템의 구성 관게형 데이터 베이스
주)INVENTORNICS 노창배 소프트웨어 김 경 순
11장. 데이터베이스 서버 구축과 운영.
ASP 정 보 보 호 학 과 양 계 탁.
오라클 데이터베이스 성능 튜닝.
NTAS 소개 (Network Transaction Application Server)
MySQL 기본 사용법.
ㅎㅎ MS-SQL서버 2000과 XML MS-SQL 서버 2000과 XML 활용 HTTP를 이용한 XML 데이터 접근
Chapter 05 데이터베이스 프로그래밍.
Data Modeling Database 활용을 위한 기초 이론 Database의 개요 Data Modeling
9. 데이터베이스 9.5 SQL을 사용하는 프로그램 9.6 데이터폼 작성기를 사용하는 프로그램
ER-Win 사용 방법.
차례 튜닝 - 프로필러를 이용한 튜닝 프로필러 친해지기 프로필러 결과 테이블로 만들기 프로필러 결과 분석하기
담당교수 : 이형원교수님 컴퓨터응용과학부 정은영
소프트웨어시스템 실험 Software Systems Lab. 데이터베이스 기초
ASP를 이용한 전자상거래 사이트 구축 지도교수님: 이형원 컴퓨터응용과학부 박정선.
자격증 모의 테스트 시스템 담당 교수 : 이 상 문 교수님 팀명 : CSCLAB
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
01 데이터베이스 개론 데이터베이스의 등장 배경 데이터베이스의 발전 과정 데이터베이스의 정의 데이터베이스의 특징
주)INVENTORNICS 노창배 소프트웨어 김 경 순
SQL (structured query language)
CHAPTER 06. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
제 9장: 파일과 데이터베이스 데이터 구성에서부터 데이터 채굴 까지.
Web Vulnerabilities 정보 보호 2008/05/31 Getroot.
SQL Query in the SSMS : DB, Table
JSP 게시판 구현.
데이터베이스 (Database) SQL 추가 기능: 주장, 뷰, 프로그래밍 기법 문양세 강원대학교 IT대학 컴퓨터과학전공.
Database 중고차 매매 DB 비즈니스IT 윤동섭.
시스템 분석 및 설계 글로컬 IT 학과 김정기.
SQL INJECTION MADE BY 김 현중.
Copyrightⓒ 1999 서울산업대학교 전자계산학과 석상기 교수
06. SQL 명지대학교 ICT 융합대학 김정호.
주)INVENTORNICS 노창배 소프트웨어 김 경 순
Data Warehouse 구축 (설계 위주)
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
1장. 서 론 데이터베이스의 개요 모델의 종류 관계형 모델과 객체 지향형 데이터베이스 SQL이란 무엇인가?
Stored program 장종원
SQL Server Reporting Services Feature
Data Base Mysql.
Presentation transcript:

II. XML과 Database 연동 [Beginning XML, 제13장] 멀티미디어 데이터베이스 (2001.10.23~11.1)

목차 1. 관계형 Database 예제 2. 기존의 Database 사용하기 3. XML을 Database에 통합하기 [교재] Beginning XML, David Hunter 외 5인 공저, 정보문화사, 2001. 제13장 XML과 데이터베이스, pp.625-654. 1. 관계형 Database 예제 2. 기존의 Database 사용하기 3. XML을 Database에 통합하기 4. Database 제작사와 XML 1) Microsoft SQL Server 2) Oracle XDK

1. 관계형 Database 예제 RDB의 특징 예제 테이블을 사용하여 데이터를 구조화 : Field, Record 초점은 Application이 아니라 데이터 그 자체 예제 Parts table, – Customer table Order table item description E16-25A 책상 E25-25A 소파 account_no name home_phone work_phone 125692 홍길동 02)555-1212 02)555-2121 125693 고소영 02)555-1111 02)555-1112 125694 이몽룡 043)854-9919 02)555-1010 order_no account_no item quantity date 123587 125692 E16-25A 16 2001/9/1 123588 1 2001/10/1 123589 125694 20 123590 125693 E25-25A 5

SQL (Structured Query Language) SELECT name FROM Customer WHERE account_no = ‘125692’ 결과 : SELECT Order.order_no, Order.account_no, Customer.name, Order.item, Parts.description, Order.quantity, Order.date FROM Order, Customer, Parts WHERE Order.order_no = ‘123587’ AND Customer.account_no = Order.account_no AND Parts.item = Order.item Recordset : ADO(Active Data Objects) 기능 Uniqueness (Database Integrity) : Primary key name 홍길동 order_no account_no item quantity date 123587 125692 E16-25A 16 2001/9/1 name 홍길동 description 책상

SQL Join Normalization SELECT o.order_no, o.account_no, c.name, o.item, p.description, o.quantity, o.date FROM Parts p INNER JOIN Order o ON p.item = o.item INNER JOIN Customer c ON o.account_no = c.account_no WHERE o.order_no = ‘123587’ Normalization Database Integrity, easy to application, but speed (need to join) vs. Denormalization o.order_no o.account_no c.name o.item p.description o.quantity o.date 123587 125692 홍길동 E16-25A 책상 16 2001/9/1

2. 기존의 Database 사용하기 N-계층 구조 N-계층 구조의 장점 N-계층 구조에 XML 적용 => 어느 계층? (경우에 따라stored procedure 사용) Database와 Business Objects가 서로 통신 (예, ADO Recordset) application 논리에 따라 presentation과 data층 통신 사용자와 의사소통 N-계층 구조의 장점 개발자 역할이 단순화 : 각 계층 별로 변경이 용이하고, 재사용성 증가 분산 시스템의 확장성 및 보안이 좋다. N-계층 구조에 XML 적용 => 어느 계층? Data services Data Objects Business Objects Presentation

이기종 분산 환경의 예 XML을 사용한 분산 환경 구축 BizTalk, SOAP, XML-RPC 등 DB2 SQL server Oracle  SQL COM 표준 인터페이스 (Component Object Model) 예, ADO VB, JDBC DB2 data object SQL server data object Oracle data object XML 언어 사용 저장 - 서버에 독립적, - HTTP 프로토콜 통신 Business Object Business Object . . . 서버 독립적 XML 표현 ASP, CGI, VB, Java => XML, HTML, etc. Presentation Presentation

예제 코드 Data Object로부터 XML 결과 받기 예제 코드 Data Object 생성하고, 결과 XML문서를 작성하는 VB 코드 Database 에 접속하기 위하여 ADO(ActiveX Data Object) 객체 사용 MSXML 파서를 사용하여 XML 문서 생성 예제 코드 ADO의 Connection 객체 사용하여 DB에 접속 DB를 작동하기 위한 SQL 구문 준비 => SQL 실행 & 결과 XML 문서 생성 Dim cnnDatabaseConnection AS ADODB.Connection Set cnnDatabaseConnection = New ADODB.Connection … Dim strSQL As String strSQL = “SELECT name FROM Customer WHERE account_no = ‘125692’ ”

Connection 객체의 Execute() 메소드가 SQL 구문 호출 결과는 ADO의 Recordset 객체로 문서 생성 : MSMXL의 DOM 객체 사용 결과 Dim rsResults AS ADODB.Recordset Set rsResults = cnnDatabaseConnection.Execute(strSQL) Dim objXML As MSXML.DOMDocument Set objXML = New MSXML.DOMDocument objXML.loadXML “<root> <name/> </root>” ‘ 초기 문서 생성 objXML.selectSingleNode(“/root/name”).Text = rsResults(“name”).Value ‘ SQL 결과를 XML 문서에 추가 <root> <name /> </root> <root> <name> 홍길동 </name> </root>

3. XML을 Database에 통합하기 비정규화 방법으로 저장하기 XML문서 그대로 저장, primary key는 별도로 저장 예제) Order table SELECT order_xml FROM Order WHERE order_no = ‘123587’ order_no account_no order_xml 123587 125692 <?xml version=“1.0”?> <Order number=“123587”> <Account number=“125692”> <Name>홍길동</Name> <Homephone>02)555-1212</ Homephone> <Workphone>02)555-2121</ Workphone> </Account> <Item number=“E16-25A”> <Description>책상</Description> <Quantity>16</Quantity> </Item> <Date>2001/9/1</Date> </Order> . . .

Staging Database XML 형식의 데이터 Front-end : 비정규화 데이터를 임시 저장 장소에 보관 Back-end : 정규화된 RDB에 저장 application 사용 시 편리 : join 필요 없음, 간단한 SQL Staging DB에 임시로 보관, 일정 기간 후 삭제 => 공간 문제 해결 제약점 : 데이터를 가공하여 사용할 때 추가 작업 필요 예) 폼기반 웹 응용 : 폼 입력시 최종 submit에만 DB에 전송 XML 형식의 데이터 Data Object에서 XML 문서를 SELECT 혹은 INSERT하는 SQL명령 Data Object에서 수행 작업이 감소 => 더 많은 응용 가능 Front-end 응용에서는 XML의 모든 장점 적용 가능 XML문서를 분할하여 저장하는 것도 가능 => 여러 기법 적용

예제 간단한 Data Object 처리 Dim cnnDatabaseConnection AS ADODB.Connection Set cnnDatabaseConnection = New ADODB.Connection Dim strSQL As String strSQL = “SELECT order_xml FROM Order WHERE order_no = ‘123587’ ” Dim rsResults AS ADODB.Recordset Set rsResults = cnnDatabaseConnection.Execute(strSQL) ‘ 여기까지는 동일 Dim strResult As String strResult = rsResults(“order_xml”).Value ‘ DOM 필요 없음 : ‘ objXML = New MSXML.DOMDocument, loadXML, selectSingleNode( ) ‘ 이미 XML 문서 형태로 되어 있음

4. Database 제작사와 XML XML과 Database는 서로 보완 관계 XML 통합기술 Data Object 제작시 쉽게 작업하도록 XML 지원 기능제공 Microsoft IE : MSXML 내장 Microsoft SQL Server Oracle XDK (XML Developer’s Kit) XML SQL Utility eXcelon : 전문 XML Database

Microsoft SQL Server SQL Server 2000 ISAPI filter 사용 템플리트 파일 사용 SQL 예제 : SELECT name FROM Customer ISAPI filter 사용 http://서버명/DB명?sql=SELECT+name+FROM+Customer+FOR+XML+RAW 템플리트 파일 사용 http://서버명/DB명/name.xml 결과 <root> <sql:query xmlns:sql=“urn:schemas-microsoft-com:xml-sql”> SELECT name FROM Customer FOR XML RAW </sql:query> </root> <?xml version=“1.0” ?> <root> <row name =“홍길동” /> <row name =“고소영” /> <row name =“이몽룡” /> </root>

템플리트 파일 사용 예제2 http://서버명/DB명/order.xml <?xml version=“1.0” ?> => 원하는 order_no 를 골라서 선택하려면 <?xml version=“1.0” ?> <root> <sql:query xmlns:sql=“urn:schemas-microsoft-com:xml-sql”> <! [CDATA [ SELECT Order.order_no, Order.account_no, Customer.name, Order.item, Parts.description, Order.quantity, Order.date FROM Order, Customer, Parts WHERE Order.order_no = ‘123587’ AND Customer.account_no = Order.account_no AND Parts.item = Order.item FOR XML RAW ] ] > </sql:query> </root>

템플리트 파라메터 사용 IE 출력 : 스타일 시트 선언 포함 http://서버명/DB명/order.xml?ordnum=‘123587’ IE 출력 : 스타일 시트 선언 포함 <?xml version=“1.0” ?> <?xml-stylesheet . . . ?> <root> <sql:query ordnum=‘ ’ xmlns:sql=“urn:schemas-microsoft-com:xml-sql”> <! [CDATA [ SELECT Order.order_no, Order.account_no, Customer.name, Order.item, Parts.description, Order.quantity, Order.date FROM Order, Customer, Parts WHERE Order.order_no = ? AND Customer.account_no = Order.account_no AND Parts.item = Order.item FOR XML RAW ] ] > </sql:query> </root>

Oracle XDK 자바용 XML SQL Utility Java XSQL sublet 작성 SQL 예제 : SELECT name FROM Customer 결과 Java XSQL sublet 작성 http://서버명/DB명/emp.xsql?find=T&sort=EMPNO <?xml version=“1.0” ?> <ROWSET> <ROW id=“1”> <name>홍길동</name> </ROW> <ROW id=“2”> <name>고소영</name> </ROW> <ROW id=“3”> <name>이몽룡</name> </ROW> </ROWSET> <?xml version=“1.0” ?> <?xml-stylesheet . . . ?> <query find=“%” sort=“ENAME” > SELECT * FROM EMP WHERE ENAME LIKE ‘%{@find}%’ ORDER BY {@sort} </query>

XSQL 템플리트 파라메터 사용 예제 http://서버명/DB명/order.xsql?ordnum=‘123587’ <?xml version=“1.0” ?> <?xml-stylesheet . . . ?> <query ordnum=‘ ’ > <! [CDATA [ SELECT Order.order_no, Order.account_no, Customer.name, Order.item, Parts.description, Order.quantity, Order.date FROM Order, Customer, Parts WHERE Order.order_no = {@ordnum} AND Customer.account_no = Order.account_no AND Parts.item = Order.item ] ] > </query>