Логическое проектирование баз данных

Страницы работы

Содержание работы

4. Логическое проектирование БД

4.1 Нормализация

Проведем нормализацию полученных отношений. Проверим отношения на первую нормальную форму (1НФ). Отношение находится в 1НФ, если все его атрибуты имеют единственное значение. Проверяем это условие и убеждаемся, что все отношения находятся в 1НФ: в рассматриваемой  БД нет абсолютно одинаковых записей в какой бы то ни было таблице.

Проверим отношения на вторую нормальную форму (2НФ). Отношение находится в 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от первичного ключа. В таблице «писатели» можно исключить явную избыточность данных – сведения о стране писателя, вынесев эти сведения в отдельную таблицу «страна». Этот шаг был проведен на этапе построения ER-диаграммы. В таблице «книги» в результате декомпозиции получим отдельную таблицу – «возрастная_категория».

Проверим отношения на третью нормальную форму (3НФ). Отношение находится в 3НФ, если оно находится в 2НФ и каждый не ключевой атрибут нетранзитивно  зависит от первичного ключа, другими словами не зависит функционально от любого другого не ключевого поля. Рассмотрим основные сущности. Сущность «книги» зависит от сущности «писатели» (по атрибуту «фамилия автора»), а сущность  «библиотеки» зависит от сущности «книги» (по атрибуту «название библиотеки»).

    «писатели» -> «книги» -> «библиотеки»

              Транзитивной зависимости «писатели» -> «библиотеки» не наблюдается, следовательно, отношения находятся в 3НФ.

    Преобразуем ER – диаграмму в схему данных. Отображением каждой сущности является таблица БД. Название сущности будет названием таблицы, атрибуты будут полями в этой таблице. Присвоим каждому полю соответствующий тип данных, создадим ключевые и индексированные поля. Для этого, открыв таблицу в режиме конструктора необходимо в свойствах поля выбрать «индексированное поле (не допускаются совпадения)» для поля, являющегося ключом по ER – диаграмме. Если необходимо осуществить связь ∞, то  нужно выбрать «индексированное поле (допускаются совпадения)».

Ключевыми полями будут поля «Писатель» (сущность «Писатели»), «Название_сказки» (сущность «Книги»), «Название» (сущность «Библиотеки»), «Страна» (обозначение «Страна»), «Возрастная категория» (обозначение «Возрастная категория»). 

Индексированными полями будут поля «Страна» (сущность «Писатели»), «Писатель» (сущность «Книги»), «Книга» и «Библиотека» (ассоциация «Выдача»).

Для поля «страна» выбор осуществляется из раскрывающегося списка, источником строк служат записи в таблице «страна».

Похожие материалы

Информация о работе