1 / 45

강성재 Developer Evangelist Microsoft Korea D&PE

개발자 관점에서 바라본 SQL Server 2005 (1). 강성재 Developer Evangelist Microsoft Korea D&PE. 왜 64-bit 인가 ?. 64-bit Architectures. Platform Direction. 32-bit x86. 애플리케이션 운용 폭. 64-bit x64. 64-bit IPF. 확장성. 64-bit 의 힘 !. RDBMS Scientific computing Data modelling Physical system simulation

corinthia
Download Presentation

강성재 Developer Evangelist Microsoft Korea D&PE

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 개발자 관점에서 바라본 SQL Server 2005 (1) 강성재 Developer Evangelist Microsoft Korea D&PE

  2. 왜 64-bit인가?

  3. 64-bitArchitectures

  4. Platform Direction 32-bit x86 애플리케이션 운용 폭 64-bit x64 64-bit IPF 확장성

  5. 64-bit의 힘! • RDBMS • Scientific computing • Data modelling • Physical system simulation • CAD/CAE • Imaging • Data mining • ERP / Manufacturing / Process modelling • Shared application hosting • Server consolidation • Online Game Server (특히 한국!!!)

  6. 목차 • SQL Server 2005 살펴 보기 • Transact-SQL 강화 • XML 과 XQuery • 서비스 브로커 • 웹 서비스 지원

  7. 1. SQL Server 2005 살펴 보기 • SQL Server 2005 컴포넌트 • 새로운 데이터베이스 개발 기능 • SQL Server 2005의 개발 지원 도구 • SQL Server Management Studio

  8. Data Transformation Services Notification Services Analysis Services SQL Server 2005 Full-Text Search Relational Database Engine Reporting Services .NET CLR Service Broker Replication Native HTTP Support SQL Server 2005 컴포넌트

  9. 새로운 데이터베이스 개발 기능 • Transact-SQL 강화 • XML 지원 • 메시지 기반 서비스 • HTTP 지원 • 알림(Notification) 서비스 • CLR 통합 • 리포팅 서비스 • SQL 관리 객체

  10. SQL Server 2005의 개발 지원 도구 • SQL Server Management Studio • Business Intelligence Development Studio • sqlcmd • Visual Studio designers

  11. SQL Server Management Studio 데이터베이스 개발 환경 통합

  12. 데모 SQL Server Management Studio

  13. 2. Transact-SQL 강화 • 데이터 타입 강화 • 데이터 정의 언어 강화 • 데이터 조작 언어 강화 • 구조적 예외 처리

  14. 데이터 정의 언어 강화 • 데이터베이스 DDL 문 • 테이블 DDL 문 • .NET Framework 프로그래밍 • 테이블과 인덱스 분할 • 인덱싱 강화 • 보안 DDL 문 • 서비스 브로커 문 • DDL 트리거와 이벤트 알림

  15. 데이터 조작 언어 강화 • OUTPUT 키워드 • PIVOT ,UNPIVOT • APPLY • Ranking 기능

  16. OUTPUT 키워드 Declare a table-valued variable 1 Use OUTPUT to return details to the variable 2 DECLARE @InsertDetails TABLE (ProductID int, InsertedBy sysname) INSERT INTO Stock.ProductList OUTPUT inserted.ProductID, suser_name() INTO @InsertDetails VALUES ('Racing Bike', 412.99) SELECT * FROM @InsertDetails

  17. PIVOT 과 UNPIVOT • PIVOT – 값을 컬럼으로 변환 SELECT * FROM Sales.Order PIVOT (SUM(Qty) FOR Prod IN ([Bike],[Chain])) PVT • UNPIVOT –컬럼을 값으로 변환 SELECT Cust, Prod, Qty FROM Sales.PivotedOrder UNPIVOT (Qty FOR Prod IN ([Bike],[Chain])) UnPVT

  18. 데모 DML Enhancements

  19. 3. XML 과 XQuery • XML 데이터 타입 • XML 스키마 • XQuery

  20. 데이터베이스와 XML 장점: • 구조적 데이터와 반구조적 데이터를 위한 단일 스토어 • 관계 모델에 다양한 내용 정의 • 적절한 데이터 모델 선택 기능: • XML Indexes • XQuery 기반의 데이터 구조(검색, 복구) • XQuery 기반의 변경(조작) XML 스키마 지원: • Typed XML: 유효한 스키마 • Untyped XML: 유효하지 않은 XML

  21. XML 데이터 타입 CREATE TABLE xml_tab ( the_id INTEGER, xml_col XML) CREATE PROCEDURE transform ( @x XML, @y XML OUTPUT) AS ... CREATE FUNCTION simple ( @x NVARCHAR(max)) RETURNS XML AS DECLARE @a XML SET @a = @x ... RETURN @a

  22. XML column • XML column 은 well-formed XML을 저장 • XML 1.0 추천

  23. XML 스키마 XML schema collection 생성 CREATE XML SCHEMA COLLECTION cvSchemas AS N'<?xml version="1.0" ?> <xsd:schema targetNamespace= ...'

  24. 데이터베이스와 XML Schema • 데이터베이스 내의 XML 데이터는 XML 스키마를 사용해야 한다 • XML SCHEMA COLLECTION 생성 • collection 이름은 XML 인스턴스와 연동 • XML SCHEMA COLLECTION 생성은 순수 스키마 요구 CREATE XML SCHEMA COLLECTION geocoll '<xs:schema ... literal schema targetNamespace = urn:geo> targetNamespace ... </xs:schema>' CREATE TABLE Locations ( reference to location xml(geocoll) schema collection ... )

  25. XML 인덱스 • XML column 기반의 XML 인덱스 생성 • Column에 대해 XML 질의 최적화 • 먼저 primary XML 인덱스 생성 (node table) • 세 개의 특별한 인덱스 타입 • VALUE –content 질의 최적화 • PATH –structure 질의 최적화 • PROPERTY –name/value 최적화 CREATE TABLE xml_tab ( id integer primary key, doc xml) GO CREATE PRIMARY XML INDEX xml_idx on xml_tab (doc) GO

  26. XQuery • XQuery 는 Xpath의 서브셋 • XPath 또는 FLWOR 표현 사용 • 대부분 유요한 XPath 문장은 XQuery 문장과 같다 (: this is a valid XQuery :) /people/person[age > 30] (: so is this FLWOR expression :) for $p in /people/person where $p/age > 30 order by $p/age[1] return $p/name

  27. FLWOR 표현 • XML 질의는FLWOR 표현 • 다섯 타입의 절로 구성 • FOR • LET (SQL Server 2005 또는System.Xml지원하지 않음) • WHERE • ORDER BY • RETURN

  28. XML 문서 예 <people> <person> <name> <givenName>Martin</givenName> <familyName>Gudgin</familyName> </name> <age>33</age> <height>short</height> </person> <person> <name> <givenName>Simon</givenName> <familyName>Horrell</familyName> </name> <age>40</age> <height>short</height> </person> <person> <name> <givenName>Mark</givenName> <familyName>Szolkowski</familyName> </name> <age>30</age> <height>medium</height> </person> </people>

  29. XML 데이터 타입 메소드 query 메소드 사용 value 메소드 사용 exist 메소드 사용 columns 과 variables 관계 결합 modify 메소드 사용

  30. 서비스 브로커 • 서비스 지향 아키텍처(SOA)란? • 서비스 브로커 시스템 아키텍처 • 서비스 브로커 통신 아키텍처 • 서비스 브로커 사용

  31. 서비스 지향 아키텍처(SOA)란? • 서비스 간의 느슨한 통신 • SOA 예: Message Queuing Web Services

  32. Message type Queue Service Contract Service program 서비스 브로커 시스템 아키텍처

  33. 서비스 브로커 통신 아키텍처

  34. 서비스 브로커 사용 • 데이터베이스 내의 서비스 브로커 사용 • 서비스 구현 • Contracts 생성 • Queues 생성 • Services 생성 • Message 전송 • Message 수신

  35. 데이터베이스 내의 서비스 브로커 사용 서비스 브로커 상태 점검 1 SELECT is_broker_enabled FROM sys.databases WHERE database_id = db_id() 서비스 브로커 사용 가능 2 ALTER DATABASE AdventureWorks SET ENABLE_BROKER

  36. Services 구현 디자인: • Message types • Contracts • Queues • Services • Service program logic

  37. Contracts 생성 message 타입 생성 1 CREATE MESSAGE TYPE [//Adventure-Works.com/Expenses/ExpenseClaim] VALIDATION = WELL_FORMED_XML CREATE MESSAGE TYPE [//Adventure-Works.com/Expenses/ClaimResponse] VALIDATION = VALID_XML WITH SCHEMA COLLECTION awschemas Contract 생성 2 CREATE CONTRACT [//Adventure-Works.com/Expenses/ProcessExpense] ( [//Adventure-Works.com/Expenses/ExpenseClaim] SENT BY INITIATOR, [// Adventure-Works.com/Expenses/ClaimResponse] SENT BY TARGET )

  38. Queues 생성 activation parameters 명시 3 CREATE QUEUE ExpenseQueue CREATE QUEUE ExpenseQueueWithActivation WITH STATUS = OFF, ACTIVATION ( PROCEDURE_NAME = ProcessExpense, MAX_QUEUE_READERS = 5, EXECUTE AS SELF)

  39. Services 생성 통신 라이프타임에 대해 메시지 유지 여부 선택 4 CREATE SERVICE [//Adventure-Works.com/SubmitExpense] ON QUEUE ExpenseQueue ( [//Adventure-Works.com/Expenses/ProcessExpense] )

  40. Message 전송 dialog handle 변수 선언 1 dialog 통신 시작 2 Message 전송 3 DECLARE @dialog_handle uniqueidentifier BEGIN DIALOG CONVERSATION @dialog_handle FROM SERVICE [//Adventure-Works.com/SubmitExpense] TO SERVICE '//Adventure-Works.com/ProcessExpense' ON CONTRACT [//Adventure-Works.com/Expenses/ProcessExpense] ;SEND ON CONVERSATION @dialog_handle MESSAGE TYPE [//Adventure-Works.com/Expenses/ExpenseClaim] (@msgString)

  41. Message 수신 Message 저장을 위한 변수 선언 1 RECEIVE 문 호출 2 message 타입 체크 그리고 적절한 프로세스 3 만약 통신 종료이면, END CONVERSATION 호출 4 DECLARE @conversation UNIQUEIDENTIFIER DECLARE @msg NVARCHAR(MAX), @msgType NVARCHAR(256) ;RECEIVE TOP(1) @conversation = conversation_handle, @msgType = message_type_name, @msg = message_body FROM ExpenseQueue IF (@msgType = '//Adventure-Works.com/Expenses/ExpenseClaim') -- process @msg … END CONVERSATION @conversation

  42. 추천서적: Microsoft PressIT 전문가를 위한 고급 정보 최신 기술서적에 대한 정보는 여기서 참조하세요. www.microsoft.com/learning/books/

  43. 추천서적: IT 전문가를 위한 참고서적 이 서적은 국내 대형서점에서 판매되며, 온라인 서점에서도 판매 됩니다.

More Related