отношения не удовлетворяющие 1нф

СОДЕРЖАНИЕ

Обзор

В иерархической базе данных, такой как IBM Information Management System, запись может содержать наборы дочерних записей, известных как повторяющиеся группы или возвращающие табличное значение атрибуты. Если такая модель данных представлена ​​как отношения, повторяющаяся группа будет атрибутом, в котором значение само является отношением. Первая нормальная форма устраняет вложенные отношения, превращая их в отдельные отношения «верхнего уровня», связанные с родительской строкой через внешние ключи, а не через прямое включение.

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

Обоснование

Обоснование нормализации до 1НФ:

Недостатки и критика

История

Первая нормальная форма была представлена ​​Э. Ф. Коддом в статье «Реляционная модель данных для больших общих банков данных», хотя изначально она называлась просто «Нормальная форма». Он был переименован в «Первая нормальная форма», когда в статье «Дальнейшая нормализация реляционной модели» были введены дополнительные нормальные формы.

Примеры

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

Конструкции, нарушающие 1НФ

Эта таблица транзакций по кредитным картам клиентов не соответствует первой нормальной форме:

ПокупательПользовательский ИДСделки
Авраам1
ID транзакцииДатаКоличество
1289014 октября 2003 г.−87
1290415 октября 2003 г.−50
Исаак2
ID транзакцииДатаКоличество
1289814 октября 2003 г.−21
Иаков3
ID транзакцииДатаКоличество
1290715 октября 2003 г.−18
1492020-ноя-2003−70
1500327-ноя-2003−60

Каждому покупателю соответствует «повторяющаяся группа» транзакций. Такой дизайн может быть представлен в иерархической базе данных, но не в базе данных SQL, поскольку SQL не поддерживает вложенные таблицы.

Автоматическая оценка любого запроса, касающегося транзакций клиентов, в целом включает два этапа:

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

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

Конструкции, соответствующие 1NF

В этом примере идентификатор клиента является первичным ключом содержащихся отношений и поэтому будет добавлен как внешний ключ к новому отношению:

ПокупательПользовательский ИД
Авраам1
Исаак2
Иаков3
Пользовательский ИДID транзакцииДатаКоличество
11289014 октября 2003 г.−87
11290415 октября 2003 г.−50
21289814 октября 2003 г.−21
31290715 октября 2003 г.−18
31492020-ноя-2003−70
31500327-ноя-2003−60

Атомарность

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

Хью Дарвен и Крис Дат предположили, что концепция Кодда «атомарной ценности» неоднозначна, и что эта двусмысленность привела к широко распространенной путанице в отношении того, как следует понимать 1NF. В частности, понятие «значение, которое не может быть разложено» является проблематичным, поскольку оно, казалось бы, подразумевает, что немногие типы данных, если они вообще есть, являются атомарными:

Таблицы 1НФ как представления отношений

Согласно определению Дейта, таблица находится в первой нормальной форме тогда и только тогда, когда она « изоморфна некоторому отношению», что означает, в частности, что она удовлетворяет следующим пяти условиям:

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

Примеры таблиц (или представлений ), которые не соответствуют этому определению первой нормальной формы:

Источник

Нормализация отношений. Нормальные формы в БД

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


Зачем нужна нормализация БД?

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

Термины

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

Полная функциональная зависимость. Поле В находится в полной функциональной зависимости от составного поля А, если оно функционально зависит от А и не зависит функционально от любого подмножества поля А.

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

Определение первой нормальной формы

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

Пример приведения отношения к первой нормальной форме

Исходная ненормализованная таблица:

Сотрудник

Номер телефона

В поле номер телефона содержатся несколько значений, что не удовлетворяет определению первой нормальной формы.

Таблица, приведённая к 1НФ:

Сотрудник

Номер телефона

Определение второй нормальной формы

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

Пример приведения отношения ко второй нормальной форме

Пусть в следующем отношении первичный ключ образует пара атрибутов < Сотрудник, Должность>:

Сотрудник

Должность

Зарплата

Наличие компьютера

Зарплату сотруднику каждый начальник устанавливает сам (хотя её границы зависят от должности). Наличие же компьютера у сотрудника зависит только от должности, то есть зависимость от первичного ключа неполная.

В результате приведения к 2НФ исходное отношение следует декомпозировать на два отношения:

