double arrow

НОРМАЛИЗАЦИЯ ОТНОШЕНИЙ


При проектировании реляционных баз данных важно уметь группировать атрибуты в различные отношения.

Рациональные варианты группировки должны отвечать требованиям:

1) Выбранные в отношении первичные ключи должны содержать минимальное число элементов.

2) Выбранный состав отношений базы должен обладать минимальной избыточностью атрибутов.

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

4) Должна быть минимальная перестройка набора отношений при введении новых типов данных.

5) Разброс времени ответа на различные запросы к базе данных должен быть небольшим.

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

Поставки (название поставки, адрес поставщика для любого товара, товар, количество, цена)

1) Аномалия модификации заключается в том, что если у поставщика изменяется адрес, то необходимо заменить это данное во всех кортежах, где оно есть.

Если по каким-то причинам это данное изменено не во всех кортежах, база данных становится противоречивой, нарушается целостность данных.




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

3) Аномалия включения – возникает в случае, когда с поставщиком только что заключили договор, но еще нет поставки, нельзя включить в базу.

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

В отношении ключи возможные и первичные. Если некоторый атрибут Аi входит в состав первичного ключа, он называется первичным (остальные атрибуты – непервичные).

Исчисление отношений

В реляционном исчислении главным средством описания новых отношений исходной структуры является символическое обозначение вида А(х1.y1, x2.y2, …..)В. Оно означает отношение с именем А, полученное в результате проекции кортежей, удовлетворяющих булевскому выражению В, на домены х.у, где хi - имя отношения (исходной структуры), yi – имя домена из этого отношения. Различают квантор существования $ и квантор всеобщности ".

Двоеточие : – «такой, что»

Пример: выражение

А (К.ФИО, К.зарплата) : К.цех = 3 зарплата __1500 задает таблицу (отношение) с именем А с двумя доменами из отношения К (кадры). Первый домен содержит фамилии, имена и отчества рабочих, второй – размер месячной заработной платы. В отношение А включаются только рабочие третьего цеха с размером зарплаты больше 1500 руб.



Вторая и третья нормальные формы.

Если в отношении какой-либо атрибут или группа атрибутов Х полностью определяют другой атрибут (или группу атрибутов) Y , то Y функционально зависит от Х. (" Х соответствует лишь одно значение Y). Атрибут (группа атрибутов) называется полно зависимыми от группы атрибутов Х, если Y функционально зависит только от всего множества Х, а не от какого-либо его собственного подмножества.

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

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

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

Если любой такой ключ является простым ключом и Х не зависит функционально от Y или Y – от Z, имеет место неполная транзитивная зависимость Z от Х.

Преобразование 2НФ в третью форму (3НФ) состоит в расщеплении отношения R на два

a) СТАТ и ГОРОД не функционально полно зависят от первичного ключа

b) СТАТ и ГОРОД не являются взаимно независимыми.

Отношение ПЕРВОЕ содержит аномалии:

- включение (не можем включить поставщика, пока не поставляет детали. Нет поставщика n5 из Афин)

- удаление (с удалением кортежа о поставке удаляем информацию о поставщике)



- обновление (значение ГОРОД повторяется многократно).

Заменим отношение ПЕРВОЕ двумя отношениями: ВТОРОЕ и ПОСТАВКА

П # СТАТ ГОРОД
n1 Лондон
n2 Париж
n3 Париж
n4 Лондон
n5 Афины

ВТОРОЕ

ПОСТАВКА

П # Д# КОЛ
     
     
     

Отношение ВТОРОЕ и ПОСТАВКА находятся во второй нормальной форме (2НФ).

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

Преобразования из 1НФ во 2НФ состоит в замене отношения соответствующими проекциями.

ВТОРОЕ = П1,2, 3 (ПЕРВОЕ)

ПОСАВКА = П1,4,5(ПЕРВОЕ)

ПЕРВОЕ = ВТОРОЕ > < ПОСТАВКА

1=1

Отношение в 1НФ, которое не находится во 2НФ, должно иметь составной первичный ключ. В отношении ВТОРОЕ отсутствует взаимная независимость между неключевыми атрибутами.

П# ®ГОРОД ГОРОД®СТАТ

Зависимость СТАТ от П# является транзитивной.

П# ®ГОРОД ГОРОД ®СТАТ

Заменим отношение ВТОРОЕ двумя проекциями

ПГ П# ГОРОД ГС ГОРОД СТАТ
  n1 Лондон   Афины
  n2 Париж   Лондон
  n3 Париж   Париж
  n4 Лондон      
  n5 Афины      

Устраняется транзитивная зависимость.

Оба отношения находятся в 3НФ.


26. ЯЗЫК ЗАПРОСОВ SQL

В конце 80-х годов произошел стремительный взлет популярности СУБД одного конкретного типасистемы управления реляционными базами данных. С тех пор реляционная база данных (РБД) стала единственным стандартным типом базы данных. Данные в РБД хранятся в простой табличной форме, что дает реляционным базам данных много преимуществ по сравнению с базами данных более ранних разработок. SQL представляет собой язык именно реляционных баз данных

Краткая история SQL

История SQL тесно связана с развитием реляционных баз данных. Понятие реляционной базы данных было введено доктором Э. Ф. Коддом, научным сотрудником компании IBM. В июне 1970 года доктор Кодд опубликовал статью под названием "Реляционная модель для больших банков совместно используемых данных'' (“A Relational Model of Data for Large Shared Data Banks"), в которой в общих чертах была изложена математическая теория хранения данных в табличной форме и их обработки. Реляционные базы данных и SQL ведут свое начало от этой статьи, появившейся в журнале " Communications of the Association for Computing Mashinery”.







Сейчас читают про: