Министерство образования и науки Российской Федерации

Федеральное агентство по образованию

Новосибирский государственный технический университет

Кафедра вычислительной техники

Расчётно-графическая работа

по дисциплине «Базы данных»

Выполнил: Преподаватель:

студент:

факультет: АВТ

группа: АП-119

Дата сдачи: 9.12.04

Новосибирск, 2004

Оглавление

Введение. 3

Цель работы. 3

Задание. 3

Описание проекта. Пользовательский интерфейс. 4

Источник данных. Структура и взаимодействие. 7

База данных anticvariat. 7

База данных seller. 7

База данных buyer. 8

Совмещенное описание интерфейса, компонентов доступа и функциональной реализации соответствующих запросов. 8

o для каждого вида товара выдать список постоянных клиентов, отсортированный: 8

o найти самый дорогой вил товара, самый старый по году, найти товары с ценой свыше 2000 р. (и любая другая сумме, т. е. предусмотреть ввод цены с клавиатуры); 9

o найти объем с продаж заданного товара за квартал, за год – за этот же период : среднюю цену, самую дорогую, самую дешевую вещь; 10

o найти товары, поставляемые заданным поставщиком(ввод поставщика), чья дата продажи находиться в заданных пределах(ввод интервала) 12

o найти товары, поставляемые заданным поставщиком(ввод поставщика), чья дата продажи находиться в заданных пределах(ввод интервала); 12

o найти долю антиквариата, проданного за определенный период(ввод периода) от общего времени продажи. 13

o найти весь товар, поступивший от заданного поставщика, чья стоимость больше, чем средняя стоимость заданного товара(ввод наименования), поступившего из данной страны(ввод наименования страны); 13

НЕ нашли? Не то? Что вы ищете?

o найти долю дешевого товара(чья стоимость меньше заданной, ввод стоимости), поступившего от заданного поставщика и в целом.. 14

o найти среднюю стоимость товара, проданного за определенный промежуток времени(ввод интервала); 15

o найти весь товар, чья стоимость выше, чем средняя стоимость товара заданного производителя 15

o найти товар, который лучше всего раскупают, указать параметры(стоимость, производитель и т. д.) 16

Пример работы. 16

Результат данного запроса: 16

Заключение. 17

Список использованных материалов. 18


Введение.

Современные информационные системы, основанные на концепции интеграции данных, характеризуются огромными объемами хранимых данных, сложной организацией, необходимостью удовлетворять разнообразные требования многочисленных пользователей. Цель любой информационной системы - обработка данных об объектах реального мира. В широком смысле слова база данных - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области. Под предметной областью принято понимать часть реального мира, подлежащего изучению для организации управления и, в конечном счете, автоматизации, например, предприятие, вуз и т. д. Таким образом, база данных является организованной совокупностью взаимосвязанных данных и содержит сведения о различных сущностях одной предметной области - реальных объектах, процессах, явлениях или событиях.

Создавая базу данных, пользователь стремится упорядочить информацию по различным признакам и быстро извлекать выборку с произвольным сочетанием признаков. Сделать это возможно, только если данные структурированы. Структурирование – это введение соглашений о способах представления данных. Неструктурированными называют данные, записанные, например, в текстовом файле.

Пользователями базы данных могут быть различные прикладные программы, программные комплексы, а также специалисты предметной области, выступающие в роли потребителей или источников данных, называемые конечными пользователями.

В современной технологии баз данных предполагается, что создание базы данных, ее поддержка и обеспечение доступа пользователей к ней осуществляются централизованно с помощью специального программного инструментария - системы управления базами данных.

Итак, база данных (БД) - это поименованная совокупность структурированных данных, относящихся к определенной предметной области.

Система управления базами данных (СУБД) - это комплекс программных и языковых средств, необходимых для создания баз данных, поддержания их в актуальном состоянии и организации поиска в них необходимой информации.

Цель работы.

Целью работы является получение практического опыта построения нескольких таблиц, использующие многотабличное связывание. Закрепление навыков в написании SQL–запросов различной сложности.

Задание.

Сформировать несколько баз данных. Основная база данных – «Антиквариат». Предусмотреть: меню, печать на экран, ввод данных, редактирование, просмотр данных. Реализовать следующие типы запросов:

·  для каждого типа антиквариата(например, икона марки, значки, журналы, книги, рукописи, и т. п.) указать сведения о нем(наименование, год выпуска, место издания, цена, автор и т. п.);

