телефона изменен на 531-55-33, забыв при этом сообщить о других жильцах
квартиры. Если чиновник изменит номер телефона только в тех строках,
которые содержат телефонный номер Иванова И.И. 1978 года рождения, то
правильный номер телефона в квартире с адресом 801-12 будет фактически
утерян, поскольку в отношении Zgrad будут присутствовать два различных
телефонных номера для одной квартиры.
В спроектированной РБД описанная проблема обновления не возникает:
при изменении номера телефона у Иванова И.И. 1978 года рождения,
проживающего по адресу 801-12 (сведения из отношения PERSON), изменится
только кортеж <5315894, ..., 801-12> в отношении TPHONE (в кортеже
обновляется номер телефона, установленного в квартире 801-12).
Проблема удаления
В отношении Zgrad присутствует только один кортеж, соответствующий
Ильину Ф.П. Предположим, чиновник узнает, что этот житель лишился своего
источника дохода, условно именуемого Работа1, и удаляет этот кортеж из
отношения. Поскольку это единственный кортеж с информацией об Ильине, его
удаление приведет к исключению жителя из БД. Если чиновник вслед за этим
запросит список фамилий и.о. жителей, зарегистрированных в БД, то Ильина в
списке не окажется, хотя он продолжает жить по прежнему адресу.
В спроектированной РБД проблема удаления не возникает: для удаления
сведений об источнике доходов у Ильина, номер которого равен 4, следует
удалить кортеж <4, Работа, 300000> из отношения HAVE_D. После этого
сведения о существовании Ильина остаются в отношении PERSON без
изменений.
Итак, спроектированная РБД не создает проблем вставки, обновления и
удаления при работе с ней.
Вопросы для самоконтроля
1. Какие компоненты следует предусмотреть в инфологической модели?
2. Как по известной ER-диаграмме определить отношения (таблицы),
включаемые в проектируемую базу данных?
3. Какие проблемы возникают при использовании однотабличной базы данных?