SQL Server 2005 에서의 XML 지원 강사 : 정 홍 주 ㈜웹타임 수석 컨설턴트.

Slides:



Advertisements
Similar presentations
CUBRID 소개 (Object 개념) 서비스 사업부 / 기술지원팀. 목차 구조 일반적 특징 객체지향 특징 ORDB 개념을 이용한 스키마 ORDB 개념을 이용한 질의.
Advertisements

PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
소리가 작으면 이어폰 사용 권장!.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
서비스 브로커 및 통보 서비스 강사: 정 홍 주 ㈜웹타임 수석 컨설턴트.
XML Views in SQL Server 2000 컴퓨터 언어연구실 석사 3학기 강 소 희.
질의어와 SQL 기본 SQL 고급 SQL 데이타의 수정 데이타 정의 언어 내장 SQL
관계 대수와 SQL.
SQL Server 2005 XML Features
4장. 관계 대수와 SQL SQL 관계 데이터 모델에서 지원되는 두 가지 정형적인 언어
Chapter 05 SQL 인젝션 공격.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
JDBC 프로그래밍 이수지 이동주 1.
SQL 개요 SQL 개요 - SQL은 현재 DBMS 시장에서 관계 DBMS가 압도적인 우위를 차지하는 데 중요한 요인의 하나
데이터베이스 담당교수 신정식 Chapter 4 SQL(1).
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
목차 백업과 복원.
11장. 데이터베이스 서버 구축과 운영.
14장 질의응답 한빛미디어(주).
XML 데이터 조작 FOR XML 절을 이용하여 조회 결과를 XML 문서로 얻는 방법을 이해한다.
기초 T-SQL.
11 테이블 관리와 데이터 딕셔너리 데이터베이스 응용 프로젝트 개발 테이블 구조 변경 데이터 딕셔너리.
3장. 데이터베이스 구축의 전체 과정 미리 실습하기
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
ㅎㅎ MS-SQL서버 2000과 XML MS-SQL 서버 2000과 XML 활용 HTTP를 이용한 XML 데이터 접근
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
4.2 SQL 개요 SQL 개요 SQL은 IBM 연구소에서 1974년에 System R이라는 관계 DBMS 시제품을 연구할 때 관계 대수와 관계 해석을 기반으로, 집단 함수, 그룹화, 갱신 연산 등을 추가하여 개발된 언어 1986년에 ANSI(미국 표준 기구)에서 SQL.
ER-Win 사용 방법.
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
ASP.NET : Database 접근 2008 컴퓨터공학실험(Ⅰ)
단일 테이블 조회를 위한 SELECT 문을 이해한다. 열 제약조건과 행 제약조건을 이해한다. 결과 집합 변경 방법을 이해한다.
XML과 데이터베이스 ㅎㅎ XML과 데이터베이스 XML과 데이터베이스 매핑 관계.
뷰와 저장 프로시저 뷰의 개념을 이해한다. 뷰의 정의와 관리 방법을 이해한다. 뷰를 사용함으로써 생기는 장점을 알아본다.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
5장 Mysql 데이터베이스 한빛미디어(주).
KIM HEESANG PL/SQL 2 KIM HEESANG
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
You YoungSEok Oracle 설치 You YoungSEok
강사: 이종인 다우 교육원 전임강사 / 온디멘드 수석 컨설턴트 / FMG 수석 컨설턴트
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL
Chapter 3: Introduction to SQL
고급 T-SQL.
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
JDBC Lecture 004 By MINIO.
SQL Query in the SSMS : DB, Table
JSP 게시판 구현.
3장. SQL Server 2008 전체 운영 실습 및 DB와 프로그램의 연동
테이블 만들기 실습 목표 입력할 tableDB <실습1> SSMS에서 테이블 생성
C# O/R 디자이너- LINQ 이용.
06. SQL 명지대학교 ICT 융합대학 김정호.
CHAP 21. 전화, SMS, 주소록.
SQL Server 2000 세미나 View, SP &Trigger
테이블 관리 테이블 생성,수정,삭제 데이터 입력 수정, 삭제 2010학년도 2학기.
오라클 11g 보안.
상세 개념적 모델링. 상세 개념적 모델링 정규화를 하는 이유 데이터의 중복성 제거 데이터 모형의 단순화 Entity, Attribute의 누락 여부검증 데이터 모형의 안전성 검증.
14 뷰(View) 뷰의 개념 뷰 관리.
뇌를 자극하는 Windows Server 장. 데이터베이스 서버.
Stored program 장종원
Data Base Mysql.
14 뷰(View) 뷰의 개념 뷰 관리.
 6장. SQL 쿼리.
