Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Реляционная алгебра. Объединение, пересечение, вычитание и декартово произведение.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте Реляционная модель данных основана на теории множеств. Для обработки данных в этой модели существует специальный математический аппарат, который называется реляционная алгебра. К бинарным односхемным операциям относят объединение, разность и пересечение отношений. Объединением (union) односхемных отношений R и S называется отношение T = R U S, которое включает в себя все строки обоих отношений без повторов. (SQL-запрос: SELECT Имя, Возраст, Вес FROM Персоны UNION SELECT Имя, Возраст, Вес FROM Персонажи) Разностью (difference) односхемных отношений R и S (R – S) называется множество строк R, не входящих в S. (SQL-запрос: SELECT Имя, Возраст, Вес FROM Персоны EXCEPT SELECT Имя, Возраст, Вес FROM Персонажи) Пересечение (intersection) двух односхемных отношений R и S есть подмножество строк, принадлежащих обоим отношениям. Это вспомогательная операция, её можно выразить через разность: R ∩ S = R – (R – S). (SQL-запрос: SELECT Имя, Возраст, Вес FROM Персоны INTERSECT SELECT Имя, Возраст, Вес FROM Персонажи) Ключевое слово INTERSECT может отсутствовать в некоторых СУБД, однако оно включено в стандарт. Декартово произведение – это все возможные комбинации элементов доменов. (SQL-запрос: Так, для получения декартова произведения Вид_блюд и Трапезы надо выдать запрос SELECT Вид_блюд.*, Трапезы.* FROM Вид_блюд, Трапезы;) Реляционная алгебра. Выборка, проекция, соединение и деление. Реляционная алгебра — формальная система манипулирования отношениями в реляционной модели данных. Выборка. Операция выборки — унарный оператор, записываемый как σaθb(R) или σaθv(R), где: a, b — имена атрибутов. θ — оператор сравнения из множества {<; ≤; =; ≥; >}. v — константа. R — отношение (в оригинале — relation, однако как видно из примера, подразумевается не столько взаимосвязь таблиц, сколько взаимосвязь/соотношение различных фактов в рядах этих таблиц). Выборка σaθb(R) (или σaθv(R)) выбирает все наборы значений R, для которых функция a θ b (или a θ v) будет истинна. (Пример σВозраст ≥ 34 или Эквивалентный SQL-запрос: SELECT * FROM Персоны WHERE Возраст >= 34). Проекция. Операция выборки — унарный оператор, записываемый как πa1,…,an(R) где a1,…,an — спиоск полей, подлежащих выборке. Результатом такой выборки будет набор последовательностей значений отношения R, в котором будут присутствовать только поля, перечисленные в списке a1,…,an с естественным уничтожением потенциально возникающих кортежей-дубликатов. (Пример: πВозраст,Вес или эквивалентный SQL-запрос: SELECT DISTINCT Возраст, Вес FROM Персоны) Для полного соответствия операции проекции необходимо указывать ключевое слово DISTINCT, поскольку без него строка с одинаковыми значениями отобразится дважды. Соединение. Операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях и имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать. (SQL-запрос: SELECT * FROM Мультфильмы, Каналы WHERE Название_канала = Код_канала) Деление. Операция реляционной алгебры, создающая новую таблицу путем выбора строк одной таблицы, соответствующих каждой строке другой таблицы. Реляционное исчисление. Это система обозначений для получения необходимого отношения в терминах данных отношений. Языки исчисления – это не процедурные языки, поскольку их средствами можно выразить все, что необходимо и необязательно указывать, как это получить. Выражение в исчислении описывает лишь свойства желаемого результата, фактически не указывая, как его получить. Основными понятиями исчисления являются понятие переменной с некоторой областью допустимых значений и понятие правильно построенной формулы, опирающейся на предикаты, переменные и кванторы. В реляционной модели определяются два базовых механизма манипулирования данными: * основанная на теории множеств реляционная алгебра; * основанное на математической логике реляционное исчисление. Формулы реляционного исчисления определяются над отношениями реляционных баз данных, и результатом вычисления является отношение. Эти механизмы манипулирования данными различаются уровнем процедурности: * запрос, представленный на языке релационной алгебры, может быть вычислен на основе вычисления элементарных алгебраичесских операций с учетом их старшинства и возможных скобок; * формула реляционного исчисления только устанавливает условия, которым должны удовлетворять кортежи результирующего отношения. Поэтому языки реляционного исчисления являются более непроцедурными или декларативными. Пример: Пусть даны два отношения: СОТРУДНИКИ (СОТР_НОМЕР, СОТР_ИМЯ, СОТР_ЗАРПЛ, ОТД_НОМЕР) ОТДЕЛЫ(ОТД_НОМЕР, ОТД_КОЛ, ОТД_НАЧ) Необходимо узнать имена и номера сотрудников, являющихся начальниками отделов с количеством работников более 10. (1).выполнить соединение отношений СОТРУДНИКИ и ОТДЕЛЫ по условию СОТР_НОМ = ОТДЕЛ_НАЧ. С1 = СОТРУДНИКИ [СОТР_НОМ = ОТД_НАЧ] ОТДЕЛЫ (2).из полученного отношения произвести выборку по условию ОТД_КОЛ > 10 С2 = С1 [ОТД_КОЛ > 10]. (3).спроецировать результаты предыдущей операции на атрибуты СОТР_ИМЯ, СОТР_НОМЕР С3 = С2 [СОТР_ИМЯ, СОТР_НОМЕР] На языке реляционного исчисления данный запрос может быть записан как: Выдать СОТР_ИМЯ и СОТР_НОМ для СОТРУДНИКИ таких, что существует ОТДЕЛ с таким же, что и СОТР_НОМ значением ОТД_НАЧ и значением ОТД_КОЛ большим 50.
Указываются только характеристики результирующего отношения, но не указываем о способе его формирования. СУБД сама должна решить какие операции и в каком порядке надо выполнить над отношениями СОТРУДНИКИ и ОТДЕЛЫ.
|
||
|
Последнее изменение этой страницы: 2017-01-25; просмотров: 1084; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.214 (0.01 с.) |