|
Программирование >> Проектирование баз данных
Если вы еще не догадались, поясним, что эта проблема решается путем разбиения данной таблицы на две: в одной будут столбцы Ship и Voyage, а во второй - Captam и Voyage Пятая нормальная форма (ЗНФ). Пятую нормальную форму иногда называют нормальной формой с проецированием соединений {НФПС) Она может использоваться при разрешении трех и более сущностей, которые связаны друг с другом отношениями многие ко многим В некоторых случаях разрешение этих отношений при помощи связующей сухцности может привести к получению дефектной модели, в которой могут появиться несуществующие отношения (известные как аномалия проецирования соединений). Эта проблема может возникнуть, если CASE-инструмент попытается разрешить за вас отношения многие ко многим , поскольку большинство автоматизированных методов здесь не выявило бы никаких зависимостей. Пример показан на рис 3.15. Рис 3 15 Трехсторонняя структура многие ко многим Каждый автомобиль имеет определенный цвет кузова, и каждый автомобиль имеет определенную модель. Некоторые цвета характерны только для определенных моделей (например, цвет металлик встречается только у моделей более высокого класса). Если мы разобьем эту проблему на составляющие и будем рассматривать ее как три изолированных отношения многие ко многим , то ее нужно будет решать путем ввода трех связующих сущностей, которые мы назовем CAR COLOR LINK, CAR MODEL LINK и COLOR MODEL LINK. Полученные в результате таблицы базы данных Oracle с примерными данными представлены на рис. 3.16. Ргойе llic Gn MODELS Metallic Sil Ghia Blue
Puc 3 16 Определения таблиц, которые нарушают ЗНФ Предположим, что к нам заходит клиентка и хочет заказать автомобиль. Она предпочитает голубой Ghia, причем модель роли не играет. Поэтому мы выдаем запрос к базе данных, чтобы посмотреть, из каких автомобилей она может выбрать. Ниже приведен SQL-запрос к базе данных Oracle?, используемый для решения этой задачи: SELECT FROM WHERE AND AND AND car.name cars car car color links ccl car model links cml car.name = ccl.name car.name = cml.name ccl.color = Blue cml.model = Ghia Данный запрос возвращает следующее: i*ame Escort Probe Это удивительный результат, так как из таблицы MODEL COLOR LINKS Мы видим, что моделей Ghia голубого цвета нет. Вывод возвращена ложная запись. Эта ложная строка - аномалия проецирования соединении и пример нарушения пятой нормальной формы. к счастью, правильное решение найти очень просто. Нужно ввести одну промежуточную сущность, связывающую остальные три, а именно CAR COLOR MODEL LINK. Правильная форма реализации этой таблицы представлена в табл. 3.4. Таблица 3.4. CAR COLOR MODEL LINKS: связующая таблица, иллюстрирующая ЗНФ
Необходимо отметить, что информационные модели, в которых имеются нарущения четвертой и пятой нормальной форм, встречаются относительно редко. Недопустимые и необычные структуры в информационной модели Изучая диаграммы сущность-отношение , вы наверняка заметили, что подавляющее большинство отношений - это отношения один ко многим , причем большей частью с необязательной стороной много и обязательной стороной один . Отношение такого типа вы видите на рис. 3,17. Его следует читать так: Каждый отдел может состоять из одого или более служащих, и каждый служащий должен работать только в одном отделе . ОТДЕЛ СЛУЖАЩИЙ; Состоит из,. Работает в... Рис. 3.17. Самая распространенная форма отношений Отношения другого типа стоит рассмотреть более подробно, В частности, ниже описаны отношения, которые либо недопустимы, либо нелогичны. Некоторые из них не являются недопустимыми, однако они необычны и встречаются редко. Одни из них нужно только разъяснить, а другие для реализации в виде таблиц Oracle требуют нетривиальных проектных решений, Свиные j/iiiii , имеющие сторону с обязательным участием Как мы уже отмечали, свиное ухо - это отношение сущности с другим экземпляром такой же сущности. Если какая-либо из сторон отношения
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |