Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OTChYoT_PO_KURSOVOJ_LAPShOVA.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆
    1. Нормализация таблиц

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

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

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

Рис. 1.6. Реляционная модель предметной области ОБЩЕПИТ

Примечание. Если таблица является объектом реляционной базы данных, то ее столбцы называются полями, а строки - записями.

Если, например, изменится название курса "Английский" на "Английский для делового общения", то его надо заменить во всех записях о тех студентах, которые изучают данный курс.

2. Минимальное использование отсутствующих значений (Null-значений). В нашем примере неясно, означают ли Null-значения атрибута "Преподаватель", что для группы А2 не определен преподаватель или его Ф.И.О. не введено. Из-за неопределенности интерпретации Null-значений их использование желательно свести к минимуму.

3. Предотвращение потери информации. Если, например, студент Шкляр Е.К. решит не изучать немецкий язык, то придется удалить запись со сведения ми о нем и тогда вообще будет потеряна информация о данном курсе. Минимизировать избыточность данных позволяет процесс, называемый нормализацией таблиц. Нормализацию можно было использовать для получения эффективных структур данных, созданных в результате преобразования ER-диаграмм в таблицы в предыдущем параграфе.

Но чтобы пояснить этот процесс, будем исходить из описания предметной области ОБЩЕПИТ, данного в параграфе 1.3, и предположения, что на его основе была разработана база данных, состоящая из следующих трёх таблиц:

Табл. 1. Таблица Блюда

Номер блюда

Название блюда

Вид блюда

Выход блюда(г.)

Изображение

1

Суп из утки

Первые блюда

300

Рис.

2

Чёрный суп

Первые блюда

300

Рис.

3

Рис с грибами

Вторые блюда

450

Рис.

4

Креветки с сыром

Вторые блюда

450

Рис.

Примечание. Ключи комбинация НБ, НЗБ.

Табл. 2. Таблица Ежедневное приготовление

Номер приготовления

Номер блюда

Кол-во порций

Дата приготовления

1

1

20

19.02.2017

2

1

10

15.02.2017

3

1

21

18.02.2017

4

1

22

20.02.2017

Примечание. Ключи комбинация НП, НБ.

Были выделены три нормальные формы - 1НФ, 2НФ, ЗНФ. Позже стали выделять нормальную форму Бойса-Кодда (НФБК), а затем 4НФ и 5НФ. Каждая последующая нормальная форма вводит определенные ограничения на хранимые в базе данные.

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

Определение 1НФ

Основные критерии:

  • Все поля таблицы содержат только простые неделимые значения.

  • Все элементы внутри ячеек должны быть атомарными (не списками).

Другими словами, элемент является атомарным, если его нельзя разделить на части, которые могут использовать в таблице независимо друг от друга. Таблицы БЛЮДА и ПРИГОТОВЛЕНИЕ удовлетворяют требованиям 1НФ.

Определение 2НФ

Основные критерии:

  • Таблица должна находиться в первой нормальной форме.

  • Любое её поле, не входящее в состав первичного ключа, функционально полно зависит от первичного ключа.

Функциональная зависимость — это понятие, отображающее определенную семантическую связь между полями таблицы.

В таблице ПРИГОТОВЛЕНИЕ неключевые поля КП, ДП функционально зависят от ключа (НП, НБ), что запишем

НП, НБ КП, ДП

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

НБ КП, ДП

Следовательно, неключевые КП, ДП находятся в частичной функциональной зависимости от первичного ключа (НБ, НЗС) и нарушаются требования 2НФ. Эти поля надо из таблицы ПРИГОТОВЛЕНИЕ удалить. Полученную в результате этого таблицу назовем ПРИГОТОВЛЕНИЕ-БЛЮДО (табл. 3), которая имеет вид

Номер приготовления

Номер блюда

1

1

2

1

3

1

4

1

Табл. 3. Таблица Приготовление-Блюдо

Эта таблица удовлетворяет требованиям 2НФ.

Удаленные неключевые поля помещаются в новую таблицу совместно с подмножеством НБ, от которого они зависят. И это подмножество будет первичным ключом новой таблицы ПРИГОТОВЛЕНИЕ (табл. 4) вида

Табл. 4. Таблица Приготовление

Номер блюда

Кол-во порций

Дата приготовления

1

20

19.02.2017

2

10

15.02.2017

3

21

18.02.2017

4

22

18.02.2017


Новая таблица ПРИГОТОВЛЕНИЕ также удовлетворяет требованиям 2НФ. Ее неключевые поля функционально полно зависят от первичного ключа.

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

Таблица БЛЮДО удовлетворяет требованиям 2НФ, так как ее неключевые поля ВБ, В, И функционально полно зависят от первичного ключа

НБ ВБ, В, И

Но в таблице БЛЮДО повторяется информация о виде блюда для всех блюд, обрабатываемых им. Поэтому ее надо привести к ЗНФ.

Определение 3НФ

Основные критерии:

  • Таблица находится во второй нормальной форме.

  • Любой её не ключевой атрибут функционально зависит только от первичного ключа. Не содержит транзитивных зависимостей.

Транзитивной зависимостью называется функциональная зависимость между неключевыми полями. В таблице БЛЮДО она наблюдается

НБВБ, ВЫБ

Следовательно, нарушаются требования ЗНФ. Из таблицы БЛЮДА надо удалить поля, участвующие в этой транзитивной зависимости, — ВБ, ВЫБ.

Получится таблица, характеризующая счет (табл. 5), вида

Табл. 5. Таблица Блюда

Номер блюда

Название блюда

Изображение

1

Суп из утки

Рис.

2

Чёрный суп

Рис.

3

Рис с грибами

Рис.

4

Креветки с сыром

Рис.


Затем создается новая таблица, в которую помещаются удаленные поля и поле, от которого они зависят (табл. 6). Она имеет вид

Табл. 6. Таблица Блюда

Вид блюда

Выход блюда(г.)

Первые блюда

300

Вторые блюда

450


Полученные таблицы 5, 6 приведены к ЗНФ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]