- •Вопросы и ответы для экзамена по курсу «Базы данных»
- •Определения данных, информации, субд, бд
- •Реляционная модель данных. Базовые понятия и определения
- •Тип данных
- •Типы данных, домен
- •Кортежи, пустые значения
- •Ключи, назначение, виды
- •Внешние ключи, связанные отношения Связанные отношения
- •Условия целостности
- •Типы связей, примеры
- •Сущности, их свойства. Связи между сущностями.
- •Нормализация – основные понятия
- •Нормализация – первая нормальная форма, алгоритм приведения, пример
- •Нормализация – вторая нормальная форма, алгоритм приведения, пример
- •Нормализация – третья нормальная форма, алгоритм приведения, пример
- •Реляционная алгебра – основные определения
- •Операции реляционной алгебры.
- •Основные операторы языка sql.
Типы связей, примеры
При установлении связи между двумя таблицами одна из них будет являться главной (master), а вторая — подчиненной (detail).
Различие между ними несколько упрощенно можно пояснить следующим образом.
В главной таблице всегда доступны все содержащиеся в ней записи. В подчиненной же таблице доступны только те записи, у которых значение атрибутов внешнего ключа совпадает со значением соответствующих атрибутов текущей записи главной таблицы.
Причем изменение текущей записи главной таблицы приведет к изменению множества доступных записей подчиненной таблицы, а изменение текущей записи в подчиненной таблице не вызовет никаких изменений ни в одной из таблиц.
На практике часто связывают более двух таблиц. Одна и та же таблица может быть главной по отношению к одной таблице и подчиненной по отношению к другой. Или у одной главной таблицы может находиться в подчинении не одна, а несколько таблиц. Однако подчиненная таблица не может управляться двумя таблицами. Таким образом, у главной таблицы может быть несколько подчиненных, но у подчиненной таблицы может быть только одна главная.
Различают четыре типа связей между таблицами реляционной базы данных:
один к одному — каждой записи одной таблицы соответствует только одна запись другой таблицы;
один ко многим — одной записи главной таблицы могут соответствовать несколько записей подчиненной таблицы;
многие к одному — нескольким записям главной таблицы может соответствовать одна и та же запись подчиненной таблицы;
многие ко многим — одна запись главной таблицы связана с несколькими записями подчиненной таблицы, а одна запись подчиненной таблицы связана с несколькими записями главной таблицы.
Различие между типами связей «один ко многим» и «многие к одному» зависит от того, какая из таблиц выбирается в качестве главной, а какая — в качестве подчиненной. Например, если из связанных таблиц СТУДЕНТЫ и УСПЕВАЕМОСТЬ в качестве главной выбрать таблицу СТУДЕНТЫ, то получим тип связи «один ко многим». Если же выбрать в качестве главной таблицу УСПЕВАЕМОСТЬ, получится тип связи «многие к одному».
Рассмотрим теперь некоторые важнейшие свойства отношений реляционной модели данных.
В таблицах реляционной базы данных информация хранится в неупорядоченном виде. Упорядочивание в принципе не поддерживается СУБД, и такое понятие, как порядковый номер кортежа, не имеет никакого смысла.
Свойство отсутствия упорядоченности кортежей отношения также является следствием определения отношения как множества кортежей. Отсутствие требования к поддержанию порядка на множестве кортежей отношения дает СУБД дополнительную гибкость при хранении баз данных во внешней памяти и при выполнении запросов к базе данных.
При проведении выборки данных из базы (с использованием, например, языка SQL) и отображении результатов этой выборки можно потребовать сортировки результирующей таблицы в соответствии со значениями некоторых атрибутов. Однако это не противоречит принципу отсутствия упорядоченности, так как результат выборки не является отношением, а представляет собой некоторый упорядоченный список кортежей.
Атрибуты отношений также не упорядочены, поскольку по определению схема отношения есть множество пар {имя атрибута, имя домена}. Для ссылки на значение атрибута в кортеже отношения всегда используется имя атрибута.
Это свойство отсутствие упорядоченности атрибутов теоретически позволяет, например, модифицировать схемы существующих отношений не только путем добавления новых атрибутов, но и путем удаления существующих атрибутов. Однако в большинстве существующих систем такая возможность не допускается, и хотя упорядоченность набора атрибутов отношения явно не требуется, часто в качестве неявного порядка атрибутов используется их порядок в линейной форме определения схемы отношения.
Атомарность значений атрибутов. Это следует из определения домена как потенциального множества значений простого типа данных, то есть среди значений домена не могут содержаться множества значений (отношения).