·  для каждого вида товара выдать список постоянных клиентов, отсортированный:

o  по дате приобретения;

o  в алфавитном порядке;

o  по стоимости;

·  для каждого вида товара указать сведения о поставщике(псевдоним, адрес и т. д.);

·  найти самый дорогой вил товара, самый старый по году, найти товары с ценой свыше 2000 р. (и любая другая сумме, т. е. предусмотреть ввод цены с клавиатуры);

·  найти объем с продаж заданного товара за квартал, за год – за этот же период : среднюю цену, самую дорогую, самую дешевую вещь;

·  найти товары, поставляемые заданным поставщиком(ввод поставщика), чья дата продажи находиться в заданных пределах(ввод интервала) ;

·  найти все товары для заданного места выпуска(выбор места), чья стоимость находиться в заданных пределах(ввод интервала);

·  найти долю антиквариата, проданного за определенный период(ввод периода) от общего времени продажи;

·  найти весь товар, поступивший от заданного поставщика, чья стоимость больше, чем средняя стоимость заданного товара(ввод наименования), поступившего из данной страны(ввод наименования страны);

·  найти долю дешевого товара(чья стоимость меньше заданной, ввод стоимости), поступившего от заданного поставщика и в целом;

·  найти среднюю стоимость товара, проданного за определенный промежуток времени(ввод интервала);

·  найти весь товар, чья стоимость выше, чем средняя стоимость товара заданного производителя;

·  найти товар, который лучше всего раскупают, указать параметры(стоимость, производитель и т. д.);

Описание проекта. Пользовательский интерфейс.

Проект представляет собой построенное на базе системы Microsoft Visual FoxPro 6.0 приложение, организующее связанный доступ к базам данных. На уровне пользователя обращение к базе и возврат соответствующих данных осуществляется посредством внешнего графического интерфейса, воспроизводящего требуемый набор SQL-запросов, являющихся, по сути, средством связи между приложением и источником данных. Для каждого SQL-запроса реализованы отдельные формы, при выполнение, которых результаты передаются в формы вывода результатов соответствующего запроса.

Пользовательский интерфейс сформирован стандартными средствами Visual FoxPro, имеет формовое представление (оконно-диалоговую среду), построенное на основе внутренних компонентов доступа Visual FoxPro, включающую в себя меню приложений.

Краткое описание функциональных элементов управления главного окна приложения:

Vyhod - выход;

Browse - просмотр базы;

Так же по заданию было реализовано меню приложения,

Browse:

All – просмотр общей базы

Anticvatiat – просмотр базы “антиквариат”

Buyer –просмотр базы “покупатель”

Seller –просмотр базы “продавец”

Edit (редактирование уже существующих записей)

Anticvarit - редактирование базы “антиквариат”

Buyer - редактирование базы “покупатель”

Seller - редактирование базы “продавец”

Append(добавление новой записи в выбранную базу)

Append anticvarit - добавление записей в базу “антиквариат”

Append buyer - добавление записей в базу “покупатель”

Append seller - добавление записей в базу “продавец”

Zaprosy

В данной работе для каждого запроса вызывается отдельная форма, и в каждой процедуре метода было прописано соответственно следующее код:

1 - do form information. scx

2 - do form clients. scx

3 - do form anticvariat. scx

4 - do form price. scx

5 - do form oborot. scx

6 - do form seller. scx

7 - do form cost. scx

8 - do form tovar8.scx

9 - do form tovar9.scx

10 - do form tovar10.scx

11 - do form tovar11.scx

12 - do form produce. scx

13 - do form tovar13.scx

Источник данных. Структура и взаимодействие.

Источником данных является логически связанный набор из трёх баз данных, функциональное связывание и взаимодействие между которыми осуществляется посредством использования уникальных числовых идентификаторов.

Центральной базой является «Антиквариат», и две побочные базы «Продавец» и «Покупатель». Схема связей между базами данных представлена на рис.

База данных anticvariat.

Включает в себя записи которые содержат информацию о антиквариате, Структура таблицы:

anticvariat - тип антиквариата (Character)

name_anticvatiat - наименование антиквариата (Character)

year - год выпуска (Numeric)

place - страна изготовитель (Character)

cost - цена (Numeric)

autor - автор (Character)

id_seller - уникальный числовой идентификатор продажи

id_buyer - уникальный числовой идентификатор покупки

