Формирование отношений для связи 1:М.
Если две сущности С1 и С2 связаны как 1:М, сущность С1 будет называть односвязной (1-связной), а сущность С2 – многосвязной (М-связной). Определяющим фактором при формировании отношений, связанных этим видом связи, является класс принадлежности М-связной сущности. Так, если класс принадлежности М-связной сущности обязательный, то в результате применения правила получим два отношения, если необязательный – три отношения. Класс принадлежности односвязной сущности не влияет на результат.
Правило 4. Если степень связи между сущностями 1:М (или М:1) и класс принадлежности М-связной сущности обязательный, то достаточно формирования двух отношений (по одному на каждую из сущностей). При этом первичными ключами этих отношений являются ключи их сущностей. Кроме того, ключ 1-связной сущности добавляется как атрибут (внешний ключ) в отношение, соответствующее М-связной сущности.
На рис. 4.11 приведены диаграмма ER-типа и отношения, сформированные по правилу 4.
1 М
К2,… К1,…
К1,… К1, К2, …
Рис. 4.11. Диаграмма и отношения для правила 4
Четвертое правило может проиллюстрировать следующая ситуация. Имеются две сущности – Факультеты и Специальности. Факультет может выпускать несколько специальностей и обязательно хотя бы одну. Специальности обязательно выпускаются на каком-то факультете и, как правило, только на одном. В результате формируются два отношения – Факультеты и Специальности, в отношение Специальности добавляется ключ (название факультета) из отношения Факультеты.
Правила 5. Если степень связи 1:М (М:1) и класс принадлежности М-связной сущности является необязательным, то необходимо формирование трех отношений (рис. 4.12).
М 1
К1,… К2,…
К1,… К2,…
К1,К2, …
Рис. 4.12. Диаграмма и отношения для правила 5
На рис. 4.12 два отношения соответствуют связываемым сущностям, ключи которых являются первичными в этих отношениях. Третье отношение является связным между первыми двумя (его ключ объединяет ключевые атрибуты связываемых отношений).
Пятое правило может проиллюстрировать следующая ситуация. Имеются две сущности Стройматериалы и Склад. Один склад поставляет множество материалов, но не каждый материал может участвовать в поставке. Формируются три отношения – Склад, Стройматериалы, Поставка. Отношение Поставка содержит ключи исходных сущностей (номер склада, код материала) и дополнительные атрибуты – номер поставки, дата поставки, количество материала. Номер поставки может быть ключом третьего отношения.
Формирование отношений для связи М:М.
При наличии связи М:М между двумя сущностями необходимо три отношения независимо от класса принадлежности любой из сущностей. Использование одного или двух отношений в этом случае не избавляет от пустых полей или избыточного дублирования данных.
Правило 6. Если степень связи М:М, то независимо от класса принадлежности сущностей формируются три отношения. Два отношения соответствуют связываемым сущностям и их ключи являются первичными ключами этих отношений. Третье отношение является связным между первыми двумя, а его ключ объединяет ключевые атрибуты связываемых отношений.
На рис. 4.13 приведены диаграмма ER-типа и отношения, сформированные по правилу 6. На рисунке показан вариант с необязательным классом принадлежности обеих сущностей.
М М
К1,… К2,…
К1,… К2,…
К1, К2, …
Рис. 4.13. Диаграмма и отношения для правила 6
Шестое правило может проиллюстрировать следующий пример. Имеются две сущности - Специальности и Дисциплины со связью многие-ко-многим (одна специальность изучает много дисциплин и одна дисциплина может изучаться несколькими специальностями). В результате проектирования получатся три отношения – Специальности, Дисциплины, Учебный план (который будет содержать код специальности, номер дисциплины, семестр, количество часов лекций, лабораторных работ и т.д.).
Транзакции и параллелизм
Работа транзакций в смеси
Транзакция рассматривается как последовательность элементарных атомарных операций. Атомарность отдельной элементарной операции состоит в том, что СУБД гарантирует, что, с точки зрения пользователя, будут выполнены два условия:
- Эта операция будет выполнена целиком или не выполнена вовсе (атомарность - все или ничего).
- Во время выполнения этой операции не выполняются никакие другие операции других транзакций (строгая очередность элементарных операций).
Элементарные операции различных транзакций могут выполняться в произвольной очередности (конечно, внутри каждой транзакции последовательность элементарных операций этой транзакции является строго определенной). Например, если есть несколько транзакций, состоящих из последовательности операций элементарных:
,
,
то реальная последовательность, в которой СУБД выполняет эти транзакции может быть, например, такой:
.
Определение 1. Набор из нескольких транзакций, элементарные операции которых ычередуются друг с другом, называется смесью транзакций.
Определение 2. Последовательность, в которой выполняются элементарные операции заданного набора транзакций, называется графиком запуска набора транзакций.