
- •Содержание
- •Список сокращений
- •Введение
- •Основные понятия теории баз данных
- •Понятие системы баз данных
- •Базы данных и их назначение
- •Данные и модели данных
- •Типы систем баз данных
- •Архитектура системы баз данных
- •Уровни архитектуры
- •Система управления базами данных
- •Система управления передачей данных
- •Архитектура «клиент-сервер»
- •Утилиты
- •Распределенная обработка
- •Семантическое моделирование
- •Общий подход
- •Модель «сущность/связь»
- •Введение в реляционные базы данных
- •Реляционная модель
- •Отношения и переменные-отношения
- •Оптимизация
- •Каталог
- •Базовые переменные отношения и представления
- •Транзакции
- •Введение в язык sql
- •Обзор языка sql
- •Каталог в sql
- •Представления
- •Транзакции в sql
- •Взаимодействие приложений и субд
- •Домены, отношения и базовые переменные-отношения
- •Значения отношений
- •Средства sql
- •Реляционная алгебра
- •Введение в реляционную алгебру
- •Реляционная замкнутость
- •Синтаксис
- •Семантика
- •Примеры
- •Назначение реляционной алгебры
- •Реляционное исчисление
- •Введение в реляционное исчисление
- •Исчисление кортежей
- •Примеры для исчисления кортежей
- •Средства языка sql
- •Целостность данных
- •Введение в целостность данных
- •Ограничения типа
- •Ограничения атрибута
- •Ограничения переменной-отношения
- •Ограничения баз данных
- •«Золотое правило»
- •Ограничения состояния и ограничения перехода
- •Средства языка sql
- •Функциональные зависимости
- •Введение
- •Основные определения
- •Тривиальные и нетривиальные зависимости
- •Замыкание множества зависимостей
- •Замыкание множества атрибутов
- •Неприводимые множества зависимостей
- •Нормализация: формы 1нф, 2нф, 3нф и нфбк
- •Введение
- •Декомпозиция без потерь и функциональные зависимости
- •Первая, вторая и третья нормальные формы
- •Нормальная форма Бойса-Кодда
- •Нормализация: более высокие нормальные формы
- •Многозначные зависимости и четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Общая схема процедуры нормализации
- •Вопросы для самопроверки
- •Дополнительная литература
Значения отношений
Как уже отмечалось, следует различать собственно отношения и переменные-отношения (т.е. переменные, значениями которых являются отношения). В данном подразделе рассматриваются значения отношений. Прежде всего дадим точное определение термина отношение:
Пусть задано множество из n типов или доменов Ti (i=1,2,…,n), причем все они необязательно должны быть различными. Тогда r будет отношением, определенным на этих типах, если оно состоит из двух частей: заголовка и тела, где:
а) заголовок – это множество из n атрибутов вида Ai:Ti; здесь Ai – имена атрибутов (которые должны отличаться одно от другого) отношения r, а Ti – соответствующие имена типов (i=1,2,…,n).
б) тело – это множество из m кортежей t; здесь t в свою очередь, является множеством компонентов вида Ai:Vi, в которых Vi – значение типа Ti , т.е. значение атрибута для атрибута Ai в кортеже t (i=1,2,…,n).
Замечание: Следует отметить, что заголовок отношения также называется схемой отношения.
Значения m и n называются соответственно кардинальностью и степенью отношения r.
В качестве примера рассмотрим таблицу, представленную на рис. 2.7, чтобы проверить насколько она соответствует этому определению:
В этой таблице имеется четыре основных типа, а именно: тип номеров поставщиков (SN), тип имен (NAME), тип значений статуса (STATUS) и тип названий городов (CITY).
В таблице действительно есть две части – строка имен столбцов и некоторое множество строк данных. Строка имен действительно состоит из набора упорядоченных пар: первый компонент пары – имя атрибута, второй – соответствующее имя типа. Поэтому можно согласиться, что строка заголовков столбцов представляет заголовок в смысле приведенного определения.
Остальная часть таблицы – множество строк данных, каждая из которых представляет множество упорядоченных пар: первый компонент – имя атрибута, второй – соответствующее значений атрибута. Имя атрибута определяется по заголовку соответствующего столбца. Таким образом, каждая строка представляет собой некоторый кортеж в смысле приведенного определения.
Из всего вышесказанного можно сделать вывод, что таблица может рассматриваться как изображение отношения в смысле данного выше определения, если условиться, как правильно «читать» такое изображение (т.е. если будут определены правила интерпретации таких изображений).
Теперь можно с уверенностью сказать, что отношение и таблица – это в действительности не одно и то же. Отношение – это некоторый абстрактный вид объекта, соответствующий данному ранее определению, а таблица – это конкретное изображение данного абстрактного объекта.
Свойства отношений:
Отсутствие одинаковых кортежей. Данное свойство следует из того факта, что тело отношения – это математическое множество (кортежей), а в математике множества по определению не содержат одинаковых элементов. Это становится тем более очевидным, если вспомнить, что каждый кортеж в отношении можно интерпретировать как некоторое истинное высказывание. От того, что произнести одно и то же истинное высказывание несколько раз, это высказывание не станет более истинным.
Отсутствие упорядочения кортежей (сверху вниз). Данное свойство также следует из того, что тело отношения – это математическое множество, а простые множества в математике не упорядочены. К примеру, изменив на рис. 2.7. порядок следования кортежей мы бы не изменили самого отношения (но изменили бы таблицу!).
Отсутствие упорядочения атрибутов (слева направо). Данное свойство следует из того факта, что заголовок отношения определен как множество (атрибутов). Из этого свойства следует отсутствия первого или последнего атрибутов. Атрибут всегда определяется по имени, а не по расположению.
Каждый кортеж содержит ровно одно значений для каждого атрибута. Данное свойство следует непосредственно из определения кортежа: кортеж является множеством из n компонентов или упорядоченных пар вида Ai:Vi (i=1,2,…,n). Отношение, удовлетворяющее этому свойству, называется нормализованным или представленным в первой нормальной форме (1НФ).
Таким образом, все отношения по определению нормализованы.
Возможно существование типа, значением которого является отношение. Другими словами, возможно существование отношений, в которые вложены другие отношения.