Presentation is loading. Please wait.

Presentation is loading. Please wait.

SQLXML 의 세부 기능 소개 정 홍주 WebTime Feelanet. 목차  Updategram  Differgram  Bulk Load  Using Mapping Schemas  URL 을 통한 HTTP Access  Optimizing SQLXML Performance.

Similar presentations


Presentation on theme: "SQLXML 의 세부 기능 소개 정 홍주 WebTime Feelanet. 목차  Updategram  Differgram  Bulk Load  Using Mapping Schemas  URL 을 통한 HTTP Access  Optimizing SQLXML Performance."— Presentation transcript:

1 SQLXML 의 세부 기능 소개 정 홍주 WebTime Feelanet

2 목차  Updategram  Differgram  Bulk Load  Using Mapping Schemas  URL 을 통한 HTTP Access  Optimizing SQLXML Performance

3 Updategram Shipping Co. Supplier INSERT UPDATE DELETE XML delivery data  XML Data 를 SQL Server 로 갱신  Insert,Delete,Update 문 자동 생성

4 Updategram 구조  xml-updategram 네임스페이스  element  “ before ” & “ after ” 데이터 image XML Fragment XML Fragment XML Fragment XML Fragment

5 Mapping Updategram  Default Mapping XML element,attribute 는 동일한 이름을 가진 데이터베이스의 컬럼으로 Mapping XML element,attribute 는 동일한 이름을 가진 데이터베이스의 컬럼으로 Mapping attribute-centric, element-centric, or mixed attribute-centric, element-centric, or mixed  Explicit Mapping element 의 mapping-schema attribute 에 지정한 부분으로 적용 (XSD) element 의 mapping-schema attribute 에 지정한 부분으로 적용 (XSD)

6 Inserting Data  Row Insert after 부분에 처리 after 부분에 처리 IDENTITY Values, GUID IDENTITY Values, GUID <InsertProduct xmlns:updg="urn:schemas-microsoft-com:xml- updategram"> <InsertProduct xmlns:updg="urn:schemas-microsoft-com:xml- updategram">

7 Deleting Data  before 부분에 처리  각 before child element 는 유일하게 single record 로 구분되어야 함 <DeleteProduct xmlns:updg="urn:schemas-microsoft-com:xml- updategram"> <DeleteProduct xmlns:updg="urn:schemas-microsoft-com:xml- updategram">

8 Updating Data  “ before ” 와 “ after ” 부분에 처리  여러 row 는 id 로 match <UpdateProduct xmlns:updg="urn:schemas-microsoft-com:xml-updategram"> <UpdateProduct xmlns:updg="urn:schemas-microsoft-com:xml-updategram">

9 Using Parameters <UpdateProduct xmlns:updg="urn:schemas-microsoft-com:xml-updategram"> <UpdateProduct xmlns:updg="urn:schemas-microsoft-com:xml-updategram">  에 parameter 지정  $ 를 사용 parameter 처리

10 Differgram <Customer diffgr:id="Customer1" msdata:rowOrder="0" diffgr:hasChanges="inserted" CustomerID="ALFKI"> C3Company C3Contact <Order diffgr:id="Order1" msdata:rowOrder="0" diffgr:hasChanges="inserted" CustomerID="ALFKI" OrderID="1"/> <Customer diffgr:id="Customer1" msdata:rowOrder="0" diffgr:hasChanges="inserted" CustomerID="ALFKI"> C3Company C3Contact <Order diffgr:id="Order1" msdata:rowOrder="0" diffgr:hasChanges="inserted" CustomerID="ALFKI" OrderID="1"/>  Differgram 도 template, xml file  URL 쿼리,ADO,.NET Managed Class 에서 사용

11 Bulk Load Supplier Catalog Retailer Extranet Bulk Load facility  XML Data 를 SQL Server 로 Bulk Load  COM Component  대량의 데이터처리, 빠른 성능

