
- •Тема 4. Базы и хранилища данных
- •Каждый атрибут хранит информацию об определенном свойстве сущности, а каждый экземпляр сущности должен быть уникальным.
- •Пример:
- •4. Манипулирование данными в реляционной модели, операции реляционной алгебры.
- •Специальные операции реляционной алгебры
- •5. Оптимизация схем отношений, нормальные формы, построение рациональной схемы отношений путем нормализации.
- •Критерии для оценки влияние логического моделирования данных на качество физических моделей данных и производительность бд:
Пример:
4. Манипулирование данными в реляционной модели, операции реляционной алгебры.
Понятию схема отношения соответствует описание структуры двумерной таблицы (имена столбцов).
Совокупность схем отношений называется схемой реляционной базы данных (реляционной моделью данных).
Для манипулирования данными в реляционной модели используются два формальных аппарата:
реляционная алгебра, основанная на теории множеств;
реляционное исчисление, базирующееся на исчислении предикатов первого порядка.
Алгеброй называется множество объектов с заданной на нем совокупностью операций, замкнутых относительно этого множества, называемого основным множеством.
Р. алгебра - (высокоуровневый) процедурный язык, т.е. язык, который может быть использован для того, чтобы сообщить СУБД о том, как следует построить требуемое отношение на базе одного или нескольких существующих в бд отношений.
Р. исчисление - непроцедурный язык, который можно использовать для определения того, каким будет некоторое отношение, созданное на основе одного или нескольких других отношений бд.
Реляционная алгебра является языком последовательного использования отношений, в котором все кортежи, возможно, взятые даже из разных отношений, обрабатываются одной командой, без организации циклов.
Операции реляционной алгебры
Основным множеством в реляционной алгебре является множество отношений.
Реляционная алгебра: выборка (selection), проекция (projection), декартово, произведение (сartesian product), объединение (union), разность (set difference)
Дополнительные операции: соединения (join), пересечения (intersection), деления (division).
Операции выборки и проекции являются унарными, поскольку они работают с одним отношением.
Другие операции работают с парами отношений, и поэтому их называют бинарными операциями.
В реляционном исчислении не существует никакого описания оценки запроса, поскольку в запросе реляционного исчисления указывается, что следует извлечь, а не как. Название «Реляционное исчисление» произошло от части символьной логики, которая называется исчислением предикатов.
В контексте бд оно существует в двух формах: в форме предложенного Коддом реляционного исчисления кортежей и в форме предложенного Лакруа и Пиро реляционного исчисления доменов.
В реляционном исчислении кортежей задача состоит в нахождении кортежей, для которых предикат является истинным. Это исчисление основано на переменных кортежа.
Переменными
кортежа являются такие переменные,
областью определения которых является
указанное отношение — т.е. переменные,
для которых допустимыми значениями
могут быть только кортежи данного
отношения. Использует 2 типа кванторов:
существования (
)
– истинность хотя бы для одного экземпляра
и общности (
)
– истинность для всех. Если в кортеже
нет кванторов, то его переменные
называются свободными,
если есть –
связанными.
В реляционном исчислении доменов используются переменные, значения которых берутся из доменов, а не из кортежей отношений. Если P(dl,d2,... ,dn) обозначает предикат с переменными d1,d2,... ,dn, то множество всех переменных домена d1,d2,... ,dn, для которых предикат или формула P(d1,d2,... ,dn) истинны, обозначается следующим выражением: {d1,d2,... ,dn |P(d1,d2,... ,dn)}
В реляционном исчислении доменов (понятию домена соответствует множество значений, стоящих в столбце рассматриваемой таблицы или значений атрибута) зачастую требуется проверить условие принадлежности, чтобы определить, принадлежат ли значения указанному отношению. Выражение R(x,y) считается истинным тогда и только тогда, когда в отношении R имеется кортеж со значениями х и у в двух его атрибутах.
Механизмы реляционной алгебры и реляционного исчисления эквивалентны, для любого допустимого выражения реляционной алгебры можно построить эквивалентную формулу реляционного исчисления и наоборот.
Запрос, представленный на языке реляционной алгебры, может быть реализован как последовательность элементарных алгебраических операций с учетом их старшинства и возможного наличия скобок.
Выражения реляционной алгебры и формулы реляционного исчисления определяются над отношениями реляционных БД и результатом вычисления также являются отношения.
В состав теоретико-множественных операций входят операции:
объединения отношений;
пересечения отношений;
взятия разности отношений;
взятия декартова произведения отношений.
Специальные реляционные операции включают:
выборку (ограничение отношения);
проекцию отношения;
соединение отношений;
деление отношений.
Кроме того, в состав алгебры включается операция присваивания, позволяющая сохранить в базе данных результаты вычисления алгебраических выражений, и операция переименования атрибутов, дающая возможность корректно сформировать заголовок (схему) результирующего отношения.
Объединением
двух
отношений называется отношение,
содержащее множество кортежей,
принадлежащих либо 1, либо 2 исходным
отношениям, либо обоим отношениям
одновременно. Для операции объединения
требуется одинаковая арность отношений.
Пусть заданы два отношения R1
= { r1
} , R2
= { r2},
где r1
и r2
- соответственно кортежи отношений
R1
и R2,
то объединение R1
R2
= { r | r
R1
r
R2}.
Здесь r — кортеж нового отношения, — операция логического сложения "ИЛИ".
Пересечением отношений называется отношение, которое содержит множество кортежей, принадлежащих одновременно и первому и второму отношениям. R1 и R2:
R4
= R1
R2
={ r | r
R1
r
R2
}
здесь
—
операция логического умножения
(логическое "И").
Разностью
отношений
R1
и R2
называется отношение, содержащее
множество кортежей, принадлежащих R1
и не принадлежащих R2:
R5
=R1
\R2
={r | r
R1
r
R2}
Объединение и пересечение, являются коммутативными операциями - результат операции не зависит от порядка аргументов в операции.
Операция разности является принципиально несимметричной операцией - результат операции будет различным для разного порядка аргументов.
Расширенное
декартово произведение.
Эта операция не накладывает никаких
дополнительных условий на схемы исходных
отношений, поэтому операция расширенного
декартова произведения, обозначаемая
R1
R2,
допустима для любых двух отношений.
Сцеплением, или конкатенацией кортежей c = <c1, c2, ..., cn> и q = <q1, q2, ..., qm> называется кортеж, полученный добавлением значений второго в конец первого. Сцепление кортежей c и q обозначается как (c , q).
(c, q) = <c1, c2, ... , cn, q1, q2, ..., qm> Здесь n — число элементов в первом кортеже с, m — число элементов во втором кортеже q. Операция декартова произведения меняет степень результирующего отношения.
Расширенным декартовым произведением отношения R1 степени n со схемой
SR1 = (A1, A2, ... , An), и отношения R2 степени m со схемой SR2 = (B1, B2, ..., Bm),
называется отношение R3 степени n+m со схемой SR3 = (A1, A2, ... , An, B1, B2, ..., Bm),
содержащее кортежи, полученные сцеплением каждого кортежа r отношения R1 с каждым кортежем q отношения R2.
То есть если R1 = { r }, R2 = { q } то R1 R2 = {(r, q) | r R1 q R2}
Декартово произведение R S двух отношений (двух таблиц) определяет новое отношение - результат конкатенации (т.е. сцепления) каждого кортежа (каждой записи) из отношения R с каждым кортежем (каждой записью) из отношения S.
R S={(a, 1, 1, h), (a, 2, 1, h), (b, 1, 1, h), ... }
Если одно отношение имеет N записей и K полей, а другое M записей и L полей, то отношение с их декартовым произведением будет содержать NxM записей и K+L полей.
Исходные отношения могут содержать поля с одинаковыми именами, тогда имена полей будут содержать названия таблиц в виде префиксов для обеспечения уникальности имен полей в отношении, полученном как результат выполнения декартова произведения.