Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Операции выборки в отношениях, имеющих древовидную структуру↑ ⇐ ПредыдущаяСтр 9 из 9 Содержание книги
Поиск на нашем сайте
Рис.1. Отношение RS («структура подчинения»). чаются из домена «номера служащих». Смысл любого кортежа RS состоит в том, что указанный cлужащий с номером ЕМР работает под руководством указанного начальника с номером MGR. Мы полагаем, что структура подчинения, представленная отношением RS, всегда удовлетворяет следующим ограничениям: 1. Никакой служащий не является своим собственным начальником. 2. Никакой служащий не имеет более одного непосредственного начальника. 3. Если, например, ЕХ является непосредственным начальником EY, то EY не может быть начальником служащего, находящегося на уровне ЕХ. Рис.2. Отношение RS, представленное в виде дерева. Можно убедиться, что таблица на рис.1 удовлетворяет этим ограничениям. Поэтому мы можем представить это отношение как имеющее древовидную структуру (рис.2). Будем называть отношение, имеющее два атрибута, определенные на общем домене и удовлетворяющие ограничениям, аналогичным перечисленным выше, отношением с древовидной структурой. В языке QBE пользователь может формулировать некоторые запросы к отношению с древовидной структурой, которые не могут быть выражены с помощью других менее мощных языков, таких, как, например, реляционная алгебра. Рассмотрим некоторые примеры. Выборка с уровня на один уровень ниже заданного. Получить номера служащих, подчиненных служащему E8 на первом уровне.
Под выражением «на первом уровне» мы подразумеваем, что E8 является непосредственным начальником интересующих нас служащих. Ответом на запрос являются служащие E15 и E16. Этот пример очевиден и не иллюстрирует ничего нового. Выборка с уровня на два уровня ниже заданного. Получить номера служащих, подчиненных служащему E8 на втором уровне.
Опять решение очевидно, но заметим, что мы должны ввести связь EY, а также должны записать эту связь в таблицу дважды. В общем случае, если мы хотим спуститься по дереву вниз на п уровней, нам нужно записать каждую из n— 1 связей дважды (весьма утомительный процесс!). Поэтому язык QBE обеспечивает удобное сокращение, которое иллюстрируется альтернативной записью рассмотренного выше запроса.
«(2L)» обозначает «второй уровень». Вообще, здесь может стоять любое целое, предшествующее литере L и вместе с ней заключенное в скобки. Всякий раз, когда используется указатель уровня, QBE помещает номера относительных уровней в таблицу результатов. Например:
Выборка с уровня на два уровня выше заданного. Получить номер начальника (MGR), находящегося двумя уровнями выше служащего Е20.
Здесь запись уровня появляется в столбце MGR. В общем случае направление поиска (вверх или вниз по дереву) указывается столбцом, в котором появляется запись уровня. В некоторых ситуациях это правило, однако, могло бы привести к неоднозначности. Чтобы избежать этого, в QBE вводится ограничение, согласно которому не более чем две записи уровня могут появляться в любой строке при формировании запроса, включающего уровни. Выборка со всех уровней ниже заданного. Получить номера служащих, подчиненных служащему Е8 на любом уровне.
Результат
Это пример запроса, который не может быть выражен в реляционной алгебре или языках, эквивалентных ей по мощности. Обратите внимание на подчеркивание в записи уровня. Выборка с самого нижнего уровня. Получить номера служащих, подчиняющихся служащему Е8 на самом нижнем уровне.
МАХ представляет собой библиотечную функцию. Смысл запроса заключается в следующем: «Получить номера тех служащих, чей относительный уровень под Е8 имеет наибольшее значение». Результатом является единственный номер служащего Е 32 (3L). Выборка с терминальных уровней. Выдать номера тех служащих, которые подчиняются служащему Е8 и сами не имеют подчиненных.
Мы ищем служащих на концевых вершинах дерева под Е8. Поскольку в общем случае эти служащие будут на различных относительных уровнях, мы не можем записать какую-либо целую константу или целую переменную (константа означала бы некоторый фиксированный уровень, а переменная означала бы все уровни). Поэтому язык QBE обеспечивает специальную библиотечную функцию LAST (последний). Выборка уровня. На каком относительном уровне служащий Е20 находится ниже служащего Е1?
Результат:
Операции запоминания Простое обновление. Поменять цвет всех красных деталей на желтый.
Для того чтобы обновить строку или множество строк, пользователь (в общем случае) записывает выражение, представляющее старые данные, и выражение, представляющее новые данные. Слово UPDATE указывает, какоеиздвух выражений соответствует новым данным. Следовательно, в примере, приведенном выше, первая строка указывает, что любая строка таблицы, скажем, относящаяся к детали 2 и содержащая значение цвета 'красный', должна быть изменена и иметь значение цвета 'желтый’. Заметим, что и «старые» и «новые» строки должны содержать запись в позиции первичного ключа. Значения первичного ключа не могут быть изменены. Некоторые обновления могут быть заданы одним выражением (строкой). Например: изменить цвет детали 2 на желтый независимо от того, какой цвет она имела. Пользователю необходимо записать лишь «новую» строку из двух, рассмотренных выше (и без подчеркивания 2). Обновление нескольких таблиц. Предположим, Что таблица Р включает добавочный столбец QOH (количество на руках). Поставщик S1 теперь поставляет деталей Р1 на 10 больше, чем прежде; добавить 10 к «количеству на руках» для Р1 и к количеству Р1 поставляемых поставщиком S1.
Включение (INSERTION). Занести данные о детали Р7 (наименование болт, цвет серый, вес 2, город Лондон) в таблицу Р.
8.4.4. Включение (INSERTION). Таблица W содержит множество строк, относящихся к деталям (в том же самом формате, что и строки таблицы Р). Скопировать все строки для красных деталей в таблицу Р.
Все записи пользователя в строке INSERT, кроме РХ могут при желании быть опущены. Удаление (DELETION). Удалить поставщика S1.
Безусловное удаление. Удалить все детали.
Так же, как и в случае обновления, пользователь всегда должен специфицировать по крайней мере значения первичного ключа для строк, которые должны быть удалены. Библиотечные функции Простая выборка с использованием функции. Получить значение общего количества поставщиков.
8.5.2. Простая выборка с использованием функции. Получить значение общего количества поставщиков, поставляющих детали в настоящеевремя.
«U.» означает уникальный (ALL автоматически не исключает избыточные повторяющиеся данные). Выборка по условию с использованием функции. Получить значение общего количества поставщиков детали Р2.
Выборка по условию с использованием функции. Получить значение общего количества поставок детали Р2.
Выборка с группированием. Для каждой поставляемой детали получить номер детали и значение количества поставщиков этой детали.
Заметьте, что явного задания оператора группирования не требуется. Оператор ALL автоматически обеспечивает желаемый эффект, так как в этом запросе, например, выражение ALL. SX означает множество всех номеров поставщиков, соответствующее РХ. Выборка по условию с использованием блока условия и функции. Получить номера всех деталей, которые поставляются более чем одним поставщиком.
Заключение Язык QBE обладает рядом особенностей, отличающих его от других реляционных языков, подробно обсуждаемых в этой книге. Среди этих особенностей мы можем отметить использование примеров в спецификации запросов (и других операций), наличие специальных операторов для работы с отношениями, имеющими древовидную структуру, и для обращения к словарю использование простого двумерного синтаксиса и ориентация на работу с дисплеями. Пользователю языком QBE предоставлена свободе построения запроса тем способом, который кажется пользователю наиболее естественным. Действительно, запрос может быть построен в том порядке, который нравится пользователю: порядок строк в таблице запроса совершенно безразличен. Более того, порядок, в котором пользователь заносит записи, составляющие эти строки, также совершенно произволен. Например, возьмем запрос: «Получить имена поставщиков, поставляющих детали красного цвета». Пользователь может представлять себе этот запрос в виде: «Выделить красные детали, затем выделить номера поставщиков, поставляющих эти детали, и затем выделить их имена». В таком случае он, вероятно, заполнит таблицу в порядке Детали, Поставки, Поставщики. Или же пользователь может представить себе этот же запрос как «Выделить имена тех поставщиков, таких, что поставляемая ими деталь имеет красный цвет». В этом случае он, вероятно, заполнит таблицу в порядке Поставщики, Поставки, Детали. В любом варианте это один и тот же запрос. Другими словами, QBE является в высокой степени непроцедурным языком, который обеспечивает возможность представления некоторой задачи различными способами.
Основы баз данных............................................................................................................................ 1 Введение............................................................................................................................................. 1 ИПС................................................................................................................................................ 1 БЗ..................................................................................................................................................... 2 История БнД....................................................................................................................................... 2 Проблемы БД:..................................................................................................................................... 2 Состав БнД......................................................................................................................................... 5 Процесс проектирования базы данных........................................................................................... 6 ER-модель (модель Чена).................................................................................................................. 8 Основные понятия:....................................................................................................................... 9 Виды связи................................................................................................................................... 10 Рекурсивные связи...................................................................................................................... 15 Реляционная модель данных.......................................................................................................... 18 12 правил Кодда,......................................................................................................................... 21 которым должна удовлетворять реляционная база данных................................................... 21 Операции над данными.............................................................................................................. 22 Реляционная алгебра....................................................................................................................... 22 Свойства реляционных операций............................................................................................. 27 Понятие функциональной зависимости (Ф.З)......................................................................... 31 Запись запросов на языке реляционной алгебры.................................................................... 33 Проектирование реляционной базы данных........................................................................... 34 Методы проектирования............................................................................................................ 36 Язык доступа к данным,.................................................................................................................. 38 основанный на исчислении с переменными кортежами............................................................ 38 Технологии клиент-сервер.............................................................................................................. 47 1 вариант - файловый сервер..................................................................................................... 47 2 вариант – удаленный доступ.................................................................................................. 48 3 вариант – сервер Базы Данных............................................................................................... 49 4 вариант – сервер приложений................................................................................................ 50 Внутренняя модель данных............................................................................................................ 51 ЯЗЫК QUERY BY EXAMPLE (QBE)........................................................................................... 54
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 249; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.88.137 (0.007 с.) |