База данных seller.

Включает таблицу, содержащую сведения о продавце. Структура таблицы:

Name_seller - имя продавца(Character)

Adres_seller- адрес продавца(Character)

id_seller - числовой идентификатор продавца(Integer)

number - количество проданного товара(Integer)

Идентификаторы id_seller выполняют функцию ссылки, связывающая записи с данными из таблицы базы anticvariat.

База данных buyer.

Данная база содержит сведения о покупателе и имеет следующую структуру:

Data_buy - дата покупки (Date)

Name_buyer - имя покупателя(Character)

Adres_buyer - адрес покупателя(Character)

Id_buyer - числовой идентификатор покупателя(Integer)

Числовой идентификатор id_buyer является ссылкой, обеспечивающей объединение с записями базы персоналий anticvariat и, таким образом, получение информации об покупателе.

Совмещенное описание интерфейса, компонентов доступа и функциональной реализации соответствующих запросов.

Совмещённое описание состоит в представлении функциональных частей приложения, отвечающих за реализацию того или иного обращения к системе и являющихся совокупностью интерфейсной базы, организующей логический доступ к соответствующим разделами и ввод данных, и SQL-запросов как механизма взаимодействия со сформированным источником данных.

Таким образом, ниже приведено описание форм ввода/вывода логически разделённых элементов приложения, соответствующих реализуемым по заданию запросам к источнику.

o  для каждого вида товара выдать список постоянных клиентов, отсортированный:

o  по дате приобретения;

o  в алфавитном порядке;

o  по стоимости;

Command=отсортировать

tmp = thisform. Text1.text

if(thisform. Optiongroup1.value==1)

SELECT anticvariat. anticvariat, anticvariat. cost, anticvariat. name_anticvariat, buyer. name_buyer, buyer. data_buy;

FROM myrgr! buyer INNER JOIN myrgr! anticvariat ;

ON Buyer. id_buyer = Anticvariat. id_buyer;

WHERE anticvariat. anticvariat==tmp;

ORDER BY buyer. data_buy

endif

if (thisform. Optiongroup1.value==2)

SELECT anticvariat. anticvariat, anticvariat. name_anticvariat, buyer. name_buyer, buyer. data_buy, anticvariat. cost;

FROM myrgr! buyer INNER JOIN myrgr! anticvariat ;

ON Buyer. id_buyer = Anticvariat. id_buyer;

ORDER BY buyer. name_buyer;

WHERE anticvariat. anticvariat==tmp

endif

if (thisform. Optiongroup1.value==3)

SELECT anticvariat. anticvariat, anticvariat. name_anticvariat, buyer. name_buyer, buyer. data_buy, anticvariat. cost;

FROM myrgr! buyer INNER JOIN myrgr! anticvariat ;

ON Buyer. id_buyer = Anticvariat. id_buyer;

ORDER BY anticvariat. cost;

WHERE anticvariat. anticvariat==tmp

Command=Выход

thisform. release

o  найти самый дорогой вил товара, самый старый по году, найти товары с ценой свыше 2000 р. (и любая другая сумме, т. е. предусмотреть ввод цены с клавиатуры);

Command1=найти:

if(thisform. Optiongroup1.value==1)

dimension ar1(1)

SELECT MAX(anticvariat. cost) FROM myrgr! anticvariat INTO ARRAY ar1

SELECT Anticvariat. anticvariat, anticvariat. name_anticvariat,;

Anticvariat. cost;

FROM myrgr! anticvariat;

WHERE anticvariat. cost = ar1

endif

if(thisform. Optiongroup1.value==2)

dimension ar2(1)

SELECT MIN(anticvariat. year) FROM myrgr! anticvariat INTO ARRAY ar2

SELECT Anticvariat. anticvariat, anticvariat. name_anticvariat,;

Anticvariat. year, anticvariat. cost;

FROM myrgr! anticvariat;

WHERE anticvariat. year = ar2

endif

if(thisform. Optiongroup1.value==3)

SELECT anticvariat. anticvariat, anticvariat. name_anticvariat, anticvariat. cost,;

anticvariat. cost, anticvariat. autor, anticvariat. year,;

anticvariat. place;

FROM myrgr! anticvariat;

WHERE anticvariat.cost > 2000

endif

Command2=найти:

fmin = val(thisform.Text1.text) &&преобразуем символьные данные в числовые

