Введение в логику

Отношения и базы данных

Показывать лекцию целиком

Наиболее популярные базы данных – это реляционные базы данных, то есть базы, построенные на отношениях (слово relation означает отношение, в русском языке использовалось слово "реляция" как синоним отношения). Отношения, как мы знаем, позволяют отразить связи, существующие между данными.

Табличное представление отношения

Каждое отношение можно представить прямоугольной таблицей, состоящей из m столбцов и n строк. Число столбцов определяется арностью отношения. Число строк определяется мощностью отношения, числом его элементов. На практике, конечно же, рассматриваются конечные таблицы, состоящие из конечного числа строк. Элементы строки для бинарного отношения задают пару, принадлежащую отношению. Для тернарного отношения – таблицы из трех столбцов – это тройка элементов, для n-арного отношения – это n-ка элементов. Строки таблицы называются еще кортежами или записями. Элементы, принадлежащие одному столбцу, имеют одну и ту же область определения, - то множество, которому принадлежит соответствующий элемент кортежа.

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

Пример:

Представим отношение "семья" в виде таблицы:

Отношение "семья"
Отец Мать Дети
Петр Анна Михаил, Антон, Елена
Сергей Татьяна Любовь, Нина, Василий
Василий Елена Николай, Владимир

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

Отношение "семья" с простыми значениями полей
Отец Мать Ребенок
Петр Анна Михаил
Петр Анна Антон
Петр Анна Елена
Сергей Татьяна Любовь
Сергей Татьяна Нина
Сергей Татьяна Василий
Василий Елена Николай
Василий Елена Владимир

Достоинством таблицы 6.2 является то, что значения всех полей простые, так что с ними удобно работать. Недостатком таблицы является дублирование информации в строках таблицы, в ее записях – кортежах отношения.

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

Отношение "родители" семьи
ID семьи Отец Мать
1 Петр Анна
2 Сергей Татьяна
3 Василий Елена

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

Отношение "ребенок" семьи
ID семьи Ребенок
1 Михаил
1 Антон
1 Елена
2 Любовь
2 Нина
2 Василий
3 Николай
3 Владимир

Таблицы 6.3 и 6.4 связаны общим полем ID, что позволяет над таблицами, представляющими отношения, выполнить операцию, называемую объединением отношений – операцию Join. Таблица 6.2 является результатом выполнения такой операции. Объединенная таблица может использоваться в процессе поиска и обработки данных. В базе хранятся данные в таблицах 6.3 и 6.4 без излишнего дублирования информации.

Вернуться к учебному плану