- •Реляционная алгебра
- •Модель:
- •3.1. Основные понятия реляционной модели
- •3.2. Свойства отношений
- •3.3. Реляционные ключи
- •3.4. Представление схем
- •3.5. Реляционная целостность
- •3.6. Внешние представления
- •Реляционная алгебра и реляционное исчисление
- •3.7. Реляционная алгебра
- •3.7.3. Объединение - r s
- •3.7.4. Разность - r - s
- •3.7.5. Пересечение - r s
- •3.7.6. Декартово произведение - r X s
- •3.7.7. Декомпозиция сложных операций
- •3.7.8. Операции соединения
- •3.7.9. Деление r s
- •3.8. Реляционное исчисление
- •3.8.1. Реляционное исчисление кортежей
- •3.8.2. Реляционное исчисление доменов
- •3.9. Другие языки
Реляционная алгебра
Лекции 3,4: Основные понятия реляционной модели данных. Реляционная алгебра. Операции селекции, проекции, соединения. Теоретико-множественные операции над отношениями. Реляционные исчисления
Модель:
структура данных
управляющая часть (доступные операции с данными)
набор ограничений целостности
Рассмотрим структурные особенности реляционной модели данных.
3.1. Основные понятия реляционной модели
Реляционная модель была предложена Коддом в 1970 году. Термин "реляционная" имеет в своей основе английское слово "relation", что переводится как "отношение". В математических науках понятию «отношение» соответствует понятие «таблица». Применительно к БД эти понятия являются синонимами. Итак, данные в реляционных БД хранятся в виде таблиц. Одним из основных преимуществ реляционной модели является ее однородность. Каждая строка в таблице представляет некоторый объект реального мира или соотношение между объектами и имеет один и тот же формат. Пользователь модели сам должен решить для себя вопрос, обладают ли соответствующие сущности реального мира однородностью. Этим самым решается вопрос о пригодности реляционной модели для предполагаемого применения.
Основными понятиями, с помощью которых определяется реляционная модель, являются следующие: домен, отношение, кортеж, кардинальность, атрибуты, степень, первичный ключ, внешний ключ. Эти понятия иллюстрируются рис. 3.1.
Таблица «Сотрудник»
-
таб.
№
Фамилия И.О.
Должность
Ключ адреса
B005
Иванов И.И.
менеджер
223
B017
Цветкова С.С.
оператор
34
Таблица «Адрес»
-
№ п/п
Адрес
Номер телефона
34
ул. Цвиллинга 36 кв 12
33-54-87
107
ул. Труда 161 кв 88
65-07-78
223
пр. Победы 93 кв 11
77-16-94
Рис. 3.1. Основные понятия реляционной модели
Отношение - плоская таблица с некоторым количеством столбцов и строк.
Реляционная БД на внешнем и концептуальном уровнях представляет собой набор таблиц. Однако физическая структура БД может быть реализована с помощью различных структур.
Атрибут – именованный столбец отношения.
Атрибуты могут располагаться в любом порядке. Каждый столбец таблицы содержит значения одного и того же атрибута.
Домен – это совокупность значений, из которой берутся значения соответствующих атрибутов.
С точки зрения программирования, домен – это тип данных, определяемый по умолчанию системой или пользователем. Понятие домена позволяет централизованно определять смысл и источник значений, которые могут принимать атрибуты.
Таблица 3.1. Домены некоторых атрибутов отношений «Сотрудник» и «Адрес»
Атрибут |
Имя домена |
Содержимое домена |
Определение домена |
Таб.номер |
FK |
Все возможные табельные номера компании |
Символьный: размер 4, диапазон ‘B001’-‘B999’ |
Фамилия И.О. |
Name |
Все возможные значения ФИО работников компании |
Символьный: размер 25 |
Должность |
Job |
Все возможные должности |
Символьный: размер 15 |
Ключ адреса и № п/п |
SK |
Все возможные номера строк в таблице «Адрес» |
Длинный целый |
Адрес |
ADR |
Все возможные адреса работников компании |
Символьный: размер 40 |
Номер телефона |
TEL |
Все возможные телефоны работников компании |
Символьный: размер 10 |
В результате при выполнении реляционной операции СУБД доступно больше информации, что позволяет избежать семантически некорректных операций. Например, бессмысленно сравнивать адрес и номер телефона, даже если определениями обоих доменов являются символьные строки; однако допустима операция произведения значения «помесячной арендной платы» на число «месяцев аренды». Как видно, обеспечить полную реализацию понятия домена очень сложно, поэтому обычно в СУБД понятие поддерживается лишь частично.
Кортеж – строка отношения.
Кортежи могут располагаться в любом порядке. Отношение не содержит двух одинаковых кортежей.
Степень отношения – это количество атрибутов, которое оно содержит. Степень также называется арностью. Так, для отношений с двумя атрибутами используют термин «бинарное», а для отношений с большим количеством атрибутов – «n-арное»
Кардинальность – количество кортежей, которое содержится в отношении.
Эта характеристика меняется всякий раз при добавлении или удалении кортежей.
Схемой отношения R называется перечень имен атрибутов данного отношения с указанием домена, к которому они относятся:
SR = (А1, А2,…, Аn), Аi Di
Если атрибуты принимают значения из одного и того же домена, то они называются сравнимыми.
Отношение R, заданное реляционной схемой SR, является множеством таких n-арных кортежей:
R = {(a1, a2, … an)}, где ai Ai
Схемы двух отношений называются эквивалентными, если они имеют одинаковую степень и возможно такое упорядочение имен атрибутов в схемах, что на одинаковых местах будут находиться сравнимые атрибуты, то есть атрибуты, принимающие значения из одного домена.
Совокупность отношений, используемых в некоторой программе, называется базой данных: R = {R1, R2,…,Rk},
а совокупность схем этих отношений - схемой базы данных: SR = {SR1,SR2,…SRk}.