КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Операции реляционной алгебры над отношениями и их реализация с помощью СУБД Visual FoxPro 9.0
Операции реляционной алгебры оперируют целиком отношением, а не каждой его записью. В реляционной алгебре используются следующие операции: проекция, выборка, объединение, пересечение, вычитание, соединение и деление. Проекцией называется операция, переносящая в результирующее отношение только те столбцы исходного отношения, которые указаны в условии операции. Понятия "столбец", "исходное отношение", "результирующее отношение" в ТЭИС соответствуют таким понятиям СУБД, как "поле", "исходная таблица" (имеющая исходное имя), "результатная таблица" (с именем, присвоенным операцией в результате выполнения запроса). Рассмотрим пример по тематике лабораторных работ "Действия в таблицах (арифметика)". Требуется: 1) выполнить проекцию таблицы poski для получения таблицы (отношения) vozm, содержащей сведения только о номерах поставщиков и номерах деталей; 2) вывести на экран результат выполнения операции (самостоятельно). В СУБД Visual FoxPro 9.0 проекция реализуется двумя командами и этот пример выглядит следующим образом: USE poski &&. открыть таблицу COPY fields nomp, nomd to vozm &&. проекция
Выборкой называется операция, которая переносит в результирующее отношение те строки из исходного отношения, которые удовлетворяют условию выборки. Условие выборки проверяется в каждой строке отношения по отдельности и не может охватывать информацию из нескольких строк. Существуют две простейшие разновидности условия выборки: 1) Условие вида: Имя_атрибута <знак сравнения> Значение, где допускаются знаки типа: сравнения =, #, >, =>, <, <=. Например, Nomp='П5'. 2) Условие вида: Имя_атрибута_1 <знак сравнения> Имя_ _атрибута_2. Например, Факт > План.
В СУБД Visual FoxPro 9.0 выборка реализуется командами СОРУ, COUNT с опцией FOR, определяющей условие выборки. В команде СОРУ условия выборки и проекции могут присутствовать одновременно, но атрибуты условия Выборки должны включаться в условие Проекции. Рассмотрим пример, относящийся к тематике лабораторных работ "Действия в таблицах (арифметика)", программу которого студенты должны выполнить самостоятельно на основе материалов лабораторной работы. Требуется: 1) выполнить создание новой таблицы с именем nomp_nomd путем проекции полей nomp, nomd из таблицы poski с одновременной выборкой записей из этой таблицы только по поставщику П5; 2) вывести на экран результат выполнения операции. Операции объединения, пересечения и вычитания производятся над двумя исходными отношениями с одинаковой структурой. Точных аналогов этих операций в Visual FoxPro 9.0 нет. Смысл этих операций заключается в следующем. Объединение содержит строки, присутствующие либо в одном реляционном отношении (R1), либо в другом реляционном отношении (R2). Пересечение содержит строки, присутствующие в отношениях R1 и R2 одновременно. Вычитание содержит те строки из RI, которые отсутствуют в R2. Операция деления отношений отсутствует в СУБД семейства DBASE, и для реализации деления необходима специальная подпрограмма.
В Visual FoxPro 9.0 предусмотрена операция добавления APPEND, которая приводит либо к добавлению в самостоятельную таблицу новой строки (в коней файла), либо к добавлению в таблицу-приемник всех строк из таблицы-источника, при этом обе таблицы должны иметь одинаковую структуру. Этим способом пользуются для создания накопительных таблиц. Допустим, если бы была создана таблица poski_10, в которой фиксировались бы записи поставок за октябрь текущего года, то операция добавления всех строк из текущей таблицы poski_10 в используемую накопительную таблицу poski_nak реализовалась бы командами: USE poski_nak APPEND from poski_10 Отличия добавления от объединения – создание результирующего отношения на месте исходного отношения и возможность появления одинаковых строк в результирующем отношении, если такие строки имеются в таблице-источнике. Операция соединения отношений выполняется над двумя исходными отношениями и создаёт одно результирующее. Каждая строка первого исходного отношения сопоставляется по очереди со всеми строками второго отношения, и если для этой пары строк соблюдается условие соединения, то они сцепляются и образуют очередную строку в результирующем отношении. Условие соединения имеет вид: Имя_атрибута_1 <знак сравнения> Имя_атрибута_2, где Имя_атрибута_1 находится в одном исходном отношении, а Имя_атрибута_2 - в другом.
В СУБД Visual FoxPro 9.0 для проведения соединения необходимо использовать две рабочие области памяти (РОПы) для исходных отношений.
Пример по тематике лабораторных работ ("Создание связей между таблицами_новая"). SELECT 1 &&Выбор РОП1 USE det_nov && Помещаем detl_nov в РОП1 BROWSE SELECT 2 &&Выбор РОП2 USE posk_nov && Помещаем poski_nov в РОП2 BROWSE IF FILE("soed.dbf") && Если файл существует то удалить его delete FILE("soed.dbf") endif join with a to soed for a.nomd=b.nomd; &&соединить с РОП1 файл posk_nov по равенству значений a.nomd=b.nomd fields a.nomd, a.naim, nomr, kolw, data &&В выходной файл soed включить поля из РОП1 a.nomd,a.naim, &&из РОП2 включить поля nomr,kolw,data. Номер своего РОПа по умолчанию не указывается USE soed &&активизируем ТБД soed BROWSE &&Просмотр ТБД soed Выбор РОПов выполняется программистом произвольно. РОПы имеют двойную нумерацию (цифровую и буквенную), поэтому в команде SELECT можно указывать цифровой номер РОПа, а в JOIN – буквенный.
Дата добавления: 2015-05-10; Просмотров: 668; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |