Visual Studio의 데이터베이스 기능에 대한 아키텍처 개요

Visual Studio에서는 응용 프로그램 개발 팀의 다른 멤버에게 제공하는 것과 같은 도구, 기능 및 특징의 대부분을 데이터베이스 개발자에게 제공합니다. 예를 들어 소프트웨어 개발자가 소스 코드에 사용하는 것과 같은 버전 제어 시스템 및 기타 수명 주기 도구를 데이터베이스에 사용할 수 있습니다. Visual Studio의 아키텍처는 Visual Studio Team Foundation Server와 긴밀하게 통합되어 있으므로 응용 프로그램의 다른 부분을 개발하는 멤버와의 공동 작업을 향상시키는 동시에 데이터베이스 개발 프로세스를 쉽게 관리할 수 있습니다.

Visual Studio에서 데이터베이스 개발을 지원하는 기능에 대한 자세한 내용은 데이터베이스 변경 내용 관리를 참조하십시오.

Visual Studio 통합

Visual Studio의 핵심 아키텍처가 Visual Studio Team Foundation Server와 통합되어 있을 뿐만 아니라 인터페이스도 전체 구성 요소에서 일치합니다. 데이터베이스 프로젝트, 서버 프로젝트 및 데이터 계층 응용 프로그램 프로젝트에 대한 작업 방법은 Visual Studio의 다른 프로젝트 형식에 대한 작업 방법과 거의 동일합니다. 데이터베이스 관련 템플릿은 새 프로젝트프로젝트 항목 추가 대화 상자에 나타납니다. 또한 빌드 및 배포와 같은 작업을 수행하고 대상 데이터베이스 연결 및 데이터베이스 데이터 정렬과 같이 특별히 데이터베이스 개발을 대상으로 하는 설정을 구성할 수도 있습니다.

데이터베이스 프로젝트는 기존 프로젝트 형식과 동일하게 솔루션 탐색기에 나타납니다. 이러한 프로젝트는 버전 제어를 통해 관리할 수 있으며, 프로젝트 항목을 추가, 제거 및 MSBuild를 사용하여 빌드할 수 있습니다.

아키텍처 구성

Visual Studio에는 다음과 같은 아키텍처 영역이 있습니다.

  • 데이터베이스 프로젝트

  • 데이터베이스 수명 주기 인프라

각 데이터베이스 프로젝트는 데이터베이스의 오프라인 표현으로, Visual Studio 솔루션 구조에 있습니다. 변경 내용을 Microsoft SQL Server 2005 또는 Microsoft SQL Server 2008의 활성 인스턴스에 적용하려면 변경 내용을 빌드하여 데이터베이스 프로젝트에 배포해야 합니다.

데이터베이스 수명 주기 인프라

데이터베이스 수명 주기 인프라는 데이터베이스 프로젝트와 데이터베이스의 논리 표현(모델) 간에 다양한 서비스를 제공합니다. 이 인프라에는 모든 데이터베이스 프로젝트에 필요한 여러 가지 기본 기능이 있습니다. 이러한 기능을 통칭하여 데이터베이스 프로젝트 파운데이션이라고 합니다. 또한 이러한 데이터베이스 프로젝트 파운데이션을 바탕으로 빌드되는 기능을 데이터베이스 프로젝트 기능이라고 합니다.

데이터베이스 프로젝트 파운데이션

