Презентация "Теория реляционных баз данных"

Подписи к слайдам:
Теория реляционных баз данных Литература
  • Мейер Д. Теория реляционных баз данных. М.:«Мир», 1987
  • Дейт К.Дж. Введение в системы баз данных. , 6-е изд.:Пер. с англ.. ,К.; СПб.:Издательский дом «Вильямс», 2000.
  • Кодд Э.
  • Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ, М.:«Мир», 1991
  • Хансен Г., Хансен Дж. Базы данных. Разработка и управление. - Издательство Бином
  • Мишенин А.И. Теория экономических информационных систем. М.:ФиС, 2005.
Основные понятия Реляционная модель. Информационные единицы.
  • База данных
  • Отношение  таблица
  • Запись (строка, ряд, запись,row, кортеж)
  • Атрибут (поле)
  • Домен – множество значений атрибута
Реляционная модель данных
  • Реляционная база данных - совокупность взаимосвязанных плоских таблиц
  • Особенности реляционной модели:
    • Простая линейная структура записи
    • Связи между таблицами устанавливаются динамически, в момент выполнения запроса по равенству значений полей связи
    • ЯМД – теоретико-множественный
Влияние особенностей модели на проектирование
  • Должны быть устранены все составные единицы информации
  • Поля связи должны иметь соответствующие друг другу типы данных, одинаковые длины. Совпадение имен не обязательно, но желательно
Ключи
  • Ключ - атрибут или совокупность атрибутов однозначно идентифицирующих строку отношения
  • Ключ, состоящий из одного атрибута, называется простым.
  • Ключ, состоящий из нескольких атрибутов, называется составным.
Свойства ключа
  • Уникальность
  • Неизбыточность
  • Не может содержать пустых значений
Ключи
  • Все атрибуты, входящие в ключ, называются ключевыми атрибутами.
  • Атрибуты, не являющиеся частью ключа, называются неключевыми.
  • На роль ключа в отношении могут претендовать несколько атрибутов (совокупностей атрибутов).
  • В этом случае каждый из них называется вероятным (альтернативным, возможным, потенциальным) ключом.
  • Если в отношении имеется несколько потенциальных ключей, необходимо выделить один из них в качестве первичного ключа.

Таб_номер

фио

Дата_рождения

. . .

Код_сотрудника

Язык

Степень_владения

Код_поставщика

Код_продукции

Дата_постаки

количество

Код кафедры

Наименование кафедры полное

Наименование кафедры краткое

Расписание занятий

Код_сотрудника

Код_предмета

Группа

День недели

время

Вероятные составные ключи

Факторы, влияющие на выбор первичного ключа Будут рассмотрены при изложении алгоритма проектирования Внешний ключ
  • Атрибут (совокупность атрибутов), который в данном отношении ключом не является (но может входить в состав составного ключа), а в другом отношении является первичным ключом, называется внешним ключом. (* при связи между таблицами 1:1 может являться первичным ключом)
  • Связь в реляционных базах данных устанавливается от ключа к внешнему ключу
Функциональные зависимости Понятие функциональной зависимости А, В – атрибут или совокупность атрибутов
  • Функциональная зависимость (functional dependency) В является функционально зависимым от А тогда и только тогда, когда каждому значению А соответствует одно и только одно значение В. Обозначается:
  • A B Или F(A)=B
  • Детерминант (determinant) — атрибут, который определяет значения других атрибутов. Синоним – определитель.
Функциональная зависимость. Пример 1

Таб_ном

ФАМИЛИЯ

ГОД_Р

09

ПЕТРОВ

1970

10

СМИРНОВ

1955

11

КЛЮЕВA

1988

12

ИВАНОВ

1946

Таб_ном --> ФАМИЛИЯ

Таб_ном --> ГОД_Р

Функциональная зависимость. Пример 2

Код_предприятия

Код_продукции

Дата

Количество

0111

255

11.02.07

500

0111

256

11.02.07

300

0112

256

11.02.07

700

0111

256

15.02.07

400

Код_предприятия, Код_продукции, Дата Количество

  • Неключевые атрибуты таблицы функционально зависят от ключа
  • Между атрибутами первичного ключа не может быть функциональных зависимостей
Взаимно-однозначное соответствие (Пример из учебника Мишенин А.И. «Теория экономических информационных систем»)

Наименование предприятия

ИНН

ДИНАМО

77014

АТЭ

77036

МАНОМЕТР

77054

Наименование предприятия <--> ИНН

** утверждение было бы верно, если:

- нет предприятий с одинаковыми названиями

  • Нет одинаковых ИНН
  • Ни то, ни другое утверждение не верно
Код_кафедры Наименование_кафедры_полное Код_кафедры Наименование_кафедры_краткое Наименование_кафедры_краткое Наименование _кафедры_полное

Взаимно-однозначное соответствие (пример 2)

Теория нормализации отношений Нормализация Нормализация

Приведение к первой

нормальной форме

(1 NF)

Приведение к более высокой

нормальной форме

(2,3,4,5 … NF)

