Обзор реляционной алгебры В реляционной модели, манипуляционная часть, утверждает, что доступ к реляционным данным осуществляется при помощи реляционной.

Презентация:



Advertisements
Похожие презентации
РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ БАЗЫ ДАННЫХ Реляционная Алгебра.
Advertisements

Основы реляционных баз данных Лекция 5. Реляционная модель. Основы реляционной алгебры Желенкова Ольга Петровна, с.н.с. ОИ САО РАН, к.ф.-м.н апреля.
Лекция: Реляционная алгебра. Третья часть реляционной модели, манипуляционная часть, утверждает, что доступ к реляционным данным осуществляется при помощи.
Базы данных Лекция 4 Базисные средства манипулирования реляционными данными: реляционная алгебра Кодда.
ОРГАНИЗАЦИЯ БАЗ ДАННЫХ И ЗНАНИЙ ТЕМА 4 ДОСТУП К ДАННЫМ В РЕЛЯЦИОННЫХ МОДЕЛЯХ ХРАНЕНИЯ ДАННЫХ.
Реляционная алгебра – механизм манипулирования реляционными данными Все операции производятся над отношениями, и результатом операции является отношение.
Реляционная модель данных Определения Основные операции над отношениями (реляционная алгебра)
Модуль 1. Математические основы баз данных и знаний 1.
Определения Банк данных (БнД) это система специальным образом организованных дан­ных - баз данных, программных, технических, языковых, организационно-
РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ БАЗЫ ДАННЫХ Реляционная Алгебра.
Реляционное исчисление. Общая характеристика Запрос – формула некоторой формально-логической теории; описывает свойства желаемого результата. Ответ –
РЕЛЯЦИОННАЯ АЛГЕБРА. Элементы РМД и формы их представления Сущность – это объект любой природы. Данные о сущности хранятся в отношении (таблице). Атрибуты.
Манипуляционная часть реляционной модели данных: реляционная алгебра.
Операции реляционной алгебры базовые теоретико- множественные Объединение Разность Пересечение Произведение специальные реляционные Проекция Выборка Деление.
ОРГАНИЗАЦИЯ БАЗ ДАННЫХ И ЗНАНИЙ ТЕМА 4 ДОСТУП К ДАННЫМ В РЕЛЯЦИОННЫХ МОДЕЛЯХ ХРАНЕНИЯ ДАННЫХ.
Базы данных Лекция 5 Базисные средства манипулирования реляционными данными: алгебра A Дейта и Дарвена.
1 2. Матрицы. 2.1 Матрицы и их виды. Действия над матрицами. Джеймс Джозеф Сильвестр.
Отображение и функции ХНУРЭ, кафедра ПО ЭВМ, Тел , Лекции 3-4 Н.В. Белоус Факультет компьютерных наук Кафедра.
Модуль 1. Математические основы баз данных и знаний 1.
Операции реляционной алгебры -соединение Соединением отношений A(A 1, A 2 …A n ) и B(B 1, B 2 … B n ) по операции :A 1 xA 2 x…A n xB 1 xB 2 …B n {T|F}
Транксрипт:

Обзор реляционной алгебры В реляционной модели, манипуляционная часть, утверждает, что доступ к реляционным данным осуществляется при помощи реляционной алгебры или эквивалентного ему реляционного исчисления. В реализациях конкретных реляционных СУБД сейчас не используется в чистом виде ни реляционная алгебра, ни реляционное исчисление. Фактическим стандартом доступа к реляционным данным стал язык SQL (Structured Query Language). Язык SQL представляет собой смесь операторов реляционной алгебры и выражений реляционного исчисления, использующий синтаксис, близкий к фразам английского языка и расширенный дополнительными возможностями, отсутствующими в реляционной алгебре и реляционном исчислении. Вообще, язык доступа к данным называется реляционно полным, если он по выразительной силе не уступает реляционной алгебре (или, что то же самое, реляционному исчислению), т.е. любой оператор реляционной алгебры может быть выражен средствами этого языка. Именно таким и является язык SQL. 1

