Министерство образования и науки Российской Федерации
Комсомольский-на-Амуре государственный технический университет
Кафедра «Машины и технология литейного производства»
ЛАБОРАТОРНАЯ РАБОТА № 5
«Обеспечение целостности данных»
по курсу «ИТвМ»
для студентов специальностей
150101, 150106
Дневной и заочной форм обучения
УДК 621.742.487
«Обеспечение целостности данных.» по курсу «ИТвМ» для студентов специальностей 150101, 150106 / Сост. В.В. Куриный.- Комсомольск-на-Амуре: Комсомольский-на-Амуре гос. техн. ун-т, 2008.- 13.
Печатается по постановлению редакционно-издательского совета Комсомольского-на-Амуре государственного технического университета.
Согласовано со службой стандартизации.
Тема. Обеспечение целостности данных.
Цель.
Получить навыки по созданию ограничений в БД при создании таблиц
Получить навыки по созданию ограничений на существубщей таблице
Получить представление о ссылочнй целостности БД
Создание первичного ключа
Создание внешнего ключа и каскадные действия
Ограничения Check, Unique, Default(в Create table)
Отмена действий ограничений
Конструкции, подобные ограничениям, правила и значения, применяемые по умолчанию
Применение тригеров
Ограничение – это прежде всего формулировка требований к данным. Ограничения устанавливаются на уровне столбца, строки и гарантируют соответствие данных определенным правилам обеспечения целостности данных.
Типы ограничений
1. Ограничения домена
2. ограничения сущности
3. ограничения ссылочной целостности
Методы реализации ограничений.
1. Ограничения первичного ключа
2. Ограничения внешнего ключа
3. Ограничения уникальности
4. Ограничения проверки
5. Ограничения заданных по умолчанию значений
6. Правила
Ограничения по первичному и внешним ключам.
1. Создание таблицы с первичным ключом
Запрос. Создайте таблицу BeAbsent (отсутствие на уроках) в БД scool и определите столбец NumRecord
· Создайте запрос на создание таблицы со следующей структурой и определите столбцы первичного ключа и внешних ключей, согласно данных таблицы:
Имя поля |
Тип |
Описание |
|
NumRecord |
int |
Номер записи |
PK |
id |
int |
Идентификатор ученика |
|
idDiscipline |
int |
Идентификатор дисципл. |
|
Date |
Datetime |
Дата |
|
Lesson number |
tinyint |
Номер урока |
Пример.
( NumRecord int Identity Not Null
Primary Key
· Сохраните запрос в файле с именем SQLcreateBeAbsentPK
· Выполните запрос
· Убедитесь, что таблица создана.
· Проверьте установку ограничения, для этого выполните хранимую процедуру sp_helpconstraint <имя таблицы>.
· Испытайте ограничение в действии. Для этого создайте запрос на вставку в таблицу новой записи с первичным ключом 1 и выполните запрос. Убедитесь, что запись вставлена успешно.
· Создайте запрос на вставку новой записи, нос тем же ключом. Выполните запрос. Ограничение действует?
· Закройте окно запроса.
· Создайте запрос на удаление таблицы BeAbsent и сохраните его в файле с именем SQLQueryDelBeAbsent.Выполните запрос.
2. Создание первичного ключа на существующей таблице
Запрос. Добавьте ограничение PrimaryKey в таблицы Book и Pablisher БД BIB. Для таблицы book первичным ключом будет столбец idBook, а для таблицы Pablisher столбец idPablisher.
· Создайте запрос на создание первичного ключа idPablisher.в таблице Publisher. Выполните и сохраните запрос в файле.
ALTER TABLE Publisher
ADD Constraint PK_IdPublisher
Primary Key(idPublisher)
· Создайте запрос на создание первичного ключа idBook в таблице book.
· Убедитесь в исполнении запроса. Для этого создайте сценарий (последовательность команд Transact-SQL) на выполнение хранимую процедуру sp_helpconstraint <имя таблицы>сначала для таблицы book, затем для таблицы Pablisher.
Обеспечение ссылочной целостности данных на основе внешних ключей. Устранение висячих строк.
Внешние ключи обеспечивают:
· ввод в подчиненную таблицу только таких значений, которые представлены в главной(родительской) таблице
· проверку строк подчиненной таблицы, при внесении изменений в родительскую.
Специальные свойства ограничения внешним ключом допускают изменение значений внешних ключей подчиненных таблиц, при изменении значений соответствующих первичных ключей, а также удаление всех записей подчиненных таблиц при удалении соответствующей записи в главной таблице. Процесс автоматического выполнения указанных действий называют каскадным выполнением действий.
)
3. Создание таблицы с внешними ключами.
Запрос. Свяжите таблицу BeAbsent с таблицами Disciplin и pupil по соответствующим столбцам.
· Создайте запрос на создание таблицы
Имя поля |
Тип |
Описание |
NumRecord |
int |
Номер записи |
id |
int |
Идентификатор ученика |
idDiscipline |
int |
Идентификатор дисципл. |
Date |
Datetime |
Дата |
Lesson number |
tinyint |
Номер урока |
· Добавьте в запрос ограничения внешнего ключа к определенияю
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.