Сотрудник

Должность

Зарплата

Должность

Наличие компьютера

Определение третьей нормальной формы

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

Пример приведения отношения к третьей нормальной форме

Рассмотрим в качестве примера отношение, которое находится во 2НФ, но не соответствует 3НФ:

Сотрудник

Отдел

Телефон

В отношении атрибут «Сотрудник» является первичным ключом. Личных телефонов у сотрудников нет, и телефон сотрудника зависит исключительно от отдела.

Таким образом, в отношении существуют следующие функциональные зависимости: Сотрудник → Отдел, Отдел → Телефон, Сотрудник → Телефон.

В данной таблице присутствует функциональная зависимость между неключевыми полями Отдел → Телефон. Этот факт не удовлетворяет условию 3НФ.

В результате разделения таблицы получаются два отношения, находящиеся в 3НФ:

Источник

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

5.4 Определение первой нормальной формы. Правило приведения

Таблица 5.3. Пример первой нормальной формы. Ненормализованная форма

ПОДПИСЧИКИЗДАНИЕ
ИвановТаблица 5.4. Пример первой нормальной формы. 1НФ

ПОДПИСЧИКИЗДАНИЕ
ИвановПравда
ИвановИзвестия
ИвановКоммерсант
Петров

Почему ненормализованные отношения неудобны? Вспомните, что значения атрибутов считаются атомарными. Это означает, что их нельзя препарировать, разделяя на составные части. Например, невозможно определить, что Иванов подписывается на Известия, но можно найти тех, кто подписывается сразу на Правду, Известия и Коммерсант (но не на Известия, Правду, и Коммерсант).

Для получения первой нормальной формы (сокращенно, 1НФ или 1NF) необходимо преобразование, обеспечивающее атомарность атрибутов. Выписываем по одной строке для каждого издания и каждого подписчика (таблица 5.4). Естественно, мы вынуждены повторять фамилии лиц, подписавшихся более чем на одно издание. Иванов у нас повторен трижды. Но теперь ключом становятся оба столбца. То есть все столбцы отношения ключевые. Получена первая нормальная форма.

Использованный способ нормализации до 1НФ называется выравниванием таблицы.

Иногда говорят, что нормализация необходима для минимизации объема базы. Но при переходе к 1НФ мы увеличили избыточность. На самом деле, нормализация нужна для устранения аномалий.

Остается дать определения. Их будет два: 1НФ через атрибуты, 1НФ через ключи.

Определение (1НФа (через атрибуты)). Сущность (отношение) находится в 1НФ, если значения всех ее атрибутов атомарны.

Определение (1НФк (через ключи)). Сущность (отношение) находится в 1НФ, если она имеет ключ.

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

Утверждение. Из определения 1НФа следует определение 1НФк.

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

Замечание. Обратное утверждение не верно, из-за существования непервой нормальной формы.

Для того, чтобы получить правила приведения к 1НФ рассмотрим пример (рисунок 5.5). Кстати, почему я все время отсылаю вас к примерам? Потому что для человека мышление по образцам более естественно, чем мышление с помощью логики.

отношения не удовлетворяющие 1нф. Смотреть фото отношения не удовлетворяющие 1нф. Смотреть картинку отношения не удовлетворяющие 1нф. Картинка про отношения не удовлетворяющие 1нф. Фото отношения не удовлетворяющие 1нф

Есть еще атрибут «Дата зачисления или увольнения». Как узнать какая дата записана, если она одна? Понятно, можно написать: «1 марта 2010 уволен». Но, наверное, такие вольности приведут к неоправданному усложнению процедурной части программы из-за неатомарных значений.

Давайте сделаем несколько оправданных предположений. Разумнее атрибут «Дата зачисления и увольнения» заменить на два атрибута: «Дата зачисления» и «Дата увольнения» Раз специальностей и телефонов у человека может быть много, давайте считать, что это отдельные сущности. Выделим их, как показано на рисунке 5.2 вверху справа. Число экземпляров у сущностей «Специальность» и «Телефон» может быть любым.

А теперь обратим внимание на один важный нюанс: нас интересуют не специальности и телефоны вообще, а только имеющиеся у данного человека. Значит новые сущности следует привязать к табельному номеру сотрудника с помощью идентифицирующих связей (рисунок 5.2 внизу справа).

