다음을 통해 공유


관리 코드를 사용하여 데이터베이스 개체를 만드는 경우의 이점

업데이트: 2007년 11월

Transact-SQL 프로그래밍 언어뿐만 아니라 .NET Framewor 언어를 사용하여 데이터베이스 개체를 만들고 Microsoft SQL Server 2005 데이터베이스의 데이터를 검색 및 업데이트할 수 있습니다. Visual Basic, Visual C# 또는 Visual C++ 프로젝트에서 저장 프로시저, 트리거, 집합체, 사용자 정의 함수 및 사용자 정의 형식을 만들 수 있습니다.

참고:

기본적으로 Microsoft SQL Server에서는 CLR(공용 언어 런타임) 통합 기능이 비활성화됩니다. SQL Server 프로젝트 항목을 사용하려면 이를 활성화해야 합니다. CLR 통합 기능을 사용하도록 설정하려면 sp_configure 저장 프로시저의 clr enabled 옵션을 사용합니다. 자세한 내용은 CLR 통합 설정을 참조하십시오.

다음은 Transact-SQL 대신 .NET Framework 언어를 사용할 때의 이점을 요약한 목록입니다.

  • 향상된 프로그래밍 모델   .NET Framework 언어는 이전에 사용할 수 없었던 구문과 기능을 SQL 개발자에게 제공합니다.

  • 향상된 안전성 및 보안 관리 코드는 데이터베이스 엔진에 의해 호스팅되는 공용 언어 런타임 환경에서 실행됩니다. 이렇게 함으로써 .NET Framework 데이터베이스 개체의 안전성과 보안이 이전 버전의 SQL Server에서 사용되던 확장 저장 프로시저보다 개선됩니다.

  • 사용자 정의 형식 및 집합체 사용자 정의 형식과 사용자 정의 집합체는 SQL Server의 저장소 및 쿼리 기능을 확장하는 두 개의 새로운 관리되는 데이터베이스 개체입니다.

  • 공용 개발 환경   데이터베이스 개발이 Microsoft Visual Studio 개발 환경에 통합되었습니다. 개발자는 중간 계층 또는 클라이언트 계층 .NET Framework 구성 요소와 서비스를 작성할 때 사용하는 것과 같은 도구를 사용하여 데이터베이스 개체와 스크립트를 개발하고 디버깅할 수 있습니다.

  • 성능 향상 데이터베이스의 행마다 수학 연산을 실행하는 함수 등 일부 함수는 Transact-SQL로 작성된 해석된 코드일 때보다 Visual Basic, Visual C# 또는 Visual C++ 프로젝트에서 빌드된 컴파일된 어셈블리일 때 성능이 더 좋습니다. 예를 들면 함수, 특히 정수 연산을 수행하는 함수의 경우에 이러한 성능 향상이 이루어집니다. 그러나 데이터에 액세스하기만 하는 저장 프로시저의 경우에는 성능이 향상되지 않습니다.

  • 언어의 다양한 기능 Visual Basic, Visual C# 및 Visual C++에서는 배열, 복잡한 예외 처리, 코드 재사용 등 Transact-SQL에서 사용할 수 없는 기능을 제공합니다.

  • 코드 재사용 관리되는 어셈블리의 라이브러리를 만들고 Transact-SQL 스크립트를 배포하는 것보다 훨씬 쉽게 배포할 수 있습니다.

  • 확장성 Visual Basic, Visual C# 또는 Visual C++를 사용하면 Transact-SQL을 사용해서는 만들 수 없는 두 가지 데이터베이스 개체(집합체 및 사용자 정의 형식)를 만들 수 있습니다.

  • 기존 기술 활용 예전에 데이터베이스 개체를 만들 때 경험했던 언어와 개발 환경에서 기술을 사용하고 향상시킬 수 있습니다.

  • 풍부한 개발자 경험 SQL Server 프로젝트 템플릿을 사용하여 데이터베이스 개체를 개발하면 프로젝트 시스템과의 완벽한 통합을 경험할 수 있습니다. 여기에는 빌드, 디버깅, 여러 서버로의 배포가 포함됩니다.

  • 안정성 Visual Basic, Visual C# 또는 Visual C++를 사용하여 만든 데이터베이스 개체는 메모리 누수 또는 서버의 성능과 안정성을 저해하는 다른 문제를 발생시킬 가능성이 있는 확장 저장 프로시저보다 훨씬 안전하고 강력합니다. Visual Basic, Visual C# 또는 Visual C++에서 만든 저장 프로시저를 실행하면 메모리 관리 및 스레딩이 저장 프로시저에 의해 수행되지 않으므로 더욱 엄격하게 처리됩니다.

  • 보안 Visual Basic, Visual C# 또는 Visual C++에서 만든 데이터베이스 개체를 사용하면 이러한 언어의 코드 액세스 보안이 SQL Server의 사용자 기반 권한과 결합됩니다.

