Разработка базы данных "Микроконтроллеры", страница 3

На данном этапе необходимо отметить одну важную особенность, связанную с исходными данными. Представленные свойства микроконтроллеров, определяемые одним атрибутом, отличны для разных разрядностей. Например, информация о памяти для 64-разрядных  микроконтроллеров включает в себя лишь тип памяти, а информация о памяти для 32-разрядных  микроконтроллеров включает в себя объем, тип, дополнительные сведения. Аналогична ситуация с полями «Характеристики таймеров», «Характеристики АЦП/ЦАП», «Характеристики корпусов». Поскольку, впоследствии предполагается поиск по параметрам, содержащимся в этих составных атрибутах, например, поиск по объему SRAM, числу выводов корпуса, числу каналов АЦП и т.д., мы изменим структуру отношения «Микроконтроллеры». Создадим отношения соответствующие каждой разрядности микроконтроллеров, а также разобьем составные атрибуты на простые:

1) «8-разрядные МК» (название производителя, название устройства (семейство), архитектура, тактовая частота процессора, интерфейс шины, ширина инструкции, номинальные напряжения, номинальная мощность, режимы пониженного энергопотребления, поддержка DSP/multiplicatitoin hardware, FPU, кэш, объем SRAM (Кб), объем Flash (Кб), объем ROM (Кб), объем masked ROM (Кб), объем EEPROM (Кб), объем RAM (Кб), объем MTP (Кб), контроллер памяти, MMU, тип корпуса, число выводов, дополнительные сведения, число таймеров (8 бит), число таймеров (16 бит), функциональные таймеры, интерфейсы последовательного /параллельного ввода/вывода, прерывания, количество АЦП, разрядность АЦП (бит), число каналов АЦП, количество ЦАП, разрядность ЦАП (бит), число каналов ЦАП, дополнительные сведения по АЦП, интервал рабочих температур, дополнительные возможности, цена).

2) «16-разрядные МК» (название производителя, название устройства (семейство), архитектура, тактовая частота процессора, интерфейс шины, ширина инструкции, номинальные напряжения, номинальная мощность, режимы пониженного энергопотребления, поддержка DSP/multiplicatitoin hardware, FPU, кэш, объем SRAM (Кб), объем Flash (Кб), объем DataFlash (Кб), объем ROM (Кб), объем masked ROM (Кб), объем EEPROM (Кб), объем RAM (Кб), объем register RAM (Кб), контроллер памяти, MMU, тип корпуса, число выводов, дополнительные сведения, число таймеров (8 бит), число таймеров (10 бит), число таймеров (16 бит), число таймеров (24 бит), функциональные таймеры, интерфейсы последовательного /параллельного ввода/вывода, прерывания, количество АЦП, разрядность АЦП (бит), число каналов АЦП, количество ЦАП, разрядность ЦАП (бит), число каналов ЦАП, дополнительные сведения по АЦП, интервал рабочих температур, дополнительные возможности, цена).

3) «32-разрядные МК» (название производителя, название устройства (семейство), архитектура, тактовая частота процессора, интерфейс шины, ширина инструкции, номинальные напряжения, номинальная мощность, режимы пониженного энергопотребления, поддержка DSP/multiplicatitoin hardware, FPU, кэш, объем SRAM (Кб), объем Flash (Кб), объем DPRAM (Кб), объем ROM (Кб), объем masked ROM (Кб), объем EEPROM (Кб), объем RAM (Кб), объем MTP (Кб), oбъем XY memory (Кб), oбъем L2 (Кб), контроллер памяти, MMU, дополнительные сведения о памяти, тип корпуса, число выводов, дополнительные сведения, число таймеров (16 бит), число таймеров (32 бит), функциональные таймеры, интерфейсы последовательного /параллельного ввода/вывода, прерывания, количество АЦП, разрядность АЦП (бит), число каналов АЦП, количество ЦАП, разрядность ЦАП (бит), число каналов ЦАП, дополнительные сведения по АЦП, интервал рабочих температур, дополнительные возможности, цена).

4) «64-разрядные МК» (название производителя, название устройства (семейство), архитектура, тактовая частота процессора, интерфейс шины, ширина инструкции, номинальные напряжения, номинальная мощность, режимы пониженного энергопотребления, поддержка DSP/multiplicatitoin hardware, FPU, кэш, информация о типе памяти, контроллер памяти, MMU, тип корпуса, число выводов, дополнительные сведения, таймеры, интерфейсы последовательного /параллельного ввода/вывода, прерывания, АЦП/ЦАП, интервал рабочих температур, дополнительные возможности, цена).

            5) «Микроконтроллеры» (Код, 8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные).

Поскольку ключ присутствует в каждом из выделенных ранее отношений, а от составных атрибутов мы избавились, то можно считать все отношения соответствующими 1 нормальной форме.

            2 Нормальная форма. Отношение находится во второй нормальной форме, если удовлетворяет условиям первой нормальной формы, и каждый атрибут зависит от полного значения ключа, но не от его подмножества. Если ключ простой и отношение удовлетворяет условиям первой нормальной формы, то отношение автоматически находится во второй нормальной форме.

   Автоматически 2 нормальной форме соответствуют отношения «Микроконтроллеры», «8-разрядные МК», «16-разрядные МК», «32-разрядные МК», «64-разрядные МК», «Заказы» и «Заказчики», так как они имеют простые ключи. Отношение «Заказано» имеет составной ключ, но  «Количество», как единственный неключевой атрибут определяется всем составным ключом, потому что одно и тоже количество соответствует разным микроконтроллерам, входящим в заказы. Отношение «Заказано» тоже находится во второй нормальной форме.

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