русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Контроль целостности связей.


Дата добавления: 2013-12-23; просмотров: 3230; Нарушение авторских прав


Основные виды связи таблиц

Связывание таблиц.

 

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

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

 

Между таблицами могут устанавливаться бинарные (между двумя таблицами), тернарные (между тремя таблицами) и, в общем случае, n-арные связи.

 

При связывании двух таблиц (бинарные связи) выделяют основную и дополнительную (подчиненную) таблицы. Логическое связывание таблиц производится с помощью ключа связи.

 

Ключ связи, по аналогии с обычным ключом таблицы, состоит из одного или нескольких полей, которые называют полями связи (ПС).

 

Суть связывания – установление соответствия полей связи основной и дополнительной таблиц. Поля связи основной таблицы могут быть обычными и ключевыми. В качестве полей связи подчиненной таблицы чаще всего используют ключевые поля.

 

В зависимости от того, как определены поля связи основной и дополнительной таблиц (как соотносятся ключевые поля с полями связи), между двумя таблицами в общем случае могут устанавливаться следующие четыре основных вида связи:

 

· один — один (1:1);

· один — много (1:М);



· много — один (М:1);

· много ¾ много (М:М или M:N).

 

Характеристика видов связей таблиц:

Характеристика полей связи по видам 1:1 1:М М:1 М:М
Поля связи основной таблицы являются ключом являются ключом не являются ключом не являются ключом
Поля связи дополнительной таблицы являются ключом не являются ключом являются ключом не являются ключом

 

1) Связь вида 1:1

 

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

Пример.

Пусть имеются основная "СТУДЕНТЫ" и дополнительная "ГРУППЫ" таблицы. Ключевые поля обозначим «*», используемые для связи поля обозначим «+».

 

Таблица "СТУДЕНТЫ" Таблица "ГРУППЫ"

* + * +

Номер курса Количество
Курс Группы

 

 

Установлена связь между записью (3, 69) таблицы "СТУДЕНТЫ" и записью (3, 3) таблицы "ГРУППЫ". Основание – совпадение значений в полях связи. Аналогичная связь существует и между записями (4, 71) и (4, 3) этих же таблиц. В таблицах записи отсортированы по значениям в ключевых полях.

Сопоставление записей двух таблиц по существу означает образование новых «виртуальных записей» (псевдозаписей): (3, 69, 3) и (4, 71, 3).

На практике связи вида 1:1 используются сравнительно редко, так как хранимую в двух таблицах информацию легко объединить в одну таблицу, которая занимает гораздо меньше места в памяти ЭВМ. Возможны случаи, когда удобнее иметь не одну, а две и более таблицы. Причинами этого может быть необходимость ускорить обработку, повысить удобство работы нескольких пользователей с общей информацией, обеспечить более высокую степень защиты информации и т.д.

 

2) Связь вида 1:М

 

Связь 1:М имеет место в случае, когда одной записи основной таблицы соответствует несколько записей вспомогательной таблицы.

Пример.

Пусть имеются основная "ДИСЦИПЛИНЫ" и дополнительная "ПРЕПОДАВАТЕЛИ" таблицы. Ключевые поля обозначим «*», используемые для связи поля обозначим «+».

 

Таблица "ДИСЦИПЛИНЫ" Таблица "ПРЕПОДАВАТЕЛИ"

* + * + *

Курс Количество
ВССиТ
ТОИСиТ
БД
   
   
Курс Преподаватель Лекции
Иванов Да
Сидорова Нет
Волков Нет
Петров Да
Иванов Нет
Ильин Да

 

 

В таблице "ДИСЦИПЛИНЫ" содержится информация о видах читаемых на курсе дисциплин конкретной кафедры, а в таблице "ПРЕПОДАВАТЕЛИ" - сведения о преподавателях этих дисциплин, а также о наличии у них лекций на текущей неделе.

Таблица "ПРЕПОДАВАТЕЛИ" имеет два ключевых поля, так как один и тот же преподаватель может читать различные дисциплины. В примере Иванов читает лекции по ВССиТ и БД.

Если свести псевдозаписи, порождаемые сопоставлением записей обеих таблиц по полю «Курс», в новую таблицу, то получим полную информацию обо всех дисциплинах, преподавателях, их читающих, а также сведения о наличии лекций на текущей неделе.

 

3) Связь вида М:1

 

Связь М:1 имеет место в случае, когда одной или нескольким записям основной таблицы ставится в соответствие одна запись дополнительной таблицы.

Пример.

Если таблицу "ПРЕПОДАВАТЕЛИ" в предыдущем примере сделать основной, а таблицу "ДИСЦИПЛИНЫ" — дополнительной, получим связь вида М:1. Отсюда следует, что вид связи (1:М или М:1) зависит от того, какая таблица является главной, а какая дополнительной.

Основная таблица "ПРЕПОДАВАТЕЛИ" не имеет ключей и в ней возможно повторение записей.

 

4) Связь вида М:М

 

Самый общий вид связи М:М возникает в случаях, когда нескольким записям основной таблицы соответствует несколько записей дополнительной таблицы.

 

Пример.

Пусть в основной таблице "РАБОЧИЕ" содержится информация о том, на каких станках могут работать рабочие некоторой бригады. Таблица "РЕМОНТНИКИ" содержит сведения о том, кто из бригады ремонтников какие станки обслуживает.

 

Таблица "РАБОЧИЕ" Таблица "РЕМОНТНИКИ"

* * + * * +

Работает На станке
Иванов А.В. станок1
Иванов А.В. станок2
Петров Н.Г. станок1
Петров Н.Г. станок3
Сидоров В.К. станок2
Обслуживает Станок
Голубев Б.С. станок1
Голубев Б.С. станокЗ
Зыков А.Ф. станок2
Зыков А.Ф. станокЗ

 

 

Первой и третьей записям таблицы "РАБОЧИЕ" соответствует первая запись таблицы "РЕМОНТНИКИ" (у всех этих записей значение второго поля — «станок1»). Четвертой записи таблицы "РАБОЧИЕ" соответствуют вторая и четвертая записи таблицы "РЕМОНТНИКИ" (во втором поле этих записей содержится «станок3»).

 

Исходя из определения полей связи этих таблиц можно составить новую таблицу с именем «РАБОЧИЕ + РЕМОНТНИКИ», записями которой будут псевдозаписи. Записям полученной таблицы можно придать смысл возможных смен, составляемых при планировании работы. Для удобства, поля новой таблицы переименованы (такую операцию предлагают многие из современных СУБД).

 

Таблица «РАБОЧИЕ + РЕМОНТНИКИ»

Работа Станок Обслуживание
Иванов А.В. станок1 Голубев Б.С.
Иванов А.В. станок2 Зыков А.Ф.
Петров Н.Г. станок1 Голубев Б.С.
Петров Н.Г. станокЗ Голубев Б.С.
Петров Н.Г. станокЗ Зыков А.Ф.
Сидоров В.К. станок2 Зыков А.Ф.

 

Аналогично связи 1:1, связь М:М не устанавливает подчиненности таблиц. Для проверки этого можно основную и дополнительную таблицу поменять местами и выполнить объединение информации путем связывания.

Результирующие таблицы «РАБОЧИЕ + РЕМОНТНИКИ» и «РЕМОНТНИКИ + РАБОЧИЕ» будут отличаться порядком следования первого и третьего полей, а также порядком расположения записей.

 

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

 

 

Из перечисленных видов связи чаще используется связь вида 1:М. Связь вида 1:1 можно считать частным случаем связи 1:М, когда одной записи главной таблицы соответствует одна запись вспомогательной таблицы. Связь М:1, по сути, является «зеркальным отображением» связи 1:М. Оставшийся вид связи М:М характеризуется как слабый вид связи или даже как отсутствие связи.

 

При образовании связи вида 1:М одна запись главной таблицы (главная, родительская запись) оказывается связанной с несколькими записями дополнительной (дополнительные, подчиненные записи) и имеет место схема:

 

Контроль целостности связей обычно означает анализ содержимого двух таблиц на соблюдение следующих правил:

 

· каждой записи основной таблицы соответствует нуль или более записей дополнительной таблицы;

· в дополнительной таблице нет записей, которые не имеют родительских записей в основной таблице;

· каждая запись дополнительной таблицы имеет только одну родительскую запись основной таблицы.

 

Рассмотрим три основные операции над данными двух таблиц:

• ввод новых записей, • модификацию записей, • удаление записей.

 

При вводе новых записейвозникает вопрос определения последовательности ввода записей в таблицы такой, чтобы не допустить нарушение целостности. Логичной является схема, при которой данные сначала вводятся в основную таблицу, а потом — в дополнительную. Очередность ввода может быть установлена на уровне целых таблиц или отдельных записей (случай одновременного ввода в несколько открытых таблиц).

В процессе заполнения основной таблицы контроль значений полей связи ведется как контроль обычного ключа (на совпадение со значениями тех же полей других записей). Заполнение полей связи дополнительной таблицы контролируется на предмет совпадения со значениями полей связи основной таблицы. Если вновь вводимое значение в поле связи дополнительной таблицы не совпадет ни с одним соответствующим значением в записях основной таблицы, то ввод такого значения должен блокироваться.

 

Модификация записей. Изменение содержимого полей связанных записей, не относящихся к полям связи, очевидно, должно происходить обычным образом.

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

Редактирование поля связи основной таблицы обычно подчиняется одному из следующих правил:

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

· изменения в полях связи основной записи мгновенно передавать во все поля связи всех записей дополнительной таблицы (каскадное обновление).

 

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

Удаление записей основной таблицы логично подчинить одному из следующих правил:

· удалять можно запись, которая не имеет подчиненных записей;

· запретить (блокировать) удаление записи при наличии подчиненных записей, либо удалять ее вместе со всеми подчиненными записями (каскадное удаление).

 

СУБД Access.



<== предыдущая лекция | следующая лекция ==>
Способ использования вторичных индексов | Общая характеристика СУБД Access.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.