
- •1. Основные понятия реляционной модели данных.
- •2. Отношения, атрибуты, кортежи отношения.
- •3. Внешние ключи. Целостность внешних ключей.
- •4. Теоретико-множественные операторы. Декартово произведение.
- •5. Теоретико-множественные операторы. Объединение. Пересечение.
- •6. Теоретико-множественные операторы. Вычитание. Декартово произведение.
- •7. Специальные реляционные операторы. Выборка. Проекция. Деление.
- •8. Специальные реляционные операторы. Соединение (общая операция соединения, тэта-соединение, экви-соединение, естественное соединение).
- •9. Псевдонимы таблиц (в запросах на sql).
- •10. Синтаксис оператора выбора select. Применение агрегатных функций и вложенных запросов в операторе выбора. Синтаксис оператора select
- •11. Соединения. Внутреннее соединение (inner join). Перекрестное соединение (cross join). Полное внешнее соединение (full join).
- •12. Левое (left [outer] join) и правое (right [outer] join) внешние соединения. Объединение результатов нескольких запросов (операция union).
1. Основные понятия реляционной модели данных.
Основной структурой в этой модели является отношение (relation). Отсюда и название.
Согласно Дейту, реляционная модель состоит из трех частей:
Структурной части
Целостной части
Манипуляционной части
Структурная часть описывает, какие объекты рассматриваются реляционной моделью. Постулируется, что единственной структурой данных, используемой в реляционной модели, являются нормализованные n-арные отношения.
Целостная часть описывает ограничения специального вида, которые должны выполняться для любых отношений в любых реляционных базах данных. Это целостность сущностей и целостность внешних ключей.
Манипуляционная часть описывает два эквивалентных способа манипулирования реляционными данными - реляционную алгебру и реляционное исчисление.
Структура данных определяет форму представления данных. Ее основу составляет концепция отношений. Математическое понятие отношения (relation) в теории БД сводится к двумерным таблицам и представляется в виде набора столбцов, отражающих свойства (в реляционной терминологии атрибутов), и строк (в реляционной терминологии кортежи), в которых хранятся конкретные значения атрибутов, определяющие экземпляры сущностей отношения. Записи в таблице неотсортированы и не дублируются.
Множество возможных значений определенного атрибута называют доменом. Понятие домена аналогично типу данных в языках программирования.
В реляционной модели для доступа к данным используются ключи, то есть значения некоторых атрибутов, позволяющие находить записи. Рассмотрим виды ключей, имеющихся в теории БД.
В классическом определении ключом таблицы записей называют неизбыточную совокупность атрибутов, значения которых однозначно идентифицируют запись. Неизбыточность выражается в том, что при удалении любого атрибута из ключа свойство однозначной идентификации теряется.
Но вообще, основные понятия - отношения, атрибуты, кортежи отношения.
2. Отношения, атрибуты, кортежи отношения.
Отношение представляет собой двумерную таблицу, содержащую некоторые данные. Содержит две части: заголовок и тело.
Сущность – объект любой природы, данные о котором хранятся в БД.
Атрибуты – свойства, характеризующие сущность (столбцы). Имеет вид <Имя_атрибута : Имя_домена>.
Степень отношения – количество столбцов.
Домен – совокупность значений атрибутов отношения (тип данных).
Кортеж – строка таблицы. Каждый кортеж отношения представляет собой множество пар вида <Имя_атрибута: Значение_атрибута>.
3. Внешние ключи. Целостность внешних ключей.
Первичный ключ – это атрибут, уникально идентифицирующий строки отношения. Первичный ключ из нескольких атрибутов называется составным. Первичный ключ не может быть полностью или частично пустым (иметь значение null). Внешний ключ – это атрибут (атрибуты) одной таблицы, который может служить первичным ключом другой таблицы. Является ссылкой на первичный ключ другой таблицы.
Ссылочная целостность на внешних ключах
СУБД может иметь механизм автоматического поддержания ссылочной целостности, основанный на явном описании ссылок при создании БД. При описании таблиц БД программист явно описывает, какие поля таблиц являются внешними ключами и на какие таблицы они ссылаются. Эта информация сохраняется в служебных областях памяти БД. Любая операция, изменяющая данные в таблице, вызывает автоматическую проверку ссылочной целостности.
Хотя первичные ключи являются важной частью реляционной модели данных, в первых реляционных СУБД (System/R, DB2, Oracle и других) не была обеспечена явным образом их поддержка. Как правило, проектировщики базы данных сами следили за тем, чтобы у всех таблиц были первичные ключи, однако в самих СУБД не было возможности определить для таблицы первичный ключ. И только в СУБД DB2 Version 2, появившейся в апреле 1988 года, компания IBM реализовала поддержку первичных ключей. После этого подобная поддержка была добавлена в стандарт ANSI/ISO.