저장 프로시저 및 트리거

저장 프로시저는 데이터베이스에서 작업을 수행하는 프로그래밍 문을 미리 컴파일한 컬렉션이며, 이름으로 저장되고 하나의 단위로 처리됩니다. 저장 프로시저에 대한 자세한 내용은 SQL Server 설명서를 참조하십시오.

트리거는 지정된 테이블의 데이터에 대하여 여러 가지 데이터 수정 작업(UPDATE, INSERT, DELETE 등)을 하는 경우에 활성화되는 특별한 종류의 저장 프로시저입니다. 트리거에 대한 자세한 내용은 SQL Server 설명서를 참조하십시오.

Visual Basic, Visual C# 및 Visual C++ 언어의 풍부한 기능을 통해 저장 프로시저 및 트리거의 개발 환경이 개선됩니다. 특히 비즈니스 규칙을 적용해야 하는 복잡한 절차적 논리를 구현할 경우 유용합니다. 또한 .NET Framework에는 다양한 라이브러리가 들어 있습니다. 특히 암호화의 여러 측면을 관리할 수 있는 기능, 광범위한 수학 라이브러리 그리고 웹 서비스, 파일 및 비즈니스 간 통신 시스템에 대한 외부 액세스를 제공하는 라이브러리가 있습니다.

함수

함수는 하나 이상의 값에 대해 작동하여 스칼라 값이나 테이블을 반환합니다. Transact-SQL 프로그래밍 언어에서 제공하는 함수 형식에 대한 자세한 내용은 SQL Server 설명서를 참조하십시오.

저장 프로시저 및 트리거와 마찬가지로 Visual Basic, Visual C# 및 Visual C++ 언어의 풍부한 기능을 활용할 수 있고 .NET Framework에 들어 있는 다양한 라이브러리에 액세스할 수 있으므로 함수 개발 환경이 개선됩니다.

집합체

집계 함수는 테이블의 모든 데이터를 요약하는 데 사용됩니다. 집계 함수는 일련의 값을 계산하여 단일 스칼라 값을 반환합니다. Transact-SQL 프로그래밍 언어에서 제공하는 집계 함수에 대한 자세한 내용은 SQL Server 설명서를 참조하십시오.

이러한 집계 함수를 보완하기 위해 더욱 복잡한 산술 함수를 수행하는 새로운 집합체를 정의할 수 있습니다. 예를 들어, 여러 행에 있는 데이터에 대해 계산을 수행하고 값 하나를 반환하거나 연결된 문자열을 만들 수 있습니다.

사용자 정의 형식

형식은 데이터의 특성을 지정합니다. SQL Server에서 제공되는 일련의 시스템 데이터 형식에 대한 자세한 내용은 SQL Server 설명서를 참조하십시오.

Visual Basic, Visual C# 및 Visual C++를 사용하면 SQL Server에서 제공되는 미리 정의된 형식에 제한받지 않고 새로운 형식을 정의할 수 있습니다. 우편 번호와 같은 단순한 형식에서 신용 카드 거래에서 반환된 정보를 구문 분석하기 위한 복잡한 형식까지 만들 수 있습니다. 또한 사용자 정의 형식을 사용하여 작업할 경우 SQL 클라이언트와 SQL Server 모두에서 데이터를 해석하고 조작할 수 있으므로 ADO.NET을 사용하여 SQL Server로부터 형식 정의가 포함된 어셈블리를 다운로드하여 SQL 클라이언트에서 데이터를 검사하는 데 사용할 수 있습니다.

참고 항목

작업

방법: SQL Server 프로젝트 만들기

방법: CLR SQL Server 저장 프로시저 만들기 및 실행

방법: CLR SQL Server 트리거 만들기 및 실행

방법: CLR SQL Server 집계 만들기 및 실행

방법: CLR SQL Server 사용자 정의 함수 만들기 및 실행

방법: CLR SQL Server 사용자 정의 형식 만들기 및 실행

연습: 관리 코드로 저장 프로시저 만들기

방법: SQL CLR 저장 프로시저 디버깅

개념

SQL Server CLR 통합 소개

관리 코드를 사용하여 데이터베이스 개체를 만드는 경우의 이점

SQL Server 프로젝트에 대한 항목 템플릿

참조

SQL Server 프로젝트 및 데이터베이스 개체의 특성

기타 리소스

SQL CLR 데이터베이스 디버깅