Определение условий целостности данных
Условиями целостности данных называется набор правил, используемых в РБД для поддержания связей между записями в связанных таблицах. Эти правила делают невозможным случайное удаление или изменение связанных данных.
При определении условий целостности данных действуют следующие ограничения:
1. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы.
2. Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице.
3. Невозможно изменить значение ключевого поля в главной таблице, если имеются записи, связанные с этой записью.
Определение целостности данных предполагает выполнение следующих действий:
1. В окне Схема данных щелкнуть дважды левой кнопкой мыши на линии связи между таблицами. Откроется окно диалога Изменение связей.
2. Установить флажок Обеспечение целостности данных.
3. Можно также определить тип объединения записей в связанных таблицах, нажав кнопку Объединение.
4. Для того чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует включить режимы каскадного обновления и каскадного удаления. При установленном флажке Каскадное обновление связанных полей изменение значения в ключевом поле главной таблицы приводит к автоматическому обновлению соответствующих значений во всех связанных записях. При установленном флажке Каскадное удаление связанных полей удаление записи в главной таблице приводит к автоматическому удалению связанных записей в подчиненной таблице.
5. Нажать кнопку ОК.
На рис. 3.6 показано окно Схема данных после того, как была установлена целостность данных.
рис. 3.6. Связи между таблицами с установкой целостности данных |
Необходимо помнить, что при определении условий целостности данных связанное поле главной таблицы должно быть ключевым полем или иметь уникальный индекс, и связываемые поля должны иметь одинаковый тип данных.
Задания
1. Создайте таблицы «Покупатель» и «Сделка» любым известным Вам способом в соответствии со следующими структурами:
Структура таблицы «Покупатель»
Имя поля | Тип данных |
КодПокупателя | счетчик |
НазваниеФирмы | текстовый |
Страна | текстовый |
ТипРегиона | числовой |
Регион | числовой |
Район | числовой |
ТипНаселенногоПункта | числовой |
НаселенныйПункт | числовой |
Индекс | текстовый |
ТипУлицы | числовой |
Улица | числовой |
Дом | текстовый |
Комната | текстовый |
Телефон | текстовый |
Комментарий | текстовый |
Структура таблицы «Сделка»
Имя поля | Тип данных | Описание |
НомерНакладной | текстовый | |
Продавец | числовой | |
Покупатель | числовой | |
Товар | числовой | |
Количество | числовой | |
ДатаСделки | дата/время | |
Опт | логический | Если Да, то продажа оптом; если Нет, то продажа в розницу. |
Комментарий | текстовый |
2. В таблице «Покупатель» для поля Страна в Свойствах поля введите в свойство Значение по умолчанию «Россия». Сохраните изменения.
3. Откройте таблицу «Товар» в режиме Конструктора таблиц. Измените типы данных для полей Тип и Марка с Текстового на Числовой. (Это сделано в процессе нормализации таблиц БД. Поскольку в полях Тип и Марка данные часто повторяются (например, в БД может храниться информация о нескольких типах (холодильниках, телевизорах и т.д.), также несколько товаров одного типа могут иметь одну марку (Panasonic, Sony и т.д.), а отличаться только по полю Артикул, либо товары разных типов могут иметь одинаковую марку (марку Panasonic может иметь телевизор, видеомагнитофон и т.д.)), то для приведения таблиц БД к третьей нормальной форме (3НФ) необходимо данные полей Тип и Марка выделить в отдельные справочные таблицы.)
4. Создайте таблицы «ТипТовар» и «МаркаТовар», которые имеют вид:
Структура таблицы «ТипТовар»
Имя поля | Тип данных |
КодТипа | счетчик |
НазваниеТипа | текстовый |
Структура таблицы «МаркаТовар»
Имя поля | Тип данных |
КодМарки | счетчик |
НазваниеМарки | текстовый |
5. Постройте даталогическую модель для БД «Учет товарооборота» (установите связи между всеми таблицами БД) в соответствии с информационно-логической моделью, представленной на рис. 2 в пункте «Проектирование базы данных «Учет товарооборота»» раздела «Этапы проектирования реляционной базы данных» настоящего методического пособия.
Контрольные вопросы
1. Какая БД называется реляционной?
2. Какие типы отношений между таблицами БД Вы знаете? Дайте характеристику каждого типа отношений.
3. Что такое нормализация?
4. Сколько нормальных форм существует? Дайте определение первых трех нормальных форм.
5. Опишите, как осуществляется проектирование нормализованных БД.
6. Как устанавливаются связи между таблицами?
7. Что такое внешний ключ?
8. Дайте определение условий целостности данных. Какие основные условия необходимо соблюдать при установлении правил ссылочной целостности данных?