Отношение (реляционная модель)
Отношение — фундаментальное понятие реляционной модели данных. По этой причине модель и называется реляционной (от лат. relatio — отношение, связь).
Содержание |
[править] Определения
-арным отношением
, или отношением
степени
, называют подмножество декартовa произведения множеств
, не обязательно различных. Исходные множества
называют в модели доменами (в СУБД используется понятие множество значений, определяемых типом данных).
Отношение имеет простую графическую интерпретацию в виде таблицы, столбцы (поля, атрибуты) которой соответствуют вхождениям доменов в отношение, а строки (записи) — наборам из
значений, взятых из исходных доменов. Число строк (кортежей) называют кардинальным числом отношения (кардинальностью), или мощностью отношения.
Такая таблица обладает рядом свойств:
- В таблице нет двух одинаковых строк.
- Таблица имеет столбцы, соответствующие атрибутам отношения.
- Каждый атрибут в отношении имеет уникальное имя.
- Порядок строк в таблице произвольный.
Под атрибутом здесь понимается вхождение домена в отношение. Строки отношения называются кортежами.
Формализованное определение введённых понятий.
- Заголовок Hr (или схема) отношения r — конечное множество упорядоченных пар вида <A, T>, где A называется именем атрибута, а T обозначает имя некоторого базового типа или ранее определенного домена, то есть множества допустимых значений. По определению требуется, чтобы все имена атрибутов в заголовке отношения были различны.
- Кортеж tr, соответствующий заголовку Hr — множество упорядоченных триплетов вида <A, T, v>, по одному такому триплету для каждого атрибута в Hr. Третий элемент — v — триплета <A, T, v> должен являться допустимым значением типа данных или домена T. Замечание: так как имена атрибутов уникальны, то указание домена в кортеже излишне.
- Тело Br отношения — неупорядоченное множество различных кортежей tr.
- Значением Vr отношения r называется пара множеств Hr и Br.
Полезно также понятие первичного ключа — это такой набор атрибутов, который однозначно определяет кортеж и минимален среди всех своих подмножеств (то есть нельзя убрать ни один из атрибутов). При добавлении новых записей первичный ключ обязан оставаться первичным ключом (например, неверным будет использование в качестве первичного ключа набора Имя + Отчество + Фамилия сотрудника, даже если на момент создания таблицы полных тёзок среди заносимых в неё людей не было).
[править] Пример
Допустим, содержание доменов следующее:
= {Иванов, Петров, Сидоров}
= {Физика, Химия}
= {3,4,5}
Тогда полное декартово произведение состоит из 18 троек, где первый элемент тройки — одна из фамилий, второй элемент — учебная дисциплина, а третий — оценка.
Тогда отношение R может моделировать реальную ситуацию и содержать пять строк, которые соответствуют результатам сессии (Петров экзамен по Физике не сдавал):
| R | ||
|---|---|---|
| Фамилия | Предмет | Оценка |
| Иванов | Физика | 4 |
| Иванов | Химия | 3 |
| Петров | Химия | 5 |
| Сидоров | Физика | 5 |
| Сидоров | Химия | 4 |
[править] Операции, определённые над отношениями
См. также: реляционная алгебра, реляционное исчисление.
- Объединение — тело нового отношения является объединением тел старых
- Пересечение — тело нового отношения является пересечением тел старых
- Вычитание — тело нового отношения получено вычитанием тел старых
- Проекция — частный случай пересечения
- Декартово произведение — тело нового отношения является декартовым произведением тел старых
- Выборка — из исходного отношения выбираются лишь те кортежи, которые удовлетворяют новым доменам (заданным в условиях выборки)
- Соединение — выборка над декартовым произведением
- Деление — делитель является унарным отношением (то есть с единственным атрибутом). Частное — совпадающие части кортежей делимого, перед которыми стоит делитель.
В полученном объекте могут появиться одинаковые кортежи (например, при проецировании отношения из примера на отношение, заголовок которого состоит из единственного атрибута — фамилии, получим две пары одинаковых кортежей (два Иванова и два Сидорова) и ещё один кортеж (Петров). Необходимо удалить дубликаты, чтобы этот объект являлся отношением (тогда будет один Иванов, один Петров и один Сидоров).
[править] Пример деления
Делимое:
| Атрибут A | Атрибут B | Атрибут C |
|---|---|---|
| a | c | d |
| b | c | d |
| a | p | q |
| b | x | y |
Делитель:
| Атрибут A |
|---|
| a |
| b |
Частное:
| Атрибут B | Атрибут C |
|---|---|
| c | d |
Остаток от деления:
| Атрибут A | Атрибут B | Атрибут C |
|---|---|---|
| a | p | q |
| b | x | y |
Чтобы было проще понять этот пример, сравните его с обычной алгеброй: умножьте делитель на частное (декартово произведение), прибавьте остаток от деления (объединение), и Вы получите делимое. То есть если a/b=c, и остаток=d, тогда b*c+d=a.
[править] Литература
- Когаловский М.Р. Энциклопедия технологий баз данных. — М.: Финансы и статистика, 2002. — 800 с. — ISBN 5-279-02276-4
- Кузнецов С. Д. Основы баз данных. — 2-е изд. — М.: Интернет-университет информационных технологий; БИНОМ. Лаборатория знаний, 2007. — 484 с. — ISBN 978-5-94774-736-2
- Дейт К. Дж. Введение в системы баз данных = Introduction to Database Systems. — 8-е изд. — М.: Вильямс, 2005. — 1328 с. — ISBN 5-8459-0788-8 (рус.) 0-321-19784-4 (англ.)
- Коннолли Т., Бегг К. Базы данных. Проектирование, реализация и сопровождение. Теория и практика = Database Systems: A Practical Approach to Design, Implementation, and Management. — 3-е изд. — М.: Вильямс, 2003. — 1436 с. — ISBN 0-201-70857-4
- Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс = Database Systems: The Complete Book. — Вильямс, 2003. — 1088 с. — ISBN 5-8459-0384-X
- C. J. Date Date on Database: Writings 2000–2006. — Apress, 2006. — 566 с. — ISBN 978-1-59059-746-0, 1-59059-746-X
Для улучшения этой статьи по информационным технологиям желательно?:
|
| Базы данных | |
|---|---|
| Концепции |
Модель данных • Реляционная (модель • алгебра • Нормальная форма • Ссылочная целостность • БД • СУБД) • Иерархическая модель • Сетевая (модель • СУБД) • Объектно-ориентированная (БД • СУБД) • Транзакция • Журнализация • Секционирование |
| Объекты |
Отношение (таблица) • Представление • Хранимая процедура • Триггер • Курсор • Индекс |
| Ключи |
Потенциальный • Первичный • Внешний • Естественный • Суррогатный (искусственный) • Суперключ |
| SQL | |
| СУБД |
IMS • DB2 • Informix • Oracle Database • Microsoft SQL Server • Adaptive Server Enterprise • Teradata Database • Firebird • PostgreSQL • MySQL • SQLite • Microsoft Access • Visual FoxPro • ЛИНТЕР • CouchDB • MongoDB |
| Компоненты | |
= {Иванов, Петров, Сидоров}
= {Физика, Химия}
= {3,4,5}