Замкнутость реляционной алгебры Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Таким образом, реляционный оператор выглядит как функция с отношениями в качестве аргументов: Реляционная алгебра является замкнутой, т.к. в качестве аргументов в реляционные операторы можно подставлять другие реляционные операторы, подходящие по типу: 2

Таким образом, в реляционных выражениях можно использовать вложенные выражения сколь угодно сложной структуры. Каждое отношение обязано иметь уникальное имя в пределах базы данных. Имя отношения, полученного в результате выполнения реляционной операции, определяется в левой части равенства. Однако можно не требовать наличия имен от отношений, полученных в результате реляционных выражений, если эти отношения подставляются в качестве аргументов в другие реляционные выражения. Такие отношения будем называть неименованными отношениями. Неименованные отношения реально не существуют в базе данных, а только вычисляются в момент вычисления значения реляционного оператора. Традиционно, вслед за Коддом, определяют восемь реляционных операторов, объединенных в две группы. 3

Теоретико-множественные операторы: Объединение Пересечение Вычитание Декартово произведение Специальные реляционные операторы: Выборка Проекция Соединение Деление Не все они являются независимыми, т.е. некоторые из этих операторов могут быть выражены через другие реляционные операторы. 4

Отношения, совместимые по типу Некоторые реляционные операторы (например, объединение) требуют, чтобы отношения имели одинаковые заголовки. Oтношения состоят из заголовка и тела. Операция объединения двух отношений есть просто объединение двух множеств кортежей,взятых из тел соответствующих отношений. Но будет ли результат отношением? Во-первых, если исходные oтношения имеют разное количество атрибутов, то, очевидно, что множество, являющееся объединением таких разнотипных кортежей нельзя представить в виде отношения. Во-вторых, пусть даже отношения имеют одинаковое количество атрибутов но атрибуты имеют различные наименования. Как тогда определить заголовок отношения, полученного в результате объединения множеств кортежей? В-третьих, пусть отношения имеют одинаковое количество атрибутов, атрибуты имеют одинаковые наименования, но определенны на различных доменах. Тогда снова объединение кортежей не будет образовывать отношение. 5

Определение 1. Будем называть отношения совместимыми по типу, если они имеют идентичные заголовки, а именно, Отношения имеют одно и то же множество имен атрибутов, т.е. для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении, Атрибуты с одинаковыми именами определены на одних и тех же доменах.Некоторые отношения не являются совместимыми по типу, ностановятся таковыми после некоторого переименования атрибутов. Для того чтобы такие отношения можно было использовать в реляционных операторах, вводится вспомогательный оператор переименования атрибутов. 6

Оператор переименования атрибутов Оператор переименования атрибутов имеет следующий синтаксис: отношение, исходные имена атрибутов, новые имена атрибутов. В результате применения оператора переименования атрибутов получаем новое отношение, с измененными именами атрибутов. 7

Пример 1. Следующий оператор возвращает неименованное отношение, в котором атрибут переименован в : 8

Теоретико-множественные операторы Объединение Определение Объединением двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и и телом, состоящим из кортежей, принадлежащих или или или обоим отношениям. Синтаксис операции объединения: 9

Замечание. Объединение, как и любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение и отношение то в объединение он входит один раз. Пример 2. Пусть даны два отношения и с информацией о сотрудниках: Табель ный номер Фами лия Зарплата 1Иванов1000 2Петров2000 3Сидоров3000 Таблица 1 Отношение A 10

Табель ный номер Фами лия Зарплата 1Иванов1000 2Пушников2500 4Сидоров3000 Таблица 2 Отношение B 11

Объединение отношений и Табельный номер ФамилияЗарплата 1Иванов1000 2Петров2000 3Сидоров3000 2Пушников2500 4Сидоров3000 Таблица 3 Отношение A UNION B 12

Замечание. Как видно из приведенного примера, потенциальные ключи, которые были в отношениях и не наследуются объединением этих отношений. Поэтому, в объединении отношений и атрибут "Табельный номер" может содержать дубликаты значений. Если бы это было не так, и ключи наследовались бы, то это противоречило бы понятию объединения как "объединение множеств". Конечно, объединение отношений и имеет, как и любое отношение, потенциальный ключ, например, состоящий из всех атрибутов. 13

Пересечение Определение. Пересечением двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и и и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям Синтаксис операции пересечения: 14

Пример 3. Для тех же отношений и что и в предыдущем примере пересечение имеет вид: Табельный номер ФамилияЗарплата 1Иванов1000 Таблица 4 Отношение A INTERSECT B Замечание. Казалось бы, что в отличие от операции объединения, потенциальные ключи могли бы наследоваться пересечением отношений. Однако это не так. Вообще, никакие реляционные операторы не передают результатирующему отношению никаких данных о потенциальных ключах. 15

В качестве причины этого можно было бы привести тривиальное соображение, что так получается более просто и симметрично - все операторы устроены одинаково. На самом деле причина более глубока, и заключается в том, что потенциальный ключ - семантическое понятие, отражающее различимость объектов предметной области. Наличие потенциальных ключей не выводится из структуры отношения, а явно задается для каждого отношения, исходя из его смысла. Реляционные же операторы являются формальными операциями над отношениями и выполняются одинаково, независимо от смысла данных, содержащихся в отношениях. Поэтому, реляционные операторы ничего не могут "знать" о смысле данных. Трактовка результата реляционных операций - дело пользователя. 16

Вычитание Определение Вычитанием двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и и телом, состоящим из кортежей, принадлежащих отношению и не принадлежащих отношению Синтаксис операции вычитания: Пример 4. Для тех же отношений и что и в предыдущем примере вычитание имеет вид: 17

Табельн ый номер Фамил ия Зарплата 2Петров2000 3Сидоров3000 Таблица 5 Отношение A MINUS B 18

Декартово произведение Определение 5. Декартовым произведением двух отношений и называется отношение, заголовок которого является сцеплением заголовков отношений и а тело состоит из кортежей, являющихся сцеплением кортежей отношений и таких, что 19

Синтаксис операции декартового произведения: Замечание. Мощность произведения равна произведению мощностей отношений и т.к. каждый кортеж отношения соединяется с каждым кортежем отношения Замечание. Если в отношения x и имеются атрибуты с одинаковыми наименованиями, то перед выполнением операции декартового произведения такие атрибуты необходимо переименовать. 20

Замечание. Перемножать можно любые два отношения, совместимость по типу при этом не требуется. Пример 5. Пусть даны два отношения и с информацией о поставщиках и деталях: Номер поставщика Наименовани е поставщика 1Иванов 2Петров 3Сидоров Номер детали Наименовани е детали 1Болт 2Гайка 3Винт 21

Декартово произведение отношений Номер поставщика Наименован ие поставщика Номер детали Наименован ие детали 1Иванов1Болт 1Иванов2Гайка 1Иванов3Винт 2Петров1Болт 2Петров2Гайка 2Петров3Винт 3Сидоров1Болт 3Сидоров2Гайка 3Сидоров3Винт 22

Замечание. Сама по себе операция декартового произведения не очень важна, т.к. она не дает никакой новой информации, по сравнению с исходными отношениями. Для реальных запросов эта операция почти никогда не используется. Однако операция декартового произведения важна для выполнения специальных реляционных операций, о которых речь пойдет ниже. Специальные реляционные операторы 23

Выборка (ограничение, селекция) Определение Выборкой (ограничением, селекцией) на отношении с условием называется отношение с тем же заголовком, что и атрибутов которых при подстановке в условие дают значение ИСТИНА. представляет собой логическое выражение, в которое могут входить атрибуты отношения и (или) скалярные выражения.В простейшем случае условие имеет видгде - один из операторов сравнения ( и т.д.), а и атрибуты отношения и (или) скалярные значения. 24

Такие выборки называются выборки (тэта-выборки) или ограничения,селекции. Синтаксис операции выборки:, или Пример 6. Пусть дано отношение Табельн ый номер Фамил ия Зарплата 1Иванов1000 2Петров2000 3Сидоров