제 5 장 MariaDB인덱스 생성 및 관리.
임시테이블과 테이블변수 SQLWorld Study Group - 최명환 -.
Presentation transcript:

SQL Server 2005 에서의 XML 지원 강사 : 정 홍 주 ㈜웹타임 수석 컨설턴트

목차  SQL Server 2005 에서의 XML 개요  XML 데이터 형식  XML Index  XML Schema  XQuery

SQL Server 2005 에서의 XML 개요  4 ’ X ’ –XML 데이터 형식 –XML Index –XML Schema Collection –XML Manipulation

XML 데이터 형식  XML 데이터 형식 -native 데이터 베이스 형식 – 테이블의 컬럼 – 저장 프로시저의 매개변수 – 사용자 정의 함수에서 리턴값 – 변수

XML 데이터 형식 CREATE TABLE xml_tab ( the_id INTEGER, xml_col XML) CREATE PROCEDURE transform XML OUTPUT) AS... CREATE FUNCTION simple NVARCHAR(max)) RETURNS XML AS XML

XML 데이터 형식 제한 사항  comparison 지원 안됨 (NULL 제외 ) –no equality comparison –no ORDER BY, GROUP BY –no built-in functions (ISNULL, COALESCE 제외 )  KEY 열로 사용할 수 없음  UNIQUE 제약으로 사용할 수 없음  COLLATE 으로 선언할 수 없음 –XML encoding 사용 – 그렇지 않으면 UNICODE 로 저장

XML Column  XML Column 은 well-formed XML 저장 가능 –XML 1.0 권고 – 문서 또는 단편

XML Column  XML Column 은 단순 TEXT 열이 아님  XML 관련 기술 지원 –XML Schema –XML Index –XQuery 와 Xpath 2.0 –FOR XML, OpenXML

XML Column CREATE TABLE xml_tab ( the_id INTEGER, xml_col XML) GO -- 자동 변환 INSERT INTO xml_tab VALUES(1, ' ') INSERT INTO xml_tab VALUES(2, N' ') SELECT CAST(xml_col AS VARCHAR(MAX)) FROM xml_tab WHERE the_id < 에러, not well formed INSERT INTO xml_tab VALUES(3, ' ')

XML Index  XML Column 에 XML Index 생성 –XML 쿼리 최적화 –Primary xml index 제일 먼저 생성 – 세가지 특별한 인덱스 VALUE – 콘텐트 쿼리에 최적화 PATH – 구조적 쿼리에 최적화 PROPERTY – 이름 / 값 쌍에 최적화 CREATE TABLE xml_tab ( id integer primary key, doc xml) GO CREATE PRIMARY XML INDEX xml_idx on xml_tab (doc) GO sys.xml_indexes 뷰에서 확인

XML Index  요구사항 – 테이블은 primary key 를 가지고 있어야 함 –Composite XML INDEX 는 허용 안됨 –Primary xml index 생성 후 추가 XML Index 생성 –XML Schema 를 이용 최적화 CREATE XML INDEX invpathidx ON xml_tab (invoice) USING XML INDEX xml_idx FOR PATH

데모 : XML 데이터 형식  XML Column  Untyped XML  XML Index

목차  SQL Server 2005 에서의 XML 개요  XML 데이터 형식  XML Index  XML Schema  XQuery

XML Schema

XML Schema 생성  XML SCHEMA COLLECTION 생성 –XML 인스턴스와 관련되는 collection 이름을 지정 CREATE XML SCHEMA COLLECTION cvSchemas AS N' <xsd:schema targetNamespace=