12 Using SQLXMLBulkLoad  SQLXMLBulkLoad Object 를 생성  Execute Method 를 이용 Data 와 매핑을 로드 Mapping schema, XML source parameter Mapping schema, XML source parameter Set objBL=CreateOhect("SQLXMLBulkLoad.SQLXMLBulkLoad") objBL.Execute "c:\productschema.xml", "c:\products.xml"

13 Using Mapping Schemas Supplier Purchase order Catalog Retailer Catalog schema Purchase order schema

14 Using Mapping Schemas  XML 문서표현에 대한 동의  Relation Data 와 XML 간의 mapping 정보  Schema 의 일종 생성 XML-Data Reduced (XDR) XML-Data Reduced (XDR) XML Schema(XSD) XML Schema(XSD)

15 Mapping  XML-SQL, xmlns:xsd namespace  Default mapping 적용  sql:relation 주석을 사용 table 또는 view 의 alias 를 생성  sql:field 주석을 사용 column 의 alias 를 생성

16 예 ) Default Mapping XML View 관계형 데이터 :Customers <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema“ xmlns:msdata="urn:schemas-microsoft-com:mapping-schema“> xmlns:msdata="urn:schemas-microsoft-com:mapping-schema“> </xsd:schema> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema“ xmlns:msdata="urn:schemas-microsoft-com:mapping-schema“> xmlns:msdata="urn:schemas-microsoft-com:mapping-schema“> </xsd:schema> CustID ------ A NULL B CustID ------ A NULL B

17 예 ) Explicit Mapping XML View 관계형 데이터 : UserObject <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema“ xmlns:msdata="urn:schemas-microsoft-com:mapping-schema“> xmlns:msdata="urn:schemas-microsoft-com:mapping-schema“> </xsd:schema> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema“ xmlns:msdata="urn:schemas-microsoft-com:mapping-schema“> xmlns:msdata="urn:schemas-microsoft-com:mapping-schema“> </xsd:schema> SECOrgID ------ A NULL B SECOrgID ------ A NULL B

18 예 ) Join Mapping <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:mapping-schema"> xmlns:msdata="urn:schemas-microsoft-com:mapping-schema"> <msdata:relationship <msdata:relationship parent="Customers" parent-key="CustomerID" parent="Customers" parent-key="CustomerID" child="Orders" child-key="CustomerID" /> child="Orders" child-key="CustomerID" /> </xsd:schema> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:mapping-schema"> xmlns:msdata="urn:schemas-microsoft-com:mapping-schema"> <msdata:relationship <msdata:relationship parent="Customers" parent-key="CustomerID" parent="Customers" parent-key="CustomerID" child="Orders" child-key="CustomerID" /> child="Orders" child-key="CustomerID" /> </xsd:schema>

19 Filtering Data  sql:limit-field 와 sql:limit-value 사용 <sql:relationship name="CustAddr“ parent="Customer" parent-key="CustomerID" child="Addresses" child-key="CustomerID" /> <xsd:element name="BillTo" type="xsd:string" sql:relation="Addresses" sql:field="StreetAddress" sql:limit-field="AddressType" sql:limit-value="billing" sql:relationship="CustAddr" > <sql:relationship name="CustAddr“ parent="Customer" parent-key="CustomerID" child="Addresses" child-key="CustomerID" /> <xsd:element name="BillTo" type="xsd:string" sql:relation="Addresses" sql:field="StreetAddress" sql:limit-field="AddressType" sql:limit-value="billing" sql:relationship="CustAddr" >

20 Using Constants  sql:is-constant 사용  1 이면 mapping 되지 않음 <xsd:element name="Order" sql:relation="Orders" sql:relationship="CustOrders" maxOccurs="unbounded" > <xsd:attribute name="OrderID" <xsd:element name="Order" sql:relation="Orders" sql:relationship="CustOrders" maxOccurs="unbounded" > <xsd:attribute name="OrderID"