SELECT anticvariat. anticvariat, anticvariat. name_anticvariat,;

anticvariat. cost, anticvariat. autor, anticvariat. year,;

anticvariat. place;

FROM myrgr! anticvariat;

WHERE anticvariat. cost > fmin

o  найти объем с продаж заданного товара за квартал, за год – за этот же период : среднюю цену, самую дорогую, самую дешевую вещь;

Command1=объем продаж

tmp = bo1.text

tmpd = CTOD(thisform. Text1.value)

if(thisform. Optiongroup1.value==1)

SELECT SUM(Anticvariat. cost);

FROM myrgr! anticvariat INNER JOIN buyer ON buyer. id_buyer=anticvariat. id_buyer;

WHERE (anticvariat. anticvariat == tmp) AND (YEAR(buyer. data_buy) between year(tmpd) and year(tmpd)+1)

endif

if(thisform. Optiongroup1.value==2)

DO CASE

CASE MONTH(tmpd)>0 AND MONTH(tmpd)<4

P1=1

P2=3

CASE MONTH(tmpd)>3 AND MONTH(tmpd)<7

P1=4

P2=6

CASE MONTH(tmpd)>6 AND MONTH(tmpd)<10

P1=7

P2=9

CASE MONTH(tmpd)>9 AND MONTH(tmpd)<13

P1=10

P2=12

ENDCASE

SELECT SUM(Anticvariat. cost);

FROM myrgr! anticvariat INNER JOIN buyer ON buyer. id_buyer=anticvariat. id_buyer;

WHERE ALLTRIM(anticvariat. anticvariat)=ALLTRIM(tmp) AND MONTH(buyer. data_buy)>=P1 AND MONTH(buyer. data_buy)<=P2 AND (YEAR(buyer. data_buy) between year(tmpd) and year(tmpd)+1)

endif

Command2=среднюю цену

tmp = bo1.text

tmpd = CTOD(thisform. Text1.value)

if(thisform. Optiongroup1.value==1)

SELECT AVG(Anticvariat. cost);

FROM myrgr! anticvariat INNER JOIN buyer ON buyer. id_buyer=anticvariat. id_buyer;

WHERE ALLTRIM(anticvariat. anticvariat)=ALLTRIM(tmp) AND (YEAR(buyer. data_buy) between year(tmpd) and year(tmpd)+1)

endif

if(thisform. Optiongroup1.value==2)

DO CASE

CASE MONTH(tmpd)>0 AND MONTH(tmpd)<4

P1=1

P2=3

CASE MONTH(tmpd)>3 AND MONTH(tmpd)<7

P1=4

P2=6

CASE MONTH(tmpd)>6 AND MONTH(tmpd)<10

P1=7

P2=9

CASE MONTH(tmpd)>9 AND MONTH(tmpd)<13

P1=10

P2=12

ENDCASE

SELECT AVG(Anticvariat. cost);

FROM myrgr! anticvariat INNER JOIN buyer ON buyer. id_buyer=anticvariat. id_buyer;

WHERE ALLTRIM(anticvariat. anticvariat)=ALLTRIM(tmp) AND MONTH(buyer. data_buy)>=P1 AND MONTH(buyer. data_buy)<=P2 AND YEAR(buyer. data_buy)=YEAR(tmpd)

endif

Command3=самую дорогую

tmp = bo1.text

tmpd = CTOD(thisform. Text1.value)

if(thisform. Optiongroup1.value==1)

SELECT (Anticvariat. Anticvariat),MAX(Anticvariat. cost);

FROM myrgr! anticvariat INNER JOIN buyer ON buyer. id_buyer=anticvariat. id_buyer;

WHERE ALLTRIM(anticvariat. anticvariat)=ALLTRIM(tmp) AND YEAR(buyer. data_buy) between year(tmpd) and year(tmpd)+1

endif

if(thisform. Optiongroup1.value==2)

DO CASE

CASE MONTH(tmpd)>0 AND MONTH(tmpd)<4

P1=1

P2=3

CASE MONTH(tmpd)>3 AND MONTH(tmpd)<7

P1=4

P2=6

CASE MONTH(tmpd)>6 AND MONTH(tmpd)<10

P1=7

P2=9

CASE MONTH(tmpd)>9 AND MONTH(tmpd)<13

P1=10

P2=12

ENDCASE

SELECT MAX(Anticvariat. cost);