데이터베이스 프로젝트 파운데이션에는 다음과 같은 핵심 기능이 포함됩니다.

  • 프로젝트 및 프로젝트 항목 구문 분석
    기본 기능은 데이터베이스 프로젝트 아티팩트 및 테이블, 뷰, 저장 프로시저 등의 데이터베이스 프로젝트 항목을 구문 분석합니다. 이렇게 함으로써 데이터베이스 프로젝트를 구성하는 스크립트 파일에서 데이터베이스 개체에 대한 정보를 추출합니다. 예를 들어 이 기능은 기존 데이터베이스 스크립트에서 데이터베이스 개체를 가져올 때 적용됩니다. 데이터베이스 프로젝트는 Transact-SQL 스크립트 컬렉션으로 구성됩니다. 데이터베이스 프로젝트 시스템은 논리적 스키마 개체로 이러한 스크립트와 상호 작용할 수 있도록 스크립트를 해석합니다.

  • 데이터베이스 스키마 가져오기
    데이터베이스 스키마 가져오기 기능을 사용하여 기존 데이터베이스를 Visual Studio로 가져오고 이 데이터베이스를 버전 제어에서 관리하도록 할 수 있습니다. 데이터베이스가 버전 제어에서 관리되는 환경에서도 활성 데이터베이스 서버에서 변경 내용이 발생하여 데이터베이스 프로젝트로 해당 변경 내용을 다시 가져와야 할 수 있습니다. 스키마 비교를 사용하여 데이터베이스 서버에서 개발 중인 데이터베이스 프로젝트로 변경 내용을 가져올 수 있습니다.

  • 데이터베이스 개체 간의 종속성 추적
    데이터베이스 프로젝트 시스템은 자동으로 데이터베이스 개체 간의 종속성을 추적합니다. 개체 간의 종속성을 추적하여 올바른 개체가 빌드 및 배포되는지 확인합니다. 제품에 주요 변경 내용을 도입하는 경우 처음 변경 내용을 저장할 때 주요 변경 내용임을 알게 됩니다. 스키마 종속성 뷰어를 사용하여 데이터베이스 개체 간의 종속성을 보고 탐색할 수 있습니다. 일반적으로 데이터베이스 단위 테스트를 빌드, 배포 또는 실행할 때 주요 변경 내용을 발견합니다. 데이터베이스 리팩터링은 이러한 종속성을 사용하여 필요한 변경 내용을 식별하며, 데이터 생성은 데이터 생성 계획의 일부로 종속 관계를 표시할 수 있습니다.

  • 데이터베이스 리팩터링
    데이터베이스 리팩터링은 데이터베이스 개체 간의 종속성을 식별하고 이 정보를 사용하여 변경 내용을 정확하게 데이터베이스 및 단위 테스트 프로젝트로 전파합니다. 데이터베이스 리팩터링은 Visual Studio Premium과 Visual Studio Ultimate에서만 사용할 수 있습니다.

  • 새 배포 및 기존 배포에 대한 배포 스크립트 만들기
    배포 스크립트는 데이터베이스를 만들거나 기존 데이터베이스를 데이터베이스 프로젝트의 스키마와 일치하도록 업데이트하는 데 사용됩니다. 배포 스크립트는 배포 전 스크립트, 데이터베이스 개체 생성 스크립트 및 배포 후 스크립트로 구성됩니다. 기존 데이터베이스로 배포하는 경우 배포할 때 데이터베이스 프로젝트가 대상 데이터베이스의 현재 스키마와 비교됩니다. ALTER, CREATE 및 DROP 문의 조합을 사용하여 대상 데이터베이스를 업데이트하도록 업데이트 스크립트가 생성됩니다.

  • 빌드 유효성 검사
    이 기능에는 데이터베이스 프로젝트에 포함된 개체의 구조 및 관계 유효성을 검사하고, 배포 전 및 배포 후 스크립트의 구문 유효성을 검사하고, 해당 결과를 보고하는 기능이 포함됩니다.

데이터베이스 프로젝트 기능

