
- •Определение модели данных. Представление статических и динамических свойств реального мира. Понятие базы данных
- •Базовые структурные компоненты моделей данных: домены и атрибуты; отношение сущности, схема отношения; отношение связи, характеристика связи.
- •Понятие ограничений целостности. Общая характеристика ограничений целостности. Типы ограничений целостности.
- •Модель данных сущность-связь п. Чена: информация о сущностях и связях, структура информации. Диаграмма сущность-связь.
- •Реляционная модель данных: базовые объекты, фундаментальные свойства отношений. Представление сущностей и связей.
- •Подмножество sql для определения данных: предложение create table, правила записи. Примеры.
- •Реляционная алгебра как манипуляционная часть реляционной модели данных: общая характеристика, основные элементы, теоретико-множественные и специальные операции.
- •Реляционное исчисление с переменными-кортежами: основные определения, понятие атомов, правильно построенная формула.
- •Подмножество sql для манипулирования данными: предложения insert, delete, update. Правила написания запросов: предложение select.
- •Проектирование баз данных с использованием теории нормализации: возникающие проблемы, понятие нормальной формы, 1нф, 2нф, 3нф, нфбк, 4нф.
Реляционная алгебра как манипуляционная часть реляционной модели данных: общая характеристика, основные элементы, теоретико-множественные и специальные операции.
В основе реляционной модели данных (РМД) лежат некоторые разделы математической теории отношений и математической логики. Манипуляционную часть РМД составляют спецификационные операторы, естественные для РМД и базирующиеся на концепциях теории множеств. Языки запросов в РМД разбиваются на два класса:
алгебраические языки (реляционная алгебра), позволяющие выражать запросы с помощью специальных операторов, применяемых к отношениям;
языки исчисления предикатов (реляционное исчисление), в которых запросы описывают требуемое множество кортежей путем спецификации предиката, которому должны удовлетворять эти кортежи.
Из приведенного определения следует:
языки реляционной алгебры показывают, как получить результат;
языки реляционного исчисления показывают, что должно быть получено.
Языки реляционного исчисления делятся на два класса: с переменными–кортежами и с переменными на доменах – в зависимости от того, что является примитивными объектами исчисления: кортежи или элементы доменов, являющиеся значениями некоторых атрибутов.
В реляционной алгебре алгебраическое выражение имеет обычную структуру: совокупность операндов, разделенных знаками операций. В качестве операндов используются отношения, и результат формируется также в виде отношения. Это свойство называют свойством замкнутости. Оно позволяет результат одной операции использовать в качестве исходных данных (операнда) для другой.
Все операции над отношениями можно разбить на две группы:
Теоретико-множественные операции – традиционные операции над множествами, определяемые теорией множеств; к ним относятся: 1)объединение, 2)вычитание, 3)пересечение, 4)прямое (декартово) произведение
Специальные реляционные операции; к ним относятся: 1)выбор (селекция), 2)проекция, 3)соединение, 4)деление, 5)переименование.
Результирующее отношение будет иметь, наряду с реализацией, и схему отношения.Схема отношения – это поименованная совокупность имен атрибутов.Обязательным условием для определения схемы отношения является уникальность имен атрибутов в схеме. Для того чтобы результирующее отношение имело правильную схему, содержащую правильные (уникальные в данной схеме) имена атрибутов, может быть востребована специальная операция переименования, позволяющая переименовать атрибут в некоторой схеме отношения.
Простые домены считаются совместимыми по объединению, если они состоят из элементов одного типа. Два отношения считаются совместимыми по объединению, если
оба отношения имеют одно и то же множество атрибутов,
одноименные атрибуты двух отношений определены на совместимых по объединению доменах.
Объединением двух отношений r1(R1) и r2(R2), совместимых по объединению, называется отношение s = r1 r2, для которого
схема отношения совпадает с R1 или R2,
реализация отношения представляет множество кортежей, принадлежащих реализации r1 и/или r2.
Формальная запись: Даны r1(R1), r2(R2), r1 = {t1i}, r2 = {t2i}, R1 R, R2 R.
s = r1 r2 = s(R), s = {ti | ti r1 и/или ti r2}
Свойства операции:
коммутативна – r1 r2 r2 r1
ассоциативна – r1 (r2 r3) = (r1 r2) r3 = r1 r2 r3
Вычитанием двух отношений r1(R1) и r2(R2), совместимых по объединению, называется отношение s = r1 – r2, для которого
схема отношения совпадает с R1 или R2,
реализация отношения представляет множество кортежей, принадлежащих реализации r1, за исключением тех, которые имеются в r2.
Формальная запись: Даны r1(R1), r2(R2), r1 = {t1i}, r2 = {t2i}, R1 R, R2 R.
s = r1 – r2 = s(R), s = {ti | ti r1 и ti r2}
Свойства операции: не коммутативна и не ассоциативна.
Пересечением двух отношений r1(R1) и r2(R2), совместимых по объединению, называется отношение s = r1 r2, для которого
схема отношения совпадает с R1 или R2,
реализация отношения представляет множество кортежей, содержащихся и в r1, и в r2.
Формальная запись: Даны r1(R1), r2(R2), r1 = {t1i}, r2 = {t2i}, R1 R, R2 R.
s = r1 r2 = s(R), s = { ti | ti r1 и ti r2}
Свойства операции:
коммутативна – r1 r2 r2 r1
ассоциативна – r1 (r2 r3) = (r1 r2) r3 = r1 r2 r3
Операцию пересечения можно выразить через операцию вычитания: r1 r2 = r1 – (r1 – r2)
Декартовым произведением двух отношений r1(R1) и r2(R2), у которых R1 R2 = 0, называется отношение s = r1 r2, для которого
схема отношения определяется сцеплением (объединением) схем R1 и R2,
реализация отношения представляет множество кортежей, которое получается путем сцепления каждого кортежа из r1 с каждым кортежем из r2.
Здесь отношения r1(R1) и r2(R2) могут иметь разные схемы, не обязательно совместимые по объединению. Перед выполнением операции декартова произведения необходимо переименовать схемы отношений R1 или R2 так, чтобы они не имели одноименных атрибутов.
Формальная запись:
Даны r1(R1), R1(A1, A2, …, Am), r2(R2), R2(B1, B2, …, Bn), r1 = {t1i}, r2 = {t2i}, R1 R2 = 0
s = r1 r2 = s(R), R(A1, A2, …, Am, B1, B2, …, Bn), s = {ui vj | ui r1, vj r2}
Свойства операции:
коммутативна – r1 r2 r2 r1
ассоциативна – r1 (r2 r3) = (r1 r2) r3 = r1 r2 r3
Специальные операции определены только для нормализованных отношений. В этих операциях наряду с самими отношениями участвуют и их атрибуты. В отношениях РМД к атрибутам можно обращаться или по имени, или по их позиции в схеме отношения. Мы будем использовать обращение к атрибутам по имени.
Операция проекции является унарной операцией на отношениях, т.е. в этой операции участвует только одно отношение.
Проекцией отношения r(R), R = {Ai}, на некоторый список имен атрибутов (подмножество атрибутов) L из R, L R, называется отношение s = L(r), для которого:
схема отношения определяется списком L,
реализация отношения есть множество кортежей, полученных из кортежей отношения r вычеркиванием элементов, соответствующих атрибутам R – L и исключением дубликатов.
Формальная запись: Дано r(R), R(A1, A2, …, Am), r = {<t1 : A1, t2 : A2…, tm : Am >}
s(L) = L(r), L R, L(B1, B2, …, Bk), Bi R, s = {<u1 : B1, u2 : B2, …, uk : Bk> | таких, что ui = tj, если Bi Aj}
Проекция дает вертикальное подмножество отношения. Свойство проекции:
Если Y X R, то Y(X(r)) Y(r)
Операцию выбора называют еще ограничением и селекцией. Также унарная операция.
Выбором из отношения r(R) по условию F называется отношение s = F(r), для которого:
схема отношения совпадает со схемой R,
реализация отношения есть множество кортежей из r, удовлетворяющих условию F.
Формальная запись: Дано r(R), r = {ti}
s(R) = F(r), s = {ui | ui R и F(ui) – истинно}
Условие (предикат) F записывается в соответствии со следующими правилами:
в качестве операндов могут быть указаны атрибуты отношения и/или константы;
в качестве операций могут быть использованы операции отношения (=, и т.д.) и логические операции (, , ).
Для указания порядка вычисления предиката F в нем могут быть использованы круглые скобки. Выбор дает горизонтальное подмножество отношения. Свойства операции:
коммутативна – F1(F2(r)) = F2(F1(r)) = F1 F2 (r)
дистрибутивна относительно операций = (, , –): F (r s) = F (r) F (s)
Операция выбора осуществляет ограничение кортежей исходного отношения до значений, удовлетворяющих условию.
В реляционной алгебре рассматриваются две модификации операции соединения: естественное соединение и соединение по условию (или – соединение). Рассмотрим естественное.
Естественным
соединением
отношений r1(R1), R1 = XY, и r2(R2), R2 = YZ, где Y –
общее подмножество атрибутов из R1 и R2,
определенных на одних и тех же доменах,
называется отношение s(R) = r1
r2,
для которого:
схема отношения R = R1 R2 = XYZ,
реализация отношения есть множество кортежей {t}, для которых XY(t) r1 и YZ(t) r2.
Формальная запись: Даны r1(R1), R1 = XY, и r2(R2), R2 = YZ.
s(R) = r1 r2, R = R1 R2 = XYZ, s = {t | таких, что XY(t) r1 и YZ(t) r2}
Частным от деления отношения r1(R1) на отношение r2(R2), для которых R2 R1 и R2 не пусто, называется отношение s(R) = r1 r2, для которого:
схема отношения R = R1 – R2,
реализация отношения есть множество кортежей t таких, что для всех ti r2 существует tj r1 такой, что tj(R1 – R2) = t и tj(R2) = ti.
Формальная запись: Даны r1(R1), r2(R2), R2 R1, R2 0.
s(R) = r1 r2, R = R1 – R2, s = {tj | u r2 (tju r1)}
Другими словами, s r2 r1.