Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы по СИИ.doc
Скачиваний:
3
Добавлен:
20.12.2018
Размер:
259.07 Кб
Скачать

12.Нормализация бд. Функциональные зависимости.

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

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

При проектировании БД решается 2 основные задачи:

  1. отображение реальных объектов предметной области, так чтобы они отражали реальный мир и было эффективно. Эта задача называется логическим проектированием БД.

  2. Перевод логической модели в физические структуры БД таким образом, чтобы обеспечивалось эффективное выполнение запросов к этим данным.

Эта задача называется физическим проектированием БД.

При проектировании логической модели БД решаются задачи: 1. Выбор отношений, составляющих их атрибутов. 2. Выполнение нормализации выбранных отношений. Нормализация – механизм получения эффективной логической модели данных.

Существует несколько нормальных форм. Каждой нормальной форме соответствует определенный набор ограничений. Все нормальные формы удовлетворяют следующим требованиям. При переходе к следующей нормальной форме свойства предыдущей формы сохраняются. Каждая нормальная форма в некотором смысле эффективнее предыдущей.

Механизм нормализации основан на декомпозиции, разбиении отношений, находящихся в исходной нормальной форме в 2 или более отношений, находящихся в следующей нормальной форме.

Функциональные зависимости:

  1. в отношении R атрибут Y функционально зависит от атрибута X ( Y и X могут быть составными) в том и только том случае, если каждое значение X соответствует только одно значение Y. Таб_номер – фамилия.

  2. Полная функциональная зависимость. Функциональная зависимость (X – составной атрибут). Функциональная зависимость является полной, если атрибут Y функционально не зависит от любого подмножества X.

  3. Транзитивная функциональная зависимость. Функциональная зависимость X и Y называется транзитивной, если существует такое z , что существует зависимость: x=>z, z=Y

Таб _номер=>оклад

Z=тар_ разряд

  1. Ключ (потенциальный ключ) – атрибут или группа атрибутов, которые могут быть первичным ключом. Неключевой атрибут – атрибут, не входящий в состав первичного ключа.

  2. Взаимнонезависимые атрибуты – два или более атрибута независимы, если ни один из этих атрибутов не является зависимым от других.

Таб_номер=>фамилия

  • Отдел

  • Тар_разряд

  • Оклад

Таб_номер, проект_номер=>вып_работа

Тар_разряд=>оклад

13.Нормализация бд. 1нф

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

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

Сущность(отношение) находится в первой нормальной форме тогда и только тогда:

- когда все атрибуты содержат атомарные (логически неделимые) значения; например, атрибут Фамилия Имя Отчество не является атомарным, так как раскладывается на три атрибута «Фамилия», «Имя» и «Отчество»

- нет повторяющихся экземпляров

- нет повторяющихся групп атрибутов

- нет атрибутов, хранящих разные по смыслу значения; Например, не отвечает этому условию атрибут Дата зачисления или дата увольнения

Для приведения отношения к первой нормальной форме следует:

  • разделить сложные атрибуты на атомарные

  • для повторяющихся групп атрибутов создать новую сущность(отношение) и перенести в него все повторяющиеся атрибуты; выбрать в новой сущности первичный ключ; установить идентифицирующую связь между новой сущностью (она будет родительской) и старой (дочерней)

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

Данную модель можно представить отношением (сущностью) Работа (рис.1)

Рис. 1. Ненормализованная сущность Работа

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

Для приведения к первой нормальной форме сущности Работа следует: разделить составные атрибуты и выбрать поле первичного ключа. В качестве первичного ключа целесообразно выбрать реквизиты: Табельный номер и Номер проекта

На рис. 2 показана сущность Работа, приведенная к первой нормальной форме.

Рис. 2 . Сущность Работа в первой нормальной форме

В сущности можно выделить функциональные зависимости:

(Табельный номер,Номер проекта) Выполняемая работа

(Табельный номер,Номер проекта) Дата начала работы

(Табельный номер,Номер проекта) Дата завершения работы

Табельный номер Фамилия

Табельный номер Имя

Табельный номер Отчество

Табельный номер Тарифный разряд

Табельный номер Оклад

Тарифный разряд Оклад

Исходная модель данных имеет недостатки:

  • дублирование данных о сотрудниках, если он участвует в нескольких проектах;

  • трудности при обновлении данных. Например, нельзя добавить сотрудника, если он не участвует ни в каком проекте.

Недостатки данной сущности устраняются путем приведения модели данных ко второй нормальной форме.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.