Поддержка целостности в реляционной модели данных в ее классическом понимании включает в себя 3 аспекта.
Во-первых, это поддержка структурной целостности, которая трактуется так, что реляционная СУБД должна допускать работу только с однородными структурами данных типа «реляционное отношение». При этом понятие «реляционного отношения» должно удовлетворять всем ограничениям, накладываемым на него в классической теории реляционной базы данных (отсутствие дубликатов кортежей, соответственно обязательное наличие первичного ключа, отсутствие понятия упорядоченности кортежей).
Во-вторых, это поддержка языковой целостности, которая состоит в том, что реляционная СУБД должна обеспечивать языки описания и манипулирования данными не ниже стандарта SQL. He должны быть доступны иные низкоуровневые средства манипулирования данными, не соответствующие стандарту.
Именно поэтому доступ к информации, хранимой в базе данных, и любые изменения этой информации могут быть выполнены только с использованием операторов языка SQL.
В-третьих, это поддержка ссылочной целостности (Declarative Referential Integrity, DRI), означает обеспечение одного из заданных принципов взаимосвязи между экземплярами кортежей взаимосвязанных отношений:
- кортежи подчиненного отношения уничтожаются при удалении кортежа основного отношения, связанного с ними;
- кортежи основного отношения модифицируются при удалении кортежа основного отношения, связанного с ними, при этом на месте ключа родительского отношения ставится неопределенное Null значение.
Ссылочная целостность обеспечивает поддержку непротиворечивого состояния базы данных в процессе модификации данных при выполнении операций добавления или удаления.
Рисунок 1 Инструмент создания схемы и окно выбора объектов
Рисунок 2 Пример схемы базы данных, созданной с помощью SQL Manager
Ход работы
1 Используя созданные таблицы и структуру базы данных, спроектированную в лабораторной работе №1, организовать связи между таблицами.
2 Пояснить полученные мощности отношений(один-к-одному (1-1), один-ко-многим (1-*), многие-ко-многим (*-*)).
3 Проверить правильность организации связей путем ввода и удаления записей по следующей схеме:
Справочная таблица 1-1(1-*) Таблица данных
В таблицу данных вводятся записи при наличии соответствующих значений в справочной, иначе должно появится сообщение об ошибке.
Удаление записей из справочной таблицы возможно только при отсутствии соответствующих записей в таблице данных.
4 Оформить подробный отчет и сделать вывод по выполненной работе.
Контрольные вопросы
1 Перечислить мощности связей между таблицами, полученными при выполнении работы.
2 Присутствует ли в созданной структуре связь «многие-ко-многим», «один-ко-многим», «один-к-одному».
3 Можно ли «напрямую» реализовать связь «многие-ко-многим»?
4 Способы реализации связи «многие-ко-многим». Примеры по разработанной структуре.
5 Какие ограничения столбцов должны быть организованы в таблицах для получения связей:
- один-к-одному (1-1)
- один-ко-многим (1-*)
- многие-ко-многим (*-*)
6 Какие типы данных лучше всего использовать для полей, участвующих в организации связей?
7 Как связи обеспечивают выполнение условий ссылочной целостности?
Лабораторная работа № 5