Содержание
Содержание. 2
Задача 1.9. 3
Задача 1.2. 8
Задача 5.5. 12
Задача 4.5. 16
Задача 6.6. 21
Список литературы.. 26
Задача 1.9
Для определения поставщика определенного товара выдать список поставщиков товаров группы «Мясо/птица» и данные для взаимодействия.
Решение
Реквизит «Название поставщика» является обязательным по условию задачи, остальные реквизиты используются в процедурах профилизации, сегментации и связи. В список данных для взаимодействия с поставщиками включен также и адрес в Интернете, так как соответствующее поле присутствует в схеме данных.
Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S(Список поставщиков определенного товара на примере поставщиков товаров группы «Мясо/птица» и их данных для взаимодействия)
S(Поставщики.Название, Поставщики.Адрес, Поставщики.Город, Поставщики.Область, Поставщики.Индекс, Поставщики.Страна, Поставщики.Телефон, Поставщики.Факс, Поставщики.ОсновнаяСтраница, Типы.Категория).
Поскольку сведения о том, кто является поставщиком определенного товара, находятся в таблице Товары, сведения о поставщиках в таблице Поставщики, а сведения о группе товара в таблице Типы, в запросе необходимо использовать таблицы Товары, Поставщики и Типы. Данные таблицы образуют часть схемы данных, используемую для решения задачи, поэтому других таблиц на входе процесса нет.
На выходе процесса представлено сообщение с определенной в предыдущем пункте структурой.
Получение выходного сообщения позволит уменьшить трудозатраты на выборку информации об определенных товарах на примере поставщиков товаров группы «Мясо/птица» и их данных для взаимодействия. Выдача наименований поставщиков и данных для взаимодействия с ними позволит повысить качество индивидуальной работы с каждым из них. Анализ данных о составе и количестве поставщиков по регионам в сопоставлении с проведенными операциями и выполненными мероприятиями позволит оценить результаты реализации бизнес-стратегии компании, ее товарной, ценовой и коммуникационной политики.
С позиций потребителя-пользователя запрос можно охарактеризовать как простой с поэтапным потреблением информации. Для работы с данными результирующая таблица может быть экспортирована в Excel. При реализации в Access данный запрос может быть запросом на выборку. При ведении истории запрос является хранимой процедурой. Он исполняется по мере возникновения потребности в информации в определенной динамике.
В процессе решения задачи с использованием SQL-проекта NorthwindCS применяется двухуровневая архитектура «клиент/сервер», вариант реализации технологии «клиент/сервер» DBS. В процессе решения задачи с использованием *.mdb-файла применяется RDA-вариант реализации технологии «клиент/сервер».
Подготовка запроса в Access с использованием *.mdb-файла осуществляется с использованием Конструктора, поскольку все данные находятся связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. SQL-запрос передается серверу, который возвращает клиенту результирующую таблицу. Выполнение процедур создания и использования запроса осуществляется на рабочей станции и на сервере сети.
Таблица Типы имеет простой ключ «КодТипа», таблица Поставщики – простой ключ «КодПоставщика», а таблица Товары – простой ключ «КодТовара». Таблицы Типы и Поставщики являются главными по отношению к таблице Товары. Тип связи «один-ко-многим». Связь по полю «КодТипа» и по полю «КодПоставщика» (ключи связи). Целостность по значениям определяется отсутствием в таблице Товары значений поля «КодТипа», которых нет в таблице Типы и отсутствием значений поля «КодПоставщика», которых нет в таблице Поставщики. Значения поля «КодТипа» и «КодПоставщика» в таблице Товары обновляются автоматически при изменении соответственно значений поля «КодТипа» в таблице Типы и значений поля «КодПоставщика» в таблице Поставщики.
Процедура реляционной обработки данных выполняется вручную. Представляем значения исходных данных в таблицах.
Таблица Товары (фрагмент):
Код товара |
Код поставщика |
Код типа |
2 |
7 |
3 |
3 |
7 |
6 |
Таблица Поставщики (фрагмент):
Код поставщика |
Название поставщика |
Адрес |
Город |
Область |
Индекс |
Страна |
Телефон |
Факс |
Основная страница |
7 |
Pavlova, Ltd. |
74 Rose St. |
Мельбурн |
Victoria |
3058 |
Австралия |
(03) 444-2343 |
(03) 444-6588 |
Pavlova ( на Web) |
20 |
Leka Trading |
471 Serangoon Loop, Suite #402 |
Сингапур |
3058 |
Сингапур |
555-8787 |
Таблица Типы (фрагмент):
Код типа |
Категория |
3 |
Кондитерские изделия |
6 |
Мясо/птица |
Результат выполнения реляционной операции произведения (фрагмент):
Код товара |
Код поставщика |
Код типа |
Код поставщика |
Название |
Адрес |
Город |
Область |
Индекс |
Страна |
Телефон |
Факс |
Основная страница |
Код типа |
Категория |
2 |
7 |
3 |
7 |
Pavlova, Ltd. |
74 Rose St. |
Мельбурн |
Victoria |
3058 |
Австралия |
(03) 444-2343 |
(03) 444-6588 |
Pavlova (Web) |
3 |
Кондитерские изделия |
2 |
7 |
3 |
20 |
Leka Trading |
471 Serangoon Loop, Suite #402 |
Сингапур |
0512 |
Сингапур |
555-8787 |
3 |
Кондитерские изделия |
|||
3 |
7 |
6 |
7 |
Pavlova, Ltd. |
74 Rose St. |
Мельбурн |
Victoria |
3058 |
Австралия |
(03) 444-2343 |
(03) 444-6588 |
Pavlova (Web) |
3 |
Кондитерские изделия |
3 |
7 |
6 |
20 |
Leka Trading |
471 Serangoon Loop, Suite #402 |
Сингапур |
0512 |
Сингапур |
555-8787 |
3 |
Кондитерские изделия |
|||
2 |
7 |
3 |
7 |
Pavlova, Ltd. |
74 Rose St. |
Мельбурн |
Victoria |
3058 |
Австралия |
(03) 444-2343 |
(03) 444-6588 |
Pavlova (Web) |
6 |
Мясо /птица |
2 |
7 |
3 |
20 |
Leka Trading |
471 Serangoon Loop, Suite #402 |
Сингапур |
0512 |
Сингапур |
555-8787 |
6 |
Мясо /птица |
|||
3 |
7 |
6 |
7 |
Pavlova, Ltd. |
74 Rose St. |
Мельбурн |
Victoria |
3058 |
Австралия |
(03) 444-2343 |
(03) 444-6588 |
Pavlova (Web) |
6 |
Мясо /птица |
3 |
7 |
6 |
20 |
Leka Trading |
471 Serangoon Loop, Suite #402 |
Сингапур |
0512 |
Сингапур |
555-8787 |
6 |
Мясо /птица |
Результат выполнения реляционной операции соединения – сцепления строк с совпадающими значениями поля «Код Поставщика» и «Код Типа» (фрагмент):
Код товара |
Код поставщика |
Код типа |
Код поставщика |
Название |
Адрес |
Город |
Область |
Индекс |
Страна |
Телефон |
Факс |
Основная страница |
Код типа |
Категория |
2 |
7 |
3 |
7 |
Pavlova, Ltd. |
74 Rose St. |
Мельбурн |
Victoria |
3058 |
Австралия |
(03) 444-2343 |
(03) 444-6588 |
Pavlova (Web) |
3 |
Кондитерские изделия |
3 |
7 |
6 |
7 |
Pavlova, Ltd. |
74 Rose St. |
Мельбурн |
Victoria |
3058 |
Австралия |
(03) 444-2343 |
(03) 444-6588 |
Pavlova (Web) |
6 |
Мясо /птица |
Результат выполнения операции селекции – выбора строк по принадлежности значений поля «Категория» - введенному нами значению «Мясо/птица»:
Код товара |
Код поставщика |
Код типа |
Код поставщика |
Название |
Адрес |
Город |
Область |
Индекс |
Страна |
Телефон |
Факс |
Основная страница |
Код типа |
Категория |
3 |
7 |
6 |
7 |
Pavlova, Ltd. |
74 Rose St. |
Мельбурн |
Victoria |
3058 |
Австралия |
(03) 444-2343 |
(03) 444-6588 |
Pavlova (Web) |
6 |
Мясо /птица |
Результат выполнения операции проекции (фрагмент):
Название |
Адрес |
Город |
Область |
Индекс |
Страна |
Телефон |
Факс |
Основная страница |
Категория |
Pavlova, Ltd. |
74 Rose St. |
Мельбурн |
Victoria |
3058 |
Австралия |
(03) 444-2343 |
(03) 444-6588 |
Pavlova (Web) |
Мясо /птица |
Полный вариант запроса на выборку поставщиков определенного товара на примере поставщиков товаров группы «Мясо/птица» и данных для взаимодействия.
SELECT DISTINCT Поставщики.Название, Поставщики.Адрес, Поставщики.Город, Поставщики.Область, Поставщики.Индекс, Поставщики.Страна, Поставщики.Телефон, Поставщики.Факс, Поставщики.ОсновнаяСтраница, Типы.Категория
FROM Типы INNER JOIN (Поставщики INNER JOIN Товары ON Поставщики.КодПоставщика = Товары.КодПоставщика) ON Типы.КодТипа = Товары.КодТипа
WHERE (((Типы.Категория)=[Наименование Товара]));
Задача 1.2
Выдать названия клиентов с заказами на октябрь текущего года, их адреса, сведения о месте нахождения.
Решение
Реквизит «Название клиента» является обязательным по условию задачи, остальные реквизиты используются в процедурах профилизации, сегментации и связи. Адрес в Интернете отсутствует по причине отсутствия соответствующего поля в схеме данных. Сведения о заказах отсутствуют, поскольку запрос на получение соответствующего сообщения уже имеется в составе объектов и в нем содержатся сведения о клиентах. Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S_( Клиенты с заказами на октябрь текущего года, их адреса, местонахождение)
S_(Клиенты.КодКлиента, Клиенты.Название, Клиенты.Адрес, Клиенты.Город, Клиенты.Область, Клиенты.Индекс, Клиенты.Страна, Клиенты.Телефон, Клиенты.Факс, Заказы.ДатаНазначения).
Определяем состав полей и таблиц, используемых в запросе из схемы № 1 (база данных Борей). Представляем в графическом виде обобщенную функционально-технологическую схему задачи.
Поскольку сведения о заказе клиента на определенную дату находятся в таблице Заказы, а сведения о клиенте находятся в таблице Клиенты, в запросе необходимо использовать таблицы Заказы и Клиенты. Данные таблицы образуют часть схемы данных, используемую для решения задачи, поэтому других таблиц на входе процесса нет.
На выходе процесса представлено сообщение с определенной в предыдущем пункте структурой.
Получение выходного сообщения позволит уменьшить трудозатраты на выборку информации о клиентах с заказами на октябрь текущего года. Анализ данных о составе и количестве клиентов по регионам в сопоставлении с проведенными операциями и выполненными мероприятиями позволит оценить результаты реализации бизнес-стратегии компании. Выдача названий клиентов позволит повысить качество индивидуальной работы с клиентурой. Получение информации всеми потребителями должно положительно повлиять на результаты деятельности компании.
С позиций потребителя-пользователя запрос можно охарактеризовать как простой с поэтапным потреблением информации. Для работы с данными результирующая таблица может быть экспортирована в Excel. При реализации в Access данный запрос может быть запросом на выборку. При ведении истории запрос является хранимой процедурой. Он исполняется по мере возникновения потребности в информации в определенной динамике.
В процессе решения задачи с использованием SQL-проекта NorthwindCS применяется двухуровневая архитектура «клиент/сервер», вариант реализации технологии «клиент/сервер» DBS. В процессе решения задачи с использованием *.mdb-файла применяется RDA-вариант реализации технологии «клиент/сервер».
Подготовка запроса в Access с использованием *.mdb-файла осуществляется с использованием Конструктора, поскольку все данные находятся связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. SQL-запрос передается серверу, который возвращает клиенту результирующую таблицу. Выполнение процедур создания и использования запроса осуществляется на рабочей станции и на сервере сети.
Таблица Заказы имеет простой ключ «КодЗаказа», таблица Клиенты – простой ключ «КодКлиента». Таблица Клиенты является главной, Заказы – подчиненной. Тип связи «один-ко-многим». Связь по полю «КодКлиента» (ключ связи). Целостность по значениям определяется отсутствием в таблице Заказы значений поля «КодКлиента», которых нет в таблице Клиенты. Значения поля «КодКлиента» в таблице Заказы обновляются автоматически при изменении значений поля «КодКлиента» в таблице Клиенты.
Процедура реляционной обработки данных выполняется вручную. Представляем значения исходных данных в таблицах.
Таблица Заказы (фрагмент):
Код заказа |
Код клиента |
Дата Назначения |
10308 |
ANATR |
16-окт-2004 |
11011 |
ALFKI |
06-июн-1996 |
Таблица Клиенты (фрагмент):
Код клиента |
Название |
Адрес |
Город |
Область |
Индекс |
Страна |
Телефон |
Факс |
ALFKI |
Alfreds Futterkiste |
Obere Str. 57 |
Берлин |
12209 |
Германия |
030-0074321 |
030-0076545 |
|
ANATR |
Ana Trujillo Emparelados |
Avda. de la Constitucion 2222 |
Мехико |
050221 |
Мексика |
(5) 555-47291 |
(5) 555-3745 |
Результат выполнения реляционной операции произведения (фрагмент):
Код клиента |
Название |
Адрес |
Город |
Область |
Индекс |
Страна |
Телефон |
Факс |
Код заказа |
Код Клиента |
Дата назначения |
ALFKI |
Alfreds Futterkiste |
Obere Str. 57 |
Берлин |
12209 |
Германия |
030-0074321 |
030-0076545 |
11011 |
ALFKI |
06-июн-1996 |
|
ALFKI |
Alfreds Futterkiste |
Obere Str. 57 |
Берлин |
12209 |
Германия |
030-0074321 |
030-0076545 |
10308 |
ANATR |
16-окт-2004 |
|
ANATR |
Ana Trujillo Emparelados |
Avda. de la Constitucion 2222 |
Мехико |
050221 |
Мексика |
(5) 555-47291 |
(5) 555-3745 |
11011 |
ALFKI |
06-июн-1996 |
|
ANATR |
Ana Trujillo Emparelados |
Avda. de la Constitucion 2222 |
Мехико |
050221 |
Мексика |
(5) 555-47291 |
(5) 555-3745 |
10308 |
ANATR |
16-окт-2004 |
Результат выполнения реляционной операции соединения – сцепления строк с совпадающими значениями поля «Код Клиента» (фрагмент):
Код клиента |
Название |
Адрес |
Город |
Область |
Индекс |
Страна |
Телефон |
Факс |
Код заказа |
Код Клиента |
Дата назначения |
ALFKI |
Alfreds Futterkiste |
Obere Str. 57 |
Берлин |
12209 |
Германия |
030-0074321 |
030-0076545 |
11011 |
ALFKI |
06-июн-1996 |
|
ANATR |
Ana Trujillo Emparelados |
Avda. de la Constitucion 2222 |
Мехико |
050221 |
Мексика |
(5) 555-47291 |
(5) 555-3745 |
10308 |
ANATR |
16-окт-2004 |
Результат выполнения операции селекции – выбора строк по принадлежности значений поля «ДатаНазначения» интервалу от 01.10.2004 до 31.10.2004 включительно (фрагмент):
Код клиента |
Название |
Адрес |
Город |
Область |
Индекс |
Страна |
Телефон |
Факс |
Код заказа |
Код Клиента |
Дата назначения |
ANATR |
Ana Trujillo Emparelados |
Avda. de la Constitucion 2222 |
Мехико |
050221 |
Мексика |
(5) 555-47291 |
(5) 555-3745 |
10308 |
ANATR |
16-окт-2004 |
Результат выполнения операции проекции (фрагмент):
Код клиента |
Название |
Адрес |
Город |
Область |
Индекс |
Страна |
Телефон |
Факс |
Дата назначения |
ANATR |
Ana Trujillo Emparelados |
Avda. de la Constitucion 2222 |
Мехико |
050221 |
Мексика |
(5) 555-47291 |
(5) 555-3745 |
16-окт-2004 |
Полный вариант запроса на выборку клиентов с заказами на октябрь текущего года, их адресов и сведений о месте нахождения.
SELECT Клиенты.КодКлиента, Клиенты.Название, Клиенты.ОбращатьсяК, Клиенты.Должность, Клиенты.Адрес, Клиенты.Город, Клиенты.Область, Клиенты.Индекс, Клиенты.Страна, Клиенты.Телефон, Клиенты.Факс, Заказы.ДатаНазначения
FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента=Заказы.КодКлиента
WHERE ((Заказы.ДатаНазначения) Between #10/1/2004# And #10/31/2004#);
Задача 5.5
Получить сведения о незастрахованных компьютерах.
Решение:
Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S(Сведения о незастрахованных компьютерах)
S([Основные фонды].КодОсновныхФондов, [Основные фонды].ОписаниеОсновныхФондов, [Основные фонды].НомерМодели, [Основные фонды].СерийныйНомер, [Основные фонды].[Штрих-код], [Основные фонды].ДатаПриобретения, [Основные фонды].ЦенаПокупки, [Основные фонды].СрокАмортизации, [Основные фонды].СуммаСтраховки, [Типы фондов].ТипОсновныхФондов).
Поскольку сведения обо всех основных фондах (в том числе и незастрахованных компьютерах) находятся в таблице Основные фонды, а типы основных фондов (в нашем случае это компьютеры) перечислены в таблице Типы фондов, в запросе необходимо использовать таблицы Основные Фонды и Типы фондов. Данные таблицы образуют часть схемы данных, используемую для решения задачи, поэтому других таблиц на входе процесса нет.
На выходе процесса представлено сообщение с определенной в предыдущем пункте структурой.
Получение выходного сообщения позволит уменьшить трудозатраты на выборку сведений о незастрахованных компьютерах.
С позиций потребителя-пользователя запрос можно охарактеризовать как простой с поэтапным потреблением информации. Для работы с данными результирующая таблица может быть экспортирована в Excel. При реализации в Access данный запрос может быть запросом на выборку. При ведении истории запрос является хранимой процедурой. Он исполняется по мере возникновения потребности в информации в определенной динамике.
В процессе решения задачи с использованием SQL-проекта NorthwindCS применяется двухуровневая архитектура «клиент/сервер», вариант реализации технологии «клиент/сервер» DBS. В процессе решения задачи с использованием *.mdb-файла применяется RDA-вариант реализации технологии «клиент/сервер».
Подготовка запроса в Access с использованием *.mdb-файла осуществляется с использованием Конструктора, поскольку все данные находятся связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. SQL-запрос передается серверу, который возвращает клиенту результирующую таблицу. Выполнение процедур создания и использования запроса осуществляется на рабочей станции и на сервере сети.
Таблица Типы фондов имеет простой ключ «КодТипаОсновныхФондов», таблица Основные фонды – простой ключ «КодОсновныхФондов». Таблица Типы фондов является главной, а таблица Основные фонды – подчиненной. Тип связи «один-ко-многим». Связь по полю «КодТипаОсновныхФондов» (ключ связи). Целостность по значениям определяется отсутствием в таблице Основные фонды значений поля «КодТипаОсновныхФондов», которых нет в таблице Типы фондов. Значения поля «КодТипаОсновныхФондов» в таблице Основные фонды обновляются автоматически при изменении соответственно значений поля «КодТипаОсновныхФондов» в таблице Типы фондов.
Процедура реляционной обработки данных выполняется вручную. Представляем значения исходных данных в таблицах.
Таблица Типы фондов (фрагмент):
Код типа основных фондов |
Тип основных фондов |
2 |
Компьютер |
3 |
Принтер |
Таблица Основные фонды (фрагмент):
Код Основных Фондов |
Описание Основных Фондов |
Код типа Основных Фондов |
Номер Модели |
Серийный Номер |
Штрих-код |
Дата Приобретения |
Цена Покупки |
Срок аморти зации |
Сумма Страховки |
1 |
Персональный компьютер |
2 |
12344111 |
01.01.1994 |
2 500,00р. |
5 |
100,00р. |
||
4 |
Лазерный принтер |
3 |
ALW4 |
4556544-9 |
04.01.1994 |
1 500,00р. |
5 |
0,00р. |
|
6 |
Персональный компьютер |
2 |
ATL2400 |
23456789 |
01.02.1994 |
1 800,00р. |
5 |
0,00р. |
Результат выполнения реляционной операции произведения (фрагмент):
Код Основных Фондов |
Описание Основных Фондов |
Код типа Основных Фондов |
Номер Модели |
Серийный Номер |
Штрих-код |
Дата Приобретения |
Цена Покупки |
Срок аморти зации |
Сумма Страховки |
Код типа основных фондов |
Тип основных фондов |
1 |
Персональный компьютер |
2 |
12344111 |
01.01.1994 |
2 500,00р. |
5 |
100,00р. |
2 |
Компьютер |
||
1 |
Персональный компьютер |
2 |
12344111 |
01.01.1994 |
2 500,00р. |
5 |
100,00р. |
3 |
Принтер |
||
4 |
Лазерный принтер |
3 |
ALW4 |
4556544-9 |
04.01.1994 |
1 500,00р. |
5 |
0,00р. |
2 |
Компьютер |
|
4 |
Лазерный принтер |
3 |
ALW4 |
4556544-9 |
04.01.1994 |
1 500,00р. |
5 |
0,00р. |
3 |
Принтер |
|
6 |
Персональный компьютер |
2 |
ATL2400 |
23456789 |
01.02.1994 |
1 800,00р. |
5 |
0,00р. |
2 |
Компьютер |
|
6 |
Персональный компьютер |
2 |
ATL2400 |
23456789 |
01.02.1994 |
1 800,00р. |
5 |
0,00р. |
3 |
Принтер |
Результат выполнения реляционной операции соединения – сцепления строк с совпадающими значениями поля «Код Типа Основных Фондов» (фрагмент):
Код Основных Фондов |
Описание Основных Фондов |
Код типа Основных Фондов |
Номер Модели |
Серийный Номер |
Штрих-код |
Дата Приобретения |
Цена Покупки |
Срок аморти зации |
Сумма Страховки |
Код типа основных фондов |
Тип основных фондов |
1 |
Персональный компьютер |
2 |
12344111 |
01.01.1994 |
2 500,00р. |
5 |
100,00р. |
2 |
Компьютер |
||
4 |
Лазерный принтер |
3 |
ALW4 |
4556544-9 |
04.01.1994 |
1 500,00р. |
5 |
0,00р. |
3 |
Принтер |
|
6 |
Персональный компьютер |
2 |
ATL2400 |
23456789 |
01.02.1994 |
1 800,00р. |
5 |
0,00р. |
2 |
Компьютер |
Результат выполнения операции селекции – выбора строк по принадлежности значений поля «Тип Основных Фондов» значению «Компьютер» и поля «Сумма Страховки» - значению 0,00р. :
Код Основных Фондов |
Описание Основных Фондов |
Код типа Основных Фондов |
Номер Модели |
Серийный Номер |
Штрих-код |
Дата Приобретения |
Цена Покупки |
Срок аморти зации |
Сумма Страховки |
Код типа основных фондов |
Тип основных фондов |
6 |
Персональный компьютер |
2 |
ATL2400 |
23456789 |
01.02.1994 |
1 800,00р. |
5 |
0,00р. |
2 |
Компьютер |
Результат выполнения операции проекции (фрагмент):
Код Основных Фондов |
Описание Основных Фондов |
Номер Модели |
Серийный Номер |
Штрих-код |
Дата Приобретения |
Цена Покупки |
Срок аморти зации |
Сумма Страховки |
Тип основных фондов |
6 |
Персональный компьютер |
ATL2400 |
23456789 |
01.02.1994 |
1 800,00р. |
5 |
0,00р. |
Компьютер |
Полный вариант запроса на выборку сведений о незастрахованных компьютерах.
SELECT [Основные фонды].КодОсновныхФондов, [Основные фонды].ОписаниеОсновныхФондов, [Основные фонды].НомерМодели, [Основные фонды].СерийныйНомер, [Основные фонды].[Штрих-код], [Основные фонды].ДатаПриобретения, [Основные фонды].ЦенаПокупки, [Основные фонды].СрокАмортизации, [Основные фонды].СуммаСтраховки, [Типы фондов].ТипОсновныхФондов
FROM [Типы фондов] RIGHT JOIN [Основные фонды] ON [Типы фондов].КодТипаОсновныхФондов = [Основные фонды].КодТипаОсновныхФондов
WHERE ((([Основные фонды].СуммаСтраховки)=0) AND (([Типы фондов].ТипОсновныхФондов)="Компьютер"));
Задача 4.5
Получить сведения о затратах по незавершенным на сегодняшнее число проектам с партнерами из Германии, включая стоимость и продолжительность.
Решение
Реквизиты «Описание затрат», «Оценочная стоимость», «Дата начала проекта», «Дата завершения проекта» являются обязательным по условию задачи, остальные реквизиты используются в процедурах профилизации, сегментации и связи. Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S(Сведения о затратах по незавершенным на сегодняшнее число проектам с партнерами из Германии, включая стоимость и продолжительность)
S(Затраты.КодЗатрат, Затраты.ОписаниеЗатрат, Проекты.НазваниеПроекта, Партнеры.Страна, Проекты.ОценочнаяСтоимость, Проекты.ДатаНачалаПроекта, Проекты.ДатаЗавершенияПроекта).
Поскольку сведения о затратах находятся в таблице Затраты, сведения о проектах в таблице Проекты, а сведения о партнерах в таблице Партнеры, в запросе необходимо использовать таблицы Затраты, Проекты и Партнеры. Данные таблицы образуют часть схемы данных, используемую для решения задачи, поэтому других таблиц на входе процесса нет.
На выходе процесса представлено сообщение с определенной в предыдущем пункте структурой.
Получение выходного сообщения позволит уменьшить трудозатраты на выборку сведений о затратах по незавершенным на сегодняшнее число проектам с партнерами из Германии, включая стоимость и продолжительность. Анализ данных о суммах затрат и назначении затрат позволит оценить результаты реализации бизнес-стратегии компании.
С позиций потребителя-пользователя запрос можно охарактеризовать как простой с поэтапным потреблением информации. Для работы с данными результирующая таблица может быть экспортирована в Excel. При реализации в Access данный запрос может быть запросом на выборку. При ведении истории запрос является хранимой процедурой. Он исполняется по мере возникновения потребности в информации в определенной динамике.
В процессе решения задачи с использованием SQL-проекта NorthwindCS применяется двухуровневая архитектура «клиент/сервер», вариант реализации технологии «клиент/сервер» DBS. В процессе решения задачи с использованием *.mdb-файла применяется RDA-вариант реализации технологии «клиент/сервер».
Подготовка запроса в Access с использованием *.mdb-файла осуществляется с использованием Конструктора, поскольку все данные находятся связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. SQL-запрос передается серверу, который возвращает клиенту результирующую таблицу. Выполнение процедур создания и использования запроса осуществляется на рабочей станции и на сервере сети.
Таблица Партнеры имеет простой ключ «КодКлиента», таблица Проекты – простой ключ «КодПроекта», а таблица Затраты – простой ключ «КодЗатрат». Таблица Партнеры является главной по отношению к таблице Проекты, а таблица Проекты является главной по отношению к таблице Затраты. Тип связи «один-ко-многим». Связь по полю «КодКлиента» и по полю «КодПроекта» (ключи связи). Целостность по значениям определяется отсутствием в таблице Проекты значений поля «КодКлиента», которых нет в таблице Партнеры и отсутствием значений поля «КодПроекта» в таблице Затраты, которых нет в таблице Проекты. Значения поля «КодКлиента» в таблице Проекты обновляются автоматически при изменении соответственно значений поля «КодКлиента» в таблице Партнеры и значения поля «КодПроекта» в таблице Заказы обновляются автоматически при изменении соответственно значений поля «КодПроекта» в таблице Проекты.
Процедура реляционной обработки данных выполняется вручную. Представляем значения исходных данных в таблицах.
Таблица Проекты (фрагмент):
Код проекта |
Название проекта |
Код клиента |
Оценочная стоимость |
Дата начала проекта |
Дата завершения проекта |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
4 |
KLMN |
2 |
28 000,00р. |
01.02.1994 |
31.03.1995 |
Таблица Заказы (фрагмент):
Код затрат |
Код проекта |
Описание затрат |
1 |
1 |
Поездки за этот период |
2 |
1 |
Фотокопии |
4 |
1 |
Поездки за этот период |
5 |
4 |
Поездки за этот период |
Таблица Партнеры (фрагмент):
Код клиента |
Страна |
2 |
Россия |
3 |
Германия |
Результат выполнения реляционной операции произведения (фрагмент):
Код затрат |
Код проекта |
Описание затрат |
Код клиента |
Страна |
Код проекта |
Название проекта |
Код клиента |
Оценочная стоимость |
Дата начала проекта |
Дата завершения проекта |
1 |
1 |
Поездки за этот период |
2 |
Россия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
1 |
1 |
Поездки за этот период |
2 |
Россия |
4 |
KLMN |
2 |
28 000,00р. |
01.02.1994 |
31.03.1995 |
1 |
1 |
Поездки за этот период |
3 |
Германия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
1 |
1 |
Поездки за этот период |
3 |
Германия |
4 |
KLMN |
2 |
28 000,00р. |
01.02.1994 |
31.03.1995 |
2 |
1 |
Фотокопии |
2 |
Россия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
2 |
1 |
Фотокопии |
2 |
Россия |
4 |
KLMN |
2 |
28 000,00р. |
01.02.1994 |
31.03.1995 |
2 |
1 |
Фотокопии |
3 |
Германия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
2 |
1 |
Фотокопии |
3 |
Германия |
4 |
KLMN |
2 |
28 000,00р. |
01.02.1994 |
31.03.1995 |
4 |
1 |
Поездки за этот период |
2 |
Россия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
4 |
1 |
Поездки за этот период |
2 |
Россия |
4 |
KLMN |
2 |
28 000,00р. |
01.02.1994 |
31.03.1995 |
4 |
1 |
Поездки за этот период |
3 |
Германия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
4 |
1 |
Поездки за этот период |
3 |
Германия |
4 |
KLMN |
2 |
28 000,00р. |
01.02.1994 |
31.03.1995 |
5 |
4 |
Поездки за этот период |
2 |
Россия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
5 |
4 |
Поездки за этот период |
2 |
Россия |
4 |
KLMN |
2 |
28 000,00р. |
01.02.1994 |
31.03.1995 |
5 |
4 |
Поездки за этот период |
3 |
Германия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
5 |
4 |
Поездки за этот период |
3 |
Германия |
4 |
KLMN |
2 |
28 000,00р. |
01.02.1994 |
31.03.1995 |
Результат выполнения реляционной операции соединения – сцепления строк с совпадающими значениями поля «Код Клиента» и «Код Проекта» (фрагмент):
Код затрат |
Код проекта |
Описание затрат |
Код клиента |
Страна |
Код проекта |
Название проекта |
Код клиента |
Оценочная стоимость |
Дата начала проекта |
Дата завершения проекта |
1 |
1 |
Поездки за этот период |
3 |
Германия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
2 |
1 |
Фотокопии |
3 |
Германия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
4 |
1 |
Поездки за этот период |
3 |
Германия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
5 |
4 |
Поездки за этот период |
2 |
Россия |
4 |
KLMN |
2 |
28 000,00р. |
01.02.1994 |
31.03.1995 |
Результат выполнения операции селекции – выбора строк по принадлежности значений поля «Страна» значению «Германия» и значений поля «Дата завершения проекта» - значению большему, чем значение текущей даты, возвращаемой выражением Date():
Код затрат |
Код проекта |
Описание затрат |
Код клиента |
Страна |
Код проекта |
Название проекта |
Код клиента |
Оценочная стоимость |
Дата начала проекта |
Дата завершения проекта |
1 |
1 |
Поездки за этот период |
3 |
Германия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
2 |
1 |
Фотокопии |
3 |
Германия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
4 |
1 |
Поездки за этот период |
3 |
Германия |
1 |
ABC |
3 |
30 000,00р. |
11.12.1994 |
31.05.2005 |
Результат выполнения операции проекции (фрагмент):
Код затрат |
Описание затрат |
Название проекта |
Страна |
Оценочная стоимость |
Дата начала проекта |
Дата завершения проекта |
1 |
Поездки за этот период |
ABC |
Германия |
30 000,00р. |
11.12.1994 |
31.05.2005 |
2 |
Фотокопии |
ABC |
Германия |
30 000,00р. |
11.12.1994 |
31.05.2005 |
4 |
Поездки за этот период |
ABC |
Германия |
30 000,00р. |
11.12.1994 |
31.05.2005 |
Полный вариант запроса на выборку сведений о затратах по незавершенным на сегодняшнее число проектам с партнерами из Германии, включая стоимость и продолжительность.
SELECT Затраты.КодЗатрат, Затраты.ОписаниеЗатрат, Проекты.НазваниеПроекта, Партнеры.Страна, Проекты.ОценочнаяСтоимость, Проекты.ДатаНачалаПроекта, Проекты.ДатаЗавершенияПроекта
FROM (Партнеры INNER JOIN Проекты ON Партнеры.КодКлиента = Проекты.КодКлиента) INNER JOIN Затраты ON Проекты.КодПроекта = Затраты.КодПроекта
WHERE (((Партнеры.Страна)="Германия") AND ((Проекты.ДатаЗавершенияПроекта)>Date()));
Задача 6.6
Сравнить данные о продажах по бумагам. По какой бумаге объем продаж максимален?
Решение
Реквизит «Наименование бумаги» является обязательным по условию задачи, остальные реквизиты используются в процедурах профилизации, сегментации и связи. Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S(Бумага, по которой объем продаж максимален)
S([Заявки на продажу].КодБум, Бумаги.НаимБум, Sum([Заявки на продажу].[Объем заявкиПрНач]) AS [Sum-Объем заявкиПрНач]).
Определяем состав полей и таблиц, используемых в запросе из схемы № 6 (база данных Бумаги). Представляем в графическом виде обобщенную функционально-технологическую схему задачи (рис.5).
Поскольку сведения о заявках на продажу бумаг находятся в таблице Заявки на продажу, а сведения о бумагах в таблице Бумаги, в запросе необходимо использовать таблицы Заявки на продажу и Бумаги. Данные таблицы образуют часть схемы данных, используемую для решения задачи, поэтому других таблиц на входе процесса нет.
На выходе процесса представлено сообщение с определенной в предыдущем пункте структурой.
Получение выходного сообщения позволит уменьшить трудозатраты на выборку данных о бумаге, по которой объем продаж максимален.
С позиций потребителя-пользователя запрос можно охарактеризовать как простой с поэтапным потреблением информации. Для работы с данными результирующая таблица может быть экспортирована в Excel. При реализации в Access данный запрос может быть запросом на выборку. При ведении истории запрос является хранимой процедурой. Он исполняется по мере возникновения потребности в информации в определенной динамике.
В процессе решения задачи с использованием SQL-проекта NorthwindCS применяется двухуровневая архитектура «клиент/сервер», вариант реализации технологии «клиент/сервер» DBS. В процессе решения задачи с использованием *.mdb-файла применяется RDA-вариант реализации технологии «клиент/сервер».
Подготовка запроса в Access с использованием *.mdb-файла осуществляется с использованием Конструктора, поскольку все данные находятся связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. SQL-запрос передается серверу, который возвращает клиенту результирующую таблицу. Выполнение процедур создания и использования запроса осуществляется на рабочей станции и на сервере сети.
Таблица Бумаги имеет простой ключ «КодБум», а таблица Заявки на продажу – простой ключ «КодЗаявкиПр». Таблица Бумаги является главной по отношению к таблице Заявки на продажу. Тип связи «один-ко-многим». Связь по полю «КодБум» (ключ связи). Целостность по значениям определяется отсутствием в таблице Заявки на продажу значений поля «КодБум», которых нет в таблице Бумаги. Значения поля «КодБум» в таблице Заявки на продажу обновляются автоматически при изменении соответственно значений поля «КодБум» в таблице Бумаги.
Процедура реляционной обработки данных выполняется вручную. Представляем значения исходных данных в таблицах.
Таблица Бумаги (фрагмент):
Код бумаги |
Наименование бумаги |
101 |
ОАО "Автоматика-Север" |
201 |
Красная шапочка |
301 |
Индиго-банк |
Таблица Типы (фрагмент):
Номер Заявки Продажи |
Код бумаги |
Объем заявки |
1 |
101 |
200 |
2 |
301 |
100 |
3 |
201 |
10 |
4 |
201 |
300 |
Результат выполнения реляционной операции произведения (фрагмент):
Код бумаги |
Наименование бумаги |
Номер Заявки Продажи |
Код бумаги |
Объем заявки |
101 |
ОАО "Автоматика-Север" |
1 |
101 |
200 |
201 |
Красная шапочка |
1 |
101 |
200 |
301 |
Индиго-банк |
1 |
101 |
200 |
101 |
ОАО "Автоматика-Север" |
2 |
301 |
100 |
201 |
Красная шапочка |
2 |
301 |
100 |
301 |
Индиго-банк |
2 |
301 |
100 |
101 |
ОАО "Автоматика-Север" |
3 |
201 |
10 |
201 |
Красная шапочка |
3 |
201 |
10 |
301 |
Индиго-банк |
3 |
201 |
10 |
101 |
ОАО "Автоматика-Север" |
4 |
201 |
300 |
201 |
Красная шапочка |
4 |
201 |
300 |
301 |
Индиго-банк |
4 |
201 |
300 |
Результат выполнения реляционной операции соединения – сцепления строк с совпадающими значениями поля «Код Бумаги» (фрагмент):
Код бумаги |
Наименование бумаги |
Номер Заявки Продажи |
Код бумаги |
Объем заявки |
101 |
ОАО "Автоматика-Север" |
1 |
101 |
200 |
301 |
Индиго-банк |
2 |
301 |
100 |
201 |
Красная шапочка |
3 |
201 |
10 |
201 |
Красная шапочка |
4 |
201 |
300 |
Результат выполнения операций группировки и суммирования по полю «Объем заявки» для каждой отдельной бумаги и последующего выполнения операции TOP 1 – выбора первой строки из списка, отсортированного по убыванию (с помощью операции DESC) поля «Sum-Объем заявкиПрНач» (суммарное значение объема для каждой бумаги по заявкам на продажу), т.е. выбор максимального суммарного значения:
Код бумаги |
Наименование бумаги |
Sum-Объем заявкиПрНач |
201 |
Красная шапочка |
310 |
Результат выполнения операции проекции (фрагмент):
Наименование бумаги |
Sum-Объем заявкиПрНач |
Красная шапочка |
310 |
Полный вариант запроса на выборку бумаги, по которой объем продаж максимален.
SELECT DISTINCTROW TOP 1 Бумаги.НаимБум, Sum([Заявки на продажу].[Объем заявкиПрНач]) AS [Sum-Объем заявкиПрНач]
FROM Бумаги INNER JOIN [Заявки на продажу] ON Бумаги.КодБум = [Заявки на продажу].КодБум
GROUP BY [Заявки на продажу].КодБум, Бумаги.НаимБум
ORDER BY Sum([Заявки на продажу].[Объем заявкиПрНач]) DESC;
Список литературы
1. Информационные системы в экономике / Под ред. В.Дика. – М.: Финансы и статистика,1996. -272 с.
2. Информатика: Учебник / Под ред. проф. Н.В. Макаровой. – М.: Финансы и статистика, 1998. – 768 с.
3. Карпова Т. Базы данных: модели, разработка, реализация. – СПб.: Питер, 2001. – 304 с.
4. Острейковский В. А. Информатика. - М.: Высшая школа, 1999. – 510 с.
5. Робинсон С. Microsoft Access 2000. – СПб.: Питер, 2001. – 512