Отношение в реляционной модели данных это таблица


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

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

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

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

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

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


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

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

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

  • много — много (М:М или M:N).

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


Характеристика полей связи по видам

1:1

1:М

М:1

М:М

Поля связи основной таблицы

являются ключом

являются ключом

не являются ключом

не являются ключом

Поля связи дополнительной таблицы

являются ключом

не являются ключом

являются ключом

не являются ключом

Дадим характеристику названным видам связи между двумя таблицами и приве­дем примеры их использования.

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

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

Пример 1.

Пусть имеются основная 01 и дополнительная Д1 таблицы. Ключевые поля обо­значим символом «», используемые для связи поля обозначим символом «+».

Error: Reference source not found

В приведенных таблицах установлена связь между записью (а, 10) таблицы 01 и записью (а, стол) таблицы Д1. Основанием этого является совпадение зна­чений в полях связи. Аналогичная связь существует и между записями (в, 3) и (в, книга) этих же таблиц. В таблицах записи отсортированы по значениям в ключевых полях.

Сопоставление записей двух таблиц по существу означает образование новых «виртуальных записей» (псевдозаписей). Так, первую пару записей логически мож­но считать новой псевдозаписью вида (а, 10, стол), а вторую пару — псевдозаписью • вида (в,3,книга).

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

Пример 2.

Пусть имеются сведения о выполняемых в некоторой организации научно-исследо­вательских работах. Эти данные включают в себя следующую информацию по каждой из работ- тему (девиз и полное наименование работ), шифр (код), даты начала и завер­шения работы, количество этапов, головного исполнителя и другую дополнительную информацию. Все работы имеют гриф «Для служебного пользования» или «секретно».

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

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

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

Пример 3.

Пусть имеются две связанные таблицы 02 и Д 2. В таблице 02 содержится информа­ция о видах мультимедиа-устройств ПЭВМ, а в таблице Д2 — сведения о фирмах-произ­водителях этих устройств, а также о наличии на складе хотя бы одного устройства.

Error: Reference source not found

Таблица Д2 имеет два ключевых поля, так как одна и та же фирма может произво­дить устройства различных видов. В примере фирма Sony производит устройства счи­тывания и перезаписи с компакт-дисков.

Сопоставление записей обеих таблиц по полю «Код» порождает псевдозаписи вида:

(a, CD-ROM, Acer, да), (a, CD-ROM, Mitsumi, нет), (a, CD-ROM, NEC, да), (a, CD-ROM, Panasonic, да), (a, CD-ROM, Sony, да), (б, CD-Recorder, Philips, нет), (б, CD-Recorder, Sony, да) и т. д.

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

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

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

Пример 4.

Рассмотрим связь таблиц 03 и ДЗ. В основной таблице 03 содержится информа­ция о названиях деталей (Поле11), видах материалов, из которого детали можно из­готовить (Поле12), и марках материала (Поле13). В дополнительной таблице ДЗ со­держатся сведения о названиях деталей (Поле21), планируемых сроках изготовле­ния (Поле22) и стоимости заказов (Поле23).Error: Reference source not found

Связывание этих таблиц обеспечивает такое установление соответствия между записями, которое эквивалентно образованию следующих псевдозаписей: (деталь!, чугун, марка!, 4.03.98, 90), (деталь!, чугун, марка2, 4.03.98, 90), (деталь2, сталь, мар­ка!, 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).

Полученная псевдотаблица может быть полезна при планировании или принятии управленческих решений, когда необходимо иметь все возможные варианты испол­нения заказов по каждому изделию. Отметим, что таблица 03 не имеет ключей и в ней возможно повторение записей. Если таблицу ДЗ сделать основной, а таблицу 03 — дополнительной, получим связь вида 1.М. Поступив аналогично с таблицами 02 и Д2, можно получить связь вида М:1. Отсюда следует, что вид связи (1:М или М:1) зависит от того, какая таблица является главной, а какая дополнительной.

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

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

Пример 5.

Пусть в основной таблице 04 содержится информация о том, на каких станках могут работать рабочие некоторой бригады. Таблица Д4 содержит сведения о том, кто из бригады ремонтников какие станки обслуживает.Error: Reference source not found

Первой и третьей записям таблицы 04 соответствует первая запись таблицы Д4 (у всех этих записей значение второго поля — «станок!»). Четвертой записи таблицы 04 соответствуют вторая и четвертая записи таблицы Д4 (во втором поле этих запи­сей содержится «станокЗ»).

Исходя из определения полей связи этих таблиц можно составить новую таблицу с именем «04+Д4», записями которой будут псевдозаписи. Записям полученной таб­лицы можно придать смысл возможных смен, составляемых при планировании рабо­ты. Для удобства, поля новой таблицы переименованы (кстати, такую операцию пред­лагают многие из современных СУБД).

Таблица «04+Д4»


Работа

Станок

Обслуживание

Иванов А.В.

станок1

Голубев Б. С.

Иванов А.В.

станок2

Зыков А.Ф.

Петров Н.Г.

станок1

Голубев Б.С.

Петров Н.Г.

станокЗ

Голубев Б.С.

Петров Н.Г.

станокЗ

Зыков А.Ф.

Сидоров В.К

станок2

Зыков А.Ф.

Приведенную таблицу можно использовать, например, для получения ответа на вопрос: «Кто обслуживает станки, на которых трудится Петров Н.Г?».

