*:* Hyejin's third story *:*


차세대DBMS SQL Server 2005 그 변화 속으로
   | 2005·05·14 23:46 | HIT : 3,850 | VOTE : 511 |
발문 : Microsoft 의 차세대 DBMS인 SQL Sever 2005가 그 모습을 드러내고 있다. SQL Sderve 2000이 출시된지로부터 5년이 지난후에 출시되는 SQL Server 2005에 대한 궁금증을 풀어보는 시간을 가져보자.

이 컬럼은 필자가 월간 마이크로소프트웨어 2004년 12월호에 기획기사로 기고한 것을 바탕으로 하고 있음을 알려드립니다

서론 :
SQL Server 2005는 코드명 “유콘(Yukon)”으로 불리웠던 마이크로소프트사의 SQL Server 2000 차기버전이다. 수많은 기대와 어떠한 부분의 개선이 이루어졌는지, 또한 어떤 기능이 새로 추가되었는지 궁금한 사람들이 많다. 지금부터 SQL Server 2005의 새로운 점들을 중심으로 하여 같이 알아보기로 하자. 현재, SQL Server 2005는 Beta 2 이후 Commutiy Technology Preview 까지 나와있으며 필자도 CTP 버전을 가지고 이 컬럼을 작성하고 있다.
이미 필자가 지난 12월 마이크로소프트웨어지에 SQL Server 2005에 대하여 리뷰하는 기사를 올렸기에 그때의 내용을 바탕으로 이번 첫번째 컬럼을 작성하고자 한다.

SQL Server 2005는 CLR통합, 새로운 통합관리도구, 새로운 비즈니스인텔리전스 지원도구등의 기능이 포함된 DBMS이다. 이것은 갈수록 높아지는 기업의 데이터베이스 활용방향, 즉 데이터웨어하우스와 비즈니스인텔리전스에 대응하기 위함이라고 볼수있다. 과연 SQL Server 2005가 SQL Server 2000까지 일부 개발자나 DBA에게 인식되어지던 한계점, 아직까지 대용량의 크리티컬한 기업 환경에서 사용되어지기에는 약간 모자란다는 인식을 불식시킬수 있을 것인지 이번 컬럼을 통하여 조금이나마 알아보기로 한다.

우선 SQL Server 2005에 대한 설명은 개발적 측면, 관리적 측면, 그리고 더욱 강화된 Business Intelligence 기능으로 분류해서 진행하도록 하겠다. 이번 컬럼에서는 개발적 측면에서의 변화를 살펴보도록 한다.




SQL Server Management Studio

SQL Server 2005의 새로운 관리도구인 SQL Server Management Studio 는 이전버전의 관리도구인 Enterprise Manager , Analysis Services 를 통합하였다. 따라서 SQL Server Management Studio 는 자연히 많은 도구들의 종합세트처럼 되었는데 먼저 Object Explorer의 사용을 보자. Object Explorer는 OLAP과, DTS, Reporting Service, Notification Service와 보안관리, SQL Server Agent, SQL Mail 등을 사용하게 하는 도구이다. 그리고 이전에 있던 데이터베이스 Maintenance Plan 을 더욱 발전시켜 원래 있던 백업, 인덱스관리 기능뿐 아니라, DTS Designer를 데이터베이스 유지관리에도 포함시켰다


그림 1 [ SQL Server Management Studio 에서 Object Browser를 사용하는 모습  ]

또한, SQL Server Management Studio 솔루션이라는 새로운 쿼리실행도구가 추가되었다. 여기서는 마치 Visual Studio .NET을 사용할 때 처럼 Project 생성을 통하여 SQL Server 스크립트나, MDX,DMX,XMLA 등을 생성하고 저장하게 하는 Analysis 스크립트, 그리고 모바일과 연동되는 SQL 쿼리를 생성하는 SQL Mobile 스크립트를 작성할 수 있다.


그림 2 [ SQL Server Management Studio 솔루션 생성 장면 ]



개발 측면의 개선사항

SQL Server 2005에서는 개발자를 위한 지원으로 닷넷을 포함시켰다. 또한 SQL의 핵심인 T-SQL의 기능도 개선시켜 개발자들이 더욱 쉽고 용이하게 데이터베이스 어플리케이션을 개발할 수 있게 하고 있다. 다음 표는 SQL Server 2005에서 개선이 이루어지거나 새로이 추가된 개발자적 측면의 기능이다.


기능


설명

.NET Framework 호스팅


SQL Server 2005에서 개발자는 Visual C# .NET이나 Visual Basic.NET 같은언어를통하여 저장프로시저, 사용자정의데이터유형, 사용자정의함수 같은 데이터베이스 개체를 개발할 수 있다.

XML 기술


Extensible Markup Language (XML)은 네트웍이나 인터넷을 통하여이기종데이터를 통합할 수 있는 언어이다. SQL Server 2005는 XML 쿼리와 저장을 지원한다.

ADO.NET 버전 2.0


ADO.NET은 SQL Server 2005에게 데이터세트를 액세스하고 조작하는 기능을 부여해준다.

보안 개선


SQL Server 2005는 사용자와 개체를 분리하여 사용할수 있게 한다. 이를 통하여 개발자는 개체에 대한 보안관리를 보다 쉽게 할 수있다.

Transact-SQL 개선


SQL Server의 핵심인 T-SQL도 개선이 이루어졌다. 에러핸들링과 재귀쿼리, PIVOT, APPLY, ROW_NUMBER 등의 개선이 이루어졌다.

서비스 브로커 (Service Broker)
서비스 브로커는 분산되과 비동기화된 어플리케이션간의 메시지 전달을 제공하는 새로운 기능이다.

Reporting Services
SQL Server 2005, Reporting 서비스는 Visual Studio 2005 (코드명 Whidvey)와 함께 사용되어지는 리포팅솔루션이다.



.NET과 SQL Server 2005

SQL Server 2005에서 가장 중점을 둔 부분은 바로 Visual Basic.NET이나 C# 같은, CLR(Common Language Runtime)기반 언어를 이용하여 T-SQL이 취약했던 프로그램 객체 형성을 통한 복잡한 처리를 할 수 있게 해준다는 점이다. 이는 예전부터 여러 프로그래머들이 계속 요구해왔던 점으로서 SQL Server 2005에서 이러한 요구를 수용하고 T-SQL 을 더욱 발전시키고 있다고 볼수 있을 것이다. SQL Server 2005는 CLR과 통합되어서 어떤 데이터베이스 개체 , 예를 들어 트리거, 프로시저, 사용자정의함수,사용자정의형식 등을 NET 언어로서 정의하고 실행시킬수 있게 한다.

간단하게 CLR을 이용하는 .NET Code의 배포를 설명한다면 우선 개발자가 VB.NET이나 C#같은 언어를 이용하여 코드를 작성하고 나서 .NET 컴파일러를 통하여 어셈블리를 만들고 그후에 Create Assembly 같은 T-SQL 문장을 이용하여 SQL Server에 등록하면 되는 것이다.
그러면 지금부터 간단하게  저장 프로시저를 C# 코드를 이용하여 생성하고 이를 적용하는 장면을 보자.
필자는 이를 위하여 SQL Server 2005 Community Preview 버전과 Visual Studio .NET 2005 Community Preview (코드명 Whidvey)를 사용했다.


그림 3 [ VS.NET 2005에서 C#으로 저장프로시저 작성 ]

예를 들어 특정 데이터베이스의 쿼리 결과를 XML 형태로 파일에 저장하게 하는 저장프로시저를 작성해보자.
이를 위해서는 우선 그림처럼 Visual Studio.NET 2005를 이용하여 저장프로시저를 작성하는 프로젝트를 작성하기로 한다. C# 코드로서 데이터를 XML에 저장하는 코드를 작성한다.

[SqlProcedure(Name = "SaveXML")]
public static void SaveXML (SqlXml XmlData, SqlString FileName)

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(XmlData.Value);
xmlDoc.Save(FileName.Value);

이렇게 작성한 다음 이것을 빌드한다.

아래 부분은 SQL Server management Studio에서 작성하는 것이다. 여기서는 AdventureWorks 라는 데이터베이스를 이용하는것으로 한다. 참고로 AdventureWorks는 SQL Server 2005를 설치하면 기본으로 생성되는 예제 데이터베이스이다.

USE AdventureWorks
GO

CREATE ASSEMBLY ManagedCode
FROM 'C:\Program Files\Microsoft SQL Server\Stored Procedure\ManagedCode.dll'
WITH PERMISSION_SET = EXTERNAL_ACCESS
GO

CREATE PROCEDURE dbo.SaveXML (@XmlData xml,  
                   @FileName nvarchar(20))
AS EXTERNAL NAME
ManagedCode.[FileUtilities.StoredProcedures].SaveXML


위의 코드에서 보는바와 같이 Create Assembly 를 이용하여 VS.NET에서 생성한 어셈블리를 등록하고 이를 프로시저에서 사용하도록 지정해 주면 된다.
SaveXML 프로시저를 이용하여 보면 다음과 같이 테스트 할수있다. SQL Server에서 CLR을 사용할 수 있게 하려면 다음과 같이 SQL Server 옵션을 정해주면 된다.

sp_configure ‘clr_enabled’ , 1
Go

DECLARE @productList xml
SET @productList = (SELECT ProductID, Name, ListPrice
                    FROM Production.Product Product
                    FOR XML AUTO, ROOT('Catalog'), TYPE)
EXEC dbo.SaveXML @productList, 'C:\Catalog.xml'


그림 4 [ 저장프로시저의 결과물인 XML 파일 ]

지금까지 간단하게 SQL Server 에서의 CLR 통합이 어떻게 이루어지나를 보았다.
다음 컬럼에서는 T-SQL이 얼마나 개선되어 달라졌는가를 살펴보기로 하겠다.

*출저 MCP월드


     
  차세대 운영체제 윈도우 비스타 탄생   05·08·08 11367
  윈도우 서버 2003 SP1 RTM 발표   05·04·28 4499
Copyright 1999-2026 Zeroboard / skin by GGAMBO