- •Реляционная модель данных
- •Содержание
- •Раздел 1. Теория реляционных баз данных 9
- •Раздел 2. Проектирование реляционных баз данных на основе принципов нормализации 39
- •Раздел 3. Лабораторная работа 58
- •Введение
- •Раздел 1. Теория реляционных баз данных
- •1.1. Основные понятия реляционных баз данных
- •Виды связей реляционных баз данных
- •1.2. Реляционная алгебра и реляционное исчисление
- •Операции реляционной алгебры. Формулы исчисления кортежей
- •Проекция. Проекцией отношения а по атрибутам X, y,..., z, где каждый из атрибутов принадлежит отношению а.
- •Extend Группа add (2011-ГодПоступления) as Курс
- •Контрольные вопросы по разделу 1
- •Контрольное задание по разделу 1
- •Примерные задания для подготовки к тестированию в системе Moodle по материалу раздела 1
- •Раздел 2. Проектирование реляционных баз данных на основе принципов нормализации
- •2.1 Целостность баз данных. Ограничения целостности.
- •3. Ограничения, связанные с коллективным доступом к бд.
- •2.2 Теория нормальных форм
- •Первая нормальная форма (1нф)
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (знф)
- •2.3 Избыточное дублирование данных и аномалии.
- •Контрольные вопросы по разделу 2
- •Контрольное задание по разделу 2
- •Примерные задания для подготовки к тестированию в системе Moodle по материалу раздела 2
- •Раздел 3. Лабораторная работа Основы проектирования реляционных баз данных Разработка структуры базы данных
- •Практическое руководство: создание логической и физической моделей с помощью Microsoft Visio 2007
- •Нотация idef1x
- •Контрольные вопросы по разделу 3:
- •Глоссарий
- •Список литературы
1.2. Реляционная алгебра и реляционное исчисление
Реляционная алгебра – это часть реляционной модели, описывающей операторы. Реляционная алгебра состоит из набора операторов, использующих отношения в качестве операндов и возвращающих отношения в качестве результата.
Основная идея реляционной алгебры: так как отношения являются множествами, то средства манипулирования отношениями могут базироваться на традиционных теоретико-множественных операциях, дополненных некоторыми специальными операциями, специфичными для баз данных.
Реляционная алгебра состоит из восьми операторов, составляющих две группы, по четыре оператора в каждой:
традиционные операции над множествами: объединение, пересечение, вычитание и декартово произведение (модифицированные с учетом того, что их операндами являются отношения, а не произвольные множества);
специальные реляционные операции: выборка, проекция, соединение и деление.
Кроме того, в состав реляционной алгебры включается операция присваивания, позволяющая сохранить в базе данных результаты вычисления алгебраических выражений, и операция переименования атрибутов, дающая возможность корректно сформировать заголовок (схему) результирующего отношения.
Поскольку каждая таблица в реляционной БД является отношением, действия над ними базируются на операциях реляционной алгебры. Исключение составляют лишь операции создания и заполнения таблиц данными (присваивания), а также операции описания и переименования столбцов таблицы.
В теории реляционной алгебры отношение рассматривается как множество, строки таблицы называются кортежами, столбцы — атрибутами. Над отношениями выполняются традиционные операции теории множеств [7]:
ограничение отношения (выборка) – создание нового отношения отбором в него строк отношения-операнда (исходного отношения), которые удовлетворяют условию ограничения;
проекция отношения – создание нового отношения отбором в него определенных столбцов отношения-операнда;
объединение отношений – создание нового отношения, содержащего все кортежи отношений-операндов. При этом операнды должны иметь одинаковые атрибуты;
пересечение отношений – создание нового отношения, содержащего строки, общие для сравниваемых операндов. При этом операнды должны иметь одинаковые атрибуты;
разность отношений – создание нового отношения, содержащего строки 1-го операнда, отсутствующие во 2-м операнде. При этом операнды должны иметь одинаковые атрибуты;
произведение отношений – создание нового отношения, в котором имеются все атрибуты 1-го и 2-го операндов, а строки получены попарным сцеплением строк их отношений. Число кортежей (мощность нового отношения) равна произведению мощностей 1-го и 2-го отношений. При этом множества атрибутов отношений не должны пересекаться. Произведение отношений используется при решении задач подбора пар из двух множеств, например поставщиков и потребителей. Для этого сначала составляют все возможные пары, а затем по конкретному критерию отбирают из них подходящие;
деление отношений – создание нового отношения, содержащего атрибуты 1-го операнда, отсутствующие во 2-м операнде, и кортежи 1 -го операнда, которые совпали с кортежами 2-го операнда. Для выполнения этой операции 2-й операнд должен содержать лишь атрибуты, совпадающие с атрибутами 1-го;
соединение отношений – создание нового отношения, кортеж которого является результатом сцепления кортежей операндов (исходных отношений). Различают соединения отношений двух видов: естественное и по условию. При соединении отношений по условию производятся сцепление строк их операндов и проверка полученной строки на соответствие заданному условию. Если условие выполнено, то полученная строка включается в результирующее отношение. При естественном соединении отношений производятся сцепление строк их операндов и включение полученной строки в результирующее отношение без проверки. Такое соединение используют, когда отношения-операнды обладают общими атрибутами.
Результат каждой операции над отношением также является отношением. Это реляционное свойство называется свойством замкнутости. Поскольку результат любой операции имеет тот же тип, что и исходные объекты (отношения), то результат одной операции может использоваться в качестве исходных данных для другой. Таким образом, имеется возможность, например, взять или проекцию от объединения, или соединение от двух выборок, или объединение соединения и пересечения и т.д.
Другими словами, можно записывать вложенные выражения, т.е. выражения, в которых операнды сами представлены выражениями вместо простых имен отношений.
Если рассматривать замкнутость более строго, каждая реляционная операция должна быть определена таким образом, чтобы выдавать результат с надлежащим заголовком (т.е. с соответствующим набором необходимых имен атрибутов). Причина такого требования к результирующим отношениям заключается в необходимости иметь возможность обращаться к именам атрибутов в последующих операциях, например в дальнейших операциях, расположенных на более глубоких уровнях вложенного выражения. Другими словами, необходим такой набор правил наследования имен атрибутов, встроенный в алгебру, чтобы можно было предсказывать имена атрибутов на выходе произвольной реляционной операции, зная имена атрибутов на входе этой операции.
Реляционное исчисление, как и реляционная алгебра, есть абстрактный язык манипулирования реляционными данными.
Реляционная алгебра и реляционное исчисление эквивалентны в том смысле, что для любого допустимого выражения реляционной алгебры можно построить формулу реляционного исчисления, производящую такой же результат, и наоборот.
Реляционное исчисление является прикладной ветвью формального механизма исчисления предикатов первого порядка. Базисными понятиями исчисления являются понятие переменной с определенной для нее областью допустимых значений и понятие правильно построенной формулы, опирающейся на переменные, предикаты и кванторы.
В зависимости от того, что является областью определения переменной, различаются исчисление кортежей и исчисление доменов. В исчислении кортежей областями определения переменных являются отношения базы данных, т.е. допустимым значением каждой переменной является кортеж некоторого отношения. В исчислении доменов областями определения переменных являются домены, на которых определены атрибуты отношений базы данных, т.е. допустимым значением каждой переменной является значение некоторого домена [8].
Современная реляционная модель данных располагает двумя вариантами реляционных исчислений. В одном из них областями возможных значений переменных являются отношения (Реляционное исчисление с переменными-кортежами), а в другом – домены (Реляционное исчисление с переменными на доменах).
Реляционное исчисление, как и реляционная алгебра, обладают свойством замкнутости относительно множества отношений. То есть формулы реляционного исчисления определяются над отношениями и интерпретируются как отношения. Это дает возможность строить вложенные формулы, выражая ими очень сложные запросы к реляционной базе данных [11].