Первая нормальная форма (1NF) Данные хранятся в плоской двухмерной таблице без: - неповторяющихся СЕИ - векторов
    • повторяющихся групп.
    • Таблица находится в первой нормальной форме (1НФ) тогда и только тогда, когда ни одна из ее строк не содержит в любом своем поле более одного значения и ни одно из ее ключевых полей не пусто.
  • Приведение к 1 NF – представление данных в виде плоской двухмерной таблицы
  • Дальнейшая нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных.
Приведение к 1NF. «Универсальное отношение» Понятие «Универсальное отношение» - все атрибуты записываются в одной таблице. Чаще используется как теоретическая основа Пример документа Отношение в 1NF

№ п/п

ФИО

Отдел

Месяц

Год

Сумма на руки

Итого по отделу

1

Иванов

АСУ

1

2007

15 000

100 000

2

Сидоров

АСУ

1

2007

10 000

100 000

1

Иванов

АСУ

2

2007

15 000

100 000

Отношение в 1NF

Таб_ном

ФИО

Отдел

Месяц

Год

Сумма на руки

Итого по отделу

1

Иванов

АСУ

1

2007

15 000

100 000

2

Сидоров

АСУ

1

2007

10 000

100 000

1

Иванов

АСУ

2

2007

15 000

100 000

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

Таб_ном

ФИО

Отдел

1

Иванов

АСУ

2

Сидоров

АСУ

Таб_ном

М-ц

Год

Сумма на руки

1

1

2007

15 000

2

1

2007

10 000

1

2

2007

15 000

Отношение в 2NF (продолжение)

Отдел

М-ц

Год

Итого по отделу

АСУ

1

2007

100 000

АСУ

2

2007

100 000

. . .

Отношение в 2NF (пример 2 – расширена – не является в 3NF )

Таб_ном

ФИО

Отдел

Руководитель

отдела

1

Иванов

АСУ

Петров

2

Сидоров

АСУ

Петров

Недостатки отношений 2NF Третья нормальная форма (3NF) Отношение находится в третьей нормальной форме, если оно соответствует второй нормальной форме, и в нем не существует транзитивных зависимостей. (А -> В и В -> С, поэтому А -> С) Отношение в 3NF (пример)

Таб_ ном

ФИО

Отдел

1

Иванов

АСУ

2

Сидоров

АСУ

Отдел

Руководитель

отдела

АСУ

Петров

. . .

Нормальная форма Бойса-Кодда Отношение соответствует нормальной форме Бойса-Кодда, если оно соответствует третьей нормальной форме, и все определители являются кандидатами на использование в качестве ключа. Четвертая нормальная форма
  • Отношение находится в четвертой нормальной форме, если оно соответствует нормальной форме Бойса-Кодда, и в ней нет многозначных зависимостей.
  • Атрибут А многозначно определяет атрибут В, если для каждого значения атрибута А существует хорошо определенное множество соответствующих значений В.
Многозначные зависимости (multivalued dependency)
  • Многозначная зависимости существует, если каждому значению атрибута А соответствует конечное множество значений атрибута В, связанных с А, и конечное ; множество значений атрибута С, также связанных с А. Атрибуты В и С друг от друга не зависят.
  • A-» B, A-»C
иллюстрация многозначных зависимостей Дисциплина -» Преподаватель Дисциплина -» Учебник Отношения в 4 NF Правила вывода Правила вывода Аксиомы (правила, теоремы) вывода – правила, устанавливающие, что если некоторое отношение удовлетворяет некоторым F-зависимостям, то оно должно удовлетворять и некоторым другим F-зависимостям. Правила вывода
  • A,B->A и A,B->B
  • Если A->B и A->C то A->BC
  • Если A->B и B->C то A->C
  • Если A->B то AC->B
  • Если A->B и BC->D то AC->D
Алгоритм нормализации Алгоритм нормализации Шаг 1. Получение исходного множества функциональных зависимостей. Рассматриваются все сочетания атрибутов (1,2 ,3, …..n). Не рассматриваются варианты, которые являются следствием теорем о функциональных зависимостях. Шаг 2. Поиск минимального покрытия функциональных зависимостей: множество, из которого удалены зависимости, являющиеся следствием оставшихся зависимостей. F={f1, f2, …. , fn} Шаг 3. Для каждого fi создать отношение Шаг 4. Если первичный ключ исходного отношения не вошел ни в одну проекцию, то создать дополнительное отношение, содержащее этот ключ Примечание: Для взаимно однозначных зависимостей принято выделять «старший» атрибут, который затем представляет все атрибуты взаимно однозначного соответствия. Рекомендация При проведении нормализации таблиц, в которые введены заменители составных первичных ключей (искусственные идентификаторы) , следует хотя бы мысленно поменять их на исходные ключи, а после окончания нормализации снова восстанавливать. Недостатки нормализации
  • Совместная обработка связанных таблиц может существенно замедлить обработку.
  • Понятие «денормализация»
Реляционная алгебра Реляционная алгебра
  • Язык процедурного типа
  • Операндами являются отношения
  • Результатом является отношение
