Презентация "Теория реляционных баз данных"
Подписи к слайдам:
- Мейер Д. Теория реляционных баз данных. М.:«Мир», 1987
- Дейт К.Дж. Введение в системы баз данных. , 6-е изд.:Пер. с англ.. ,К.; СПб.:Издательский дом «Вильямс», 2000.
- Кодд Э.
- Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ, М.:«Мир», 1991
- Хансен Г., Хансен Дж. Базы данных. Разработка и управление. - Издательство Бином
- Мишенин А.И. Теория экономических информационных систем. М.:ФиС, 2005.
- База данных
- Отношение таблица
- Запись (строка, ряд, запись,row, кортеж)
- Атрибут (поле) Домен – множество значений атрибута
- Реляционная база данных - совокупность взаимосвязанных плоских таблиц
- Особенности реляционной модели:
- Простая линейная структура записи
- Связи между таблицами устанавливаются динамически, в момент выполнения запроса по равенству значений полей связи
- ЯМД – теоретико-множественный
- Должны быть устранены все составные единицы информации
- Поля связи должны иметь соответствующие друг другу типы данных, одинаковые длины. Совпадение имен не обязательно, но желательно
- Ключ - атрибут или совокупность атрибутов однозначно идентифицирующих строку отношения
- Ключ, состоящий из одного атрибута, называется простым.
- Ключ, состоящий из нескольких атрибутов, называется составным.
- Уникальность
- Неизбыточность
- Не может содержать пустых значений
- Все атрибуты, входящие в ключ, называются ключевыми атрибутами.
- Атрибуты, не являющиеся частью ключа, называются неключевыми.
- На роль ключа в отношении могут претендовать несколько атрибутов (совокупностей атрибутов).
- В этом случае каждый из них называется вероятным (альтернативным, возможным, потенциальным) ключом.
- Если в отношении имеется несколько потенциальных ключей, необходимо выделить один из них в качестве первичного ключа.
Таб_номер |
фио |
Дата_рождения |
. . . |
|
Код_сотрудника |
Язык |
Степень_владения |
Код_поставщика |
Код_продукции |
Дата_постаки |
количество |
|
Код кафедры |
Наименование кафедры полное |
Наименование кафедры краткое |
Код_сотрудника |
Код_предмета |
Группа |
День недели |
время |
Вероятные составные ключи
Факторы, влияющие на выбор первичного ключа Будут рассмотрены при изложении алгоритма проектирования Внешний ключ- Атрибут (совокупность атрибутов), который в данном отношении ключом не является (но может входить в состав составного ключа), а в другом отношении является первичным ключом, называется внешним ключом. (* при связи между таблицами 1:1 может являться первичным ключом)
- Связь в реляционных базах данных устанавливается от ключа к внешнему ключу
- Функциональная зависимость (functional dependency) В является функционально зависимым от А тогда и только тогда, когда каждому значению А соответствует одно и только одно значение В. Обозначается: A B Или F(A)=B
- Детерминант (determinant) — атрибут, который определяет значения других атрибутов. Синоним – определитель.
Таб_ном |
ФАМИЛИЯ |
ГОД_Р |
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 – представление данных в виде плоской двухмерной таблицы
- Дальнейшая нормализация – это разбиение таблицы на две или более, обладающих лучшими свойствами при включении, изменении и удалении данных.
№ п/п |
ФИО |
Отдел |
Месяц |
Год |
Сумма на руки |
Итого по отделу |
1 |
Иванов |
АСУ |
1 |
2007 |
15 000 |
100 000 |
2 |
Сидоров |
АСУ |
1 |
2007 |
10 000 |
100 000 |
1 |
Иванов |
АСУ |
2 |
2007 |
15 000 |
100 000 |
Таб_ном |
ФИО |
Отдел |
Месяц |
Год |
Сумма на руки |
Итого по отделу |
1 |
Иванов |
АСУ |
1 |
2007 |
15 000 |
100 000 |
2 |
Сидоров |
АСУ |
1 |
2007 |
10 000 |
100 000 |
1 |
Иванов |
АСУ |
2 |
2007 |
15 000 |
100 000 |
- Аномалии по вставке
- Аномалии по корректировке
- Дублирование данных
- Отношение находится во второй нормальной форме, если оно соответствует первой нормальной форме, и все неключевые атрибуты функционально полно зависят от первичного ключа.
- Атрибут функционально полно зависит от ключа, если он функционально зависит от всего ключа, но не зависит от любой его части
- Таб_ном, месяц, год сумма на руки
- Таб_ном Фамилия
- Таб_ном Отдел
- Отдел, месяц, год итого по отделу
Таб_ном |
ФИО |
Отдел |
1 |
Иванов |
АСУ |
2 |
Сидоров |
АСУ |
Таб_ном |
М-ц |
Год |
Сумма на руки |
1 |
1 |
2007 |
15 000 |
2 |
1 |
2007 |
10 000 |
1 |
2 |
2007 |
15 000 |
Отдел |
М-ц |
Год |
Итого по отделу |
АСУ |
1 |
2007 |
100 000 |
АСУ |
2 |
2007 |
100 000 |
. . . |
|||
Таб_ном |
ФИО |
Отдел |
Руководитель отдела |
1 |
Иванов |
АСУ |
Петров |
2 |
Сидоров |
АСУ |
Петров |
Таб_ ном |
ФИО |
Отдел |
1 |
Иванов |
АСУ |
2 |
Сидоров |
АСУ |
Отдел |
Руководитель отдела |
АСУ |
Петров |
. . . |
|
- Отношение находится в четвертой нормальной форме, если оно соответствует нормальной форме Бойса-Кодда, и в ней нет многозначных зависимостей.
- Атрибут А многозначно определяет атрибут В, если для каждого значения атрибута А существует хорошо определенное множество соответствующих значений В.
- Многозначная зависимости существует, если каждому значению атрибута А соответствует конечное множество значений атрибута В, связанных с А, и конечное ; множество значений атрибута С, также связанных с А. Атрибуты В и С друг от друга не зависят.
- A-» B, A-»C
- 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
- Совместная обработка связанных таблиц может существенно замедлить обработку.
- Понятие «денормализация»
- Язык процедурного типа
- Операндами являются отношения
- Результатом является отношение
- Унарная операция
- T =R[X], Где R – исходное отношение T – результирующее отношение Х – список атрибутов, входящих в результирующее отношение. Является подмножеством атрибутов исходного отношения.
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 |
Поставщик |
Продукция |
Дата |
Количество |
З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 |
Поставщик |
Продукция |
Дата |
Количество |
З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 – результирующее отношение р– Условие выборки Условие выборки:
- ИМЯ_АТРИБУТА<знак сравнения>ЗНАЧЕНИЕ
- ИМЯ_АТРИБУТА<знак сравнения> ИМЯ_АТРИБУТА Условия выборки могут быть сложными
A |
B |
C |
a1 |
b1 |
c1 |
a1 |
b1 |
c2 |
a2 |
b2 |
c2 |
a2 |
b3 |
c3 |
T=R[С= c1]
A |
B |
C |
a1 |
b1 |
c1 |
Предмет |
Ном_зачетки |
Дата |
Оценка |
БД |
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 |
английский |
- В «условии соединения» может использоваться любой знак сравнения
- Чаще всего используется знак «=». Такое соединение называется натуральным.
- В ЯМД реляционных СУБД включены разновидности Соединения : внутреннее, левое, правое и др.
Информатика - еще материалы к урокам:
- Презентация "Уровни представления данных. Функции СУБД"
- Презентация "Системи управління базами даних: основи побудови та моделі організації"
- Презентация "Системы управления базами данных. PL/SQL"
- Презентация "Язык PL/SQL"
- Презентация "История развития баз данных"
- Презентация "Управление данными. Язык SQL"