Популярные услуги

Все письменные КМ под ключ за 3 суток! (КМ-6 + КМ-7 + КМ-8 + КМ-9 + КМ-10)
КМ-6. Динамические массивы. Семинар - выполню любой вариант!
Любая задача на C/C++
Одно любое задание в mYsql
Любой тест по базам данных максимально быстро на хорошую оценку - или верну деньги!
Любой реферат по объектно-ориентированному программированию (ООП)
Повышение уникальности твоей работе
КМ-2. Разработка простейших консольных программ с использованием ООП + КМ-4. Более сложные элементы ООП - под ключ!
Оба семинара по программированию под ключ! КМ-2. Разработка циклических алгоритмов + КМ-3. Функции и многофайловые программы в Си
Любой реферат по информатике

Связанные отношения

2021-03-09СтудИзба

Лекция 5. Связанные отношения. Принципы поддержки целостности данных

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

В связях между отношениями используют ключи, и в зависимости от типа ключей участвующих в связях возникают различные типы связей. Основным условием связи между отношениями является совпадение доменов (или типов, если домены не используются) ключей используемых в связи. При этом ключ связи в подчиненном отношении называется внешним ключом.

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

Типы связей между отношениями

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

· один-к-одному (1:1) – каждому кортежу одного отношения соответствует только один кортеж другого отношения (рисунок 5.1);

Рекомендуемые материалы

Рисунок 5.1 – тип связи один-к-одному

· один-ко-многим (1:М) – одному кортежу главного отношения соответствует несколько кортежей подчиненного отношения (рисунок 5.2);

Рисунок 5.2 – тип связи один-ко-многим

· многие-ко-многим (М:М) – одному кортежу одного отношения соответствует множество кортежей другого отношения и наоборот (рисунок 5.3).

Рисунок 5.3 – тип связи многие-ко-многим

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

Тип связи один-ко-многим является самым распространенным в реляционных БД, он позволяет моделировать иерархические структуры данных.

Связь многие-ко-многим встречается достаточно часто, однако РСУБД не поддерживают этот тип связи на уровне индексов и ссылочной целостности, но  позволяют реализовывать его неявно. Считается, что БД всегда можно перестроить так, чтобы любая связь многие-ко-многим, была преобразована в одну и более связи один-ко-многим (рисунок 5.4).

Рисунок 5.4 – преобразование связи многие-ко-многим

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

Условия целостности данных

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

· категорийная целостность;

· ссылочная целостность.

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

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

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

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

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

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

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

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

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

· запрещать изменения значений в первичном ключе, на который существуют ссылки;

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

 

Контрольные вопросы

1. Что такое внешний ключ?

2. Каковы условия соединения ключей отношений?

3. Какие существуют типы связей?

4. Какой тип связи получится, если в качестве внешнего ключа будет выступать первичный ключ?

5. Какой тип связи установится при использовании не уникального внешнего ключа?

6. Как реализуется связь многие-ко-многим в РСУБД?

7. Что такое «ограничительные условия»?

8. Что такое «категорийная целостность»?

9. Что такое «ссылочная целостность»?

10. Какие правила позволяют сохранить ссылочную целостность при удалении?

11. Какие правила позволяют сохранить ссылочную целостность при обновлении?

12. Что произойдет, если СУБД не будет поддерживать категорийную или ссылочную целостность?

Задания для самостоятельной работы

Задание 1. Начертите таблицы «Автомобили» и «Владельцы автомобилей» и заполните их значениями. Определите, какой тип связи будет между этими отношениями, и в каком случае?

Задание 2. Некоторая строительная фирма ведет учет материалов необходимых для постройки объектов, в результате были получены две таблицы 5.1 и 5.2, определите типы связей между таблицами и предложите способ учета количества необходимых материалов для каждого объекта.

Таблица 5.1 – Строительный объект

№ Объекта

Адрес

01

Садовое кольцо д.115

02

Пархоменко д. 69

03

Пароходная д. 110

Таблица 5.2 – Типы материалов

Код мат.

Наименование

010

Доска 50*300*2000

011

Доска 45*300*2000

101

Обратите внимание на лекцию "4 - Физиология мышц".

Гвозди строительные 100

102

Гвозди строительные 150

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5168
Авторов
на СтудИзбе
438
Средний доход
с одного платного файла
Обучение Подробнее