데이터베이스 프로젝트에 제공되는 핵심 서비스 외에도 데이터베이스 프로젝트 파운데이션을 바탕으로 추가 기능이 빌드됩니다. 이러한 기능에는 다음이 포함됩니다.

  • 데이터베이스 스키마 비교
    데이터베이스 프로젝트의 현재 버전, 데이터베이스 프로젝트를 빌드할 때 만들어진 컴파일된 .dbschema 파일의 이전 버전 또는 하나 이상의 활성 데이터베이스 중 어느 위치에 있는지에 관계없이 두 데이터베이스 스키마를 비교하는 기능을 제공합니다. 대상 데이터베이스의 구조를 소스 데이터베이스의 구조와 일치시키는 데 필요한 스크립트를 생성할 수도 있습니다. 스키마 비교는 Visual Studio Premium과 Visual Studio Ultimate에서만 사용할 수 있습니다.

  • 데이터베이스 데이터 비교
    일치하는 스키마가 포함된 활성 데이터베이스가 있는 경우 두 데이터베이스의 데이터를 비교하는 기능을 제공합니다. 대상 데이터베이스의 데이터를 소스 데이터베이스의 데이터와 일치시키는 데 필요한 스크립트를 생성할 수도 있습니다. 데이터 비교는 Visual Studio Premium과 Visual Studio Ultimate에서만 사용할 수 있습니다.

  • 데이터베이스 단위 테스트
    저장 프로시저 또는 함수에 대한 단위 테스트를 자동으로 생성하고 올바른 Transact-SQL로 구성된 단위 테스트를 수동으로 만듭니다. 이 서비스를 사용하면 다른 곳에서 변경된 내용이 자신의 작업과 충돌하지 않는지 확인할 수 있습니다. 단위 테스트의 일부로 데이터베이스를 자동으로 빌드 및 배포하고 재현 가능한 테스트 데이터를 생성하여 일관된 시작 상태를 설정할 수 있습니다. 이 서비스에는 단위 테스트에 다시 사용 가능한 유효성 검사 논리를 추가하기 위해 사용자 지정 테스트 조건을 작성하는 데 사용할 수 있는 공용 API도 포함됩니다. Visual Studio Professional, Visual Studio Premium 또는 Visual Studio Ultimate에서 데이터베이스 단위 테스트를 실행할 수 있지만 데이터베이스 단위 테스트를 만들거나 수정하려면 Visual Studio Premium 및 Visual Studio Ultimate가 있어야 합니다.

  • 데이터 생성
    기밀 정보를 포함할 수 있는 프로덕션 데이터의 복사본이 아닌 실제 테스트 데이터로 데이터베이스를 채우는 기능을 제공합니다. 사용자 지정 데이터 생성기를 만들 수도 있습니다. 이 서비스에는 CLR 데이터 형식, 사용자 정의 형식 및 사용자 정의 데이터 형식에 사용할 사용자 지정 데이터 생성기를 작성하거나 기본 제공 형식에 대해 사용자 지정 데이터 생성 알고리즘을 사용하기 위한 공용 API도 포함됩니다. 데이터 생성 계획을 만들거나 수정하려면 Visual Studio Premium 및 Visual Studio Ultimate이 있어야 합니다.

  • 데이터베이스 스크립트 작성 및 실행
    쿼리 분석기 또는 SQL Server Management Studio를 사용하는 방법과 유사하게 데이터베이스 스크립트를 생성, 분석 및 실행할 수 있는 Transact-SQL 편집기를 제공합니다. 데이터베이스 프로젝트의 스크립트를 수정할 때도 이 편집기를 사용합니다. 동일한 편집기이므로 오프라인 데이터베이스 프로젝트에서 작업하든 라이브 데이터베이스 서버에 대해 직접 스크립트를 실행하든 관계없이 일관된 사용자 인터페이스를 제공합니다.

명령줄 지원

정기적으로 수행하는 일부 작업은 자동화된 프로세스의 일부로 실행할 수 있어야 합니다. 이 시나리오를 지원하기 위해 데이터베이스 프로젝트를 빌드하고 배포한 다음, 예측 가능한 대표 테스트 데이터 생성을 포함할 수 있는 단위 테스트를 명령줄에서 실행할 수 있습니다.

참고 항목

작업

연습: 격리된 데이터베이스 개발 환경 만들기

연습: 격리된 개발 환경을 위한 기준 설정

연습: 격리된 개발 환경에서 반복 데이터베이스 개발 수행

개념

데이터베이스 변경 내용 관리

Visual Studio의 데이터베이스 기능 확장