Программирование >>  Хронологические базы данных 

1 ... 138 139 140 [ 141 ] 142 143 144 ... 348


мые проекции, а не на проекции, зависимые одна от другой. Декомпозицию на независимые проекции принято называть декомпозицией с сохранением зависимостей. К сожалению, следует отметить, что стремление к достижению двух указанных выше целей, а именно - к декомпозиции без потерь с приведением к НФБК и к декомпозиции с сохранением зависимостей, в некоторых случаях может привести к конфликтной ситуации.

В заключение данной главы вашему вниманию предлагается весьма элегантное (и абсолютно точное) определение ЗНФ и НФБК, данное Заниоло (Zaniolo) [11.7]. Сначала приведем определение ЗНФ.

Пусть дана переменная-отношение R, X является некоторым подмножеством атрибутов этой переменной-отношения R и А является некоторым отдельным атрибутом переменной-отношения R. Переменная-отношение R находится в третьей нормальной форме тогда и только тогда, когда для каждой функциональной зависимости X -> А в переменной-отношении R истинно по крайней мере одно из следующих утверждений.

1. Подмножество X включает атрибут А (т.е. данная ФЗ тривиальна).

2. Подмножество X является суперключом переменной-отношения R.

3. Атрибут А входит в состав некоторого потенциального ключа переменной-отношения R.

Определение НФБК можно получить из приведенного выше определения ЗНФ, просто опустив третье утверждение (из чего следует, что НФБК является более строгим ограничением по сравнению с ЗНФ). Именно третье утверждение является причиной той неадекватности исходного определения Кодда для ЗНФ [10.4], о которой упоминалось во введении к этой главе.

Упражнения

11.1. Докажите теорему Хита. Будет ли верной обратная теорема?

11.2. Существует мнение, что каждая бинарная переменная-отношение обязательно находится в НФБК. Верно ли это утверждение?

11.3. На рис. 11.19 показана структура информации о персонале компании, которая должна быть помещена в базу данных. Она представлена в том виде, который используется при работе с иерархической СУБД, подобной продукту Information Management System (IMS) фирмы IBM (см. главу 1). Эта структура удовлетворяет следующим правилам.

В компании имеется несколько отделов.

В каждом отделе (Department) есть некоторое количество сотрудников (Employee), занятых в нескольких проектах (Project) и размещающихся в нескольких офисах (Office).

Каждый сотрудник имеет план работы (Job), т.е. несколько заданий, которые он должен выполнить. Для каждого такого задания существует ведомость (Salary history), содержащая перечень денежных сумм, полученных сотрудником за выполнение данного задания.

В каждом офисе установлено несколько телефонов (Phone).



DEPARTMENT

EMPLOYEE

PROJECT

OFFICE

PHONE

SALARY HISTORY

Puc. 11.19. Иерархическое представление структуры информации о персонале компании, которая должна храниться в базе данных

В базе данных должна храниться следующая информация.

Для каждого отдела: номер отдела (уникальный), его бюджет и личный номер сотрудника, возглавляющего отдел (уникальный).

Для каждого сотрудника: личный номер сотрудника (уникальный), номер текущего проекта, номер офиса, номер телефона, а также название выполняемого задания вместе с датой и размером всех выплат, проведенных в качестве оплаты за выполнение данного задания.

Для каждого проекта: номер проекта (уникальный) и его бюджет.

Для каждого офиса: номер офиса (уникальный), площадь в квадратных футах, номера (уникальные) всех установленных в нем телефонов.

Составьте соответствующее множество переменных-отношений, необходимое для представления этой информации. Обоснуйте любые предположения, которые будут сделаны вами в отношении существующих в них функциональных зависимостей.

11.4. В базе данных системы учета заказов содержится информация о клиентах, деталях и заказах в соответствии с приведенным ниже описанием.

Для каждого клиента: номер клиента (уникальный);

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

Для каждого заказа:

информация в заголовке: номер клиента,

адрес доставки, дата выполнения заказа;

детальные строки (несколько на один заказ): номер детали,

заказанное количество.



Для каждой детали: номер детали (уникальный); заводы-изготовители; запас деталей на каждом заводе;

минимальное количество деталей на складе для каждого завода; описание детали.

Для внутреннего учета также вводится величина оставшееся количество , связанная с каждой детальной строкой каждого заказа. Исходно эта величина устанавливается равной заказанной количеству данной детали и последовательно уменьшается до нуля по мере частичного выполнения данной поставки. Составьте проект соответствующей базы данных и, как и в предыдущем упражнении, обоснуйте любые сделанные предположения о существующих функциональных зависимостях.

11.5. Предположим, что в упр. 11.4 лишь очень незначительная часть клиентов, например один процент или даже меньше, имеет более одного адреса доставки. (Это обычная ситуация в реальной жизни, когда лишь незначительное число исключений- но достаточно важных- может не вписываться в предлагаемую общую структуру.) Можете ли вы в этом случае указать на какие-либо недостатки решения, которое было предложено вами для упр. 11.4? Какие усовершенствования целесообразно было бы внести для их устранения?

11.6. {Модифицированная версия упр. 10.13.) Переменная-отношение TIMETABLE включает следующие атрибуты.

D День недели (1-5)

Р Время в течение дня (1-8)

С Номер аудитории

Т Имя преподавателя

S Имя студента

L Название лекции

Кортеж {D:d, Р:р, С:с, T:t, L:l} будет допустимым для этой переменной-отношения тогда и только тогда, когда в момент {D:d, Р:р} некоторый студент s посещает лекцию 1, которая читается преподавателем t в аудитории с. Можно предположить, что каждая лекция продолжается только один академический час и имеет название, уникальное по отношению ко всем другим лекциям, читаемым на данной неделе. Сделайте структуру переменной-отношения TIMETABLE более приемлемой.

11.7. {Модифицированная версия упр. 10.14.) Дана переменная-отношение NADDR с атрибутами NAME (уникальное имя), STREET, CITY, STATE и ZIP. Причем каждому почтовому индексу соответствует только один город и штат, а каждой улице, городу и штату- только один почтовый индекс. Находится ли переменная-отношение NADDR в НФБК, ЗНФ, 2НФ? Можно ли предложить улучшенный вариант этой переменной-отношения?



1 ... 138 139 140 [ 141 ] 142 143 144 ... 348

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика