При связывании двух таблиц выделяют основную и дополнительную (подчиненную) таблицы. Логическое связывание таблиц производится с помощью ключа связи.
Ключ связи, по аналогии с обычным ключом таблицы, состоит из одного или нескольких полей, которые в данном случае называют полями связи (ПС).
Суть связывания состоит в установлении соответствия полей связи основной и дополнительной таблиц. Поля связи основной таблицы могут быть обычными и ключевыми. В качестве полей связи подчиненной таблицы чаще всего используют ключевые поля.
тема 3 вопрос 28.docx
тема 3 вопрос 28
связывание таблиц в бд. основные виды связей примеры
При проектировании реальных БД информацию обычно размещают в нескольких таблицах.
Таблицы при этом связаны семантикой информации. В реляционных СУБД для указания
связей таблиц производят операцию их связывания.
Укажем выигрыш, обеспечиваемый в результате связывания таблиц. Многие СУБД при
связывании таблиц автоматически выполняют контроль целостности вводимых в базу
данных в соответствии с установленными связями. В конечном итоге это повышает
достоверность хранимой в БД информации.
Кроме того, установление связи между таблицами облегчает доступ к данным. Связывание
таблиц при выполнении таких операций как поиск, просмотр, редактирование, выборка и
подготовка отчетов обычно обеспечивает возможность обращения к, произвольным полям
связанных записей. Это уменьшает количество явных обращений к таблицам данных и
число манипуляций в каждой из них.
Основные виды связи таблиц
Между таблицами могут устанавливаться бинарные (между двумя таблицами), тернарные
(между тремя таблицами) и, в общем случае, nарные связи. Рассмотрим наиболее часто
встречающиеся бинарные связи.
При связывании двух таблиц выделяют основную и дополнительную (подчиненную)
таблицы. Логическое связывание таблиц производится с помощью ключа связи.
Ключ связи, по аналогии с обычным ключом таблицы, состоит из одного или нескольких
полей, которые в данном случае называют полями связи (ПС).
Суть связывания состоит в установлении соответствия полей связи основной и
дополнительной таблиц. Поля связи основной таблицы могут быть обычными и ключевыми.
В качестве полей связи подчиненной таблицы чаще всего используют ключевые поля.
В зависимости от того, как определены поля связи основной и дополнительной таблиц (как
соотносятся ключевые поля с полями связи), между двумя таблицами в общем случае
могут устанавливаться следующие четыре основные вида связи (табл. 3.2):
один один (1:1);
один много (1:М);
много один (М:1);
много много (М:М или M:N).
Таблица Характеристика видов связей таблиц
Дадим характеристику названным видам связи между двумя таблицами и приведем
примеры их использования.
Связь вида 1:1
Связь вида 1:1 образуется в случае, когда все поля связи основной и дополнительной
таблиц являются ключевыми. Поскольку значения в ключевых полях обеих таблиц не
повторяются, обеспечивается взаимнооднозначное соответствие записей из этих таблиц.
Сами таблицы, по сути, здесь становятся равноправными.
Связывание таблиц базы данных
Установление связей в Access дает возможность автоматически соединять данные из
разных таблиц, таким образом, обеспечивается целостность базы данных.
Процесс установки связей между таблицами называют построением схемы базы
данных.
Для установления связей между двумя таблицами необходимо определить в каждой из них
поля для этого связывания. Эти поля не обязательно могут иметь одинаковые имена, но
должны содержать однотипные данные.
Пример. Рассмотрим связь между двумя таблицами «Покупатель» и «Заказы» в
базе данных Trade.mdb. Структура каждой таблицы представлена на рис. 4.10. В таблице «Покупатель» ключевым полем является поле Код покупателя. Данное
поле является счетчиком и содержит уникальные значения для каждой записи этой
таблицы. Поле данной таблицы назовем первичным ключом.
Если каждый покупатель имеет право сделать только один заказ, то в таблице
«Заказы» ключевым полем может являться аналогичное первой таблице полесчетчик Код
покупателя. В таблице «Заказы» ключевое поле Код покупателя будем называть внешним
ключом.
В этом случае тип связи, установленной между первичным и внешним ключом,
называют связью один к одному. Этот тип связи представлен на рисунке 4.11
Если в таблице «Заказы» один покупатель имеет право сделать несколько заказов,
то поле Код покупателя уже не будет уникальным, так как может повторяться
многократно. В этом случае тип данных в этом поле может принимать числовые значения, а
ключевым полем с уникальными значениями может быть определено поле Номер заказа. В
этом случае тип связи, установленной между одноименными полями Код покупателя в
обеих таблицах, называют связью один ко многим, как показано на рисунке 4.12.
В реляционных базах данных между таблицами могут также создаваться связи типа
многие ко многим.
Созданные связи в дальнейшем можно удалить в окне Схема данных, щелкнув
мышью по линии связи, чтобы выделить ее, а затем нажать клавишу Delete (Удалить).
Двойной щелчок мышью по линии связи приведет к открытию окна Изменение связей, в
котором связи могут быть отредактированы.
1. Основные виды связи таблиц.
a. Связь вида 1:1;
b. Связь вида 1:М;
c. Связь вида М:1;
d. Связь вида М:М.
2. Контроль целостности связей.
1.Основные виды связи таблиц.
При проектировании реальных БД информацию обычно размещают в нескольких
таблицах. В реляционных СУБД для указания связей таблиц производят операцию их
связывания.
Связывание таблиц при выполнении таких операций, как поиск,
просмотр,
редактирование, выборка и подготовка отчетов, обычно обеспечивает возможность
обращения к произвольным полям связанных записей. Это уменьшает количество явных
обращений к таблицам данных и число манипуляций в каждой из них.
Между таблицами могут устанавливаться бинарные (между двумя таблицами), тернарные
(между тремя таблицами) и, в общем случае, Nарные связи. Рассмотрим наиболее часто
встречающиеся бинарные связи.
При связывании двух таблиц выделяют основную и дополнительную (подчиненную)
таблицы. Логическое связывание таблиц производится с помощью ключа связи.
Ключ связи, по аналогии с обычным ключом таблицы, состоит из одного или нескольких
полей, которые в данном случае называют полями связи (ПС).
Суть связывания состоит в установлении соответствия полей связи основной и
дополнительной таблиц. Поля связи основной таблицы могут быть обычными и ключевыми. В
качестве полей связи подчиненной таблицы чаще всего используют ключевые поля.
В зависимости от того, как таблиц определены поля связи основной и дополнительной
таблиц (как соотносятся ключевые поля с полями связи), между двумя таблицами в
общем случае могут устанавливаться следующие четыре основных вида связи (табл. 1):
•один — один (1:1);
•один — много (1:М);
• много — один (М:1);
• много — много (М:М или M:N). Характеристика полей
связи по видам
1:1
1:М
М:1
М:М
Поля связи основной
таблицы
Являются
ключом
Являются
ключом
Не являются
ключом
Не являются
ключом
Поля связи
дополнительной таблицы
Являются
ключом
Не являются
ключом
Являются
ключом
Не являются
ключом
а) Связь вида 1:1.
Связь вида 1:1 образуется в случае, когда все поля связи основной и дополнительной
таблиц являются ключевыми. Поскольку значения в ключевых полях обеих таблиц не
повторяются, обеспечивается взаимнооднозначное соответствие записей из этих таблиц.
Сами таблицы становятся равноправными.
Пример связи вида 1:1. Ключевые поля обозначены символом «*», используемые для связи
поля обозначены символом «+»
Таблица 1
* +
Поле 1
Поле2
10
40
3
А
Б
в
Таблица 2
* +
Поле 11
Поле 22
А
в
Стол
книга
В приведенных таблицах установлена связь между записью (а, 10) Таблицы 1 и записью (а,
стол) Таблицы 2. Основанием этого является совпадение значений в полях связи.
Аналогичная связь существует и между записями (в, 3) и (в, книга) этих же таблиц. В
таблицах записи отсортированы по значениям в ключевых полях. На практике связи вида 1:1 используются сравнительно редко, так как хранимую в
двух таблицах информацию легко объединить в одну таблицу, которая занимает гораздо
меньше места в памяти ЭВМ.
Б) Связь вида 1:М
Связь 1:М имеет место в случае, когда одной записи основной таблицы соответствует
несколько записей вспомогательной таблицы.
Пример связи вида 1:М.
Пусть имеются две связанные таблицы Таблица 1 и Таблица 2. В
таблице 1 содержится информация о видах мультимедиаустройств ПЭВМ, а в таблице 2
сведения о фирмахпроизводителях этих устройств, а также о наличии на складе хотя бы
одного устройства.
Таблица 1
* +
Код
Вид устройства
А
Б
в
CDROM
CDRecorder
Sound Blaster
Таблица 2
* + *
Код
Фирма
производитель
Наличие
А
а
А
б
Б
Б
Acer
Mitsumi
NEC
Panasonic
Philips
Sony
Да
Да
Нет
Да
Да
Нет а
в
Sony
Acer
Да
да
Таблица 2 имеет два ключевых поля, так как одна и та же фирма может производить
устройства различных видов. В примере фирма Sony производит устройства считывания и
перезаписи с компактдисков.
Сопоставление записей обеих таблиц по полю «Код» порождает псевдозаписи вида: (a, CD
ROM, Acer, да), (a, CDROM, Mitsumi, нет), (a, CDROM, NEC, да), (a, CDROM, Panasonic,
да), (a, CDROM, Sony, да), (б, CDRecorder, Philips, нет), (б, CDRecorder, Sony, да) и т. д.
Если свести псевдозаписи в новую таблицу, то получим полную информацию обо всех
видах мультимедиаустройств ПЭВМ, фирмах, их производящих, а также сведения о
наличии конкретных видов устройств на складе.
в) Связь вида М:1.
Связь М:1 имеет место в случае, когда одной или нескольким записям основной таблицы
ставится в соответствие одна запись дополнительной таблицы.
Пример связи вида М:1. Рассмотрим связь таблиц 1 и 2. В основной таблице 1 содер
жится информация о названиях деталей (Поле1), видах материалов, из которого
детали можно изготовить (Поле2), и марках материала (Поле3). В дополнительной
таблице 2 содержатся сведения о названиях деталей (Поле21), планируемых сроках
изготовления (Поле22) и стоимости заказов (Поле23).
Таблица 1.
+
Поле 1
Поле 2
Поле 3
Деталь1
Чугун
Марка1
Деталь1
Чугун
Марка2
Деталь2
Сталь
Марка1
Деталь3
сталь
Марка1
Деталь3
Алюминий
Марка3
Деталь4
чугун
Марка2
Таблица 2.
* + Поле21
Поле22
Поле23
Деталь1
Деталь2
Деталь3
Деталь4
90
56
67
80
Да
Нет
Да
да
Связывание этих таблиц обеспечивает такое установление соответствия между записями,
которое эквивалентно образованию следующих псевдозаписей: (деталь1, чугун, марка1,
4.03.98,90), (деталь1, чугун, марка2,4.03.98, 90), (деталь2, сталь, марка1, 3.01.98, 35), (деталь2,
сталь, марка2, 3.01.98, 35), (деталь2, сталь, маркаЗ, 3.01.98, 35), (детальЗ, алюминий, ,
17.02.98, 90), (деталь4, чугун, марка2, 6.05.98, 240).
Полученная псевдотаблица может быть полезна при планировании или принятии
управленческих решений, когда необходимо иметь все возможные варианты исполнения
заказов по каждому изделию. Отметим, что таблица 1 не имеет ключей и в ней возможно
повторение записей. Если таблицу 2 сделать основной, а таблицу 1 — дополнительной,
получим связь вида 1:М. Поступив аналогично с таблицами 1 и 2, можно получить связь вида
М:1. Отсюда следует, что вид связи (1:М или М:1) зависит от того, какая таблица является
главной, а какая дополнительной.
г) Связь вида М:М.
Самый общий вид связи М:М возникает в случаях, когда нескольким записям основной
таблицы соответствует несколько записей дополнительной таблицы.
Пример связи вида М:М.
Пусть в основной таблице 1 содержится информация о том, на каких станках могут
работать рабочие некоторой бригады. Таблица 2 содержит сведения о том, кто из бригады
ремонтников какие станки обслуживает. Таблица 1
* * +
Работает
На станке
Иванов
Иванов
Петров
Петров
Станок1
Станок2
Станок1
Станок3
Сидоров
Станок2
Таблица 2.
* * +
Обслуживает
Станок
Голубев
Станок1
Голубев
Станок3
Зыков
Зыков
Станок2
Станок3
Исходя из определения полей связи этих таблиц можно составить новую таблицу 3 с
именем «1+2», записями которой будут псевдозаписи. Записям полученной таблицы можно
придать смысл возможных смен, составляемых при планировании работы. Для удобства,
поля новой таблицы переименованы (кстати, такую операцию предлагают многие из со
временных СУБД).
Таблица 3 Приведенную таблицу можно использовать, например,
для получения ответа на вопрос: «Кто обслуживает станки, на которых трудится Петров Н.Г.?».
Очевидно, аналогично связи 1:1, связь М:М не устанавливает подчиненности таблиц. Для
проверки этого можно основную и дополнительную таблицу поменять местами и выполнить
объединение информации путем связывания. Результирующие таблицы «1+2» и «2+1» будут
отличаться порядком следования первого и третьего полей, а также порядком расположения
записей.
Замечание. На практике в связь обычно вовлекается сразу несколько таблиц. При этом
одна из таблиц может иметь различного рода связи с несколькими таблицами. В случаях, когда
связанные таблицы, в свою очередь, имеют связи с другими таблицами, образуется иерархия
или дерево связей.
2.Контроль целостности связей.
Целостность связей подразумевает наличие средств, позволяющих удостовериться, что
информация в базе данных всегда остается корректной и полной.
Контроль целостности связей обычно означает анализ содержимого двух таблиц на
соблюдение следующих правил:
• каждой записи основной таблицы соответствует нуль или более записей
дополнительной таблицы;
• в дополнительной таблице нет записей, которые не имеют родительских записей в
основной таблице;
• каждая запись дополнительной таблицы имеет только одну родительскую запись
основной таблицы.
При вводе новых записей применяется схема, при которой данные сначала вводятся в
основную таблицу, а потом в дополнительную. Очередность ввода может быть
установлена на уровне целых таблиц или отдельных записей (случай одновременного ввода
в несколько открытых таблиц).
В процессе заполнения основной таблицы контроль значений полей связи ведется как
контроль обычного ключа (на совпадение со значениями тех же полей других записей).
Заполнение полей связи дополнительной таблицы контролируется на предмет совпадения
со значениями полей связи основной таблицы. Если вновь вводимое значение в поле связи
дополнительной таблицы не совпадет ни с одним соответствующим значением в записях
основной таблицы, то ввод такого значения должен блокироваться.
Модификация записей. Изменение содержимого полей связанных записей, не
относящихся к полям связи, очевидно, должно происходить обычным образом. Нас будет
интересовать механизм изменения полей связи.
При редактировании полей связи дополнительной таблицы требуется, чтобы новое
значение поля связи совпадало с соответствующим значением какойлибо записи основной
таблицы. Т. е. дополнительная запись может сменить родителя, но остаться без него не
должна.
Редактирование поля связи основной таблицы разумно подчинить од
ному из следующих
правил:
• редактировать записи, у которых нет подчиненных записей. Если есть подчиненные
записи, то блокировать модификацию полей связи;
• изменения в полях связи основной записи мгновенно передавать во все поля связи всех
записей дополнительной таблицы (каскадное обновление).
В операциях удаления записей связанных таблиц большую свободу, очевидно, имеют
записи дополнительной таблицы. Удаление их должно происходить практически
бесконтрольно. Удаление записей основной таблицы логично подчинить одному из сле
• удалять можно запись, которая не имеет подчиненных записей;
• запретить (блокировать) удаление записи при наличии подчиненных записей, либо
дующих правил:
удалять ее вместе со всеми подчиненными записями (каскадное удаление).
Лекция "Связывание таблиц в бд. "
Лекция "Связывание таблиц в бд. "
Лекция "Связывание таблиц в бд. "
Лекция "Связывание таблиц в бд. "
Лекция "Связывание таблиц в бд. "
Лекция "Связывание таблиц в бд. "
Лекция "Связывание таблиц в бд. "
Лекция "Связывание таблиц в бд. "
Лекция "Связывание таблиц в бд. "
Материалы на данной страницы взяты из открытых истончиков либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.