Разработка иразвертывание БДШамрай Александрa.shamray@cmcons.com
Возможности для разработки БДMS VISUAL STUDIO 2010                   www.cmcons.com
Общий сценарий разработки БД с      инструментами VS         www.cmcons.com
Общие возможности проектов VSУправление изменениями БД •   Версионный контроль для схемы •   Инкрементальное развертывание...
Доступность функций в различных                     версиях VSVisual Studio Database ProjectVisual Studio Premium/Ultimate...
Оффлайновая разработка БД       www.cmcons.com
Обновление версий от N к N+1Обновление от версии 1 к 2 и от 2 к 3• ALTER TABLE dbo.Auction ADD description VARCHAR(25)• AL...
Visual Studio для оффлайновой                      разработки• Проект базы данных (.dbproj), предназначенный для управлени...
Исходный код            Код для БД               www.cmcons.com
Общий скрипт            Скрипт для пустой БД               www.cmcons.com
Скрипт обновленияСкрипт создания БД            версии                     www.cmcons.com
Процесс обновления версии      www.cmcons.com
Общий код – сборка и зависимостиПубликация сборок для общихкомпонент• DBSCHEMA файлы для межпроектных сборок• Части проект...
Частичные проекты            Составные проекты                    www.cmcons.com
Создание проектов баз данныхМетоды публикации сборокДЕМОНСТРАЦИЯ                    www.cmcons.com
Сборка и развертывание проектаMS VISUAL STUDIO 2010                    www.cmcons.com
Сборка проекта   1) Проект базы данных загружается в память   2) Собирается модель проекта базы данных      a. Офлайнов...
Результаты сборки.dbschema• Преобразованная в последовательную форму XML  представление модели схемы. Представляет проект ...
Опции развертывания    www.cmcons.com
Развертывание БД  www.cmcons.com
Развертывание в различных средах   Build verified                                        Build verified   and promoted    ...
Database  Project               Build                Deploy    Database     ProjectDatabase Project               Build/Dr...
Развертывание с VSDBCMDBuild                         Script.PreDeployment          Build/Drop     Script.PostDeployment   ...
Конфигурирование развертыванияDatabase.sqlcmdvars• Содержит наименования и значения для  переменных SQLCMD, которые исполь...
Скрипты, выполняемые передразвертыванием и после развертывания            www.cmcons.com
Развертывание баз данныхДЕМОНСТРАЦИЯ                   www.cmcons.com
Тестирование с использованием модульных тестовDATABASE UNIT TESTS                   www.cmcons.com
Типы тестовТестирование возможностей• Тестирование хранимых процедур, функций и  триггеровТестирование схемы• Проверка соо...
Возможности VS для модульного               тестирования БДАвтоматическое      Использованиегенерирование     предваритель...
Проверка тестаSQL Assertions• Аналогом assert модульных тестов в модульных  тестах БД используется команда RAISERRORТестов...
Использование модульных тестовДЕМОНСТРАЦИЯ                   www.cmcons.com
Управление состоянием базы данныхКак я могу гарантировать чтоданные в моей базе данныхименно те, которые я ожидаю привыпол...
Управление состоянием базы данных• Использование инструментов генерирования данных для установки  состояния БД перед запус...
Генерирование данных            • Использование промышленных данных для              тестирования            • Создание те...
Генерирование тестовых данныхДЕМОНСТРАЦИЯ                   www.cmcons.com
СТАТИЧЕСКИЙ АНАЛИЗ        www.cmcons.com
Возможности                                       Позволяет Отслеживает       Проверяет                                   ...
Типы вредупрежденийПроблемы проектирования Transact-SQL • SR0001: не используйте запрос SELECT * в хранимых процедурах, пр...
Использование правил статического анализаДЕМОНСТРАЦИЯ                    www.cmcons.com
www.cmcons.com
Upcoming SlideShare
Loading in …5
×

Разработка БД с использованием инструментов MS VS 2010

