Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД для программистов.docx
Скачиваний:
4
Добавлен:
25.11.2019
Размер:
19.28 Кб
Скачать

Каскадные обновления и удаления

Если для связи включено обеспечение целостности данных, можно задать режим автоматического каскадного обновления или удаления связанных записей средствами Microsoft Access. Установка этих параметров разрешает операции удаления и обновления, выполнение которых в противном случае было бы запрещено правилами целостности данных. При удалении записей или изменении значений первичного ключа в главной таблице Microsoft Access вносит необходимые изменения во все связанные таблицы для сохранения целостности данных.

Если в процессе создании связи установить флажок каскадное обновление связанных полей, то при любом изменении значения первичного ключа записи в главной таблице Microsoft Access автоматически обновит значение соответствующего поля во всех связанных записях. Например, при изменении ИД клиента в таблице "Клиенты" поле "Клиент" в таблице "Заказы" автоматически обновится для всех заказов этого клиента, чтобы сохранить связь. Microsoft Access выполнит каскадное обновление без вывода дополнительных сообщений.

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

Если в процессе создания связи установить флажок каскадное удаление связанных записей, то при удалении любой записи из главной таблицы Microsoft Access автоматически удалит связанные записи и в связанной таблице. Например, если удалить запись клиента из таблицы "Клиенты", то все заказы данного клиента будут автоматически удалены из таблицы "Заказы" (включая записи таблицы "Сведения о заказе", связанные с записями таблицы "Заказы"). При удалении записей из формы или таблицы с установленным флажком каскадное удаление связанных записей Microsoft Access предупреждает, что связанные записи также будут удалены. Однако при удалении записей с помощью запроса на удаление Microsoft Access автоматически удалит записи из связанных таблиц без вывода предупреждения.

Типы соединений

Ниже перечислены существующие типы соединений.

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

Вариант 2 - левое внешнее соединение. Левое внешнее соединение - это соединение, при котором все записи таблицы по левую сторону от оператора LEFT JOIN (левое объединение) инструкции SQL попадают в результаты запроса даже в том случае, если в связанном поле из правой таблицы отсутствуют соответствующие значения.

Вариант 3 - правое внешнее соединение. Правое внешнее соединение - это соединение, при котором все записи таблицы по правую сторону от оператора RIGHT JOIN (правое объединение) инструкции SQL попадают в результаты запроса даже в том случае, если в связанном поле из левой таблицы отсутствуют соответствующие значения.

К базовым понятиями модели БД «сущность - связь» относятся: сущности, связи между ними и их атрибуты (свойства).

Сущность - любой конкретный или абстрактный объект в рассматриваемой предметной области. Сущности - это базовые типы информации, которые хранятся в БД (в реляционной БД каждой сущности назначается таблица). К сущностям могут относиться: студенты, клиенты, подразделения и т.д. Экземпляр сущности и тип сущности - это разные понятия. Понятие тип сущности относится к набору однородных личностей, предметов или событий, выступающих как целое (например, студент, клиент и т.д.). Экземпляр сущности относится, например, к конкретной личности в наборе. Типом сущности может быть студент, а экземпляром - Петров, Сидоров и т. д.

Атрибут - это свойство сущности в предметной области. Его наименование должно быть уникальным для конкретного типа сущности. Например, для сущности студент могут быть использованы следующие атрибуты: фамилия, имя, отчество, дата и место рождения, паспортные данные и т.д. В реляционной БД атрибуты хранятся в полях таблиц.

Связь - взаимосвязь между сущностями в предметной области. Связи представляют собой соединения между частями БД (в реляционной БД - это соединение между записями таблиц).

Сущности - это данные, которые классифицируются по типу, а связи показывают, как эти типы данных соотносятся один с другим. Если описать некоторую предметную область в терминах сущности - связь, то получим модель сущность - связь для этой БД.

Задача о предметной области

Рассмотрим предметную область: Деканат (Успеваемость студентов)

В БД «Деканат» должны храниться данные о студентах, группах студентов, об оценках студентов по различным дисциплинам, о преподавателях, о стипендиях и т.д. Ограничимся данными о студентах, группах студентов и об оценках студентов по различным дисциплинам. Определим сущности, атрибуты сущностей и основные требования к функциям БД с ограниченными данными.

Основными предметно-значимыми сущностями БД «Деканат» являются: Студенты, Группы студентов, Дисциплины, Успеваемость.

Основные предметно-значимые атрибуты сущностей:

-студенты - фамилия, имя, отчество, пол, дата и место рождения, группа студентов;

-группы студентов - название, курс, семестр;

-дисциплины - название, количество часов

- успеваемость - оценка, вид контроля.

Основные требования к функциям БД:

-выбрать успеваемость студента по дисциплинам с указанием общего количества часов и вида контроля;

-выбрать успеваемость студентов по группам и дисциплинам;

-выбрать дисциплины, изучаемые группой студентов на определенном курсе или определенном семестре.

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

Логическая связь между сущностями Группы - Студенты определена как один - ко - многим исходя из того, что в группе имеется много студентов, а каждый студент входит в состав одной группе. Логическая связь между сущностями Дисциплины - Успеваемость определена как один - ко - многим, потому что по каждой дисциплине может быть поставлено несколько оценок различным студентам.