Очевидно, аналогично связи 1:1, связь М:М, не устанавливает подчиненности таб­лиц. Для проверки этого можно основную и дополнительную таблицу поменять мес­тами и выполнить объединение информации путем связывания. Результирующие таб­лицы «04+Д4» и «Д4+04» будут отличаться порядком следования первого и третье­го полей, а..также порядком расположения записей.

Замечание.

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

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

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

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

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


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

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

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

Опишем действие контроля целостности при манипулировании данными в табли­цах. Рассмотрим три основные операции над данными двух таблиц:

  • ввод новых записей,

  • модификацию записей,

  • удаление записей.

При рассмотрении попытаемся охватить все возможные методы организации кон­троля целостности. В реальных СУБД могут применяться собственные методы, по­добные описываемым.

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

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

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

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

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


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

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

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

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


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

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

3.5. Теоретические языки запросов

Операций, выполняемые над отношениями, можно разделить на две группы. Пер­вую группу составляют операции над множествами, к которым относятся операции:

объединения, пересечения, разности, деления и декартова произведения. Вторую груп­пу составляют специальные операции над отношениями, к которым, в частности, от­носятся операции: проекции, соединения, выбора.

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

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


  • реляционная алгебра;

  • реляционное исчисление.

Эти языки представляют минимальные возможности реальных языков манипу­лирования данными в соответствии с реляционной моделью и эквивалентны друг другу по своим выразительным возможностям. Существуют не очень сложные правила пре­образования запросов между ними.

В реляционной алгебре операнды и результаты всех действий являются отношени­ями. Языки реляционной алгебры являются процедурными, так как отношение, явля­ющееся результатом запроса к реляционной БД, вычисляется при выполнении пос­ледовательности реляционных операторов, применяемым к отношениям. Операторы состоят из операндов, в роли которых выступают отношения, и реляционных опера­ций. Результатом реляционной операции является отношение.

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

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


  • S (поставщики);

  • Р (детали);

  • SP (поставки).

Первичными ключами этих таблиц являются соответственно: П# (код поставщи­ка), Д# (код детали) и составной ключ (П#, Д#). Содержимое таблиц приведено на рис. 3.7. Для удобства изложения предположим, что в рассматриваемых языках зап­росов нет ограничений на употребление символов русского алфавита в именах атри­бутов. Каждое из полей П# и Д# таблицы SP в отдельности является внешним клю­чом по отношению к таблице S и Р соответственно.

Предположим, что имена доменов (множеств допустимых значений) совпадают с именами атрибутов. Исключение составляют атрибуты Город_П (город, в котором находится поставщик) и Город_Д (город, в котором выпускается деталь), которые имеют общий домен: множество названий городов. Имя этого домена может быть, например, просто Город. Характеристики доменов как типов данных следующие: Д# —

S


П#

Имя

Статус

Город_П

S1

Сергей

20

Москва

S2

Иван

10

Киев

S3

Борис

30

Киев

S4

Николай

20

Москва

S5

Андрей

30

Минск

P

Д#

Название

Тип

Вес

Город_Д

Р1

гайка

каленый

12

Москва

Р2

болт

мягкий

17

Киев

РЗ

винт

твердый

17

Ростов

Р4

винт

каленый

14

Москва

Р5

палец

твердый

12

Киев

Р6

шпилька

каленый

19

Москва

SP

П#

Д#

Количество

S1

P1

300

S1

P2

200

S1

P3

400

S1

P4

200

S1

P5

100

S1

P6

100

S2

P1

300

S2

P2

400

S3

P2

200

S4

P2

200

S4

P4

300

S4

P5

400

Рис. 3.7. Таблицы поставщиков, деталей и поставок

строка символов длиной 5, Имя — строка символов длиной 20, Статус — цифровое дли­ной 5, Город — строка символов длиной 15, Д# — строка символов длиной 6, Тип — строка символов длиной 6, Вес — цифровое длиной 5, Количество — цифровое длиной 5.



Поделись с друзьями



Рекомендуем посмотреть ещё:


Закрыть ... [X]


Пособие. Реляционная модель данных. Основные понятия. Структуры Елена крыгина макияж на выпускной

Отношение в реляционной модели данных это таблица Виды связей между таблицами в базе данных. Связи в реляционных
Отношение в реляционной модели данных это таблица Базы данных реляционные. Понятие реляционной базы данных
Отношение в реляционной модели данных это таблица Основные понятия реляционной модели данных Студопедия
Отношение в реляционной модели данных это таблица Основные виды связи таблиц - Реляционная модель данных
Отношение в реляционной модели данных это таблица Отношение (реляционная модель) Википедия
Отношение в реляционной модели данных это таблица Типы связей в реляционных базах данных
Отношение в реляционной модели данных это таблица (Шопотам) - отзывы клиентов - Рейтинг
Отношение в реляционной модели данных это таблица Skyrim Маски драконьих жрецов (прохождение)
Анекдот Патриарх Кирилл - православные шутят В Салавате прошел Танцевальный дождь Иностранец в России - ТВОИ ПРАВА Как добавить трафик на Теле2? Ответ специалиста Какие бывают статусы сервера и что они обозначают? - База знаний Ленские столбы - Путешествия с Марией Анашиной Обязательные поля формы. Как сделать поля формы обязательными

ШОКИРУЮЩИЕ НОВОСТИ