Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 621; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.