1,752 views
1,638 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,752
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Разработка БД с использованием инструментов MS VS 2010

  1. 1. Разработка иразвертывание БДШамрай Александрa.shamray@cmcons.com
  2. 2. Возможности для разработки БДMS VISUAL STUDIO 2010 www.cmcons.com
  3. 3. Общий сценарий разработки БД с инструментами VS www.cmcons.com
  4. 4. Общие возможности проектов VSУправление изменениями БД • Версионный контроль для схемы • Инкрементальное развертывание • Сравнение схем и данных • Рефакторинг схемУправление качеством БД • Проверка и визуализация зависимостей • Статический анализ • Модульное тестирование и Генерирование данныхИнтеграция процесса разработки БД с общим процессомразработки • Общая среда разработки • Интеграция сборки БД с MS Build и Team Build • Интеграция версионного контроля с TFS www.cmcons.com
  5. 5. Доступность функций в различных версиях VSVisual Studio Database ProjectVisual Studio Premium/Ultimate Сравнение схем Visual Studio Professional Сравнение данных Модульное Развертывание Интеграция Генерирование Статический тестирование из командной Team Build данных* анализ кода* БД* строки Рефакторинг www.cmcons.com
  6. 6. Оффлайновая разработка БД www.cmcons.com
  7. 7. Обновление версий от N к N+1Обновление от версии 1 к 2 и от 2 к 3• ALTER TABLE dbo.Auction ADD description VARCHAR(25)• ALTER TABLE dbo.Auction ALTER COLUMN description VARCHAR(100)Обновление от версии 1 к 3• ALTER TABLE dbo.Auction ADD description VARCHAR(100) www.cmcons.com
  8. 8. Visual Studio для оффлайновой разработки• Проект базы данных (.dbproj), предназначенный для управления разработкой базы данных.• Декларативная поддержка синтаксиса SQL, где схема определяется на языке базы данных.• Представление модели схемы для схемы базы данных, когда исходный код может использоваться по кругу из источника модели и обратно.• Модель схемы взаимодействует предоставления программную модели для инструментария и дизайнеров баз данных.• Интерпретация и проверка синтаксиса и схемы зависимостей SQL обеспечивает целостность исходников без их выполнения в базе данных.• Механизм сравнения схемы, который сравнивает проект с целевой базой данных для генерирования скрипта обновления.• Скомпилированные версии схемы базы данных позволяют отложенное развертывание и создание скрипта (файл .dbschema).• Файлы .DBSCHEMA могут быть развернуты в различных средах, содержащих различные конфигурации. www.cmcons.com
  9. 9. Исходный код Код для БД www.cmcons.com
  10. 10. Общий скрипт Скрипт для пустой БД www.cmcons.com
  11. 11. Скрипт обновленияСкрипт создания БД версии www.cmcons.com
  12. 12. Процесс обновления версии www.cmcons.com
  13. 13. Общий код – сборка и зависимостиПубликация сборок для общихкомпонент• DBSCHEMA файлы для межпроектных сборок• Части проектов для межпроектных сборок• Составные проекты для команд по возможностямИспользование сборок для общихкомпонент• Интеграционные уровни• Ответственность за качество опубликованных компонент www.cmcons.com
  14. 14. Частичные проекты Составные проекты www.cmcons.com
  15. 15. Создание проектов баз данныхМетоды публикации сборокДЕМОНСТРАЦИЯ www.cmcons.com
  16. 16. Сборка и развертывание проектаMS VISUAL STUDIO 2010 www.cmcons.com
  17. 17. Сборка проекта 1) Проект базы данных загружается в память 2) Собирается модель проекта базы данных  a. Офлайновая модель схемы обновляется из кеша (если есть) или собирается из .sql файлов в проекте.  b. Модель схемы и все зависимости проверяются. 3) Собирается проект базы данных  a. Офлайновая модель схемы проверяется.  b. Проектные параметры настройки обрабатываются и копируются.  c. Модели схем, на которые есть ссылки, копируются. 4) Собирается .dbschema  a. Модель схемы преобразовывается в последовательную форму и упаковывается в.dbschema файл.  b. Создается манифест развертывания.  c. Если есть статический анализ кода, то он выполняется. www.cmcons.com
  18. 18. Результаты сборки.dbschema• Преобразованная в последовательную форму XML представление модели схемы. Представляет проект базы данных..deploymanifest• Манифест, содержащий всю информацию о конфигурации на проектном уровне, которая позволяет развертывание без файла проекта базы данных (.dbproj). Манифест - файл XML со структурой, которая очень подобна файлу проекта MSBuild.Pre and Post deployment scripts• Эти отдельные файлы, которые будут запущены перед или после скриптов, которые создают или обновляют базу (скрипты развертывания). Может быть только по одноу скрипту, но можно включать другие скипты внутрь этих. www.cmcons.com
  19. 19. Опции развертывания www.cmcons.com
  20. 20. Развертывание БД www.cmcons.com
  21. 21. Развертывание в различных средах Build verified Build verified and promoted and promoted to SIT to Prod SIT UAT (System (Acceptance Integration) Testing)Development Production Build www.cmcons.com
  22. 22. Database Project Build Deploy Database ProjectDatabase Project Build/Drop Target Servers (Environment) www.cmcons.com
  23. 23. Развертывание с VSDBCMDBuild Script.PreDeployment Build/Drop Script.PostDeployment Database.dbschema www.cmcons.com
  24. 24. Конфигурирование развертыванияDatabase.sqlcmdvars• Содержит наименования и значения для переменных SQLCMD, которые используются для развертывания проекта. Можно создавать фал sqlcmdvars для каждой конфигурации.Database.sqldeployment• Содержит специфические для развертывания настройки такие как имя базы данных и строка соединения. Можно создавать фал sqldeployment для каждой конфигурации. www.cmcons.com
  25. 25. Скрипты, выполняемые передразвертыванием и после развертывания www.cmcons.com
  26. 26. Развертывание баз данныхДЕМОНСТРАЦИЯ www.cmcons.com
  27. 27. Тестирование с использованием модульных тестовDATABASE UNIT TESTS www.cmcons.com
  28. 28. Типы тестовТестирование возможностей• Тестирование хранимых процедур, функций и триггеровТестирование схемы• Проверка соответствия схемы БДТестирование безопасности• Проверка правильного распределения доступаТестирование справочных данных www.cmcons.com
  29. 29. Возможности VS для модульного тестирования БДАвтоматическое Использованиегенерирование предварительных и Предопределенные скриптов очищающих тестовые условия тестирования скриптов Встраивание Использование Генерирование тестов в процесс тестов в контролетестовых данных сборки версий www.cmcons.com
  30. 30. Проверка тестаSQL Assertions• Аналогом assert модульных тестов в модульных тестах БД используется команда RAISERRORТестовые условия• Количество строк• Скалярные значения• Пустой результат• Не пустой результат• Время исполнения• Незаконченный www.cmcons.com
  31. 31. Использование модульных тестовДЕМОНСТРАЦИЯ www.cmcons.com
  32. 32. Управление состоянием базы данныхКак я могу гарантировать чтоданные в моей базе данныхименно те, которые я ожидаю привыполнении тестирования?• Необходимо убедиться, что база данных в необходимом состоянии перед выполнением тестов• Необходимо убедиться, что база данных в необходимом состоянии между каждым тестовым запуском www.cmcons.com
  33. 33. Управление состоянием базы данных• Использование инструментов генерирования данных для установки состояния БД перед запусков набора модульных тестов• Восстановить БД из резервной копии или подключиться к существующей БД• Разрабатывать тесты не требующих определенного состояния и устанавливать состояние с помощь предварительных условий• Использовать транзакции• Восстанавливать состояние после выполнения каждого теста www.cmcons.com
  34. 34. Генерирование данных • Использование промышленных данных для тестирования • Создание тестовых данных с нуля Методы • Настраиваемые генераторы данных • Дополнительные генераторы • Интеллектуальные назначения генераторов по умолчанию • Учет ограничений базы данныхГенератор • Расширяемость генератора и распределения • Сгенерированные данные повторяемые • Поддержка связей между таблицами www.cmcons.com
  35. 35. Генерирование тестовых данныхДЕМОНСТРАЦИЯ www.cmcons.com
  36. 36. СТАТИЧЕСКИЙ АНАЛИЗ www.cmcons.com
  37. 37. Возможности Позволяет Отслеживает Проверяет разрабатыватьпотенциальные соответствие собственные ошибки стандартам правила Интегрируется с Улучшает контролем читаемость кода версий и сервером сборки www.cmcons.com
  38. 38. Типы вредупрежденийПроблемы проектирования Transact-SQL • SR0001: не используйте запрос SELECT * в хранимых процедурах, представлениях и функциях с табличным значением • SR0008: рассмотрите возможность использования SCOPE_IDENTITY вместо @@IDENTITY • SR0009: избегайте использования типов переменной длины с размером 1 или 2 • SR0010: не используйте устаревший синтаксис при объединении таблиц или представлений • SR0013: выходной параметр (parameter) не заполняется во всех путях кода • SR0014: потеря данных может произойти при приведении от {Тип1} к {Тип2}Проблемы именования Transact-SQL • SR0011. Избегайте использования специальных знаков в именах объектов • SR0012. Избегайте использования зарезервированных слов в именах типов • SR0016: избегайте использования префикса sp_ для хранимых процедурПроблемы производительности Transact-SQL • SR0004: не используйте столбцы без индексов в качестве тестовых выражений в предикатах IN • SR0005: не используйте шаблоны, которые начинаются с "%", в предикатах LIKE • SR0006: для использования индекса столбца переместите ссылку на столбец на одну сторону оператора сравнения • SR0007: используйте функцию ISNULL(столбец, значение_по_умолчанию) в выражениях для столбцов, допускающих значения NULL • SR0015: вызовы детерминированной функции следует извлекать из предикатов WHERE www.cmcons.com
  39. 39. Использование правил статического анализаДЕМОНСТРАЦИЯ www.cmcons.com
  40. 40. www.cmcons.com

×