Поделиться через


Общие сведения о проектах баз данных и серверов

Используя Visual Studio Premium для создания проекта базы данных или проекта сервера и переводя проект под контроль системы управления версиями, можно помочь организации более эффективно управлять разработкой баз данных. Эти автономные представления содержат определения объектов, параметры и скрипты развертывания, которые можно использовать для создания отдельного экземпляра этой базы данных (или сервера) или обновления существующего экземпляра.

На основании потребностей организации также можно совместно использовать части проектов или создать составной проект. Дополнительные сведения см. в разделе Общие части проектов далее в этом разделе или раздел "Создание проектов с помощью ссылок" в Использование ссылок в проектах баз данных.

Доступные типы проектов

С помощью Visual Studio 2010 Premium можно создать проекты баз данных, проекты сервера и проекты компонентов приложений уровня данных (DAC).

  • Проект компонента приложений уровня данных
    DAC является новой концепцией. Она была введена в SQL Server 2008 R2 и содержит определение для базы данных SQL Server и поддерживающих объектов экземпляра, которые используются клиент-сервером или трехуровневым приложением. DAC включает объекты баз данных, например таблицы и представления, а также сущности экземпляров, например имена входа. С помощью Visual Studio можно создать проект DAC, выполнить построение файла пакета DAC и отправить этот файл пакета DAC администратору базы данных для развертывания в экземпляре ядра СУБД SQL Server. Список функций, поддерживаемых проектами DAC, см. в разделе Features Supported in Data-tier Applications.

  • Проект базы данных
    Проект базы данных содержит определения всех объектов базы данных. Кроме того, он содержит параметры базы данных, параметры построения и параметры развертывания.

  • Проект сервера
    Проект сервера содержит определения объектов, находящихся на сервере или в базе данных master на сервере. Кроме того, он содержит параметры сервера, параметры построения и параметры развертывания.

Структура проекта

В окне Обозреватель решений отображается проект, организованный по файлам. Каждый элемент в окне Обозреватель решений соответствует сохраненному файлу или папке. Напротив, в окне Представление схемы отображается проект, организованный по объектам или схемам, чтобы можно было идентифицировать объекты в базе данных независимо от того, определены ли они в отдельных файлах.

Проект базы данных или сервера может содержать следующие типы объектов.

  • Файлы свойств
    Проект базы данных или сервера включает файлы в папке "Свойства", содержащие значения свойств. Можно контролировать развертывание проекта, изменяя эти значения. Например, можно указать параметры базы данных, параметры сервера, переменные SQLCMD и разрешения базы данных. Дополнительные сведения см. в разделе Файлы свойств в проектах баз данных и серверных проектах.

  • Планы создания данных
    Планы создания данных содержат информацию о способе создания реалистичных и представительных тестовых данных для базы данных, которую требуется развернуть или обновить. Дополнительные сведения см. в разделе Создание данных теста для баз данных с помощью генераторов данных.

  • Сравнения схем
    Сравнение схем содержит сведения об определенном сравнении проекта базы данных и другой схемы. Проект для данной схемы можно повторно сравнить, снова открыв SCMP-файл и обновив сравнение. Дополнительные сведения см. в разделе Сравнение и синхронизация схем баз данных.

  • Объекты схемы
    Объекты схемы определяются в коллекции SQL-файлов, хранящихся в папке проекта. Большинство объектов определены в отдельных файлах. Исключения включают столбцы таблицы и параметры хранимой процедуры или функции. Столбцы хранятся в определении для таблицы, а параметры — в определении для хранимой процедуры или функции. Дополнительные сведения см. в разделе Создание и изменение объектов базы данных и сервера.

  • Скрипты
    Проект содержит скрипты, выполняемые до и после развертывания, в дополнение к скриптам, которые можно использовать для управления базы данных или сервера. Дополнительные сведения см. в разделе Создание и изменение скриптов базы данных.

Импорт объектов и параметров

После создания проекта можно импортировать в него объекты и параметры из экземпляра базы данных или из скрипта. Во время выполнения импорта базы данных проверяются определения объектов. Инструкции, анализ которых не может быть выполнен, помещаются в файл ScriptsIgnoredOnImport.sql. При импорте определений объектов, ссылающихся на не существующие более объекты, для построения и развертывания проекта базы данных необходимо устранить эти ошибки. Например, можно импортировать хранимую процедуру, ссылающуюся на таблицу, которая больше не существует. Чтобы устранить ошибку, можно удалить эту хранимую процедуру.

Устранение подобных ошибок после импорта большой схемы может занять довольного много времени. Однако члены команды не могут неосознанно внести дополнительные ошибки такого типа в ходе обновления схемы в Visual Studio Premium. При изменении и сохранении ими какого-либо определения объекта все изменения проверяются, что позволяет членам команды немедленно устранить проблемы и избежать развертывания этих ошибок в функционирующей базе данных.

После устранения ошибок, ставших причиной предупреждений в определениях объектов, рекомендуется также выполнить анализ кода базы данных для выявления проблем структуры, именования и производительности. Дополнительные сведения см. в разделе Анализ кода базы данных с целью улучшения качества кода.

Совместное использование частей проектов

Если необходимо повторно использовать набор файлов в нескольких проектах, можно экспортировать любую часть проекта как частичный проект. Это действие создает FILES-файл, который можно включить в один или несколько других проектов. Например, могут быть общие хранимые процедуры, использующиеся для аудита всех баз данных. Можно определить эти хранимые процедуры в одном проекте, экспортировать и включить их в другие проекты. Этот подход помогает избежать необходимости поддерживать один и тот же код в нескольких проектах. Дополнительные сведения см. в разделе Импортирование и экспортирование частичных проектов баз данных.

Вопросы безопасности

Проекты баз данных и все связанные DBSCHEMA-файлы содержат сведения о ресурсах базы данных. Практически таким же способом, каким бы осуществлялось ограничение доступа к исходному коду, следует ограничить доступ к проектам баз данных и DBSCHEMA-файлам.

Можно использовать следующие методы для управления доступом к проектам баз данных и DBSCHEMA-файлам.

  • Использование системы управления версиями для проектов и соответствующие разрешения файловой системы
    Можно предоставить доступ к проектам базы данных только тем разработчикам, которым он необходим. Кроме того, можно ограничить разрешения на любые общие файловые ресурсы, содержащие файлы проекта базы данных или DBSCHEMA-файлы, для предотвращения доступа неуполномоченными пользователями.

  • Разбиение на части проекта базы данных с помощью частичных проектов
    Объекты базы данных можно разделить на несколько проектов и использовать разрешения управления версиями для управления тем, кто может просматривать или изменять эти проекты. Дополнительные сведения см. в разделе Начало командной разработки больших баз данных.

  • Создание DBSCHEMA-файла с пустыми телами процедур
    Можно создать копию хранимых процедур, не содержащих реализации, и использовать DBSCHEMA-файл для этой копии совместно с разработчиками, которые должны вызвать эти процедуры, но не должны видеть их реализацию. Дополнительные сведения о способах создания ссылок на DBSCHEMA-файлы см. в разделе Использование ссылок в проектах баз данных.

Связанные сценарии

См. также

Задачи

Пошаговое руководство. Создание и развертывание новой базы данных с управлением версиями

Пошаговое руководство. Помещение имеющейся схемы базы данных под контроль системы управления версиями

Основные понятия

Построение и развертывание баз данных в изолированной среде разработки

Настройка проектов баз данных и выполнение развертывания тестов

Написание и изменение кода базы данных