Результат выборки будет иметь вид: Табельный номер ФамилияЗарплата 1Иванов1000 2Петров2000 Смысл операции выборки очевиден - выбрать кортежи отношения, удовлетворяющие некоторому условию. Таким образом, операция выборки дает "горизонтальный срез" отношения по некоторому условию. 26

Проекция Определение 7. Проекцией отношения по атрибутам где каждый из атрибутов принадлежит отношению называется отношение с заголовком и телом, содержащим множество кортежей вида таких, для которых в отношении найдутся кортежи со значением атрибута равным значением атрибутаравным, …, значением атрибутаравным 27

Синтаксис операции проекции: Замечание. Операция проекции дает "вертикальный срез" отношения, в котором удалены все возникшие при таком срезе дубликаты кортежей. Пример 7. Пусть дано отношение Номер поставщ ика Наименов ание поставщи ка Город поставщика 1ИвановУфа 2ПетровМосква 3СидоровМосква 4СидоровЧелябинск 28

Проекция будет иметь вид: Город поставщика Уфа Москва Челябинск 29

Соединение Операция соединения отношений, наряду с операциями выборки и проекции, является одной из наиболее важных реляционных операций. Обычно рассматривается несколько разновидностей операции соединения: Общая операция соединения -соединение (тэта-соединение) Естественное соединение Экви-соединение Наиболее важным из этих частных случаев является операция естественного соединения. Все разновидности соединения являются частными случаями общей операции соединения 30

Общая операция соединения Определение 8. Соединением отношений ипо условию называется отношение представляет собой логическое выражение, в которое могут входить атрибуты отношений и и (или) скалярные выражения. Таким образом, операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях и имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать. 31

Тэта-соединение Определение Пусть отношение содержит атрибут отношение содержит атрибут,, а - один из операторов сравнения Тогда соединением называют отношение Экви-соединение Наиболее важным частным случаем - соединения является случай, когда есть просто равенство. 32

Естественное соединение Определение Пусть даны отношенияи имеющие одинаковые атрибуты (т.е. атрибуты с одинаковыми именами и определенные на одинаковых доменах). Тогда естественным соединением отношений и называется отношение с заголовком и телом, содержащим множество кортежей таких, что и Естественное соединение настолько важно, что для него используют специальный синтаксис 33

Замечание. Можно выполнять последовательное естественное соединение нескольких отношений. Нетрудно проверить, что естественное соединение (как, впрочем, и соединение общего вида) обладает свойством ассоциативности, т.е. поэтому такие соединения можно записывать, опуская скобки: Пример. В предыдущем примере ответ на вопрос "какие детали поставляются поставщиками", более просто записывается в виде естественного соединения трех отношений 34

Номер поставщ ика PNUM Наимено вание поставщ ика PNAME Номер детали DNUM Наимено вание детали DNAME Поставля емое количест во VOLUME 1Иванов1Болт100 1Иванов2Гайка200 1Иванов3Винт300 2Петров1Болт150 2Петров2Гайка250 3Сидоров1Болт

Деление Определение 11. Пусть даны отношения ипричем атрибутыобщие для двух отношений Делением отношений и называется отношение с заголовком и телом, содержащим множество кортежей таких, что для всех кортежей в отношении найдется кортеж Отношениевыступает в роли делимого, отношение выступает в роли делителя. Деление отношений аналогично делению чисел с остатком. Синтаксис операции деления: 36

ЗамечаниеТипичные запросы, реализуемые с помощью операции деления, обычно в своей формулировке имеют слово "все" - "какие поставщики поставляют все детали?". Пример В примере с поставщиками, деталями и поставками ответим на вопрос, "какие поставщики поставляют все детали?". В качестве делимого возьмем проекцию,содержащую номера поставщиков и номера поставляемых ими деталей: Номер поставщика PNUM Номер детали DNUM

В качестве делителя возьмем проекцию содержащую список номеров всех деталей (не обязательно поставляемых кем-либо): Номер детали DNUM Деление дает список номеров поставщиков, поставляющих все детали: Номер поставщика PNUM 1 Оказалось, что только поставщик с номером 1 поставляет все детали 38

39

40

41