FROM myrgr! anticvariat INNER JOIN buyer ON buyer. id_buyer=anticvariat. id_buyer;

WHERE ALLTRIM(anticvariat. anticvariat)=ALLTRIM(tmp) AND MONTH(buyer. data_buy)>=P1 AND MONTH(buyer. data_buy)<=P2 AND YEAR(buyer. data_buy)=YEAR(tmpd)

Endif

Command4=самую дешевую

tmp = bo1.text

tmpd = CTOD(thisform. Text1.value)

if(thisform. Optiongroup1.value==1)

SELECT (Anticvariat. Anticvariat),MIN(Anticvariat. cost);

FROM myrgr! anticvariat INNER JOIN buyer ON buyer. id_buyer=anticvariat. id_buyer;

WHERE (anticvariat. anticvariat == tmp) AND (YEAR(buyer. data_buy) between year(tmpd) and year(tmpd)+1)

endif

if(thisform. Optiongroup1.value==2)

DO CASE

CASE MONTH(tmpd)>0 AND MONTH(tmpd)<4

P1=1

P2=3

CASE MONTH(tmpd)>3 AND MONTH(tmpd)<7

P1=4

P2=6

CASE MONTH(tmpd)>6 AND MONTH(tmpd)<10

P1=7

P2=9

CASE MONTH(tmpd)>9 AND MONTH(tmpd)<13

P1=10

P2=12

ENDCASE

SELECT MIN(Anticvariat. cost);

FROM myrgr! anticvariat INNER JOIN buyer ON buyer. id_buyer=anticvariat. id_buyer;

WHERE ALLTRIM(anticvariat. anticvariat)=ALLTRIM(tmp) AND MONTH(buyer. data_buy)>=P1 AND MONTH(buyer. data_buy)<=P2 AND YEAR(buyer. data_buy)=YEAR(tmpd)

endif

o  найти товары, поставляемые заданным поставщиком(ввод поставщика), чья дата продажи находиться в заданных пределах(ввод интервала)

Command1=найти

p=thisform. Text1.text

d1 = CTOD(thisform.Text2.value) &&Преобразовывание символьных выражений в дату.

d2 = CTOD(thisform. Text3.value)

SELECT anticvariat. anticvariat, anticvariat. name_anticvariat, seller. name_seller, buyer. data_buy;

FROM myrgr! buyer INNER JOIN myrgr! anticvariat;

INNER JOIN myrgr! seller ;

ON Anticvariat. id_seller = Seller. id_seller ;

ON Buyer. id_buyer = Anticvariat. id_buyer;

WHERE ((seller. name_seller=p) and (buyer. data_buy between d1 and d2))

o  найти товары, поставляемые заданным поставщиком(ввод поставщика), чья дата продажи находиться в заданных пределах(ввод интервала);

Command1=найти

p=bo1.value

d1=val(thisform. Text2.text)

d2=val(thisform. Text3.text)

SELECT anticvariat. anticvariat, anticvariat. name_anticvariat, anticvariat. place, anticvariat. cost;

FROM myrgr! anticvariat;

WHERE ((anticvariat. place==p) and (anticvariat. cost between d1 and d2))

o  найти долю антиквариата, проданного за определенный период(ввод периода) от общего времени продажи

Command1=найти

d1=thisform. Text1.text

d2=thisform. Text2.text

dimension ar1(1)

SELECT COUNT(Anticvariat. anticvariat);

FROM myrgr! anticvariat INNER JOIN myrgr! buyer;

ON Anticvariat. id_buyer = Buyer. id_buyer;

WHERE Buyer. data_buy BETWEEN CTOD(d1) AND CTOD(d2);

INTO ARRAY ar1

dimension ar2(1)

SELECT COUNT(Anticvariat. anticvariat);

FROM myrgr! anticvariat INNER JOIN myrgr! buyer ;

ON Anticvariat. id_buyer = Buyer. id_buyer;

INTO ARRAY ar2

thisform. Text3.Value = Round((ar1(1)/ar2(1))*100,0)

o  найти весь товар, поступивший от заданного поставщика, чья стоимость больше, чем средняя стоимость заданного товара(ввод наименования), поступившего из данной страны(ввод наименования страны);

Command1=найти

tmp1 = bo1.text

tmp2 = bo2.text

tmp3 = bo3.text

SELECT Anticvariat. anticvariat, Anticvariat. place, Anticvariat. cost, Seller. Name_seller;