Операция Проекция
  • Унарная операция
  • T =R[X],
  • Где R – исходное отношение T – результирующее отношение Х – список атрибутов, входящих в результирующее отношение. Является подмножеством атрибутов исходного отношения.
Операция Проекция. Пример (абстрактный). R

A

B

C

a1

b1

c1

a1

b1

c2

a2

b2

c2

a2

b3

c3

T=R[A,B]

A

B

a1

b1

a2

b2

a2

b3

Операция Проекция. Пример 2.

Поставщик

Продукция

Дата

Количество

З1

П1

21.010.07

100

З2

П1

21.010.07

120

З1

П2

22.010.07

200

З2

П2

21.010.07

150

Поставщик

З1

З2

Операция Проекция. Пример 3.

Поставщик

Продукция

Дата

Количество

З1

П1

21.010.07

100

З2

П1

21.010.07

120

З1

П2

22.010.07

200

З2

П2

21.010.07

150

Продукция

Количество

П1

100

П1

120

П2

200

П2

150

Операция нежелательна

Операция Выборка
  • T =R[р],
  • Где R – исходное отношение T – результирующее отношение р– Условие выборки Условие выборки:
  • ИМЯ_АТРИБУТА<знак сравнения>ЗНАЧЕНИЕ
  • ИМЯ_АТРИБУТА<знак сравнения> ИМЯ_АТРИБУТА
  • Условия выборки могут быть сложными
Операция Выборка. Пример (абстрактный). R

A

B

C

a1

b1

c1

a1

b1

c2

a2

b2

c2

a2

b3

c3

T=R[С= c1]

A

B

C

a1

b1

c1

Операция Выборка. Пример 2

Предмет

Ном_зачетки

Дата

Оценка

БД

07321

09.01.07

5

БД

07322

09.01.07

4

МО

07321

19.01.07

5

МО

07322

19.01.07

3

T=R[Предмет = БД]

Операция объединения

A

B

a1

b1

a2

b2

a2

b3

A

B

a1

b1

a1

b2

a2

b3

R1

T=R1UR2

R2

A

B

a1

b1

a1

b2

a2

b2

a2

b3

T

Операция объединения. Пример

Таб_ном

ФАМИЛИЯ

09

ПЕТРОВ

10

СМИРНОВ

11

КЛЮЕВA

Таб_ном

ФАМИЛИЯ

11

КЛЮЕВA

12

ИВАНОВ

….

Сотрудники

Студенты

Таб_ном

ФАМИЛИЯ

09

ПЕТРОВ

10

СМИРНОВ

11

КЛЮЕВA

12

ИВАНОВ

Кадры

Операция Пересечения

A

B

a1

b1

a2

b2

a2

b3

A

B

a1

b1

a1

b2

a2

b3

R1

T=R1^R2

R2

A

B

a1

b1

a2

b3

T

Операция Пересечения. Пример

Таб_ном

ФАМИЛИЯ

09

ПЕТРОВ

10

СМИРНОВ

11

КЛЮЕВA

Таб_ном

ФАМИЛИЯ

11

КЛЮЕВA

12

ИВАНОВ

….

Сотрудники

Студенты

Таб_ном

ФАМИЛИЯ

11

КЛЮЕВA

Студенты-Сотрудники

Операция Вычитания

A

B

a1

b1

a2

b2

a2

b3

A

B

a1

b1

a1

b2

a2

b3

R1

T=R1\R2

R2

A

B

a2

b2

T

Операция Вычитания . Пример

Таб_ном

ФАМИЛИЯ

09

ПЕТРОВ

10

СМИРНОВ

11

КЛЮЕВA

Таб_ном

ФАМИЛИЯ

11

КЛЮЕВA

12

ИВАНОВ

….

Сотрудники

Студенты

Таб_ном

ФАМИЛИЯ

09

ПЕТРОВ

10

СМИРНОВ

Сотрудники «не студенты»

Операция Соединения

A

B

a1

b1

a2

b2

a2

b3

A

С

a1

с1

a1

с2

a2

с3

R1

T=R1[p]R2,

где p – условие соединения

R2

A

B

С

a1

b1

с1

a1

b1

с2

a2

b2

с3

a2

b3

с3

T

Операция Соединения. Пример

Таб_ном

ФАМИЛИЯ

09

ПЕТРОВ

10

СМИРНОВ

11

КЛЮЕВA

Таб_ном

Язык

11

английский

10

английский

10

немецкий

Сотрудники

Зн_ин_яз

Таб_ном

ФАМИЛИЯ

Язык

10

СМИРНОВ

английский

10

СМИРНОВ

немецкий

11

КЛЮЕВA

английский

Операция Соединения
  • В «условии соединения» может использоваться любой знак сравнения
  • Чаще всего используется знак «=». Такое соединение называется натуральным.
  • В ЯМД реляционных СУБД включены разновидности Соединения : внутреннее, левое, правое и др.
Операции реляционной алгебры (сводная диаграмма)