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

연습: 격리된 데이터베이스 개발 환경 만들기에서는 데이터베이스 관리자 역할로 데이터베이스 프로젝트를 만들고 프로덕션 서버에서 스키마 및 데이터베이스 개체 정의를 가져왔습니다. 또한 두 번째 연습에서는 데이터베이스 단위 테스트를 만들어 기존 기능을 확인하고 기준을 설정했습니다.

이 시리즈의 세 번째이자 마지막인 이 연습에서는 두 데이터베이스 열의 이름을 바꾸는 일반적인 반복 개발 작업을 수행합니다. 격리된 개발 환경에서 이러한 변경 내용을 적용하면 변경 내용을 공유할 준비가 될 때까지 나머지 팀 멤버에게 영향을 줄 수 있는 위험 요소를 최소화할 수 있습니다.

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

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

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

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

사전 요구 사항

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

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

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

수정하기 전에 데이터베이스 프로젝트가 최신 버전인지 확인해야 합니다.

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

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

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

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

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

BusinessEntityID의 이름을 BusinessEntityNumber로 바꾸려면

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

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

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

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

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

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

  5. 스키마 뷰에서 AdvWorksSandbox 노드, HumanResources 스키마, 테이블 폴더를 차례로 확장합니다.

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

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

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

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

  9. 경고 또는 오류가 포함된 스키마 개체의 참조 업데이트 확인란을 선택합니다.

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

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

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

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

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

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

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

  • Employee.table.sql

  • ufnGetContactInformation.function.sql

  • uspGetEmployeeManagers.proc.sql

  • uspGetManagerEmployees.proc.sql

  • uspUpdateEmployeeHireInfo.proc.sql

  • uspUpdateEmployeeLogin.proc.sql

  • uspUpdateEmployeePersonalInfo.proc.sql

  • FK_EmployeeDepartmentHistory_Employee_BusinessEntityID.fkey.sql

  • FK_EmployeePayHistory_Employee_BusinessEntityID.fkey.sql

  • FK_Employee_Person_BusinessEntityID.fkey.sql

  • FK_JobCandidate_Employee_BusinessEntityID.fkey.sql

  • PK_Employee_BusinessEntityID.pkey.sql

  • vEmployee.view.sql

  • vEmployeeDepartment.view.sql

  • FK_Document_Employee_Owner.fkey.sql

  • FK_PurchaseOrderHeader_EmployeeID.fkey.sql

  • FK_SalesPerson_Employee_BusinessEntityID.fkey.sql

  • vSalesPerson.view.sql

  • vSalesPersonSalesByFiscalYears.view.sql

  • AWGenPlan.dgen

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

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

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

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

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

  2. dbo_ufpLeadingZeroTest를 선택하고 마우스 오른쪽 단추를 클릭한 다음 선택 항목 실행을 클릭합니다.

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

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

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

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

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

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

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

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

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

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

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

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

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

변경 내용 체크 인

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

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

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

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

  2. 설명에 "BusinessEntityID 열 이름이 바뀜"을 입력합니다.

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

    데이터베이스 프로젝트와 이 프로젝트에 포함된 파일이 버전 제어에 체크 인될 때 체크 인 진행률 대화 상자가 나타납니다. 솔루션 탐색기의 아이콘이 업데이트되어 파일이 버전 제어에 체크 인되었다는 것을 나타냅니다.

다음 단계

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

참고

처음에 AdventureWorks2008을 가져온 서버와 동일한 서버로 배포하는 경우 오류가 발생할 수 있습니다. 파일이 이미 있어 만들 수 없음을 나타내는 오류가 발생하는 경우 첫 번째 연습에서 한 단계를 수행하지 않았을 수 있습니다. 자세한 내용은 프로젝트를 격리된 개발 환경에 배포하려면을 참조하십시오.

Visual Studio의 데이터베이스 기능에 대한 자세한 내용을 알아보려면 각 기능 영역에 대해 좀 더 면밀한 연습을 실행해 보십시오.

참고 항목

개념

데이터베이스 코드 및 데이터 리팩터링

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

단위 테스트를 사용하여 데이터베이스 코드 확인

데이터베이스 스키마 비교 및 동기화