다음을 통해 공유


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

업데이트: 2007년 11월

연습: 격리된 데이터베이스 개발 환경 만들기에서는 데이터베이스 관리자 역할로 데이터베이스 프로젝트를 만들고 프로덕션 서버에서 스키마 및 데이터베이스 개체 정의를 가져왔습니다. 또한 두 번째 연습에서는 데이터베이스 단위 테스트를 만들어 기존 기능을 확인하고 기준을 설정했습니다. 이 시리즈의 세 번째이자 마지막인 이 연습에서는 두 데이터베이스 열의 이름을 바꾸는 일반적인 반복 개발 작업을 수행합니다. 격리된 개발 환경에서 이러한 변경 내용을 적용하면 변경 내용을 공유할 준비가 될 때까지 나머지 팀 멤버에게 영향을 줄 수 있는 위험 요소를 최소화할 수 있습니다.

이 연습에서 수행할 작업은 다음과 같습니다.

  • 데이터베이스 리팩터링을 통해 열 이름을 바꿔 열에 대한 모든 참조를 업데이트하는 데 필요한 시간 절약 및 오류 발생 가능성 감소

  • 데이터베이스 단위 테스트를 실행하여 변경 내용으로 인해 기존 기능이 중단되지 않는지 확인

  • 나머지 팀 멤버가 사용할 수 있도록 변경 내용을 버전 제어에 체크 인

사전 요구 사항

Visual Studio Team System Database Edition이 설치되어 있으며 Microsoft SQL Server 2005용 AdventureWorks 샘플 데이터베이스에 액세스할 수 있어야 합니다. 또한 이 연습에서는 사용자가 연습: 격리된 데이터베이스 개발 환경 만들기연습: 격리된 개발 환경을 위한 기준 설정을 완료했다고 가정합니다.

데이터베이스 열 이름 바꾸기

일반적인 개발 작업에는 데이터베이스 개체 이름 바꾸기가 포함됩니다. 이 연습에서는 [HumanResources].[Employee] 테이블에 있는 EmployeeID 열의 이름을 EmployeeNumber로 바꿉니다. EmployeeID 열은 여러 외래 키와 저장 프로시저에서 참조하므로 수동으로 변경하려면 여러 파일을 수정해야 합니다. 수정하기 전에 데이터베이스 프로젝트가 최신 버전인지 확인해야 합니다.

데이터베이스 프로젝트의 최신 버전을 가져오려면

  1. 팀 탐색기에서 데이터베이스 프로젝트가 있는 팀 프로젝트 노드를 확장합니다.

  2. 소스 제어 노드를 두 번 클릭하여 소스 제어 탐색기를 엽니다.

  3. 소스 제어 탐색기에서 데이터베이스 프로젝트를 마우스 오른쪽 단추로 클릭하고 최신 버전 가져오기를 클릭합니다.

    데이터베이스 프로젝트가 있는 가장 최신 버전의 솔루션을 컴퓨터로 가져오게 됩니다.

EmployeeID의 이름을 EmployeeNumber로 바꾸려면

  1. AdvWorksSandbox 솔루션이 솔루션 탐색기에 열려 있는 경우 4단계로 이동합니다.

  2. 파일 메뉴에서 열기를 가리킨 다음 프로젝트/솔루션을 클릭합니다.

    프로젝트 열기 대화 상자가 나타납니다.

  3. AdvWorksSandbox 솔루션을 클릭한 다음 열기를 클릭합니다. 기본적으로 이 솔루션은 My Documents\Visual Studio 2005\Projects\AdvWorksSandbox에 있습니다.

    AdvWorksSandbox 솔루션이 솔루션 탐색기에서 열립니다.

  4. 보기 메뉴를 열고 스키마 뷰를 클릭합니다.

  5. 스키마 뷰에서 AdvWorksSandbox 노드를 확장한 다음 테이블 폴더를 확장합니다.

  6. 테이블 폴더에서 HumanResources.Employee 테이블을 확장한 다음 열 폴더를 확장합니다.

  7. EmployeeID 폴더를 마우스 오른쪽 단추로 클릭하고 리팩터링을 가리킨 다음 이름 바꾸기를 클릭합니다.

    이름 바꾸기 대화 상자가 나타나고 기존 열 이름이 표시됩니다.

  8. 새 이름에 EmployeeNumber를 입력합니다.

  9. 변경 내용 미리 보기 확인란이 선택되어 있지 않은 경우 선택하고 확인을 클릭합니다.

    변경 내용 미리 보기 - 이름 바꾸기 대화 상자가 나타나고 이름을 바꾸려는 열을 참조하는 프로젝트의 모든 항목이 표시됩니다.

  10. 변경 내용 중 하나를 클릭합니다.

    변경 내용 미리 보기에 자세한 변경 내용이 나타납니다.

  11. 변경 내용을 검토한 다음 적용을 클릭하여 변경 내용을 적용합니다.

    수정된 모든 파일이 버전 제어에서 체크 아웃됩니다.

보류 중인 변경 내용 창에서 보류 중인 변경 내용을 확인할 수 있습니다. 보류 중인 변경 내용 창에 나타나는 파일은 다음과 같습니다.

  • AWGenPlan.dgen

  • Employee.table.sql

  • Employee.PK_Employee_EmployeeID.sql

  • vSalesPerson.view.sql

  • uspGetManagerEmployees.proc.sql

  • vEmployee.view.sql

  • vEmployeeDepartmentHistory.view.sql

  • uspUpdateEmployeePersonalInfo.proc.sql

  • uspUpdateEmployeeHireInfo.proc.sql

  • uspUpdateEmployeeLogin.proc.sql

  • PurchaseOrderHeader.FK_PurchaseOrderHeader_Employee_EmployeeID.fkey.sql

  • Employee.FK_Employee_Employee_ManagerID.fkey.sql

  • EmployeePayHistory.FK_EmployeePayHistory_Employee_EmployeeID.fkey.sql

  • EmployeeDepartmentHistory.FK_EmploymentDepartmentHistory_Employee_EmployeeID.fkey.sql

  • JobCandidate.FK_JobCandidate_Employee_EmployeeID.fkey.sql

  • EmployeeAddress.FK_EmployeeAddress_Employee_EmployeeID.fkey.sql

  • SalesPerson.FK_SalesPerson_Employee_EmployeeID.fkey.sql

  • Employee.uEmployee.trigger.sql

데이터베이스 단위 테스트 실행

변경 내용을 적용한 다음 버전 제어에 체크 인하기 전에 데이터베이스 단위 테스트를 실행하여 응용 프로그램이 여전히 올바르게 작동하는지 확인한 후 해당 변경 내용을 팀 멤버와 공유해야 합니다.

데이터베이스 단위 테스트를 실행하여 잠재적 문제를 확인하려면

  1. 테스트 메뉴에서 창을 가리킨 다음 테스트 뷰를 클릭합니다.

    테스트 뷰 창에 여러 테스트가 나열됩니다. 기본적으로 ManualTest1 및 TestMethod1이라는 이름의 테스트가 생성됩니다. dbo_uspGetManagerEmployeesTest 및 dbo_ufpLeadingZeroTest라는 이름의 테스트는 이전 연습에서 만든 테스트입니다.

  2. dbo_uspGetManagerEmployeesTest와 dbo_ufpLeadingZeroTest 확인란을 모두 선택하고 둘 중 하나를 마우스 오른쪽 단추로 클릭한 다음 선택 영역 실행을 클릭합니다.

  3. 테스트 결과 창에서 결과를 확인합니다.

    데이터베이스 프로젝트가 격리된 개발 환경에 배포되고 테스트 데이터가 생성되며 테스트가 실행되어 통과됩니다.

데이터베이스 프로젝트와 프로덕션 비교

업데이트된 데이터베이스 프로젝트의 스키마와 프로덕션 데이터베이스의 스키마를 비교하여 차이점을 확인할 수 있습니다. 둘 중 하나를 업데이트하는 것이 아니라 스키마를 비교만 하는 것이므로 비교를 위해 소스나 대상 중 어떤 것으로든 지정할 수 있습니다.

데이터베이스 프로젝트 스키마를 프로덕션 데이터베이스와 비교하려면

  1. 데이터 메뉴에서 스키마 비교를 가리킨 다음 새 스키마 비교를 클릭합니다.

    새 스키마 비교 대화 상자가 나타납니다.

  2. 소스 스키마의 기본값을 적용합니다.

    AdvWorksSandbox라는 데이터베이스 프로젝트가 지정됩니다.

  3. 대상 스키마의 Database 목록에서 처음에 데이터베이스 스키마를 가져온 AdventureWorks 데이터베이스에 대한 연결을 클릭하고 확인을 클릭합니다.

    스키마가 비교됩니다. 이 연습에서 변경한 내용만 달라야 합니다.

  4. 두 스키마의 차이점을 살펴봅니다. 다 살펴본 다음에는 스키마 비교 창을 닫습니다.

    이제 변경 내용을 팀과 공유할 수 있습니다.

변경 내용 체크 인

모든 변경 내용을 다른 팀 멤버와 공유할 준비가 되었는지 확인한 다음 버전 제어에 체크 인합니다. 솔루션에 대한 모든 변경 내용을 체크 인해야 하며 여기에는 일반적으로 데이터베이스 프로젝트, 단위 테스트 프로젝트 및 모든 연결된 응용 프로그램 코드와 응용 프로그램 단위 테스트가 포함됩니다.

변경 내용을 체크 인하고 팀에서 사용 가능하도록 하려면

  1. 보기 메뉴에서 다른 창을 가리킨 다음 보류 중인 변경 내용을 클릭합니다.

    보류 중인 변경 내용 창이 나타납니다.

  2. 주석에 이름을 바꾼 EmployeeID 열을 입력합니다.

  3. 보류 중인 변경 내용 창의 도구 모음에서 체크 인을 클릭합니다.

    데이터베이스 프로젝트 및 포함된 파일을 버전 제어에 체크 인하면 체크 인 진행률 대화 상자가 나타납니다. 해당 파일이 버전 제어에 체크 인되었음을 나타내기 위해 솔루션 탐색기의 아이콘이 업데이트됩니다.

다음 단계

이러한 반복 프로세스는 팀에서 프로덕션에 배포하는 데이터베이스의 각 버전에 대해 여러 번 발생합니다. 각 개발자는 격리 상태에서 변경 내용을 적용하고 테스트하여 올바른지 확인한 다음 업데이트 내용을 버전 제어에 체크 인하여 팀과 공유합니다. 프로덕션에 데이터베이스를 배포하는 프로세스는 간단합니다.

  1. 데이터베이스 프로젝트와 해당 테스트를 구성하는 파일 버전이 배포할 버전의 일부임을 표시하기 위해 레이블이 지정됩니다.

  2. 레이블이 지정된 소스를 가져와 빌드 스크립트를 생성합니다.

  3. 필요에 따라 빌드 스크립트를 검토 및 수정하고 스테이징 서버에 테스트 배포를 수행합니다. 각 배포 후에 데이터베이스 프로젝트를 스테이징 서버의 스키마와 비교할 수 있습니다.

  4. 프로덕션에 배포할 준비가 될 때까지 빌드 스크립트에서 반복 작업을 수행한 다음 수정한 빌드 스크립트를 프로덕션에 배포합니다.

  5. 데이터베이스 프로젝트에 반영되지 않은 내용을 변경해야 하는 경우 업데이트된 프로덕션 서버에서 데이터베이스 프로젝트로 업데이트 내용을 가져올 수 있습니다.

Database Edition에 대한 자세한 내용을 알아보려면 각 기능 영역에 대해 좀 더 면밀한 연습을 실행해 보십시오.

참고 항목

개념

Database Edition의 용어 개요

기타 리소스

데이터베이스 리팩터링

데이터베이스 단위 테스트 실행

데이터베이스 스키마 비교