XML Schema 참조  XML 데이터 형식이 사용하는 스키마는 데이터베이스에 있어야 함 CREATE TABLE Locations ( location xml(cvSchemas)... )

Typed XML CREATE TABLE xsd_tab( id int IDENTITY primary key, -- namespace ‘ xsd_col xml(CONTENT, cvSchemas)) GO INSERT INTO xsd_tab VALUES( ' ') -- 실패 INSERT INTO xsd_tab VALUES( ' 10 foo ')

Xml Schema 정보  xml_schema_namespace 이용 –XML schema collection 이름 –query 이용 하나의 namespace 결과 반환 –xml 형식 반환 SELECT XML_SCHEMA_NAMESPACE(N'dbo',N'cvSchemas') go SELECT XML_SCHEMA_NAMESPACE(N'dbo',N'cvSchemas').query('/xs:schema

XML Schema 제한사항  는 이미 있는 collection 요구 –schemaLocation 무시 ,,  BOL 참조

데모 : XML Schema  Typed XML

목차  SQL Server 2005 에서의 XML 개요  XML 데이터 형식  XML Index  XML Schema  XQuery

XQuery  XQuery 는 XML 과 데이터 베이스를 위한 표준언어  XQuery 는 XPath 의 Superset –XPath 또는 FLWOR 표현식 사용 – 거의 모든 유효한 XPath 문장은 또한 XQuery –XPath 는 FLWOR 표현식에서 값을 선택하는데 사용 (: 유효한 XQuery :) /people/person[age > 30] (: FLWOR 표현식 :) for $p in /people/person where $p/age > 30 order by $p/age[1] return $p/name

XQuery  XQuery 메서드 –xml.query - XML instance 반환 –xml.value – scalar 반환 –xml.exist – bool 반환 –xml.nodes – 하나의 컬럼 rowset –xml.modify – instance 변경

FLWOR 표현식  XML 쿼리는 FLWOR 표현식 – 다섯가지 구문 형식으로 구성 FOR LET (SQL Server 2005 나 System.Xml 에서는 지원안됨 ) WHERE ORDER BY RETURN

FLWOR for $p in people/person where $p > 30 return $p/name/givenName/text() Martin Simon

xml.query  xml.query 는 XML 데이터 형식 인스턴스 반환 –XML 형식 인스턴스와 XQuery 입력 –XML 단편같은 스칼라 형식 반환 – 새로운 데이터를 형성하기 위해 constructor 이용 Soda Ice SELECT invoice.query('declare namespace hong = " /hong:Invoice/hong:LineItem') FROM Invoices -- 결과 Soda Ice

xml.value -- 어떤 행을 추가 INSERT xml_tab VALUES(' ') INSERT xml_tab VALUES(' ') INSERT xml_tab VALUES(' ') -- 검색 쿼리 SELECT id, AS name FROM xml_tab -- 결과셋 id name curly 2 larry 3 moe

xml.exist -- people root 밑에 person 을 반드시 가지고 있어야 함. CREATE TABLE xmltab( id INTEGER PRIMARY KEY, pdoc XML CHECK (pdoc.exist('/people/person')=1) ) -- ok insert xmltab values( 1, ' ') -- fails, no persons insert xmlpeople values( 2, ' ') Select pdoc From xmlpeople Where pdoc.exist(‘('/people/person’)=1

xml.nodes SELECT 'int') InvoiceNo, 'int') ProductID, 'money') Price, 'int') Quantity FROM #Stores CROSS APPLY Invoices.nodes('declare default namespace=" /InvoiceList/Invoice/Items/Item') AS nTable(nCol) ORDER BY InvoiceNo

xml.modify -- modify 이용 서브 요소를 추가 'insert into /Invoice[1] ') -- 또는 특성을 추가 attribute status{"backorder"} into /Invoice[1] ') -- 모든 LineItem 요소를 삭제 /Invoice/LineItems/LineItem') -- CustomerName 요소의 값을 변경 value of /Invoice[1]/CustomerName[1]/text()[1] with "John Smith" ')

데모 : XQuery  XQuery Method

STEP 요약  4 ’ X ’ –XML 데이터 형식 –XML Index –XML Schema Collection –XQuery