Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Реляционная алгебра как манипуляционная часть реляционной модели данных: общая характеристика, основные элементы, теоретико-множественные и специальные операции.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
В основе реляционной модели данных (РМД) лежат некоторые разделы математической теории отношений и математической логики. Манипуляционную часть РМД составляют спецификационные операторы, естественные для РМД и базирующиеся на концепциях теории множеств. Языки запросов в РМД разбиваются на два класса: · алгебраические языки (реляционная алгебра), позволяющие выражать запросы с помощью специальных операторов, применяемых к отношениям; · языки исчисления предикатов (реляционное исчисление), в которых запросы описывают требуемое множество кортежей путем спецификации предиката, которому должны удовлетворять эти кортежи. Из приведенного определения следует: · языки реляционной алгебры показывают, как получить результат; · языки реляционного исчисления показывают, что должно быть получено.
Языки реляционного исчисления делятся на два класса: с переменными–кортежами и с переменными на доменах – в зависимости от того, что является примитивными объектами исчисления: кортежи или элементы доменов, являющиеся значениями некоторых атрибутов. В реляционной алгебре алгебраическое выражение имеет обычную структуру: совокупность операндов, разделенных знаками операций. В качестве операндов используются отношения, и результат формируется также в виде отношения. Это свойство называют свойством замкнутости. Оно позволяет результат одной операции использовать в качестве исходных данных (операнда) для другой.
Все операции над отношениями можно разбить на две группы: – Теоретико-множественные операции – традиционные операции над множествами, определяемые теорией множеств; к ним относятся: 1)объединение, 2)вычитание, 3)пересечение, 4)прямое (декартово) произведение – Специальные реляционные операции; к ним относятся: 1)выбор (селекция), 2)проекция, 3)соединение, 4)деление, 5)переименование.
Результирующее отношение будет иметь, наряду с реализацией, и схему отношения.Схема отношения – это поименованная совокупность имен атрибутов.Обязательным условием для определения схемы отношения является уникальность имен атрибутов в схеме. Для того чтобы результирующее отношение имело правильную схему, содержащую правильные (уникальные в данной схеме) имена атрибутов, может быть востребована специальная операция переименования, позволяющая переименовать атрибут в некоторой схеме отношения.
Простые домены считаются совместимыми по объединению, если они состоят из элементов одного типа. Два отношения считаются совместимыми по объединению, если · оба отношения имеют одно и то же множество атрибутов, · одноименные атрибуты двух отношений определены на совместимых по объединению доменах.
Объединением двух отношений r1(R1) и r2(R2), совместимых по объединению, называется отношение s = r1 È r2, для которого 1) схема отношения совпадает с R1 или R2, 2) реализация отношения представляет множество кортежей, принадлежащих реализации 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, для которого 1) схема отношения совпадает с R1 или R2, 2) реализация отношения представляет множество кортежей, принадлежащих реализации 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, для которого 1) схема отношения совпадает с R1 или R2, 2) реализация отношения представляет множество кортежей, содержащихся и в 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, для которого 1) схема отношения определяется сцеплением (объединением) схем R1 и R2, 2) реализация отношения представляет множество кортежей, которое получается путем сцепления каждого кортежа из 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 = pL(r), для которого: 1) схема отношения определяется списком L, 2) реализация отношения есть множество кортежей, полученных из кортежей отношения r вычеркиванием элементов, соответствующих атрибутам R – L и исключением дубликатов. Формальная запись: Дано r(R), R(A1, A2, …, Am), r = {<t1: A1, t2: A2…, tm: Am >} s(L) = pL(r), L Í R, L(B1, B2, …, Bk), Bi Í R, s = {<u1: B1, u2: B2, …, uk: Bk> | таких, что ui = tj, если Bi º Aj} Проекция дает вертикальное подмножество отношения. Свойство проекции: Если Y Í X Í R, то pY(pX(r)) º pY(r)
Операцию выбора называют еще ограничением и селекцией. Также унарная операция. Выбором из отношения r(R) по условию F называется отношение s = sF(r), для которого: 1) схема отношения совпадает со схемой R, 2) реализация отношения есть множество кортежей из r, удовлетворяющих условию F. Формальная запись: Дано r(R), r = {ti} s(R) = sF(r), s = {ui | ui Î R и F(ui) – истинно} Условие (предикат) F записывается в соответствии со следующими правилами: · в качестве операндов могут быть указаны атрибуты отношения и/или константы; · в качестве операций могут быть использованы операции отношения (=, ¹ и т.д.) и логические операции (Ù, Ú, Ø). Для указания порядка вычисления предиката F в нем могут быть использованы круглые скобки. Выбор дает горизонтальное подмножество отношения. Свойства операции: · коммутативна – sF1(sF2(r)) = sF2(sF1(r)) = sF1Ù F2 (r) · дистрибутивна относительно операций g = (Ù, Ú, –): sF (r g s) = sF (r) g sF (s) Операция выбора осуществляет ограничение кортежей исходного отношения до значений, удовлетворяющих условию.
В реляционной алгебре рассматриваются две модификации операции соединения: естественное соединение и соединение по условию (или q – соединение). Рассмотрим естественное. Естественным соединением отношений r1(R1), R1 = XY, и r2(R2), R2 = YZ, где Y – общее подмножество атрибутов из R1 и R2, определенных на одних и тех же доменах, называется отношение s(R) = r1 r2, для которого: 1) схема отношения R = R1 È R2 = XYZ, 2) реализация отношения есть множество кортежей {t}, для которых pXY(t)Î r1 и pYZ(t)Î r2. Формальная запись: Даны r1(R1), R1 = XY, и r2(R2), R2 = YZ. s(R) = r1 r2, R = R1 È R2 = XYZ, s = {t | таких, что pXY(t) Î r1 и pYZ(t) Î r2}
Частным от деления отношения r1(R1) на отношение r2(R2), для которых R2 Í R1 и R2 не пусто, называется отношение s(R) = r1 ¸ r2, для которого: 1) схема отношения R = R1 – R2, 2) реализация отношения есть множество кортежей 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. 8. Реляционное исчисление с переменными-кортежами: основные определения, понятие атомов, правильно построенная формула. В основе реляционной модели данных (РМД) лежат некоторые разделы математической теории отношений и математической логики. Манипуляционную часть РМД составляют спецификационные операторы, естественные для РМД и базирующиеся на концепциях теории множеств. Языки запросов в РМД разбиваются на два класса: · алгебраические языки (реляционная алгебра), позволяющие выражать запросы с помощью специальных операторов, применяемых к отношениям; · языки исчисления предикатов (реляционное исчисление), в которых запросы описывают требуемое множество кортежей путем спецификации предиката, которому должны удовлетворять эти кортежи. Из приведенного определения следует: · языки реляционной алгебры показывают, как получить результат; · языки реляционного исчисления показывают, что должно быть получено.
Языки реляционного исчисления делятся на два класса: с переменными–кортежами и с переменными на доменах – в зависимости от того, что является примитивными объектами исчисления: кортежи или элементы доменов, являющиеся значениями некоторых атрибутов.
Реляционное исчисление лежит в основе декларативного подхода к формулировке запроса к БД, суть которого заключается в следующем: запросу к БД соответствует формула некоторой формально-логической теории, которая описывает свойства желаемого результата. Ответом на запрос служит множество объектов из области интерпретации (которой является БД), на котором истинна формула, соответствующая запросу. В качестве такой формально-логической теории используется теория исчисления предикатов первого порядка, в которой формула задается в виде предиката.
Даны некоторые попарно не пересекающиеся произвольные множества D1, D2, …, Dn, Di Ç Dj = 0 для любых i ¹ j, и переменные x1, x2, …, xn, принимающие значения из соответствующих множеств: xi Î Di для любых i. Тогда предикатом (или предикатной функцией) называется функция P(x1, x2, …, xn), принимающая одно из двух значений – 1 или 0 (истина или ложь). Переменные x1, x2, …, xn называются предикатными переменными. Множества D1, D2, …, Dn образуют область интерпретации предиката.
В записи предиката, наряду с логическими операциями Ù, Ú, Ø, смысл и использование которых традиционны, используются специальные операции – кванторы: всеобщности " и существования $. Смысл использования кванторов следующий: "x (f(x)) означает, что для всех значений x из области интерпретации формула f(x) имеет значение "истина"; $x (f(x)) означает, что существует по крайней мере одно значение x из области интерпретации, для которого формула f(x) имеет значение "истина".
Для реляционного исчисления с переменными-кортежами областями определения переменных являются отношения БД, т.е. допустимым значением каждой переменной является кортеж некоторого отношения; Правильно построенные формулы служат для выражения условий, накладываемых на переменные (кортежи или на доменах). Переменные-кортежи должны удовлетворять определенной схеме отношения R. Правильно построенная формула (wff – well formulated formula) определяет результаты отбора: выбираются те кортежи, для которых wff дает значение 1. Обозначим правильно построенную формулу (предикат, значения которого 0 или 1) через y(t). Рассмотрим правила построения y(t).
I. Основой формулы являются атомы, которые могут иметь значения 0 или 1. Существует три типа атомов формулы y(t). 1. Пусть r(R) – некоторая реализация отношения, удовлетворяющая схеме R; t – некоторая переменная-кортеж, удовлетворяющая схеме R. Тогда r(t) – атом; означает, что t есть кортеж в реализации отношении r (т.е. формула истинна, если t Î r). 2. Пусть r(R) – некоторая реализация отношения, удовлетворяющая схеме R; u и v – переменные-кортежи из отношения r(R) (т.е. u Î r, v Î r); q – арифметическая операция сравнения (<, =, >, ³, ¹, £); A, B – атрибуты схемы отношения R, сравнимые по операции q; тогда u[A] q v[B] – атом. 3. Пусть u – переменная-кортеж из отношения r(R) (т.е. u Î r); q – арифметическая операция сравнения (<, =, >, ³, ¹, £); A, B – атрибуты схемы отношения R, сравнимые по операции q; c – константа из домена, на котором определен атрибут B; ®u[A]qc (или cqu[A]) – атом. Запись u[A] означает «значение переменной-кортежа u по атрибуту A».
II. Формула реляционного исчисления y(t), а также свободные и связанные вхождения переменных определяются по следующим рекурсивным правилам: 1. Каждый атом есть формула. Все вхождения переменных-кортежей, упомянутых в атоме, являются свободными. Например, формула r(t) утверждает, что переменная-кортеж t является кортежем отношения r(R). 2. Если x(R) – переменная-кортеж из отношения r со схемой R; y(x) – формула, в которой переменная x имеет свободное вхождение; тогда $x(R) (y(x)). Данная формула утверждает, что существует хотя бы один кортеж x в отношении r(R), такой, что при подстановке его в формулу y(x) вместо всех свободных вхождений x получим значение "истина". Например, формула $x(R) (r(x)) утверждает, что отношение r не пусто (то есть, существует хотя бы один кортеж x, принадлежащий r). 3. Если x(R) – переменная-кортеж из отношения r со схемой R; y(x) – формула, в которой переменная x имеет свободное вхождение; тогда "x(R) (y(x)). Данная формула утверждает, что для всех кортежей x из отношения r(R) при подстановке их в формулу y(x) вместо всех свободных вхождений x получим значение "истина". Например, формула "x(R) (x[A] ¹ Æ) утверждает, что для всех кортежей значение атрибута A является обязательным. 4. Если y(x) и j(x) – формулы, тогда Øy(x), y(x) Ù j(x), y(x) Ú j(x) – тоже формулы. Вхождения переменной x в эти формулы остаются свободными или связанными – такими, какими были в y(x) или j(x) соответственно. 5. Если y(x) – формула, то (y(x)) – тоже формула; вхождение переменной x остается свободным или связанным – таким, каким оно было в y(x). 6. Ничто иное не является формулой.
При вычислении формул используется порядок старшинства операций, определяемый правилами построения формулы: a) атомы, в которых могут быть использованы арифметические операции сравнения; b) кванторы; c) отрицание (Ø) d) операция "И" (Ù) e) операция "ИЛИ" (Ú) Скобки используются для изменения порядка вычисления формулы. Выражение реляционного исчисления с переменными-кортежами имеет вид: {t(R) | y(t)}, где t – переменная-кортеж, удовлетворяющая схеме отношения R; единственная переменная, имеющая свободное вхождение в формулу y(t); y(t) – правильно построенная формула. Интерпретация выражения реляционного исчисления: множество кортежей t, удовлетворяющих схеме отношения R, таких, для которых правильно построенная формула y(t) истинна. Пример: Пусть есть отношение R(ИМЯ, СТИПЕНДИЯ); атрибут СТИПЕНДИЯ определен на домене D = {«да», «нет»}. Тогда выражение { t(ИМЯ) | $x(R) (r(x) Ù x[СТИПЕНДИЯ] = «да» Ù x[ИМЯ] = t[ИМЯ]} позволит получить из отношения имена всех студентов, получающих стипендию.
Выражение вида {t | Ø r(t) } в общем случае определяет бесконечное отношение, что недопустимо. Поэтому в реляционном исчислении ограничиваются рассмотрением так называемых безопасных выражений вида {t | y(t) }, которые гарантированно дают ограниченное множество кортежей. В таких выражениях значения атрибутов кортежей t являются элементами некоторого ограниченного универсального множества – DOM(y).DOM(y) – унарное отношение, элементами которого являются символы, которые либо явно появляются в y, либо служат компонентами какого-либо кортежа в некотором отношении R, упоминаемом в y.
«Выражение {t | y(t)} реляционного исчисления с переменными-кортежами назовем безопасным, если выполняются следующие условия: Всякий раз, когда t удовлетворяет y(t), каждый компонент t есть элемент DOM(y). Для любого подвыражения y вида ($u) (w(u)) каждый компонент u принадлежит DOM(w), если u удовлетворяет w. Если для любого подвыражения y вида ("u) (w(u)) каждый компонент u не принадлежит DOM(w), то u удовлетворяет w. Условия 2 и 3 позволяют устанавливать истинность квалифицированной формулы ($u) (w(u)) или ("u) (w(u)), рассматривая только u, составленные из принадлежащих DOM(w) символов. Например, любая формула ($ u) (R(u) Ù …) удовлетворяет условию 2, а любая формула ("u) (ØR(u) Ú …) – условию 3.»
Эквивалентность выражений реляционной алгебры и реляционного исчисления с переменными-кортежами (теорема):Если E – выражение реляционной алгебры, то эквивалентное ему безопасное выражение реляционного исчисления с переменными-кортежами.
|
||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 558; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.43.200 (0.011 с.) |