Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 885; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.23.101.75 (0.013 с.) |