- •Информация и данные
- •Основные понятия систем с базами данных
- •Пользователи информационной системы с БД
- •Требования к информационным системам с базами данных
- •Основные компоненты ИС с базами данных
- •Архитектура систем с базами данных. Понятие модели данных
- •Сущности и их свойства
- •Связи (отношения) между сущностями
- •Виды связей между сущностями
- •Еще о сущностях, их свойствах и связях между ними
- •Модели данных. Ранние подходы к организации баз данных
- •Основные понятия реляционной модели данных
- •Структуры данных реляционной модели. Реляционные отношения
- •Свойства отношений
- •Отсутствие в отношении одинаковых кортежей
- •Кортежи отношения не упорядочены (сверху вниз)
- •Атрибуты отношения не упорядочены (слева направо)
- •Значения всех атрибутов являются атомарными
- •Виды отношений
- •Реляционная база данных
- •Реляционная модель. Операции над данными
- •Реляционная алгебра
- •Пересечение отношений
- •Вычитание отношений
- •Декартово произведение отношений
- •Проекция
- •Выборка (ограничение)
- •Естественное соединение отношений
- •Деление
- •Реляционное исчисление
- •Примеры правильно построенных формул
- •Язык SQL
- •Отличие SQL от процедурных языков программирования
- •Формы и составные части SQL
- •Условия и терминология
- •Простейшие SELECT-запросы
- •Ограничения целостности в реляционной модели
- •Ограничения целостности уровня атрибута
- •Домены отношений
- •Отсутствующая информация или NULL-значения.
- •Ограничения целостности уровня кортежа
- •Ограничения целостности уровня отношения
- •Потенциальные, первичные, альтернативные ключи отношения
- •Потенциальные ключи и NULL-значения
- •Ограничения целостности уровня базы данных
- •Внешние ключи и NULL-значения
- •Правила ссылочной целостности
- •При обновлении кортежа в родительском отношении
- •При удалении кортежа в родительском отношении
- •При вставке кортежа в дочернее отношение
- •При обновлении кортежа в дочернем отношении
- •Средства обеспечения целостности данных в СУБД
- •Поддержка декларативных ограничений целостности в языке SQL
- •Проектирование базы данных
- •Функциональная зависимость
- •Нормализация отношений базы данных
- •Нормальные формы
- •Декомпозиция без потерь и функциональные зависимости
- •Первая и вторая нормальные формы.
- •Третья нормальная форма.
- •Многозначные зависимости и четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Итоговая схема процедуры нормализации
- •Структуры хранения данных и методы доступа
- •Хранение отношений и доступ к хранимым данным
- •Индексирование
- •Управление транзакциями и целостность баз данных
- •Транзакции и параллелизм
- •Проблемы, возникающие при параллельном выполнении транзакций
- •Проблема потери результатов обновления
- •Проблемы несовместимого анализа
- •Несовместимый анализ – неповторяемое считывание
- •Несовместимый анализ – фиктивные элементы (фантомы)
- •Собственно несовместимый анализ
- •Конфликты между транзакциями
- •Методы сериализации транзакций
- •Решение проблем параллелизма при помощи блокировок
- •Проблема потери результатов обновления
- •Проблема несовместимого анализа. Неповторяемое считывание
- •Фиктивные элементы (фантомы)
- •Собственно несовместимый анализ
- •Уровни изоляции. Объекты синхронизационных блокировок
- •Предикатные синхронизационные блокировки
- •Метод временных меток
- •Уровни изоляции.
- •Синтаксис операторов SQL, определяющих уровни изоляции
44
атрибута в любой момент времени должен быть подмножеством множества значений домена, на котором определен этот атрибут. Значения атрибута, которые отсутствуют в множестве, задаваемом доменом, являются недопустимыми.
Понятие домена является важным для реляционной модели. Домен фактически задает ограничения, которым должны удовлетворять значения соответствующего атрибута.
Как уже отмечалось, приведенные выше определения не являются строгими. Такие термины как таблица, строка, столбец, строго говоря, не являются полностью эквивалентными используемым в реляционной модели
математическим понятиям отношение, кортеж, атрибут, соответственно.
Однако на практике их часто используют именно как синонимы, что, в общем, допустимо, если при этом понимать, какой действительный смысл вкладывается в эти термины.
Ниже приведенные понятия реляционной модели будут определены более строго.
6.2.Структуры данных реляционной модели. Реляционные отношения
Отношение является основной структурой, с помощью которой представляются данные в реляционной модели.
Прежде чем дать более строгое определение понятию отношение, необходимо отметить, что следует различать два понятия: отношение как
переменная и значение отношения [1, 3, 6]. Отношение-переменная имеет тот же смысл, что и переменные в языках программирования, другими словами
Отношение-переменная это именованный объект, значение которого может изменяться со временем. Значение этой переменной в любой момент времени и будет значением отношения.
Вначале рассмотрим определение отношения в смысле значение отношения. Отношение-значение представляет собой математическое множество элементов следующего вида.
45
<A1:D1 > |
<A2:D2 |
> |
… |
<An:Dn > |
<A1:v11 > |
<A2:v12 |
> |
… |
<An:v1n > |
<A1:v21 > |
<A2:v22 |
> |
… |
<An:v2n > |
… |
… |
|
… |
… |
<A1:vj 1 > <A2:vj 2 > … |
<An:vj n > |
||
… |
… |
… … |
|
<A1:vm1 > |
<A2:vm2 > |
… |
<An:vm n > |
Рис. 6.1. Множество элементов, представляющих отношение
Как видно из рисунка 6.1, множество элементов, из которых образуется
отношение R содержит две части: заголовок отношения и тело отношения.
Множество A1, A2, …, An это множество имен атрибутов отношения. Совокупность D1, D2, …, Dn это набор доменов, на котором определено
это отношение.
Заголовок отношения – это фиксированное множество атрибутов или точнее, пар <имя-атрибута: имя-домена>:
{<A1:D1 >, <A2:D2 >, …, <An:Dn >},
причем каждый атрибут Ak соответствует одному и только одному домену Dk (k = 1, 2, …, n), на которых определено отношение.
В отношении все имена атрибутов A1, A2, …, An, должны быть уникальными. Элементы же набора доменов D1, D2, …, Dn не обязательно различны. Отсюда следует, что разные атрибуты отношения могут быть определены на одинаковых доменах.
Иногда структуру, задаваемую заголовком отношения, называют схемой отношения.
Тело отношения это структура, представляющая собой множество кортежей.
Каждый кортеж, в свою очередь, это множество пар
<имя-атрибута: значение-атрибута> следущего вида:
{ <A1:Vi 1 >, <A2:Vi 2 >, …, <An:Vi n > }
(i = 1, 2, …, m, где m – количество кортежей в этом множестве).
Каждая такая пара <имя-атрибута: значение-атрибута>, то есть
<Ak:Vi k>, соответствует паре <Ak:Dk> для каждого атрибута Ak в заголовке отношения. Для любой такой пары <Ak:Vi k> элемент Vi k является значением из домена Dk , который связан с атрибутом Ak.