Описанный способ приведения к 1НФ называется выделением в отдельные отношения.

Теперь будут понятны следующие правила.

5.4.1 Правила приведения к первой нормальной форме

Для многозначных атрибутов возможны два пути:

Для составных и повторяющихся атрибутов:

Почему связь должна быть идентифицирующей? Потому что выделенные справочные сущности только уточняют свойства основной сущности, и без привязки к экземпляру основной сущности их смысл теряется. Например, на рисунке 5.5 справочная сущность «Специальность» имеет смысл «Специальность данного сотрудника», а без привязки ее смысл определялся как «Специальность вообще», что не соответствует семантике исходной сущности.

Для соединения преобразованной основной сущности со справочными в ERwin подхватываем инструмент «Идентифицирующая связь» («Identifying relationship») и щелкаем сначала по основной сущности, а затем по вспомогательной. В получившейся диаграмме выделим два важных обстоятельства:

Заметим, что приведенные правила приведения, как и все другие, содержат нечеткости. Поэтому в их применении следует соблюдать меру. Так, попытка выделить дополнительную сущность «Издание» в примере в таблице 5.3 приведет в лучшем случае к введению суррогатного ключ, не очень оправданного в этой ситуации.

5.5 Замечание о непервой нормальной форме (Н1НФ, NFNF, NF)

Определим непервую нормальную форму как первую нормальную форму (1НФ) удовлетворяющую условию 1НФк, но не удовлетворяющую условию 1НФа. Для обозначения непервой нормальной формы используют аббревиатуры Н1НФ, NFNF, и даже NF2.

Источник

Хорошие Ручные Руководства Обучающего Времени По Специальности Информационные Технологии

Обучение переводу статей англоязычной документации, статьи про алгоритмы, а также LifeHacks, статьи по Компьютеру и Программированию, Журнал для Детей, Математику и смежные науки Инженерии.

Поиск по этому блогу

Данная статья посвящена нормальным формам базы данных, её видам, преимуществам и недостаткам. В ней рассматриваются 8 форм нормализации и, также, преимущества денормализованной базы данных.

отношения не удовлетворяющие 1нф. Смотреть фото отношения не удовлетворяющие 1нф. Смотреть картинку отношения не удовлетворяющие 1нф. Картинка про отношения не удовлетворяющие 1нф. Фото отношения не удовлетворяющие 1нф

Содержание:

1. Введение

Нормальная форма — свойство отношения в реляционной модели данных, характеризующее его с точки зрения избыточности, потенциально приводящей к логически ошибочным результатам выборки или изменения данных. Нормальная форма определяется как совокупность требований, которым должно удовлетворять отношение. Процесс преобразования отношений базы данных к виду, отвечающему нормальным формам, называется нормализацией. Всего нормальных форм в статье рассматривается восемь. Каждая форма содержит правило улучшения базы данных, каждая следующая форма включает предыдущую и дополняет её. Основной девиз нормализации для всех форм: Don’t Repeat Yourself! (DRY), он также используется и в программировании. Также виды нормализации позволяют не потерять логическую структуру при уменьшении избыточности. Т.е. нормализация направлена на уменьшение дублирования данных, их сжатия, при этом главная задача — потенциально не потерять связь данных.

2. Виды нормальных форм

Рассмотрим восемь видов нормальных форм по их степени силы от самой слабой до самой сильной.

2.1. Первая нормальная форма (1NF)

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

Пример не номальной формы:

ОтделСотрудник
Call-центрСидоров, Петров, Иванов
МенеджментТютчев

Её 1-ая нормальная форма:

ОтделСотрудник
Call-центрСидоров
Call-центрПетров
Call-центрИванов
МенеджментТютчев

2.2. Вторая нормальная форма (2NF)

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

Пример не номальной формы:

ОтделСотрудникТелефон отделаДолжность
Call-центрСидоров8 (495) 555-55-55Телефонный операционист
Call-центрПетров8 (495) 555-55-55Телефонный операционист
Call-центрИванов8 (495) 555-55-55Рабочий с клиентами
МенеджментТютчев8 (495) 444-44-44Генеральный директор

Её 2-ая нормальная форма, получилось разбиение на две таблицы:

