Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧЕБНОЕ ПОСОБИЕ.doc
Скачиваний:
73
Добавлен:
07.03.2015
Размер:
5.72 Mб
Скачать
    1. Ограничения целостности базы данных

СУБД MSSQLServerпредлагает различныевидыограниченийдля поддержания целостности базы данных, среди нихзначения по умолчанию, проверки вводимых данных и ограничения ссылочной целостности.

Значения по умолчанию DEFAULT

[CONSTRAINT <имя_ограничения>]

    DEFAULT {<константа> | <функция> | NULL}

        [FOR <имя_поля>]

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

Для установки значения по умолчанию для полей столбца таблицы заполняется свойство «Значение или привязка по умолчанию» в свойствах этого столбца (рис. 3.6).

В качестве значения по умолчанию может выступать текстовая или строковая константа либо системная функция SQLServer(например, GETDATE () – текущая дата, USER() – текущий пользователь и т. п.).

Проверки CHECK

[CONSTRAINT <имя_ограничения>]

CHECK [NOT FOR REPLICATION] (<выражение>)

Ограничения CHECK задают условия проверки значений одного или нескольких полей таблицы (включая проверку сочетаний значений полей таблицы); при этом значения берутся из одной и той же вставляемой или обновляемой строки.

Создание новой проверки осуществляется по команде «Проверочные ограничения» контекстного меню редактора структуры таблицы. В открывшемся окне следует создать новое ограничение, воспользовавшись кнопкой «Добавить», и записать условие проверки в строке «Выражение» (рис. 3.10).

Рис. 3.10. Окно создания проверочных ограничений CHECK

Ссылочная целостность: правила удаления

По умолчанию при попытке удалить / изменить значение поля, на которое имеются ссылки из других (зависимых) таблиц, сервер не позволяет произвести соответствующие изменения и выдает сообщение об ошибке внешнего ключа.

Подобное поведение можно изменить, выбрав один из трех доступных вариантов действий для зависимых таблиц:

  • каскадное удаление/обновление;

  • установка пустого (NULL) значения;

  • установка значения по умолчанию.

Настройка осуществляется в окне «Отношения внешнего ключа» (рис. 3.7) зависимой таблицы, в разделе «Спецификация INSERTиUPDATE», правило изменения / удаления.

    1. Сценарий создания базы данных

За всеми действиями по созданию и редактированию баз данных в графическом интерфейсе ManagementStudioстоят команды языкаSQL. Для получения сценария (скрипта) создания базы данных используется пункт «Задачи - Сформировать сценарии» контекстного меню базы в «Обозревателе объектов». При этом запустится «Мастер формирования сценариев», где шаг за шагомвыполняетсянастройкаполучаемогокода. Фрагмент сценария базы данных оптового заводского склада приведен на рис. 3.11.

Рис. 3.11. Фрагмент сценария создания базы данных

Задание: задайте следующие виды ограничений для базы данных создаваемой учебной информационной системы: два значения по умолчанию (DEFAULT), два условия проверки значений (CHECK), два ограничения ссылочной целостности.

Контрольные вопросы

  1. С помощью какого инструмента СУБД MSSQLServerподдерживает работу с базой данных?

  2. Что собой представляет реляционная база данных MSSQLServerна физическом уровне?

  3. Для чего используется логический журнал, поддерживаемый MSSQLServer?

  4. Что такое автоинкрементное поле?

  5. Какие возможности работы с датами есть вMSSQLServer?

  6. В чем разница между типамиchar иvarchar?

  7. Назовите варианты первичных ключей таблицы.

  8. Какая команда языка SQLсоздаетбазуданных?

  9. Охарактеризуйте ограничения целостности базы данных, поддерживаемые на уровне среды ManagementStudio.

  10. Какие опции команды CREATETABLEязыкаSQLиспользуются для задания значения поля по умолчанию и для контроля вводимого значения поля таблицы?

  11. Какие варианты ограничений ссылочной целостности поддерживаются в среде ManagementStudio?

  12. Что такое опция CASCADEв командеCREATETABLEязыкаSQL?Как эта опция задается в средеManagementStudio?

  13. Когда используется опция «значение по умолчанию»?

  14. Что такое «альтернативный ключ» таблицы и какой опцией он задается в среде Management Studio?

  15. Чем отличаютсяфизическаямодельБД в IDEF1X и диаграммаБД, создаваемаяв Management Studio?

  16. Что такое сценарий (скрипт) создания базы?