Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Ограничения целостности. Ограничения целостности (constraints) гарантируют целостность данных для таблиц и столбцов




Ограничения целостности (constraints) гарантируют целостность данных для таблиц и столбцов.

1. Ограничение PRIMARY KEY (ограничение по первичному ключу) используется для обеспечения логической целостности. Оно гарантирует, что для всех строк таблицы будет существовать уникальный ключ, не равный NULL. Применение ограничения первичного ключа, кроме всего, создает уникальный индекс по таблице. В нашем случае – это индекс PK_Employee, который был автоматически создан при назначении столбца EmployeeID первичным ключом.

2. Ограничение NOT NULL (ограничение на неопределенное значение) используется для гарантии того, что столбец не будет содержать значений NULL.

3. Ограничение UNIQUE (ограничение уникальности) предотвращает появление в любом столбце или наборе столбцов повторяющихся значений, но в отличие от первичного ключа может иметь значение NULL, при том одно.

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

5. Ограничение FOREIGN KEY (ограничение по внешнему ключу) используется для ссылочной целостности. Внешний ключ связывает один или несколько столбцов с первичным ключом, который был определен для другой таблицы. Внешний ключ гарантирует, что между двумя таблицами существуют указанные отношения.

Пример:

В окне Table and Index Propertiesвыберите вкладку Check Constraints, создайте новое ограничение на значения, в поле Constraint Expression введите:

([Money] > 350)

Это значит, что при попытке ввести в поле Money значение, меньшее 350, будет генерироваться исключение.

Для того, чтобы связать таблицы по полю SectionId, нужно для таблицы Employee создать ограничение по внешнему ключу на вкладке Relationshipsв окне свойств таблицы. В поле Primary Key Table нужно указать таблицу Section и выбрать из списка ее столбцов первичный ключ SectionId, а в поле Foreign Key Table выбрать таблицу Employee и ее столбец SectionId (это будет внешний ключ).

Поставьте флажок Enforce relationship for INSERTs and UPDATEs(проверка связи таблиц при вводе и изменении значений), Cascade Update Related Fields (каскадное изменение связанных полей), Cascade Delete Related Records (каскадное удаление связанных полей). Теперь при попытке ввести в таблицу Employee значение SectionId, не совпадающее ни с одним из значений первичного ключа таблицы Section, будет сгенерировано исключение, а при изменении или удалении полей таблицы Section, будут изменены или удалены и соответствующие поля таблицы Employee.

Выберите в контекстном меню таблицы Employee команду Open table->Return all rows. Заполните таблицу произвольными значениями, обратите внимание, что SQL Server не позволяет вводить в столбец SectionID значения, которых нет в столбце SectionID таблицы Section. Попробуйте удалить из таблицы Section какую-либо запись и обратите внимание, что все связанные с ней записи таблицы Employeeтоже будут удалены. Правда увидеть обновленные данные таблицы Employee можно будет только после выполнения команды Run вспомогательного меню. Дело в том, что когда вы выполняете команду Returnall rowsдлятаблицы Employee, SQL Server возвращает вам результаты следующего запроса:

SELECT *

FROM employee

Текст этого запроса вы можете увидеть, нажав кнопку SQL на панели инструментов, либо выбрав пункт контекстного меню Show Panes / SQL. Вы можете отредактировать текст этого запроса, например, следующим образом:

SELECT lastname, money

FROM employee

ORDER BY money

и выполнить команду Run. Результатом запроса будет список, состоящий из имени и зарплаты каждого сотрудника, упорядоченный по полю Money.

Попытайтесь ввести в поле Money величину, меньшую 350: в этом случае SQL Server сгенерирует исключение.





Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 452; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.