FROM myrgr! anticvariat INNER JOIN myrgr! seller ;

ON Anticvariat. id_seller = Seller. id_seller ;

WHERE seller. name_seller == tmp1;

AND anticvariat. cost > ;

(;

SELECT avg(Anticvariat. cost);

FROM myrgr! anticvariat;

WHERE (Anticvariat. Anticvariat = tmp2 ;

or Anticvariat. place = tmp3);

);

ORDER BY anticvariat. anticvariat

Command1=средняя стоимость

tmp2 = bo2.text

tmp3 = bo3.text

SELECT avg(Anticvariat. cost);

FROM myrgr! anticvariat;

WHERE Anticvariat. Anticvariat == tmp2 ;

or Anticvariat. place == tmp3;

o  найти долю дешевого товара(чья стоимость меньше заданной, ввод стоимости), поступившего от заданного поставщика и в целом

Command1=найти

d1=val (thisform. Text1.text)

p =(bo1.value)

dimension ar1(1)

SELECT COUNT(Anticvariat. Anticvariat);

FROM myrgr! anticvariat INNER JOIN myrgr! buyer ;

ON Anticvariat. id_buyer = Buyer. id_buyer;

INTO ARRAY ar1

dimension ar2(1)

SELECT count(anticvariat. anticvariat),anticvariat. cost;

FROM myrgr! anticvariat INNER JOIN myrgr! buyer ;

ON Anticvariat. id_buyer = Buyer. id_buyer;

WHERE (anticvariat. cost < d1);

INTO ARRAY ar2

dimension ar3(1)

SELECT count(anticvariat. anticvariat),anticvariat. cost;

FROM myrgr! anticvariat INNER JOIN myrgr! buyer ;

ON Anticvariat. id_buyer = Buyer. id_buyer;

WHERE ((anticvariat. cost < d1) and (Buyer. name_buyer = p));

INTO ARRAY ar3

thisform. Text2.Value = Round((ar2(1)/ar1(1))*100,0)

thisform. Text3.Value = Round((ar3(1)/ar1(1))*100,0)

o  найти среднюю стоимость товара, проданного за определенный промежуток времени(ввод интервала);

Command1=найти

p =bo1.value

d1=thisform. Text1.text

d2=thisform. Text2.text

SELECT Anticvariat. anticvariat, AVG(Anticvariat. cost);

FROM myrgr! anticvariat INNER JOIN myrgr! buyer ;

ON Anticvariat. id_buyer = Buyer. id_buyer;

WHERE Anticvariat. anticvariat == p;

AND Buyer. data_buy BETWEEN CTOD(d1) AND CTOD(d2)

o  найти весь товар, чья стоимость выше, чем средняя стоимость товара заданного производителя

Command1=найти

tmp = bo1.text

SELECT avg(Anticvariat. cost);

FROM myrgr! anticvariat;

WHERE Anticvariat. place == tmp

Command2=найти

tmp = bo1.text

SELECT anticvariat. anticvariat, anticvariat. cost, anticvariat. name_anticvariat, Anticvariat. place;

FROM myrgr! buyer INNER JOIN myrgr! anticvariat ;

ON Buyer. id_buyer = Anticvariat. id_buyer;

WHERE anticvariat. cost >;

(;

SELECT avg(Anticvariat. cost);

FROM myrgr! anticvariat;

WHERE Anticvariat. place == tmp ;

);

ORDER BY anticvariat. anticvariat

o  найти товар, который лучше всего раскупают, указать параметры(стоимость, производитель и т. д.)

Command1=найти

SELECT max(seller. number),anticvariat. anticvariat, anticvariat. cost, anticvariat. place, anticvariat. autor;

FROM myrgr! anticvariat INNER JOIN myrgr! seller ;

ON Anticvariat. id_seller = seller. id_seller

Пример работы.

·  найти весь товар, поступивший от заданного поставщика, чья стоимость больше, чем средняя стоимость заданного товара(ввод наименования), поступившего из данной страны(ввод наименования страны);

Средняя стоимость составляет:

Результат данного запроса:

Заключение.

Построенная система является упрощённым примером реализации функционального связывания структурированных и распределённых в определённом смысле данных, логически объединяющего подкомпоненты формируемого источника данных и образующего, таким образом, внутреннюю сеть взаимодействий.

Список использованных материалов.

MSDN Library, Copyright Microsoft Corporation