21 Schema 를 이용 데이터 검색  XPath 를 이용하여 select element element  Schema Virtual Name 게시 schema/Schema2.xml/ Customers[@CustomerID="ALFKI"] schema/Schema2.xml/ Customers[@CustomerID="ALFKI"]  SqlXmlCommand 클래스를 이용 element element  Template 인라인 Mapping Schema

22 URL 을 통한 HTTP Access Retailer Shipping Co. Supplier Extranet Intranet site Web site Browser Catalog Application Browser  HTTP 를 통한 SQL Server Data 게시  URL 쿼리, XML View, POST, Template

23 Vir-Directory Architecture Internet Information Services OLE DB SQL Server 2000 …FOR XML… HTTP-aware applications Business partners Web browser Clients Sqlisapi.dllSqlxmlx.dll Virtual name http://webserver/data An XML document Virtual directory

24 Virtual Directory 생성  이름과 실제 경로 지정  데이터베이스 선택  보안 구현  HTTP option 선택  virtual name 생성 template 파일, mapping schema, database object 또는 soap  추가적인 parameter 지정

25 HTTP Access 테스트  URL 쿼리를 이용 할 수 있도록 선택  root element 를 지정 http://webserver/data? sql=SELECT productname, unitprice FROM products FOR XML AUTO&root=catalog

26 XML Template 파일  하나이상의 SQL statements 또는 XPath 쿼리로 이루어진 valid XML 문서 서버사이드 서버사이드 Parameter 허용 Parameter 허용 SELECT productid, productname, unitprice FROM products product FOR XML AUTO SELECT productid, productname, unitprice FROM products product FOR XML AUTO

27 Template File 게시  template file 이 있는 폴더에 virtual name 지정 http://webserver/data/templates/catalog.xml C:\SQLSite C:\Templates C:\Templates\catalog.xml Web server ObjectPhysical pathName Virtual directory Virtual name Template file data templates webserver catalog.xml

28 Schema Virtual Name 게시  Schema 를 담고있는 폴더를 virtual name 으로 구현  클라이언트에서는 URL 을 이용하여 schema 를 액세스 http://webserver/query/schemas/inv.xml/Item?root=Invoice C:\SQLSite (Virtual root data ) C:\Schemas (Virtual name schemas ) inv.xml Webserver

29 dbobject Virtual Name 게시  BLOB 데이터를 처리하기 위해 dbobject virtual name 구현 ( 예 image) AUTO 모드에서 처리되는 binary object 를 처리 AUTO 모드에서 처리되는 binary object 를 처리 path 는 미지정됨 path 는 미지정됨 단지 각 virtual directory 에 하나만 지정 단지 각 virtual directory 에 하나만 지정  XPath 쿼리 허용

30 URL 을 통한 dbobject  Xpath 적용  스타일 시트의 IMAGE 태그의 src 로 dbobject 사용 dbobject/categories[@categoryid='1']/@picture http://webserver/data/ http://webserver/data/

31 SOAP Virtual Name 게시  SP,Template 로 soap virtual name 적용 http://IISServer/nwind/SoapVirtualName?wsdl

32 SQLXML 성능 최적화  Caching Template Caching Template Caching XSLT Stylesheet Caching XSLT Stylesheet Caching Schema Caching Schema Caching HKEY_LOCAL_MACHINE\SOFTWARE\Micr osoft\MSSQLServr\Client\SQLXML3 HKEY_LOCAL_MACHINE\SOFTWARE\Micr osoft\MSSQLServr\Client\SQLXML3  SQLXMLOLEDB con.open "Provider=SQLXMLOLEDB;data provider=sqloledb; con.open "Provider=SQLXMLOLEDB;data provider=sqloledb;


Download ppt "SQLXML 의 세부 기능 소개 정 홍주 WebTime Feelanet. 목차  Updategram  Differgram  Bulk Load  Using Mapping Schemas  URL 을 통한 HTTP Access  Optimizing SQLXML Performance."

Similar presentations


Ads by Google