
11. Модели данных. Типы связей
Способы задания взаимосвязи
1:1 1:М М:1 М:N
А↔В 1:1 связь один к одному. В определенный момент времени одному эл-ту А соответствует эл-т В
Клиент
|
Название |
Адрес |
Товар
Код товара |
Наименование |
Сорт |
А↔→В 1:М в определенный момент времени значению А соответствует одно или несколько значений В
А←↔→В М:М разному значению А соответствует разные значения В
12. Р.м. это таблица, которая состоит из взаимосвязанных объектов.
Основные понятия Р.М.
Название таблицы и перечень названий граф соответствуют структуре отношения
Клиент(Код клиента, название, адрес клиента)
Кортеж отношения соответствует строке таблицы (группа взаимосвязанных полей записи)
Домен отношения соответствует столбцу таблицы (совокупность элементов данных одного и того же типа в отношении)
Порядок строк и столбцов произвольный
Элемент данных, однозначно идентифицирующий объект, является первичным ключом.
Элемент данных, однозначно идентифицирующий объект, но не являющийся первичным ключом, называется возможным ключом.
Ключевой элемент, состоящий из нескольких элементов, называется сцепленным ключом
В реляционной модели допустимы связи всех типов с помощью сочетания значений ключевых элементов (сцепленных ключей).
Пример.
Заказано (код заказа, код товара, кол-во, цена)
В данном примере имеется сцепленный ключ код заказа, код товара.
Видны связи между код заказа и код товара. В заказ входят два товара и в разные заказы входят одинаковые товары, следовательно видна связь многие ко многим.
Вообще, связи между элементами зависят от контекста.
Св-ва отношений в реляционной модели:
Каждый домен отношений имеет уникальное имя, и все домены имеют одинаковое кол-во значений атрибутов
Каждый кортеж отношения описывает некоторый объект, характеризуя св-ва этого объекта, причем набор св-в остается неизменным. Меняется их конкретное значение.
Отношение не содержит двух одинаковых кортежей
Порядок следования доменов и кортежей произвольный
13. Понятие функциональной зависимости (ФЗ) - атрибут В отношения R функ-но зависит от атрибута А того же отношения, если в каждый момент времени каждому значению атрибута А соответствует не более чем одно значение В. Утверждение, что В функ-но зависит от А означает тоже самое, что А определяет В (А→В)
П Служащий(№ служащего, имя служащего, з/пл, № проекта, дата окончания проекта)
Ключевой элемент – это элемент, кот ни от чего не зависит.
Атрибут может зависеть от целой группы атрибутов.
Поставка (Код изделия, Код поставщика, Наименование изделия, Сведения о поставщике, Цена, Количество).
ФЗ не могут быть доказаны путём простого просмотра отдельных экземпляров отношений. ФЗ следует получать, исходя из базовых свойств самих атрибутов.
Атрибут или набор атрибутов В из отношения К называется полностью зависимым от другого набора атрибутов А того же отношения, если В функционально зависит от всего множества атрибутов А, но не зависит ни от какого подмножества А.
На этапе приведения к 3 нормальной форме ликвидируется транзитивная зависимость
Пусть A,B,C – три атрибута отношения R. Если С зависит от В, а В – от А ,С зависит от А. если при этом обратное соответствие неоднозначно ( т.е. А не зависит от В или В не зависит от С), то говорят, что С транзитивно зависит от А.
14. Теория нормализации основана на том утверждении, что определённый набор отношений, обладает лучшими свойствами при включении, модификации и удалении данных, чем все остальные наборы отношений, с помощью которых могут быть представлены те же данные.
Цель процесса нормализации:
1. Приведение отношения к НФБК. Отношение НФБК представляет объекты и взаимосвязи между объектами рассматриваемой предметной области.
2. Приведение отношения к НФБК позволяет последовательно устранить аномалии, возникающие при включении, удалении, модификации записей.
3. Исключение избыточности.
4. Устранение аномалии обновления.
5. Упрощение процесса наложения ограничений целостности (задаётся интервалом возможных значений).
4. Проектирование структуры БД
Этапы нормализации
ненормализованная форма
1НФ (устранение повторяющихся групп)
2НФ (устранение неполных ФЗ от первичных ключей)
3НФ (устранение транзитивной зависимости)
НФБК (устранение неполных ФЗ от возможных ключей)
4НФ (устранение сложных ФЗ)
5НФ (определение зависимости соединения от возможных ключей)
Служащий (№ служащего, ФИО, Должность, Код работы, Объём работы, Срок исполнения работы).
15. Приведение отношения к 1НФ
Повторяющаяся группа – совокупность значений атрибутов, имеющих множество различных значений в одном кортеже
Служащий (№ служащего, ФИО, Должность, Код работы, Объём работы, Срок исполнения работы).
Повторяющаяся группа – Код работы, Объём работы, Срок исполнения работы.
Алгоритм
Из исходного отношения выделяется в отдельное отношение повторяющаяся группа вместе с ключом исходного отношения.
ключ исходного отношения +ключ повтор. группы =сцепленный ключ
Работа служащего (№ служащего, Код работы, Объём работы, Срок исполнения работы)
Атрибуты исходного отношения, не вошедшие в повтор. группу выделяются в отдельное отношение, ключом которого является ключ исход. отношения.
Служащий (№ служащего, ФИО, Должность).
Для чего: удалили избыточность, установили связь между таблицами (с помощью сцепленного ключа).
16. Приведение отношения к 2НФ - отношение R задано во 2НФ, если оно является отношением в 1НФ и каждый атрибут, не являющийся ключевым элементом этого отношения, полностью зависит от первоначального ключа этого отношения.
Если ключ отношения содержит 1 элемент, т.е. не является сцепленным, то это отношение во 2 НФ
Поставка (Код изделия, Код поставщика, Наименование изделия, Сведения о поставщике, Цена, Количество).
Алгоритм
Выписать все полные ФЗ от ключа или его частей.
Сгруппировать полученные зависимости таким образом, чтобы в одной группе содержались все ФЗ с одинаковыми правыми частями.
Каждой группе поставит в соответствие одну проекцию исходного отношения.
Полученные отношения удовлетворяют след. требованиям:
Каждая проекция- это отношение во 2 НФ.
Результат сцепления всех полученных проекций является исходным отношением.
17. Приведение отношения к 3НФ
На этапе приведения к 3 нормальной форме ликвидируется транзитивная зависимость.
Пусть A,B,C – три атрибута отношения R. Если С зависит от В, а В – от А ,С зависит от А. если при этом обратное соответствие неоднозначно ( т.е. А не зависит от В или В не зависит от С), то говорят, что С транзитивно зависит от А.
Служащий(№ служащего, ФИО, з/пл, № проекта, дата окончания проекта)
1. Выписать все ФЗ атрибутов от неключевых атрибутов.
№ проекта→дата окончания проекта
2.Среди выделенный связей исключить все взаимнооднозначные зависимости атрибутов друг от друга (С→В, В→С).
3.Для каждой выделенной ФЗ разделить исход. отношение на 2.
В 1 отношение включить атрибуты входящие в выделенную функц. связь
Проект( № проекта, дата оконч. проекта)
Во 2 отношение включить все атрибуты, кроме атрибута, транзитивно зависящего от ключа.
Деятельность служащего (№ служащего, ФИО, з/пл, №проекта)
18. Приведение отношения к НФБК
Исходное отношение находится в НФБК, если оно не содержит неполных ФЗ атрибутов от возможных ключей или если в каждой ФЗ детерминанты являются возможными ключами.
Детерминант – левая часть ФЗ.
Отношение может находится в 3НФ, но не быть при этом в НФБК:
Отношение имеет два или более возможных ключа.
Два возможных ключа являются сцепленными.
Ключи пересекаются, т.е.имеется хотя бы один общий атрибут.
Комбинация 1-го, 2-го, 3-го условий редко встречается на практике. А для отношений без этих условий 3НФ и НФБК эквивалентны.
Алгоритм
Определение ключа исходного отношения.
Выделение ФС, не содержащих ключа исходного отношения.
В полученном подмножестве ФС выделяются те, в которых атрибут не является составной частью детерминанта ни в одной из ФС.
Декомпозиция исходного отношения на составляющие подмножества элементов.
Из исходного отношения выделяются все элементы, входящие в выделенную ФС. Эти элементы образуют самостоятельное отношение, удовлетворяющее требованиям НФБК.
Другое подмножество будет содержать элементы исходного отношения, кроме атрибутов в выделенной ФС.
Определение множества ФЗ, которые могут быть заданы на втором подмножестве элемента.
Продолжаем нормализацию со 2-го шага.
Замечания:
Если при выполнении шага 2 для исходного отношения не были определены ФС, не содержащие ключа исходного отношения, то переходим к выполнению шага 3.
Если не были выявлены связи, в которых атрибут не является частью детерминанта, то из исходного отношения выделяются элементы, входящие в любую из ФС.
Если в результате декомпозиции полученное отношение теряет смысл или по-прежнему не удовлетворяет требованиям НФБК, то множество ФС было определено неверно.
19. Приведение отношения к 4НФ
Проекты (№ проекта, Код сотрудника, Задание сотрудника)
номер проекта→→код сотрудника
номер проекта→→задание сотрудника
№проекта |
Код сотрудника |
Код отдела |
1 1 1 4 4 4 4 4 4 6 |
5 5 2 2 3 3 3 5 5 6 |
1 2 3 1 2 1 2 1 2 1 |
Теорема Фейджина
Отношение R (А,В,С) можно спроецировать без потерь в отношение R1(А,В) и R2(А,С) в том случае, когда существует зависимость А→→В и А→→С (А определяет В и С).
Отношение R находится в 4 НФ в том случае, когда существует многозначная зависимость. А определяет В, а все остальные атрибуты R функ-но зависят от А. А→→В
Сотрудник проекта((№ проекта, Код сотрудника)
Задание проекта(№ проекта, Задание сотрудника)
Сотрудник проекта Задание проекта
№проекта |
Код сотрудника |
|
|
№проекта |
Задание сотрудника |
|
|
20. Приведение отношения к 5НФ
сотрудники-отделы-проекты
Код сотрудника |
Код отдела |
№проекта |
1 2 3 4 5 5 6 8 9 10 |
01 02 03 02 04 04 03 05 05 06 |
036 004 004 019 001 004 007 013 014 013 |
Отношение R находится в 5 НФ, или НФ проекции соединения, в том и только том случае, когда любая зависимость соединения в отношении следует из существования некоторого возможного ключа.
Образуем отношения на основе сочетания атрибутов из отношения сотрудники-отделы-проекты.
Сотрудник-отдел(Код сотрудника, Код отдела)
Отдел-Проект(Код отдела, №проекта)
Сотрудник-Проект(Код сотрудника, №проекта)
21. Унарные операции над отношениями
Операция проекции позволяет выбрать из отношения необходимые домены и задать порядок, в котором их необходимо расположить
Т=R(список атрибутов)
Отношение, полученное в результате проецирования не должно содержать повторяющихся кортежей. Операция проекции не задает порядка, в котором следуют кортежи.
Операция выборки – выполняется над одним отношением. Условие выборки: <, >, = …
Сведения о проекте = Проект (номер проекта =6)
Операция ограничения
R=Т[М1 условие ограничения М2] , где М1, М2 – списки атрибутов, имеющих общую область определения.
Невыполненные заказы = ОРДЕР[кол.заказано>кол.принято]
22. Бинарные операции над отношениями
Операция соединения возможна при наличии ролевых атрибутов.
Т=R+S=(R декартовое произведение S) [М1=М2], где М1, М2-ролевые атрибуты, имеющие общую область определения
В результирующем отношении сохраняются только те кортежи, которые имеют одни и те же значения ролевых атрибутов и общие домены не повторяются.
Операция деления может быть выполнена над двумя отношениями, имеющими ролевые атрибуты, выполняется над двумя отношениями, когда нужно подчеркнуть одновременность.
R=T[М1÷М2]S
Операция выполняется в два этапа:
1. Построение образа в кортеже делителя по делимому
im(делителя) ={(значение атрибутов кортежа делимого без ролевых атрибутов), …( )}
2. Определение пересечения образов кортежей делителя, полученных в результате выполнения 1-го шага.