ОтделТелефон отдела
Call-центр8 (495) 555-55-55
Менеджмент8 (495) 444-44-44
ОтделСотрудникДолжность
Call-центрСидоровТелефонный операционист
Call-центрПетровТелефонный операционист
Call-центрИвановРабочий с клиентами
МенеджментТютчевГенеральный директор

Т.е. это строгая функциаональная зависимость от ключа, зависимость по словарю.

2.3. Третья нормальная форма (3NF)

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

Пример не номальной формы:

ОтделСотрудникТелефон отделаДолжность
Call-центрСидоров8 (495) 555-55-55Телефонный операционист
Call-центрПетров8 (495) 555-55-55Телефонный операционист
Call-центрИванов8 (495) 555-55-55Телефонный операционист
МенеджментТютчев8 (495) 444-44-44Генеральный директор

Её 3-я нормальная форма, получилось разбиение на две таблицы:

ОтделТелефон отделаДолжность
Call-центр8 (495) 555-55-55Телефонный операционист
Менеджмент8 (495) 444-44-44Генеральный директор
ОтделСотрудник
Call-центрСидоров
Call-центрПетров
Call-центрИванов
МенеджментТютчев

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

2.4. Нормальная форма Бойса — Кодда (BCNF)

Переменная отношения находится в нормальной форме Бойса — Кодда (по другому — в усиленной третьей нормальной форме) тогда и только тогда, когда каждая её нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ.

Пример не номальной формы:

ОтделСотрудникДолжностьТелефон отделаСмена
Call-центрСидоров8 (495) 555-55-55Телефонный операционистБудни
Call-центрСидоров8 (495) 555-55-55Телефонный операционистВыходные
Call-центрПетров8 (495) 555-55-55Телефонный операционистБудни
Call-центрИванов8 (495) 555-55-55Телефонный операционистВыходные
МенеджментТютчев8 (495) 444-44-44Генеральный директорБудни

Её нормальная форма Бойса — Кодда, получилось разбиение на две таблицы:

ОтделТелефон отделаДолжность
Call-центр8 (495) 555-55-55Телефонный операционист
Менеджмент8 (495) 444-44-44Генеральный директор
ОтделСотрудникСмена
Call-центрСидоровБудни
Call-центрСидоровВыходные
Call-центрПетровБудни
Call-центрИвановВыходные
МенеджментТютчевБудни

Жирным выделены ключи. Т.е. запись должна иметь обязательно потенциальный ключ, составной, если прямого нет.

2.5. Четвёртая нормальная форма (4NF)

Переменная отношения находится в четвёртой нормальной форме, если она находится в нормальной форме Бойса — Кодда и не содержит нетривиальных многозначных зависимостей.

Пример не номальной формы, T1:

ОтделРайон доставкиВид доставки

Если нам нужно добавить в эту таблицу новый район доставки, то нам придётся создавать для него все виды доставки. Проще данную таблицу разбить на две таблицы:

ОтделРайон доставки
ОтделВид доставки

Эти таблицы удовлетворяют 3НФ и нормальной форме Бойса — Кодда. Но если в T1 добавилась и цена. То следующая таблица T4, удовлетворяет 4-ой нормальной форме, т.к. новый первичный ключ полностью зависит от цены (помечен жирным):

ОтделРайон доставкиВид доставкиЦена

В результате изменения базы данных, уже у существующих таблиц может измениться 4-ая нормальная форма.

Как общий принцип 4-ой нормальной формы: главное декомпозицией не добавить избыточность и не нарушить целостность.

2.6. Пятая нормальная форма (5NF)

Переменная отношения находится в пятой нормальной форме (иначе — в проекционно-соединительной нормальной форме) тогда и только тогда, когда каждая нетривиальная зависимость соединения в ней определяется потенциальным ключом (ключами) этого отношения.

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

2.6.1. Декомпозиция без потерь

Пусть есть таблица 1. Таблицы 2 и 3 называются декомпозицией таблицы 1, если они в точности совпадают с ней.

Пусть у нас есть таблица T5 и задача: каждый отдел компании осуществляет определённый вид доставки в стране:

ОтделВид доставкиСтрана
Отдел по внутренней доставкеКурьерская доставкаРоссия
Отдел по внутренней доставкеПочтаРоссия
Отдел внешней доставкиПочтаГермания
Отдел внешней доставкиПочтаФранция
Отдел внешней доставкиПочтаАнглия

Разобьём её на таблицы Т6 и Т7:

Отдел
Отдел по внутренней доставке
Отдел внешней доставки
Вид доставкиСтрана
Курьерская доставкаРоссия
ПочтаРоссия
ПочтаГермания
ПочтаФранция
ПочтаАнглия

Объединение этих таблиц будет, Т8:

ОтделВид доставкиСтрана
Отдел по внутренней доставкеКурьерская доставкаРоссия
Отдел по внутренней доставкеПочтаРоссия
Отдел по внутренней доставкеПочтаГермания
Отдел по внутренней доставкеПочтаФранция
Отдел по внутренней доставкеПочтаАнглия
Отдел по внутренней доставкеКурьерская доставкаРоссия
Отдел по внутренней доставкеПочтаРоссия
Отдел по внутренней доставкеПочтаГермания
Отдел по внутренней доставкеПочтаФранция
Отдел по внутренней доставкеПочтаАнглия

Полученная таблица (T8) не совпадает с исходной (T5). И по определению не является её декомпозицией без потерь.

Теперь рассмотрим следующее разбиение исходной таблицы (T5):

ОтделВид доставки
Отдел по внутренней доставкеКурьерская доставка
Отдел по внутренней доставкеПочта
Отдел внешней доставкиПочта
ОтделСтрана
Отдел по внутренней доставкеРоссия
Отдел внешней доставкиГермания
Отдел внешней доставкиФранция
Отдел внешней доставкиАнглия

Объединение этих двух таблиц совпадает с исходной (T5), является декомпозицией без потерь. Отношение находится в пятой нормальной форме (иначе — в проекционно-соединительной нормальной форме) тогда и только тогда, когда каждая нетривиальная зависимость соединения в нём определяется потенциальным ключом (ключами) этого отношения.

Любое отношение в 5НФ автоматически находится также в 4НФ и, следовательно, во всех других нормальных формах. 5НФ является окончательной нормальной формой (по крайней мере в контексте операций проекции и соединения).

2.7. Доменно-ключевая нормальная форма (DKNF)

Переменная отношения находится в ДКНФ тогда и только тогда, когда каждое наложенное на неё ограничение является логическим следствием ограничений доменов (типов данных) и ограничений ключей, наложенных на данную переменную отношения.

Ограничение домена — ограничение, предписывающее использовать для определённого атрибута значения только из некоторого заданного домена (типа данных, набора значений). Ограничение по своей сути является заданием перечня (или логического эквивалента перечня) допустимых значений типа и объявлением о том, что указанный атрибут имеет данный тип.

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

Любая переменная отношения, находящаяся в ДКНФ, обязательно находится в 5НФ. Однако не любую переменную отношения можно привести к ДКНФ.

2.8. Шестая нормальная форма (6NF)

Переменная отношения находится в шестой нормальной форме тогда и только тогда, когда она удовлетворяет всем нетривиальным зависимостям соединения. Из определения следует, что переменная находится в 6НФ тогда и только тогда, когда она неприводима, то есть не может быть подвергнута дальнейшей декомпозиции без потерь. Каждая переменная отношения, которая находится в 6НФ, также находится и в 5НФ.

2.9. Вложенность нормальных форм

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

Порядок нормальных форм от самой сильной до самой слабой:

отношения не удовлетворяющие 1нф. Смотреть фото отношения не удовлетворяющие 1нф. Смотреть картинку отношения не удовлетворяющие 1нф. Картинка про отношения не удовлетворяющие 1нф. Фото отношения не удовлетворяющие 1нф

Рис. 1. Вложенность нормальных форм.

3. Преимущества и недостатки нормализации

Рассмотрим преимущества и недостатки нормализации базы данных.

3.1. Денормализация базы данных

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

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

Т.е. основной принцип денормализации — хранить данные рядом.

4. Заключение

Как Вы видете процесс разработки базы данных очень сложный и компромисный. Стоит построить базу нормализованной и уже потом приступить к её денолизации, и то, в крайнем случае. Лучше построить базу нормализованной, оптимизировать все запросы и построить для них индексы.

Помните главный принцип нормализации — Don’t Reapeat Yourself (DRY) — устранить дублирование данных и улучшить сжатие, не потеряв целостность данных.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *