다음을 통해 공유


연습: 새 버전 제어 데이터베이스 만들기 및 배포

업데이트: 2007년 11월

이 연습에서는 테이블 두 개와 저장 프로시저 하나가 포함된 단순한 데이터베이스를 만듭니다. 이 프로세스를 수행하려면 데이터베이스 프로젝트를 만들고 해당 프로젝트에 데이터베이스 개체를 만든 다음 변경 내용을 빌드하여 데이터베이스 서버로 배포해야 합니다. 데이터베이스 프로젝트를 만들면 데이터베이스 프로젝트가 버전 제어에 추가되므로 데이터베이스 스키마를 버전 제어에 추가할 수 있습니다.

이 연습의 주요 단계는 다음과 같습니다.

  • 데이터베이스 프로젝트를 만듭니다.

  • 데이터베이스 테이블을 만듭니다.

  • 해당 테이블에 대한 인덱스, 키 및 제약 조건을 만듭니다.

  • 저장 프로시저를 만듭니다.

  • 데이터베이스 프로젝트 속성을 구성합니다.

  • 데이터베이스 프로젝트를 빌드합니다.

  • 데이터베이스 프로젝트를 배포합니다.

  • 데이터베이스 프로젝트를 버전 제어에 추가합니다.

사전 요구 사항

이 연습을 수행하려면 Microsoft SQL Server 2000을 실행하는 데이터베이스 서버에서 데이터베이스를 만들 수 있는 권한이 있는 계정으로 로그온해야 합니다.

데이터베이스 프로젝트를 만들려면

  1. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 클릭합니다.

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

  2. 프로젝트 형식에서 데이터베이스 프로젝트를 확장하고 Microsoft SQL Server를 클릭합니다.

  3. 템플릿에서 SQL Server 2000을 클릭합니다.

  4. 이름에 ProductsDB를 입력합니다.

  5. 솔루션용 디렉터리 만들기 확인란을 선택합니다.

  6. 위치, 솔루션 이름 및 소스 제어에 추가에 대해 기본값을 적용한 다음 확인을 클릭합니다.

    참고:

    이때 솔루션을 버전 제어에 추가할 수 있습니다. 이 연습에서는 최종 단계에서 솔루션을 버전 제어에 추가합니다.

    새 데이터베이스 프로젝트 ProductsDB가 솔루션 탐색기에 나타납니다.

  7. 보기 메뉴에서 다른 창을 가리키고 스키마 뷰를 클릭합니다.

    스키마 뷰가 아직 표시되지 않은 경우 표시됩니다.

    다음에는 데이터베이스 프로젝트에 테이블을 추가합니다.

데이터베이스 프로젝트에 Categories 테이블을 추가하려면

  1. 스키마 뷰에서 ProductsDB 아래의 테이블 노드를 클릭합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

    새 항목 추가 대화 상자가 나타납니다.

    참고:

    스키마 뷰에서 ProductsDB 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 테이블을 클릭할 수도 있습니다.

  3. 템플릿에서 테이블을 클릭합니다.

  4. 이름에서 새 테이블에 지정할 이름으로 Categories를 입력합니다.

  5. 추가를 클릭하여 데이터베이스 프로젝트에 테이블을 추가합니다.

    솔루션 탐색기의 사용자 데이터베이스 프로젝트에 해당 테이블에 대한 새 파일이 표시됩니다. 스키마 뷰에는 새 테이블 개체가 표시됩니다. T-SQL(Transact-SQL) 편집기가 나타나고 새 테이블에 대한 정의를 표시합니다.

  6. T-SQL 편집기에서 다음 예제와 일치하도록 테이블 정의를 수정합니다.

    -- =============================================
    -- Create Categories table
    -- =============================================
    CREATE TABLE [dbo].[Categories]
    (
    [CategoryID] [int] NOT NULL IDENTITY(1, 1),
    [CategoryName] [nvarchar] (15) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [Description] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
    [Picture] [image] NULL
    ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
    
  7. 파일 메뉴에서 dbo.Categories.table.sql 저장을 클릭합니다.

  8. 스키마 뷰에서 dbo.Categories 노드를 확장합니다.

  9. dbo.Categories 테이블의 열 노드를 확장합니다.

    T-SQL 편집기에서 정의한 4개의 열이 나타납니다.

    다음에는 Categories 테이블에 인덱스를 추가합니다.

Categories 테이블에 인덱스를 추가하려면

  1. 스키마 뷰에서 dbo.Categories를 클릭합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

    새 항목 추가 대화 상자가 나타납니다.

    참고:

    스키마 뷰에서 dbo.Categories 테이블을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 인덱스를 클릭할 수도 있습니다.

  3. 템플릿에서 인덱스를 클릭합니다.

  4. 이름에서 새 인덱스에 지정할 이름으로 CategoriesCategoryID를 입력합니다.

  5. 추가를 클릭하여 Categories 테이블에 인덱스를 추가합니다.

    솔루션 탐색기의 사용자 데이터베이스 프로젝트에 해당 인덱스에 대한 새 파일이 표시됩니다. 스키마 뷰에는 새 인덱스 개체가 표시됩니다. T-SQL 편집기가 나타나고 새 인덱스에 대한 정의를 표시합니다.

    참고:

    스키마 뷰에서 인덱스의 아이콘에 흰색 "x"가 포함된 빨간색 원이 표시되어 기본 정의에 오류가 있음을 나타냅니다. 이는 기본 정의에서 존재하지 않는 "column_1" 열을 참조하기 때문이며 예상된 동작입니다.

  6. T-SQL 편집기에서 다음 예제와 일치하도록 인덱스 정의를 수정합니다.

    -- =============================================
    -- Create CategoriesCategoryID index 
    -- =============================================
    CREATE NONCLUSTERED INDEX [CategoriesCategoryID] 
    ON [dbo].[Categories] ([CategoryID]) 
    ON [PRIMARY]
    
  7. 파일 메뉴에서 CategoriesCategoryID.index.sql 저장을 클릭합니다.

    아이콘에서 오류 표시기가 사라져 이제 인덱스 정의가 유효함을 나타냅니다.

    다음에는 Categories 테이블에 기본 키를 추가합니다.

Categories 테이블에 기본 키를 추가하려면

  1. 스키마 뷰에서 dbo.Categories를 클릭합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

    새 항목 추가 대화 상자가 나타납니다.

    참고:

    스키마 뷰에서 dbo.Categories 테이블을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 기본 키를 클릭할 수도 있습니다.

  3. 템플릿에서 기본 키를 클릭합니다.

  4. 이름에서 새 기본 키에 지정할 이름으로 PK_Categories를 입력합니다.

  5. 추가를 클릭하여 Categories 테이블에 기본 키를 추가합니다.

    솔루션 탐색기의 사용자 데이터베이스 프로젝트에 해당 기본 키에 대한 새 파일이 표시됩니다. 스키마 뷰에는 새 기본 키 개체가 표시됩니다. T-SQL 편집기가 나타나고 새 키에 대한 정의를 표시합니다.

    참고:

    기본 키의 아이콘에 흰색 "x"가 포함된 빨간색 원이 표시되어 기본 정의에 오류가 있음을 나타냅니다. 이는 기본 정의에서 존재하지 않는 "column_1" 열을 참조하기 때문이며 예상된 동작입니다.

  6. T-SQL 편집기에서 다음 예제와 일치하도록 기본 키 정의를 수정합니다.

    -- =============================================
    -- Create PK_Categories primary key 
    -- =============================================
    ALTER TABLE [dbo].[Categories] 
    ADD CONSTRAINT [PK_Categories] 
    PRIMARY KEY CLUSTERED  ([CategoryID]) 
    ON [PRIMARY]
    
  7. 파일 메뉴에서 PK_Categories.pkey.sql 저장을 클릭합니다.

    아이콘에서 오류 표시기가 사라져 이제 기본 키 정의가 유효함을 나타냅니다.

    다음에는 Products 테이블을 추가합니다.

Products 테이블을 추가하려면

  1. 스키마 뷰에서 ProductsDB를 클릭합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

    새 항목 추가 대화 상자가 나타납니다.

    참고:

    스키마 뷰에서 ProductsDB 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 테이블을 클릭할 수도 있습니다.

  3. 템플릿에서 테이블을 클릭합니다.

  4. 이름에서 새 테이블에 지정할 이름으로 Products를 입력합니다.

  5. 추가를 클릭하여 데이터베이스 프로젝트에 테이블을 추가합니다.

    솔루션 탐색기의 사용자 데이터베이스 프로젝트에 해당 테이블에 대한 새 파일이 표시됩니다. 스키마 뷰에는 새 테이블 개체가 표시됩니다. T-SQL 편집기가 나타나고 새 테이블에 대한 정의를 표시합니다.

  6. T-SQL 편집기에서 다음 예제와 일치하도록 테이블 정의를 수정합니다.

    -- =============================================
    -- Create Products table
    -- =============================================
    CREATE TABLE [dbo].[Products]
    (
    [ProductID] [int] NOT NULL IDENTITY(1, 1),
    [ProductName] [nvarchar] (40) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
    [CategoryID] [int] NULL,
    [QuantityPerUnit] [nvarchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
    [UnitPrice] [money] NULL CONSTRAINT [DF_Products_UnitPrice] DEFAULT (0),
    [UnitsInStock] [smallint] NULL CONSTRAINT [DF_Products_UnitsInStock] DEFAULT (0),
    [UnitsOnOrder] [smallint] NULL CONSTRAINT [DF_Products_UnitsOnOrder] DEFAULT (0),
    [ReorderLevel] [smallint] NULL CONSTRAINT [DF_Products_ReorderLevel] DEFAULT (0),
    [Discontinued] [bit] NOT NULL CONSTRAINT [DF_Products_Discontinued] DEFAULT (0)
    ) ON [PRIMARY]
    
  7. 파일 메뉴에서 dbo.Products.table.sql 저장을 클릭합니다.

  8. 스키마 뷰에서 dbo.Products 노드를 확장합니다.

  9. dbo.Products 테이블의 열 노드를 확장합니다.

    T-SQL 편집기에서 정의한 9개의 열이 나타납니다.

    다음에는 Products 테이블에 인덱스를 추가합니다.

Products 테이블에 인덱스를 추가하려면

  1. 스키마 뷰에서 dbo.Products를 클릭합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

    새 항목 추가 대화 상자가 나타납니다.

    참고:

    스키마 뷰에서 dbo.Products 테이블을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 인덱스를 클릭할 수도 있습니다.

  3. 템플릿에서 인덱스를 클릭합니다.

  4. 이름에서 새 인덱스에 지정할 이름으로 ProductsCategoryID를 입력합니다.

  5. 추가를 클릭하여 Products 테이블에 인덱스를 추가합니다.

    솔루션 탐색기의 사용자 데이터베이스 프로젝트에 새 인덱스에 대한 파일이 표시됩니다. 스키마 뷰에는 새 인덱스 개체가 표시됩니다. T-SQL 편집기가 나타나고 새 인덱스에 대한 정의를 표시합니다.

    참고:

    스키마 뷰에서 인덱스의 아이콘에 흰색 "x"가 포함된 빨간색 원이 표시되어 기본 정의에 오류가 있음을 나타냅니다. 이는 기본 정의에서 존재하지 않는 "column_1" 열을 참조하기 때문이며 예상된 동작입니다.

  6. T-SQL 편집기에서 다음 예제와 일치하도록 인덱스 정의를 수정합니다.

    -- =============================================
    -- Create ProductsCategoryID index
    -- =============================================
    CREATE NONCLUSTERED INDEX [ProductsCategoryID] 
    ON [dbo].[Products] ([CategoryID]) 
    ON [PRIMARY]
    
  7. 파일 메뉴에서 ProductsCategoryID.index.sql 저장을 클릭합니다.

    아이콘에서 오류 표시기가 사라져 이제 인덱스 정의가 유효함을 나타냅니다.

    다음에는 Products 테이블에 기본 키를 추가합니다.

Products 테이블에 기본 키를 추가하려면

  1. 스키마 뷰에서 dbo.Products를 클릭합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

    새 항목 추가 대화 상자가 나타납니다.

    참고:

    스키마 뷰에서 dbo.Products 테이블을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 기본 키를 클릭할 수도 있습니다.

  3. 템플릿에서 기본 키를 클릭합니다.

  4. 이름에서 새 기본 키에 지정할 이름으로 PK_Products를 입력합니다.

  5. 추가를 클릭하여 Products 테이블에 기본 키를 추가합니다.

    솔루션 탐색기의 사용자 데이터베이스 프로젝트에 새 기본 키에 대한 파일이 표시됩니다. 스키마 뷰에는 새 기본 키 개체가 표시됩니다. T-SQL 편집기가 나타나고 새 기본 키에 대한 정의를 표시합니다.

    참고:

    기본 키의 아이콘에 흰색 "x"가 포함된 빨간색 원이 표시되어 기본 정의에 오류가 있음을 나타냅니다. 이는 기본 정의에서 존재하지 않는 "column_1" 열을 참조하기 때문이며 예상된 동작입니다.

  6. T-SQL 편집기에서 다음 예제와 일치하도록 기본 키 정의를 수정합니다.

    -- =============================================
    -- Create PK_Products primary key 
    -- =============================================
    ALTER TABLE [dbo].[Products] 
    ADD CONSTRAINT [PK_Products] 
    PRIMARY KEY CLUSTERED  ([ProductID]) 
    ON [PRIMARY]
    
  7. 파일 메뉴에서 PK_Products.pkey.sql 저장을 클릭합니다.

    아이콘에서 오류 표시기가 사라져 이제 기본 키 정의가 유효함을 나타냅니다.

    다음에는 Products 테이블에 외래 키를 추가합니다.

Products 테이블 및 Categories 테이블 간의 외래 키를 추가하려면

  1. 스키마 뷰에서 dbo.Products를 클릭합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

    새 항목 추가 대화 상자가 나타납니다.

    참고:

    스키마 뷰에서 dbo.Products 테이블을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 외래 키를 클릭할 수도 있습니다.

  3. 템플릿에서 외래 키를 클릭합니다.

  4. 이름에서 새 외래 키에 지정할 이름으로 FK_ProductsCategories를 입력합니다.

  5. 추가를 클릭하여 Products 테이블에 외래 키를 추가합니다.

    솔루션 탐색기의 사용자 데이터베이스 프로젝트에 새 외래 키에 대한 파일이 표시됩니다. 스키마 뷰에는 새 외래 키 개체가 표시됩니다. T-SQL 편집기가 나타나고 새 외래 키에 대한 정의를 표시합니다.

    참고:

    외래 키의 아이콘에 흰색 "x"가 포함된 빨간색 원이 표시되어 기본 정의에 오류가 있음을 나타냅니다. 이는 기본 정의에서 존재하지 않는 "column_1" 열을 참조하기 때문이며 예상된 동작입니다.

  6. T-SQL 편집기에서 다음 예제와 일치하도록 외래 키 정의를 수정합니다.

    -- =============================================
    -- Create FK_Products_Categories foreign key
    -- =============================================
    ALTER TABLE [dbo].[Products] WITH NOCHECK
    ADD CONSTRAINT [FK_Products_Categories] FOREIGN KEY ([CategoryID])
    REFERENCES [dbo].[Categories] ([CategoryID])
    
  7. 파일 메뉴에서 FK_ProductsCategories.fkey.sql 저장을 클릭합니다.

    아이콘에서 오류 표시기가 사라져 이제 외래 키 정의가 유효함을 나타냅니다.

    다음에는 Products 테이블에 CHECK 제약 조건을 추가합니다.

Products 테이블에 CHECK 제약 조건을 추가하려면

  1. 스키마 뷰에서 dbo.Products를 클릭합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

    새 항목 추가 대화 상자가 나타납니다.

    참고:

    스키마 뷰에서 dbo.Products 테이블을 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 CHECK 제약 조건을 클릭할 수도 있습니다.

  3. 템플릿에서 CHECK 제약 조건을 클릭합니다.

  4. 이름에서 새 CHECK 제약 조건에 지정할 이름으로 CK_ProductsUnitPrice를 입력합니다.

  5. 추가를 클릭하여 Products 테이블에 제약 조건을 추가합니다.

    솔루션 탐색기의 사용자 데이터베이스 프로젝트에 새 제약 조건에 대한 파일이 표시됩니다. 스키마 뷰에는 새 제약 조건 개체가 표시됩니다. T-SQL 편집기가 나타나고 새 제약 조건에 대한 정의를 표시합니다.

    참고:

    제약 조건의 아이콘에 흰색 "x"가 포함된 빨간색 원이 표시되어 기본 정의에 오류가 있음을 나타냅니다. 이는 기본 정의에서 존재하지 않는 "column_1" 열을 참조하기 때문이며 예상된 동작입니다.

  6. T-SQL 편집기에서 다음 예제와 일치하도록 제약 조건 정의를 수정합니다.

    -- =============================================
    -- Create CK_ProductsUnitPrice check constraint
    -- =============================================
    ALTER TABLE [dbo].[Products] WITH NOCHECK 
    ADD CONSTRAINT [CK_Products_UnitPrice] 
    CHECK (([UnitPrice] >= 0))
    
  7. 파일 메뉴에서 CK_ProductsUnitPrice.chkconst.sql 저장을 클릭합니다.

    아이콘에서 오류 표시기가 사라져 이제 제약 조건 정의가 유효함을 나타냅니다.

    다음에는 프로젝트에 저장 프로시저를 추가합니다.

저장 프로시저를 만들려면

  1. 스키마 뷰에서 ProductsDB를 클릭합니다.

  2. 프로젝트 메뉴에서 새 항목 추가를 클릭합니다.

    새 항목 추가 대화 상자가 나타납니다.

    참고:

    스키마 뷰에서 ProductsDB 프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 저장 프로시저를 클릭할 수도 있습니다.

  3. 템플릿에서 프로시저를 클릭합니다.

  4. 이름에서 새 저장 프로시저에 지정할 이름으로 Ten Most Expensive Products를 입력합니다.

  5. 추가를 클릭하여 데이터베이스 프로젝트에 저장 프로시저를 추가합니다.

    솔루션 탐색기의 사용자 데이터베이스 프로젝트에 새 저장 프로시저에 대한 파일이 표시됩니다. 스키마 뷰에는 새 저장 프로시저 개체가 표시됩니다. T-SQL 편집기가 나타나고 새 저장 프로시저에 대한 정의를 표시합니다.

  6. T-SQL 편집기에서 다음 예제와 일치하도록 저장 프로시저 정의를 수정합니다.

    -- =============================================
    -- Create Ten Most Expensive Products
    --   stored procedure
    -- =============================================
    CREATE PROCEDURE [dbo].[Ten Most Expensive Products]
    AS
    SET ROWCOUNT 10
    SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPrice
    FROM Products
    ORDER BY Products.UnitPrice DESC
    RETURN 0
    
  7. 파일 메뉴에서 dbo.Ten Most Expensive Products.proc.sql 저장을 클릭합니다.

  8. 스키마 뷰에서 저장 프로시저 노드를 확장합니다.

    T-SQL 편집기에서 정의한 프로시저가 나타납니다.

    다음에는 프로젝트를 빌드 및 배포하기 전에 프로젝트 설정을 구성합니다.

프로젝트 빌드 설정을 구성하려면

  1. 솔루션 탐색기에서 ProductsDB(솔루션이 아닌 프로젝트)를 클릭합니다.

  2. 프로젝트 메뉴에서 ProductsDB 속성을 클릭합니다.

    프로젝트 속성 창이 나타납니다.

    참고:

    솔루션 탐색기에서 ProductsDB를 마우스 오른쪽 단추로 클릭하고 속성을 클릭할 수도 있습니다.

  3. 빌드 탭을 클릭합니다.

  4. 편집 단추를 클릭하여 대상 연결을 지정합니다.

  5. ProductsDB 데이터베이스를 배포할 데이터베이스 서버 연결에 사용할 정보를 지정합니다.

  6. 데이터베이스 이름 선택 또는 입력에 ProductsDB를 입력합니다.

  7. 확인을 클릭합니다.

    대상 연결이 연결 문자열로 채워집니다. 또한 대상 데이터베이스 이름이 ProductsDB로 설정됩니다.

  8. 다른 옵션에 대해 기본값을 적용합니다.

  9. 파일 메뉴에서 선택한 항목 저장을 클릭합니다.

    프로젝트 빌드 설정이 저장됩니다.

    다음에는 데이터베이스 프로젝트를 빌드합니다.

데이터베이스 프로젝트를 빌드하려면

  • 빌드 메뉴에서 솔루션 빌드를 클릭합니다.

    데이터베이스 프로젝트가 빌드됩니다. 성공하면 상태 표시줄에 빌드했습니다.가 나타나고 출력 창에 빌드 결과가 표시됩니다.

    마지막으로 데이터베이스 프로젝트를 배포합니다.

데이터베이스 프로젝트를 데이터베이스 서버로 배포하려면

  1. 솔루션 탐색기에서 ProductsDB(솔루션이 아닌 프로젝트)를 클릭합니다.

  2. 빌드 메뉴에서 ProjectName 배포를 가리킵니다.

    데이터베이스 프로젝트가 빌드 구성에서 지정한 연결을 사용하여 배포됩니다. 출력 창과 상태 표시줄에 "배포되었습니다."라는 메시지가 나타납니다.

데이터베이스 프로젝트를 버전 제어에 체크 인하려면

  1. 솔루션 탐색기에서 ProductsDB(솔루션)을 클릭합니다.

  2. 파일 메뉴에서 소스 제어를 가리킨 다음 소스 제어에 솔루션 추가를 클릭합니다.

    버전 제어 소프트웨어의 지침에 따라 솔루션, 데이터베이스 프로젝트 및 해당 내용을 버전 제어에 추가하고 모든 파일을 체크 인합니다. 데이터베이스 프로젝트는 데이터베이스 스키마의 마스터 복사본을 나타내며 버전 제어로 관리됩니다.

다음 단계

추가 연습을 사용하여 배포된 기존 데이터베이스로 작업하는 방법을 살펴볼 수 있습니다.

참고 항목

작업

연습: 버전 제어에서 기존 데이터베이스 스키마 관리

연습: 데이터베이스 개체 수정

연습: 기존 버전 제어 데이터베이스로 변경 내용 배포

개념

Database Edition의 용어 개요

기타 리소스

데이터베이스 스키마 빌드 및 배포

데이터베이스 프로젝트 시작