Содержание

1. База данных «Борей»......................................................................................................... 3

1.1. Схема базы данных «Борей»..................................................................................... 3

1.2. Список поставщиков товаров группы «Рыбопродукты»...................................... 3

1.2.1. Определение состава выходного сообщения................................................... 3

1.2.2. Разработка модели процесса.............................................................................. 4

1.2.3. Общее описание процесса решения задачи..................................................... 4

1.2.4. Представление подсхемы базы данных............................................................ 5

1.2.5. Ручная обработка данных.................................................................................. 5

1.2.6. Формирование и отладка запроса..................................................................... 8

1.2.7. Подготовка запроса с использованием Конструктора.................................... 8

1.3.      Клиенты, заказавшие товары на 1 ноября........................................................... 9

1.3.1. Определение состава выходного сообщения................................................... 9

1.3.2. Разработка модели процесса............................................................................ 10

1.3.3. Общее описание процесса решения задачи................................................... 10

1.3.4. Представление подсхемы базы данных для запроса..................................... 11

1.3.5. Ручная обработка данных................................................................................ 11

1.3.6. Формирование и отладка запроса................................................................... 13

1.3.7. Подготовка запроса в Конструкторе.............................................................. 13

2. База данных «Заказы на работы».................................................................................... 15

2.1. Схема базы данных «Заказы на работы»............................................................... 15

2.2. Необходимое оборудование для заказов клиентов из России............................. 15

2.2.1. Определение состава выходного сообщения................................................. 15

2.2.2. Разработка модели процесса............................................................................ 16

2.2.3. Общее описание процесса решения задачи................................................... 16

2.2.4. Представление подсхемы базы данных.......................................................... 17

2.2.5. Ручная обработка данных................................................................................ 17

2.2.6. Формирование и отладка запроса................................................................... 22

2.2.7. Подготовка запроса в режиме Конструктора................................................ 22

3. База данных «Расходы»................................................................................................... 24

3.1. Схема базы данных «Расходы»............................................................................... 24

3.2. Сведения о транспортных расходах....................................................................... 24

3.2.1. Определение состава выходного сообщения................................................. 24

3.2.2. Разработка модели процесса............................................................................ 25

3.2.3. Общее описание процесса решения задачи................................................... 25

3.2.4. Представление подсхемы данных................................................................... 26

3.2.5. Ручная обработка данных................................................................................ 26

3.2.6. Формирование и отладка запроса................................................................... 30

3.2.7. Подготовка запроса в Конструкторе.............................................................. 31

4. База данных «Бумаги»..................................................................................................... 32

4.1. Схема базы данных «Бумаги»................................................................................. 32

4.2. Определения наличия определенного количества определенной бумаги......... 32

4.2.1. Определение состава выходного сообщения................................................. 32

4.2.2. Разработка модели процесса............................................................................ 33

4.2.3. Общее описание процесса решения задачи................................................... 33

4.2.4. Представление подсхемы данных................................................................... 34

4.2.5. Ручная обработка данных................................................................................ 34

4.2.6. Формирование и отладка запроса................................................................... 38

4.2.7. Подготовка запроса в Конструкторе.............................................................. 39

Список источников.............................................................................................................. 40

1. База данных «Борей»

1.1. Схема базы данных «Борей»

База данных «Борей» имеет следующие связи между таблицами:

1.2. Список поставщиков товаров группы «Рыбопродукты»

Для определения поставщика определенного товара выдать список поставщиков товаров группы «Рыбопродукты», их телефоны и факсы.

1.2.1. Определение состава выходного сообщения

Исходя из результатов анализа информационной потребности, определим состав и структуру требуемого сообщения S [Поставщики товаров группы «Рыбопродукты»].

S (Типы.Категория, Поставщики.Название, Поставщики.ОбращатьсяК, Поставщикими.Телефон, Поставщики.Факс)

Поставщики рыбопродуктов

Категория

Название

Обращаться к

Телефон

Факс

Реквизит «Категория» является обязательным по условию задачи, остальные поля используются в процедурах профилизации, сегментации и связи.

1.2.2. Разработка модели процесса

Определим состав полей и таблиц, используемых в запросе из приведенной в п. 1.1. схемы базы данных «Борей».

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

На выходе представлено сообщение с определенной в пункте 1.2.1 структурой.

1.2.3. Общее описание процесса решения задачи

Получение выходного сообщения позволит уменьшить трудозатраты на выборку информации для получения сведений о поставщиках товаров группы «Рыбопродукты».

С позиции потребителя – пользователя запрос характеризуется как простой с поэтапным потреблением информации. Полученные по запросу данные могут быть экспортированы в Excel. При реализации в Access этот запрос является запросом на выборку.

Данные о Поставщиках являются справочными и обновляются при вводе информации о новом поставщике. Данные о Товарах и Типах обновляются при появлении нового товара или типа соответственно.

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

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

1.2.4. Представление подсхемы базы данных

Таблица Товары имеет простой ключ КодТоварв, а таблицы Поставщики и Типы – простые ключи КодПоставщика и КодТипа соответственно. Тип межтабличных связей «один-ко-многим».

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

1.2.5. Ручная обработка данных

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

Поставщики (фрагмент)

Код поставщика

Название

Страна

27

Escargots Nouveaux

Франция

14

Formaggi Fortini s.r.l.

Италия

29

Forots d'Erables

Канада

Товары (фрагмент)

Код товара

Марка

Поставщик

Тип

Единица измерения

Цена

На складе

Ожидается

Минимальный запас

ПоставкиПрекращены

45

Gula Malacca

Leka Trading

Приправы

20 пакетов по 2 кг

875,25р.

27

0

15

Нет

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

12 банок по 355 мл

434,25р.

85

0

10

Нет

Типы (фрагмент)

Код типа

Категория

Описание

Изображение

7

Фрукты

Сушеные и свежие фрукты

8

Рыбопродукты

Водоросли, крабы, устрицы, рыбы

Результат выполнения реляционной операции произведения таблиц Поставщики и Товары (фрагмент):

Код поставщика

Название

Страна

Код товара

Марка

Поставщик

Тип

27

Escargots Nouveaux

Франция

45

Gula Malacca

Leka Trading

Приправы

14

Formaggi Fortini s.r.l.

Италия

45

Gula Malacca

Leka Trading

Приправы

29

Forots d'Erables

Канада

45

Gula Malacca

Leka Trading

Приправы

27

Escargots Nouveaux

Франция

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

14

Formaggi Fortini s.r.l.

Италия

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

29

Forots d'Erables

Канада

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

Результат выполнения реляционной операции произведения таблиц Поставщики, Товары и Типы (фрагмент):

Код поставщика

Название

Страна

Код товара

Марка

Поставщик

Тип

Код типа

Категория

27

Escargots Nouveaux

Франция

45

Gula Malacca

Leka Trading

Приправы

7

Фрукты

27

Escargots Nouveaux

Франция

45

Gula Malacca

Leka Trading

Приправы

8

Рыбопродукты

14

Formaggi Fortini s.r.l.

Италия

45

Gula Malacca

Leka Trading

Приправы

7

Фрукты

14

Formaggi Fortini s.r.l.

Италия

45

Gula Malacca

Leka Trading

Приправы

8

Рыбопродукты

29

Forots d'Erables

Канада

45

Gula Malacca

Leka Trading

Приправы

7

Фрукты

29

Forots d'Erables

Канада

45

Gula Malacca

Leka Trading

Приправы

8

Рыбопродукты

27

Escargots Nouveaux

Франция

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

7

Фрукты

27

Escargots Nouveaux

Франция

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

8

Рыбопродукты

14

Formaggi Fortini s.r.l.

Италия

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

7

Фрукты

14

Formaggi Fortini s.r.l.

Италия

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

8

Рыбопродукты

29

Forots d'Erables

Канада

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

7

Фрукты

29

Forots d'Erables

Канада

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

8

Рыбопродукты

Результат выполнения операции соединение – сцепление строк с совпадающими значениями полей Тип и Категория.

Код поставщика

Название

Страна

Код товара

Марка

Поставщик

Тип

27

Escargots Nouveaux

Франция

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

14

Formaggi Fortini s.r.l.

Италия

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

29

Forots d'Erables

Канада

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

Результат выполнения операции селекции – выбора, у которых поле Тип имеет значение Рыбопродукты.

Код поставщика

Название

Страна

Код товара

Марка

Поставщик

Тип

27

Escargots Nouveaux

Франция

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

14

Formaggi Fortini s.r.l.

Италия

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

29

Forots d'Erables

Канада

42

Jack's New England Clam Chowder

New England Seafood Cannery

Рыбопродукты

Результат выполнения операции проекции:

Код поставщика

Название

Страна

27

Escargots Nouveaux

Франция

14

Formaggi Fortini s.r.l.

Италия

29

Forots d'Erables

Канада

Для получения в автоматизированном режиме таблицы с результатом выполнения операции произведения используется запрос:

SELECT Товары.КодТовара, Товары.КодПоставщика, Товары.КодТипа, Поставщики.КодПоставщика, Поставщики.Название, Типы.Категория

FROM Товары, Поставщики, Типы;

Для получения в автоматизированном режиме таблицы с результатом выполнения операции соединения используется следующий запрос:

SELECT Типы.*, Поставщики.*, Товары.*

FROM Типы INNER JOIN (Поставщики INNER JOIN Товары ON Поставщики.КодПоставщика = Товары.КодПоставщика) ON Типы.КодТипа = Товары.КодТипа;

Для получения в автоматизированном режиме таблицы с результатом выполнения операции селекции используется запрос:

SELECT Типы.*, Поставщики.*, Товары.*

FROM Типы INNER JOIN (Поставщики INNER JOIN Товары ON Поставщики.КодПоставщика = Товары.КодПоставщика) ON Типы.КодТипа = Товары.КодТипа

WHERE (Типы.Категория='Рыбопродукты');

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

SELECT DISTINCT Типы.Категория, Поставщики.Название, Поставщики.ОбращатьсяК, Поставщики.Телефон, Поставщики.Факс

FROM Типы INNER JOIN (Поставщики INNER JOIN Товары ON Поставщики.КодПоставщика = Товары.КодПоставщика) ON Типы.КодТипа = Товары.КодТипа

WHERE (((Типы.Категория)="Рыбопродукты"));

1.2.6. Формирование и отладка запроса

Поскольку между таблицами Поставщики, Товары и Типы существуют связи «один-ко-многим», то для исключения повторяющихся строк следует использовать инструкцию SELECT DISTINCROW со следующей структурой:

SELECT DISTINCTROW Типы.Категория, Поставщики.Название, Поставщики.ОбращатьсяК, Поставщики.Телефон, Поставщики.Факс

FROM Типы INNER JOIN (Поставщики INNER JOIN Товары ON Поставщики.КодПоставщика = Товары.КодПоставщика) ON Типы.КодТипа = Товары.КодТипа

WHERE (((Типы.Категория)="Рыбопродукты"));

1.2.7. Подготовка запроса с использованием Конструктора

Для определения поставщика определенного товара выдать список поставщиков товаров группы «Рыбопродукты», их телефоны и факсы.

Запрос создадим при помощи Конструктора, в который переместим поле Категория из таблицы Типы, поля Название, ОбращатьсяК, Телефон и Факс из таблицы Поставщики.

Чтобы отбирались только поставщики группы рыбопродукты, зададим условие отбора «Рыбопродукты» для поля Категория.

В Конструкторе запрос примет вид:

Получим следующие данные о поставщиках рыбопродуктов:

Поставщики рыбопродуктов

Категория

Название

Обращаться к

Телефон

Факс

Рыбопродукты

Pavlova, Ltd.

Ian Devling

(03) 444-2343

(03) 444-6588

Рыбопродукты

Nord-Ost-Fisch mbH

Sven Petersen

(04721) 8713

(04721) 8714

Рыбопродукты

Svensk Sjofoda AB

Michael Bjorn

08-123 45 67

Рыбопродукты

Svensk Sjofoda AB

Michael Bjorn

08-123 45 67

Рыбопродукты

Svensk Sjofoda AB

Michael Bjorn

08-123 45 67

Рыбопродукты

New England Seafood Cannery

Robb Merchant

(617) 555-3267

(617) 555-3389

Рыбопродукты

New England Seafood Cannery

Robb Merchant

(617) 555-3267

(617) 555-3389

Рыбопродукты

Lyngbysild

Niels Petersen

43844108

43844115

Рыбопродукты

Lyngbysild

Niels Petersen

43844108

43844115

Рыбопродукты

Escargots Nouveaux

Marie Delamare

85.57.00.07

Рыбопродукты

Tokyo Traders

Yoshi Nagase

(03) 3555-5011

Рыбопродукты

Mayumi's

Mayumi Ohno

(06) 431-7877

1.3.      Клиенты, заказавшие товары на 1 ноября

Выдать список клиентов, заказавших товары на 1 ноября текущего года, их телефоны и факсы.

1.3.1. Определение состава выходного сообщения

Проанализировав информационную потребность, определим состав и структуру требуемого выходного сообщения S [Клиенты, заказавшие товары на 1 ноября].

S (Клиенты.Название, Заказы.ДатаНазначения)

Название

Дата назначения

Реквизит Название является обязательным по условию задачи.

1.3.2. Разработка модели процесса

На основании приведенной в пункте 1.1. схемы базы данных, определим состав таблиц и полей, используемых в этом запросе.

Так как сведения о клиентах хранятся в таблице Клиенты, а информация об их заказах – в таблице Заказы, то в запросе будут поля из обоих этих таблиц.

На выходе процесса представлено сообщение с определенной в предыдущем пункте структурой.

1.3.3. Общее описание процесса решения задачи

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

Для потребителя-пользователя запрос характеризуется как простой с поэтапным потреблением информации. Затем полученная информация может быть передана для анализа в Excel. При реализации в Access запрос будет являться запросом на выборку.

Данные о заказах клиентов являются справочными и обновляются при вводе данных о новом заказе.

Если данные необходимы многим потребителям, то они размещаются на сервере сети в коллективно базе данных, которая функционирует под управлением Microsoft SQL Server.

Подготовка запроса в СУБД Microsoft Access осуществляется в режиме Конструктора. При этом будет сгенерирован SQL-код, передаваемый серверу, который вернет клиенту результирующую таблицу.

1.3.4. Представление подсхемы базы данных для запроса

Таблица Заказы имеет простой ключ КодЗаказа, таблица Клиенты – простой ключ КодКлиента. Тип связи между таблицами «один-ко-многим». Связь – по полю КодКлиента (ключ связи). Целостность по значениям определяется отсутствием в таблице Заказы значения поля КодКлиента, которых нет в таблице Клиенты. Значения поля КодКлиента в таблице Заказы обновляются автоматически при изменении значений поля КодКлиента в таблице Клиенты.

1.3.5. Ручная обработка данных

Реляционная обработка данных выполняется вручную.

Представим исходные данные в таблицах:

Код клиента

Название

Обращаться к

PARIS

Paris specialites

Marie Bertrand

PERIC

Pericles Comidas clasicas

Guillermo Fernandez

Заказы (фрагмент)

Код заказа

Клиент

Сотрудник

Дата размещения

Дата назначения

Дата исполнения

10321

Island Trading

Бабкина, Ольга

03-10-1996

31-10-1996

11-10-1996

10322

Pericles Comidas clasicas

Кралев, Петр

04-10-1996

01-11-1996

23-10-1996

10323

Koniglich Essen

Воронова, Дарья

07-10-1996

04-11-1996

14-10-1996

Результат выполнения операции произведения (фрагмент):

Код заказа

Клиент

Сотрудник

Дата размещения

Дата назначения

Дата исполнения

Код клиента

Название

10321

Island Trading

Бабкина, Ольга

03-10-1996

31-10-1996

11-10-1996

PARIS

Paris specialites

10322

Pericles Comidas clasicas

Кралев, Петр

04-10-1996

01-11-1996

23-10-1996

PARIS

Paris specialites

10323

Koniglich Essen

Воронова, Дарья

07-10-1996

04-11-1996

14-10-1996

PARIS

Paris specialites

10321

Island Trading

Бабкина, Ольга

03-10-1996

31-10-1996

11-10-1996

PERIC

Pericles Comidas clasicas

10322

Pericles Comidas clasicas

Кралев, Петр

04-10-1996

01-11-1996

23-10-1996

PERIC

Pericles Comidas clasicas

10323

Koniglich Essen

Воронова, Дарья

07-10-1996

04-11-1996

14-10-1996

PERIC

Pericles Comidas clasicas

Результат выполнения операции соединения – сцепление строк с совпадающими значениями полей Клиент и Название.

Код заказа

Клиент

Сотрудник

Дата размещения

Дата назначения

Дата исполнения

Код клиента

Название

10322

Pericles Comidas clasicas

Кралев, Петр

04-10-1996

01-11-1996

23-10-1996

PERIC

Pericles Comidas clasicas

Результат выполнения операции селекции – выбора строка, в которых поле Дата назначения равно 01-11-1997.

Код заказа

Клиент

Сотрудник

Дата размещения

Дата назначения

Дата исполнения

Код клиента

Название

10322

Pericles Comidas clasicas

Кралев, Петр

04-10-1996

01-11-1996

23-10-1996

PERIC

Pericles Comidas clasicas

Результат выполнения операции проекции:

Код заказа

Клиент

Дата назначения

10322

Pericles Comidas clasicas

01-11-1996

Для получения в автоматизированном режиме таблицы с результатом выполнения операции произведения используется следующий запрос:

SELECT Клиенты.*,Заказы.* FROM Клиенты, Заказы;

Для получения в автоматизированном режиме таблицы с результатом выполнения операции произведения используется запрос:

SELECT Клиенты.*,Заказы.* FROM Клиенты INNER JOIN  Заказы ON Клиенты.КодКлиента=Заказы.КодКлиента;

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

SELECT Клиенты.*,Заказы.* FROM Клиенты INNER JOIN  Заказы ON Клиенты.КодКлиента=Заказы.КодКлиента WHERE ((Заказы.ДатаНазначения)=#11/01/1996#);

Для получения в автоматизированном режиме таблицы с результатом выполнения операции проекции используется запрос:

SELECT DISTINCT Клиенты.*,Заказы.* FROM Клиенты INNER JOIN  Заказы ON Клиенты.КодКлиента=Заказы.КодКлиента WHERE ((Заказы.ДатаНазначения)=#11/01/1996#);

1.3.6. Формирование и отладка запроса

Так как между таблицами Клиенты и Заказы существует связь «один-ко-многим», то для исключения повторяющихся записей надо использовать запрос, содержащий следующую инструкцию:

SELECT DISTINCTROW Клиенты.*,Заказы.ДатаНазначения FROM Клиенты INNER JOIN  Заказы ON Клиенты.КодКлиента=Заказы.КодКлиента WHERE ((Заказы.ДатаНазначения)=#11/01/1997#);

1.3.7. Подготовка запроса в Конструкторе

Для запрос возьмем поле Название из таблицы Клиенты и поле ДатаНазначения из таблицы Заказы.

Добавим три дополнительных поля для выделения числа, месяца и года из даты. Для этого в заголовки 3 пустых столбцов введем формулы: Число: Day([ДатаНазначения]), Месяц: Month([ДатаНазначения]) и Год: Year([ДатаНазначения]).

Для созданного поля Число введем условие отбора 1, а для созданного поля Месяц введем условие отбора 11.

После чего в Конструкторе запрос будет иметь вид:

Или на SQL:

SELECT Клиенты.Название, Заказы.ДатаНазначения, Day([ДатаНазначения]) AS Число, Month([ДатаНазначения]) AS Месяц, Year([ДатаНазначения]) AS Год

FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента

WHERE (((Day([ДатаНазначения]))=1) AND ((Month([ДатаНазначения]))=11));

По запросу получим данные о клиентах, заказавших товары на 1 ноября:

Клиенты заказавшие товары на 1 ноября

Название

Дата назначения

Число

Месяц

Год

Pericles Comidas clasicas

01-11-1996

1

11

1996

2. База данных «Заказы на работы»

2.1. Схема базы данных «Заказы на работы»

В базе данных «Заказы на работы» установлены следующие связи между таблицами:

2.2. Необходимое оборудование для заказов клиентов из России

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

2.2.1. Определение состава выходного сообщения

Исходя из результатов анализа информационной потребности, определим состав и структуру выходного сообщения S [Необходимое оборудование для заказов клиентов из России за определенный месяц].

S (Клиенты.НазваниеКомпании, Клиенты.Город, Клиенты.Страна/Регион, Оборудование.НазваниеОборудования, Заказы на работы.ДатаНазначения)

Название

Город

Страна/регион

Название

Дата назначения

Месяц

Реквизит Страна / регион является обязательным по условию задачи, остальные реквизиты используются в процедурах профилизации, сегментации и связи.

2.2.2. Разработка модели процесса

Из приведенной в пункте 2.1 схемы базы данных «Заказы на работы» определим состав полей и таблиц, используемых в запросе. Представим в графическом виде обобщенную функционально-технологическую схему задачи:

2.2.3. Общее описание процесса решения задачи

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

С позиции потребителя – пользователя запрос характеризуется как простой с поэтапным потреблением информации. Для работы с данными результирующая таблица может быть экспортирована в Excel. В Access запрос будет создан как запрос на выборку.

Данные о клиентах, их заказах и необходимом оборудовании являются справочными и обновляются при появлении новых клиентов или их заказов.

Данные, необходимые многим потребителям, размещаются на сервере сети в корпоративной базе данных, которая функционирует под управлением Microsoft SQL Server.

Подготовка запроса в Access выполняется при помощи Конструктора запроса.

2.2.4. Представление подсхемы базы данных

Таблица Заказы на работы имеет простой ключ КодЗаказа, таблица ОборудованиеКодОборудования, таблица Необходимое оборудованиеКодНеобходимогоОборудования, таблица КлиентыКодКлиента. Между 4 таблицами имеются связи типа «один-ко-многим».

2.2.5. Ручная обработка данных

Реляционную обработку данных проведем вручную. Представим исходные данные в таблицах:

Оборудование

Код оборудования

Название

Цена

Описание

1

Компьютер

19 630,00р.

ПК

2

Принтер

9 650,00р.

Струйный

3

Станок деревообрабатывающий

8 530,00р.

Станок

4

Сварочный аппарат

4 633,00р.

Сварочник

5

Краскопульт

1 200,00р.

Краскопульт

Клиенты

Код клиента

Название

Страна/регион

1

Автосервис

Россия

2

Сибэнерго

Россия

3

Салон красоты

Россия

4

Трикотажное ателье

Россия

5

Фотосалон

Беларусь

Заказы

Код заказа

Код клиента

2

Фотосалон

3

Салон красоты

4

Автосервис

5

Сибэнерго

6

Трикотажное ателье

Необходимое оборудование

Код

Код заказа

Код оборудования

Количество

Цена

2

4

Краскопульт

1

10 340,00р.

3

3

Сварочный аппарат

3

1 335,00р.

4

2

Станок деревообрабатывающий

1

2 632,00р.

5

2

Станок деревообрабатывающий

1

8 530,00р.

6

6

Принтер

1

9 650,00р.

7

5

Станок деревообрабатывающий

1

8 530,00р.

8

6

Компьютер

1

19 630,00р.

Результат выполнения операции произведения таблиц Заказы и Клиенты:

Код заказа

Код клиента

Название

Страна / регион

2

Фотосалон

Автосервис

Россия

2

Фотосалон

Сибэнерго

Россия

2

Фотосалон

Салон красоты

Россия

2

Фотосалон

Трикотажное ателье

Россия

2

Фотосалон

Фотосалон

Беларусь

3

Салон красоты

Автосервис

Россия

3

Салон красоты

Сибэнерго

Россия

3

Салон красоты

Салон красоты

Россия

3

Салон красоты

Трикотажное ателье

Россия

3

Салон красоты

Фотосалон

Беларусь

4

Автосервис

Автосервис

Россия

4

Автосервис

Сибэнерго

Россия

4

Автосервис

Салон красоты

Россия

4

Автосервис

Трикотажное ателье

Россия

4

Автосервис

Фотосалон

Беларусь

5

Сибэнерго

Автосервис

Россия

5

Сибэнерго

Сибэнерго

Россия

5

Сибэнерго

Салон красоты

Россия

5

Сибэнерго

Трикотажное ателье

Россия

5

Сибэнерго

Фотосалон

Беларусь

6

Трикотажное ателье

Автосервис

Россия

6

Трикотажное ателье

Сибэнерго

Россия

6

Трикотажное ателье

Салон красоты

Россия

6

Трикотажное ателье

Трикотажное ателье

Россия

6

Трикотажное ателье

Фотосалон

Беларусь

Результат выполнения операции соединения – сцепление строк с совпадающими значениями полей Код клиента и Название:

Код заказа

Название

Страна / регион

2

Фотосалон

Беларусь

3

Салон красоты

Россия

4

Автосервис

Россия

5

Сибэнерго

Россия

6

Трикотажное ателье

Россия

Результат выполнения операции селекции – выбора строк, в которых поле Страна / регион имеет значение Россия:

Код заказа

Название

Страна / регион

3

Салон красоты

Россия

4

Автосервис

Россия

5

Сибэнерго

Россия

6

Трикотажное ателье

Россия

Теперь выполним операцию произведения для полученной только что таблицы и таблицы Необходимое оборудование:

Код

Код заказа

Код оборудования

Количество

Цена

Код заказа

Название

Страна / регион

2

4

Краскопульт

1

10 340,00р.

3

Салон красоты

Россия

3

3

Сварочный аппарат

3

1 335,00р.

3

Салон красоты

Россия

4

2

Станок деревообрабатывающий

1

2 632,00р.

3

Салон красоты

Россия

5

2

Станок деревообрабатывающий

1

8 530,00р.

3

Салон красоты

Россия

6

6

Принтер

1

9 650,00р.

3

Салон красоты

Россия

7

5

Станок деревообрабатывающий

1

8 530,00р.

3

Салон красоты

Россия

8

6

Компьютер

1

19 630,00р.

3

Салон красоты

Россия

2

4

Краскопульт

1

10 340,00р.

4

Автосервис

Россия

3

3

Сварочный аппарат

3

1 335,00р.

4

Автосервис

Россия

4

2

Станок деревообрабатывающий

1

2 632,00р.

4

Автосервис

Россия

5

2

Станок деревообрабатывающий

1

8 530,00р.

4

Автосервис

Россия

6

6

Принтер

1

9 650,00р.

4

Автосервис

Россия

7

5

Станок деревообрабатывающий

1

8 530,00р.

4

Автосервис

Россия

8

6

Компьютер

1

19 630,00р.

4

Автосервис

Россия

2

4

Краскопульт

1

10 340,00р.

5

Сибэнерго

Россия

3

3

Сварочный аппарат

3

1 335,00р.

5

Сибэнерго

Россия

4

2

Станок деревообрабатывающий

1

2 632,00р.

5

Сибэнерго

Россия

5

2

Станок деревообрабатывающий

1

8 530,00р.

5

Сибэнерго

Россия

6

6

Принтер

1

9 650,00р.

5

Сибэнерго

Россия

7

5

Станок деревообрабатывающий

1

8 530,00р.

5

Сибэнерго

Россия

8

6

Компьютер

1

19 630,00р.

5

Сибэнерго

Россия

2

4

Краскопульт

1

10 340,00р.

6

Трикотажное ателье

Россия

3

3

Сварочный аппарат

3

1 335,00р.

6

Трикотажное ателье

Россия

4

2

Станок деревообрабатывающий

1

2 632,00р.

6

Трикотажное ателье

Россия

5

2

Станок деревообрабатывающий

1

8 530,00р.

6

Трикотажное ателье

Россия

6

6

Принтер

1

9 650,00р.

6

Трикотажное ателье

Россия

7

5

Станок деревообрабатывающий

1

8 530,00р.

6

Трикотажное ателье

Россия

8

6

Компьютер

1

19 630,00р.

6

Трикотажное ателье

Россия

Результат выполнения операции соединения – сцепление строк с совпадающими значениями полей Код заказа:

Код

Код заказа

Код оборудования

Количество

Цена

Название

Страна / регион

3

3

Сварочный аппарат

3

1 335,00р.

Салон красоты

Россия

2

4

Краскопульт

1

10 340,00р.

Автосервис

Россия

7

5

Станок деревообрабатывающий

1

8 530,00р.

Сибэнерго

Россия

6

6

Принтер

1

9 650,00р.

Трикотажное ателье

Россия

8

6

Компьютер

1

19 630,00р.

Трикотажное ателье

Россия

Результат выполнения операции проекции:

Код

Код оборудования

Страна / регион

3

Сварочный аппарат

Россия

2

Краскопульт

Россия

7

Станок деревообрабатывающий

Россия

6

Принтер

Россия

8

Компьютер

Россия

Для получения в автоматизированном режиме таблицы с результатом выполнения операции произведения используется запрос:

SELECT Оборудование.*,[Необходимое оборудование].*,[Заказы на работы].*, Клиенты.* FROM Оборудование, [Необходимое оборудование], [Заказы на работы], Клиенты;

Для получения в автоматизированном режиме таблицы с результатом операции соединения используется запрос:

SELECT Оборудование.*,[Необходимое оборудование].*,[Заказы на работы].*, Клиенты.* FROM Оборудование INNER JOIN ((Клиенты INNER JOIN [Заказы на работы] ON Клиенты.КодКлиента = [Заказы на работы].КодКлиента) INNER JOIN [Необходимое оборудование] ON [Заказы на работы].КодЗаказа = [Необходимое оборудование].КодЗаказа) ON Оборудование.КодОборудования = [Необходимое оборудование].КодОборудования;

Для получения в автоматизированном режиме таблицы с результатом выполнения селекции используется запрос:

SELECT Клиенты.НазваниеКомпании, Клиенты.Город, Клиенты.[Страна/регион], Оборудование.НазваниеОборудования, [Заказы на работы].ДатаНазначения, Month([ДатаНазначения]) AS Месяц

FROM Оборудование INNER JOIN ((Клиенты INNER JOIN [Заказы на работы] ON Клиенты.КодКлиента = [Заказы на работы].КодКлиента) INNER JOIN [Необходимое оборудование] ON [Заказы на работы].КодЗаказа = [Необходимое оборудование].КодЗаказа) ON Оборудование.КодОборудования = [Необходимое оборудование].КодОборудования

WHERE (((Клиенты.[Страна/регион])="Россия") AND ((Month([ДатаНазначения]))=[Введите месяц:]));

Для выполнения операции проекции:

SELECT DISTINCT Клиенты.НазваниеКомпании, Клиенты.Город, Клиенты.[Страна/регион], Оборудование.НазваниеОборудования, [Заказы на работы].ДатаНазначения, Month([ДатаНазначения]) AS Месяц

FROM Оборудование INNER JOIN ((Клиенты INNER JOIN [Заказы на работы] ON Клиенты.КодКлиента = [Заказы на работы].КодКлиента) INNER JOIN [Необходимое оборудование] ON [Заказы на работы].КодЗаказа = [Необходимое оборудование].КодЗаказа) ON Оборудование.КодОборудования = [Необходимое оборудование].КодОборудования

WHERE (((Клиенты.[Страна/регион])="Россия") AND ((Month([ДатаНазначения]))=[Введите месяц:]));

2.2.6. Формирование и отладка запроса

Так как между таблицами Клиенты, Оборудование и Заказы на работы установлены связи типа «один-ко-многим», то для исключения повторяющихся строк, следует использовать следующую инструкцию:

SELECT DISTINCTROW Клиенты.НазваниеКомпании, Клиенты.Город, Клиенты.[Страна/регион], Оборудование.НазваниеОборудования, [Заказы на работы].ДатаНазначения, Month([ДатаНазначения]) AS Месяц

FROM Оборудование INNER JOIN ((Клиенты INNER JOIN [Заказы на работы] ON Клиенты.КодКлиента = [Заказы на работы].КодКлиента) INNER JOIN [Необходимое оборудование] ON [Заказы на работы].КодЗаказа = [Необходимое оборудование].КодЗаказа) ON Оборудование.КодОборудования = [Необходимое оборудование].КодОборудования

WHERE (((Клиенты.[Страна/регион])="Россия") AND ((Month([ДатаНазначения]))=[Введите месяц:]));

2.2.7. Подготовка запроса в режиме Конструктора

Создание запроса проведем при помощи Конструктора, в который добавим поля НазваниеКомпании, Город, Страна/Регион из таблицы Клиенты, поле НазваниеОборудование из таблицы Оборудование и поле ДатаНазначения из таблицы Заказы на работы.

Для определения месяца из даты в заголовок пустого поля бланка запроса введем выражение Месяц: Month([ДатаНазначения]). Для этого поля зададим условие отбора [Введите месяц:], которое будет запрашивает интересуемый месяц.

Чтобы отобразить оборудования, требуемое для заказов клиентов из России, введем условие отбора «Россия» для поля Страна / регион.

В Конструкторе запроса получим:

При запуске запроса, будет выдано на экран окно для ввода интересуемого месяца:

После нажатия Ok получим:

ОборудованиеДляРоссии

Название

Город

Страна/регион

Название

Дата назначения

Месяц

Салон красоты

Москва

Россия

Сварочный аппарат

30.05.2005

5

3. База данных «Расходы»

3.1. Схема базы данных «Расходы»

В базе данных «Расходы» установлены следующие связи между таблицами типа «один-ко-многим»:

3.2. Сведения о транспортных расходах

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

3.2.1. Определение состава выходного сообщения

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

S ([Отчеты о расходах].КодОтчетаОРасходах, Сотрудники.Имя, Сотрудники.Фамилия, Сотрудники.Должность, [Типы расходов].КатегорияРасходов, [Отчеты о расходах].ДатаВыставления, [Сведения о расходах].СуммаСтатьиРасходов).

Затраты на автотранспорт

Код отчета

Имя

Фамилия

Должность

Тип расходов

Дата

Сумма расходов

Реквизит Тип расходов является обязательным по условию, а остальные используются в процедурах сегментации и связи.

3.2.2. Разработка модели процесса

Определим состав полей и таблиц, используемых в запросе, исходя из схемы базы данных, приведенной в пункте 3.1.

Так как сведения о типах расходов хранятся в таблице Типы расходов, сведения о сотрудника – в таблице Сотрудники, сведения о расходах – в таблице Сведения о расходах, а сведения об отчетах – в таблице Отчеты о расходах, то в запросе будут использованы поля из всех перечисленных 4 таблиц.

На выходе процесса представлено сообщение с определенной выше структурой.

3.2.3. Общее описание процесса решения задачи

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

Для потребителя-пользователя этот запрос характеризуется как простой с поэтапным потреблением информации. Полученные по запросу данные могут быть экспортированы в Excel для анализа. В Access этот запрос является запросом на выборку.

Все исходные данные, участвующие в запросе, обновляются при занесении новых записей.

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

Подготовка запроса в Microsoft Access выполняется в режиме Конструктора.

3.2.4. Представление подсхемы данных

Таблица Сведения о расходах имеет простой ключ КодСведенийО Расходах, таблица Типы расходовКодТипаРасходов, таблица Отчеты о расходахКодОтчетаОРасходах, таблица СотрудникиКодСотрудника.

3.2.5. Ручная обработка данных

Выполним вручную процедуру реляционной обработки данных. Представим исходные данные в таблицах:

Типы расходов

Код типа расходов

Тип расходов

Учетный номер

1

Оплата служащим

1

2

Оплата помещения

2

3

Оплата автотранспорта

3

4

Культурно-развлекательные мероприятия

4

Сотрудники

Код сотрудника

Номер паспорта

Табельный номер

Имя

Фамилия

Должность

Внутренний

Адрес

Город

Регион

Область

Индекс

Страна/

регион

Рабочий телефон

1

52 00 125425

1

Николай

Волков

Директор

9-90

ул. Лосоностровская, 54

Москва

Россия

Московская

107150

Россия

125-00-65

3

25 78 125478

2

Мария

Петрова

Бухгалтер

5-45

ул. Ватутина

Подольск

Россия

Московская

142300

Россия

68-96-96

4

98 45 123476

3

Олег

Пузов

Инженер

6-46

пр-т Космонавтов

Королев

Россия

Московская

141070

Россия

513-02-56

5

15 08 963852

4

Вадим

Ширшин

Электрик

7-99

ул. Ногина

Ногинск

Россия

Московская

143652

Россия

85-98-74

Сведения о расходах

Код расходов

Код отчета

Код типа расходов

Сумма расходов

Описание расходов

Дата расходов

1

1

Оплата служащим

1 000,00р.

Оплата за ремонт

05.02.2005

2

2

Культурно-развлекательные мероприятия

500,00р.

Оплата за билеты

10.02.2005

3

3

Оплата автотранспорта

100,00р.

Оплата за автотранспорт

10.02.2005

4

4

Культурно-развлекательные мероприятия

2 550,00р.

Оплата за кафе

25.02.2005

Отчеты о расходах

Код отчета

Код сотрудника

Тип расходов

Название

Описание отчета

Дата

Задаток

Отдел оплаты

Оплачено

1

Петрова, Мария

4

Оплата за ремонт

Оплата за услуги

05.02.2005

1 000,00р.

1

Да

2

Волков, Николай

1

Оплата за билеты

Оплата за культпоход

10.02.2005

500,00р.

1

Нет

3

Пузов, Олег

2

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

4

Ширшин, Вадим

1

Оплата за кафе

Затраты на кафе

25.02.2005

2 550,00р.

2

Нет

Выполним операцию произведение таблиц Отчеты о расходах и Типы расходов

Код

отчета

Код сотрудника

Тип расходов

Название

Описание отчета

Дата

Задаток

Отдел

оплаты

Оплачено

Код типа

расходов

Тип расходов

1

Петрова, Мария

4

Оплата за ремонт

Оплата за услуги

05.02.2005

1 000,00р.

1

Да

1

Оплата служащим

2

Волков, Николай

1

Оплата за билеты

Оплата за культпоход

10.02.2005

500,00р.

1

Нет

1

Оплата служащим

3

Пузов, Олег

2

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

1

Оплата служащим

4

Ширшин, Вадим

1

Оплата за кафе

Затраты на кафе

25.02.2005

2 550,00р.

2

Нет

1

Оплата служащим

1

Петрова, Мария

4

Оплата за ремонт

Оплата за услуги

05.02.2005

1 000,00р.

1

Да

2

Оплата помещения

2

Волков, Николай

1

Оплата за билеты

Оплата за культпоход

10.02.2005

500,00р.

1

Нет

2

Оплата помещения

3

Пузов, Олег

2

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

2

Оплата помещения

4

Ширшин, Вадим

1

Оплата за кафе

Затраты на кафе

25.02.2005

2 550,00р.

2

Нет

2

Оплата помещения

1

Петрова, Мария

4

Оплата за ремонт

Оплата за услуги

05.02.2005

1 000,00р.

1

Да

3

Оплата автотранспорта

2

Волков, Николай

1

Оплата за билеты

Оплата за культпоход

10.02.2005

500,00р.

1

Нет

3

Оплата автотранспорта

3

Пузов, Олег

2

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

3

Оплата автотранспорта

4

Ширшин, Вадим

1

Оплата за кафе

Затраты на кафе

25.02.2005

2 550,00р.

2

Нет

3

Оплата автотранспорта

1

Петрова, Мария

4

Оплата за ремонт

Оплата за услуги

05.02.2005

1 000,00р.

1

Да

4

Культурно-развлекательные мероприятия

2

Волков, Николай

1

Оплата за билеты

Оплата за культпоход

10.02.2005

500,00р.

1

Нет

4

Культурно-развлекательные мероприятия

3

Пузов, Олег

2

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

4

Культурно-развлекательные мероприятия

4

Ширшин, Вадим

1

Оплата за кафе

Затраты на кафе

25.02.2005

2 550,00р.

2

Нет

4

Культурно-развлекательные мероприятия

Теперь выполним операцию соединения – сцепление строк с совпадающими значениями полей Тип расходов и Код типа расходов:

Код

отчета

Код сотрудника

Название

Описание отчета

Дата

Задаток

Отдел

оплаты

Оплачено

Код типа

расходов

Тип расходов

2

Волков, Николай

Оплата за билеты

Оплата за культпоход

10.02.2005

500,00р.

1

Нет

1

Оплата служащим

4

Ширшин, Вадим

Оплата за кафе

Затраты на кафе

25.02.2005

2 550,00р.

2

Нет

1

Оплата служащим

3

Пузов, Олег

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

2

Оплата помещения

1

Петрова, Мария

Оплата за ремонт

Оплата за услуги

05.02.2005

1 000,00р.

1

Да

4

Культурно-развлекательные мероприятия

Далее выполним операцию сцепление полученных выше данных с данными таблицы Сведения о расходах:

Код

отчета

Код сотрудника

Название

Описание отчета

Дата

Задаток

Отдел

оплаты

Опла

чено

Код типа

расходов

Тип

расходов

Код расходов

Код отчета

Код типа расходов

Сумма

расходов

Дата расходов

2

Волков, Николай

Оплата за билеты

Оплата за культпоход

10.02.2005

500,00р.

1

Нет

1

Оплата служащим

1

1

Оплата служащим

1 000,00р.

Оплата за ремонт

4

Ширшин, Вадим

Оплата за кафе

Затраты на кафе

25.02.2005

2 550,00р.

2

Нет

1

Оплата служащим

1

1

Оплата служащим

1 000,00р.

Оплата за ремонт

3

Пузов, Олег

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

2

Оплата помещения

1

1

Оплата служащим

1 000,00р.

Оплата за ремонт

1

Петрова, Мария

Оплата за ремонт

Оплата за услуги

05.02.2005

1 000,00р.

1

Да

4

Культурно-развлека

тельные мероприятия

1

1

Оплата служащим

1 000,00р.

Оплата за ремонт

2

Волков, Николай

Оплата за билеты

Оплата за культпоход

10.02.2005

500,00р.

1

Нет

1

Оплата служащим

2

2

Культурно-развлекательные мероприятия

500,00р.

10.02.2005

4

Ширшин, Вадим

Оплата за кафе

Затраты на кафе

25.02.2005

2 550,00р.

2

Нет

1

Оплата служащим

2

2

Культурно-развлекательные мероприятия

500,00р.

10.02.2005

3

Пузов, Олег

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

2

Оплата помещения

2

2

Культурно-развлекательные мероприятия

500,00р.

10.02.2005

1

Петрова, Мария

Оплата за ремонт

Оплата за услуги

05.02.2005

1 000,00р.

1

Да

4

Культурно-развлека

тельные мероприятия

2

2

Культурно-развлекательные мероприятия

500,00р.

10.02.2005

2

Волков, Николай

Оплата за билеты

Оплата за культпоход

10.02.2005

500,00р.

1

Нет

1

Оплата служащим

3

3

Оплата автотранспорта

100,00р.

10.02.2005

4

Ширшин, Вадим

Оплата за кафе

Затраты на кафе

25.02.2005

2 550,00р.

2

Нет

1

Оплата служащим

3

3

Оплата автотранспорта

100,00р.

10.02.2005

3

Пузов, Олег

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

2

Оплата помещения

3

3

Оплата автотранспорта

100,00р.

10.02.2005

1

Петрова, Мария

Оплата за ремонт

Оплата за услуги

05.02.2005

1 000,00р.

1

Да

4

Культурно-развлека

тельные мероприятия

3

3

Оплата автотранспорта

100,00р.

10.02.2005

2

Волков, Николай

Оплата за билеты

Оплата за культпоход

10.02.2005

500,00р.

1

Нет

1

Оплата служащим

4

4

Культурно-развлекательные мероприятия

2 550,00р.

25.02.2005

4

Ширшин, Вадим

Оплата за кафе

Затраты на кафе

25.02.2005

2 550,00р.

2

Нет

1

Оплата служащим

4

4

Культурно-развлекательные мероприятия

2 550,00р.

25.02.2005

3

Пузов, Олег

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

2

Оплата помещения

4

4

Культурно-развлекательные мероприятия

2 550,00р.

25.02.2005

1

Петрова, Мария

Оплата за ремонт

Оплата за услуги

05.02.2005

1 000,00р.

1

Да

4

Культурно-развлека

тельные мероприятия

4

4

Культурно-развлекательные мероприятия

2 550,00р.

25.02.2005

Теперь выполним операцию соединение – сцепление строк с совпадающими полями Код типа расходов и Код расходов:

Код

отчета

Код сотрудника

Название

Описание отчета

Дата

Задаток

Отдел

оплаты

Опла

чено

Код типа

расходов

Тип

расходов

Код отчета

Код типа расходов

Сумма

расходов

Дата расходов

2

Волков, Николай

Оплата за билеты

Оплата за культпоход

10.02.2005

500,00р.

1

Нет

1

Оплата служащим

1

Оплата служащим

1 000,00р.

Оплата за ремонт

4

Ширшин, Вадим

Оплата за кафе

Затраты на кафе

25.02.2005

2 550,00р.

2

Нет

1

Оплата служащим

1

Оплата служащим

1 000,00р.

Оплата за ремонт

3

Пузов, Олег

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

2

Оплата помещения

2

Культурно-развлекательные мероприятия

500,00р.

10.02.2005

1

Петрова, Мария

Оплата за ремонт

Оплата за услуги

05.02.2005

1 000,00р.

1

Да

4

Культурно-развлека

тельные мероприятия

4

Культурно-развлекательные мероприятия

2 550,00р.

25.02.2005

Результат выполнения операции селекции – выбора строк по принадлежности поля Описание отчета значению Аренда автотранспорта:

Код

отчета

Код сотрудника

Название

Описание отчета

Дата

Задаток

Отдел

оплаты

Опла

чено

Код типа

расходов

Тип

расходов

Код отчета

Код типа расходов

Сумма

расходов

Дата расходов

3

Пузов, Олег

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

1

Да

2

Оплата помещения

2

Культурно-развлекательные мероприятия

500,00р.

10.02.2005

Результат выполнения операции проекции:

Код

отчета

Код сотрудника

Название

Описание отчета

Дата

Задаток

3

Пузов, Олег

Оплата за аренду

Аренда автотранспорта

10.02.2005

100,00р.

Для получения в автоматизированном режиме таблицы с результатом выполнения операции произведения используется запрос:

SELECT [Типы расходов].*,[Сведения о расходах].*,[Отчеты о расходах].*, Сотрудники.* FROM [Типы расходов] ,[Сведения о расходах],[Отчеты о расходах], Сотрудники;

Для получения в автоматизированном режиме таблицы с результатом выполнения операции соединения используется запрос:

SELECT [Отчеты о расходах].КодОтчетаОРасходах, Сотрудники.Имя, Сотрудники.Фамилия, Сотрудники.Должность, [Типы расходов].КатегорияРасходов, [Отчеты о расходах].ДатаВыставленияСчета, [Сведения о расходах].СуммаСтатьиРасходов

FROM [Типы расходов] RIGHT JOIN ((Сотрудники INNER JOIN [Отчеты о расходах] ON Сотрудники.КодСотрудника = [Отчеты о расходах].КодСотрудника) INNER JOIN [Сведения о расходах] ON [Отчеты о расходах].КодОтчетаОРасходах = [Сведения о расходах].КодОтчетаОРасходах) ON [Типы расходов].КодТипаРасходов = [Сведения о расходах].КодТипаРасходов;

Для получения в автоматизированном режиме таблицы с результатом селекции используется запрос:

SELECT [Отчеты о расходах].КодОтчетаОРасходах, Сотрудники.Имя, Сотрудники.Фамилия, Сотрудники.Должность, [Типы расходов].КатегорияРасходов, [Отчеты о расходах].ДатаВыставленияСчета, [Сведения о расходах].СуммаСтатьиРасходов

FROM [Типы расходов] RIGHT JOIN ((Сотрудники INNER JOIN [Отчеты о расходах] ON Сотрудники.КодСотрудника=[Отчеты о расходах].КодСотрудника) INNER JOIN [Сведения о расходах] ON [Отчеты о расходах].КодОтчетаОРасходах=[Сведения о расходах].КодОтчетаОРасходах) ON [Типы расходов].КодТипаРасходов=[Сведения о расходах].КодТипаРасходов

WHERE ((([Типы расходов].КатегорияРасходов)="Оплата автотранспорта"));

Для получения операции проекции используется запрос:

SELECT DISTINCT [Отчеты о расходах].КодОтчетаОРасходах, Сотрудники.Имя, Сотрудники.Фамилия, Сотрудники.Должность, [Типы расходов].КатегорияРасходов, [Отчеты о расходах].ДатаВыставленияСчета, [Сведения о расходах].СуммаСтатьиРасходов

FROM [Типы расходов] RIGHT JOIN ((Сотрудники INNER JOIN [Отчеты о расходах] ON Сотрудники.КодСотрудника=[Отчеты о расходах].КодСотрудника) INNER JOIN [Сведения о расходах] ON [Отчеты о расходах].КодОтчетаОРасходах=[Сведения о расходах].КодОтчетаОРасходах) ON [Типы расходов].КодТипаРасходов=[Сведения о расходах].КодТипаРасходов

WHERE ((([Типы расходов].КатегорияРасходов)="Оплата автотранспорта"));

3.2.6. Формирование и отладка запроса

Так как между таблицами существуют связи типа «один-ко-многим», то для исключения повторяющихся строк следует использовать инструкцию:

SELECT DISTINCTROW [Отчеты о расходах].КодОтчетаОРасходах, Сотрудники.Имя, Сотрудники.Фамилия, Сотрудники.Должность, [Типы расходов].КатегорияРасходов, [Отчеты о расходах].ДатаВыставленияСчета, [Сведения о расходах].СуммаСтатьиРасходов

FROM [Типы расходов] RIGHT JOIN ((Сотрудники INNER JOIN [Отчеты о расходах] ON Сотрудники.КодСотрудника=[Отчеты о расходах].КодСотрудника) INNER JOIN [Сведения о расходах] ON [Отчеты о расходах].КодОтчетаОРасходах=[Сведения о расходах].КодОтчетаОРасходах) ON [Типы расходов].КодТипаРасходов=[Сведения о расходах].КодТипаРасходов

WHERE ((([Типы расходов].КатегорияРасходов)="Оплата автотранспорта"));

3.2.7. Подготовка запроса в Конструкторе

В режиме Конструктора запрос имеет вид:

При выполнении запроса получим:

Затраты на автотранспорт

Код отчета

Имя

Фамилия

Должность

Тип расходов

Дата

Сумма расходов

1

Мария

Петрова

Бухгалтер

Оплата служащим

05.02.2005

1 000,00р.

2

Николай

Волков

Директор

Культурно-развлекательные мероприятия

10.02.2005

500,00р.

3

Олег

Пузов

Инженер

Оплата автотранспорта

10.02.2005

100,00р.

4

Вадим

Ширшин

Электрик

Культурно-развлекательные мероприятия

25.02.2005

2 550,00р.

4. База данных «Бумаги»

4.1. Схема базы данных «Бумаги»

Между таблицами базы данных «Бумаги» установлены следующие связи типа «один-ко-многим» между таблицами:

4.2. Определения наличия определенного количества определенной бумаги

Как проверить, имеется ли у агента, выставившего на продажу определенную бумагу, эта бумага в соответствующем количестве?

4.2.1. Определение состава выходного сообщения

Проанализировав результаты информационной потребности, определим состав и структуру требуемого сообщения S [Наличие определенной бумаги в требуемом количестве].

S (Агенты.НаимАг, Бумаги.НаимБум, ЗаказыНаПродажу.ОбъемЗаявкиПрТек, ЗаявкиНаПокупки.ОбъемЗаявкиПок, Разность: [ОбъемЗаявкиПрТек]-[ОбъемЗаявкиПок])

Наличие определенной бумаги

НаимАг

НаимБум

ОбъемЗаявкиПрТек

ОбъемЗаявкиПок

Разность

Реквизит НаимБум является обязательным, все остальные – дополнительными.

4.2.2. Разработка модели процесса

Определим состав полей и таблиц, используемых в запросе, опираясь на приведенную в пункте 4.1 схемы базы данных «Бумаги».

Поскольку сведения об агентах хранятся в таблице Агенты, сведения о бумагах – в таблице Бумаги, а данные о заявках на покупку и продажу бумаг хранятся в таблицах ЗаявкиНаПокупку и ЗаказыНаПродажу, то в запросе будут участвовать поля из перечисленных таблиц.

На выходе процесса представлено сообщение с определенной в предыдущем пункте структурой:

4.2.3. Общее описание процесса решения задачи

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

Для потребителя-пользователя запрос характеризуется как простой с поэтапным потреблением информации. Для работы с данными результирующая таблица может быть экспортирована в Excel. В Access запрос будет являться запросом на выборку.

Данные во всех используемых таблицах являются справочными и обновляются при поступлении новых.

Для использования данных многими потребителями они размещаются на сервере сети, функционирующей под управлением Microsoft SQL Server.

Подготовка запроса в Access проводится в режиме Конструктора.

4.2.4. Представление подсхемы данных

Таблицы Агенты, Бумаги, Заказы на продажу и Заявки на покупки имеют простые ключи КодАг, КодБум, КодЗаявкиПр и КодЗаявкиПок соответственно.

4.2.5. Ручная обработка данных

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

Агенты

КодАг

НаимАг

СуммаДен

Комментарий

1

Автосервис

100 000 000,00р.

2

Сибэнерго

20 000 000,00р.

3

Салон красоты

40 000 000,00р.

Бумаги

КодБум

НаимБум

Номинал

СуммОбъем

ДатаЗп

ТипБум

1

Вексель

20 000,00р.

100 000,00р.

10.05.2005

Ценная

2

Казначейское обязательство

10 000,00р.

50 000,00р.

11.05.2005

Банковская

3

Акция

1 000,00р.

1 000,00р.

15.05.2005

Обменная

ЗаказыНаПродажу

КодЗаявкиПр

КодАг

КодБум

ОбъемЗаявкиПрНач

ОбъемЗаявкиПрТек

ЦенаЗаявкиПр

ДатаЗаявкиПр

7

3

2

5

6

10 000,00р.

23.05.2005

8

1

1

10

8

30 000,00р.

24.05.2005

ЗаявкиНаПокупки

КодЗаявкиПок

КодАг

КодБум

КодЗаявкиПр

ОбъемЗаявки

Пок

Цена

ЗаявкиПок

ПризнакПок

ДатаЗаякиПок

1

3

2

001

5

8 000,00р.

Куплено

23.05.2005

3

1

1

003

10

33 000,00р.

В продаже

24.05.2005

Выполним реляционную операцию произведение для таблиц Заказы на продажу и Заявки на покупки:

Код

ЗаявкиПр

Код

Аг

Код

Бум

Объем

Заявки

ПрНач

Объем

Заявки

ПрТек

Цена

ЗаявкиПр

Код

Заявки Пок

Код Аг

Код бум

Код

Заявки Пок

Объем заявки пок

Цена ЗаявкиПок

7

3

2

5

6

10 000,00р.

1

3

2

001

5

8 000,00р.

8

1

1

10

8

30 000,00р.

1

3

2

001

5

8 000,00р.

7

3

2

5

6

10 000,00р.

3

1

1

003

10

33 000,00р.

8

1

1

10

8

30 000,00р.

3

1

1

003

10

33 000,00р.

Теперь выполним операцию соединение – сцепление строк с одинаковыми значениями полей КодАг:

Код

ЗаявкиПр

Код

Аг

Код

Бум

Объем

Заявки

ПрНач

Объем

Заявки

ПрТек

Цена

ЗаявкиПр

Код

Заявки Пок

Код бум

Код

Заявки Пок

Объем заявки пок

Цена ЗаявкиПок

7

3

2

5

6

10 000,00р.

1

2

001

5

8 000,00р.

8

1

1

10

8

30 000,00р.

3

1

003

10

33 000,00р.

Далее вновь выполним операцию соединение – сцепление строк с совпадающими значениями полей КодБум:

Код

ЗаявкиПр

Код

Аг

Код

Бум

Объем

Заявки

ПрНач

Объем

Заявки

ПрТек

Цена

ЗаявкиПр

Код

Заявки Пок

Код

Заявки Пок

Объем заявки пок

Цена ЗаявкиПок

7

3

2

5

6

10 000,00р.

1

001

5

8 000,00р.

8

1

1

10

8

30 000,00р.

3

003

10

33 000,00р.

Отберем только те строки, для которых ОбхемЗаявкиПок не превышает ОбъемЗаявкиПрТек:

Код

ЗаявкиПр

Код

Аг

Код

Бум

Объем

Заявки

ПрНач

Объем

Заявки

ПрТек

Цена

ЗаявкиПр

Код

Заявки Пок

Код

Заявки Пок

Объем заявки пок

Цена ЗаявкиПок

7

3

2

5

6

10 000,00р.

1

001

5

8 000,00р.

Теперь выполним операцию сцепления для полученной таблицы с таблицей Агенты:

Код

Заяв

киПр

Код

Аг

Код

Бум

Объем

Заявки

ПрНач

Объем

Заявки

ПрТек

Цена

ЗаявкиПр

Код

Заявки Пок

Код

Заявки Пок

Объем заявки пок

Цена ЗаявкиПок

Код Аг

Наим Аг

СуммаДен

7

3

2

5

6

10 000,00р.

1

001

5

8 000,00р.

1

Автосервис

100000000

7

3

2

5

6

10 000,00р.

1

001

5

8 000,00р.

2

Автосервис

20000000

7

3

2

5

6

10 000,00р.

1

001

5

8 000,00р.

3

Салон красоты

40000000

8

1

1

10

8

30 000,00р.

3

003

10

33 000,00р.

1

Автосервис

100000000

8

1

1

10

8

30 000,00р.

3

003

10

33 000,00р.

2

Автосервис

20000000

8

1

1

10

8

30 000,00р.

3

003

10

33 000,00р.

3

Салон красоты

40000000

Выполним операцию соединения – сцепления строк с одинаковыми полями КодАг:

Код

Заяв

киПр

Код

Аг

Код

Бум

Объем

Заявки

ПрНач

Объем

Заявки

ПрТек

Цена

ЗаявкиПр

Код

Заявки Пок

Код

Заявки Пок

Объем заявки пок

Цена ЗаявкиПок

Наим Аг

СуммаДен

7

3

2

5

6

10 000,00р.

1

001

5

8 000,00р.

Салон красоты

40000000

8

1

1

10

8

30 000,00р.

3

003

10

33 000,00р.

Автосервис

100000000

Выполним операцию произведения полученной таблицы с таблицей Бумаги:

Код

Заяв

киПр

Код

Аг

Код

Бум

Объем

Заявки

ПрНач

Объем

Заявки

ПрТек

Цена

ЗаявкиПр

Код

Заявки Пок

Код

Заявки Пок

Объем заявки пок

Цена ЗаявкиПок

Наим Аг

СуммаДен

Код Бум

Наим Бум

7

3

2

5

6

10 000,00р.

1

001

5

8 000,00р.

Салон красоты

40000000

1

Вексель

8

1

1

10

8

30 000,00р.

3

003

10

33 000,00р.

Автосервис

100000000

1

Вексель

7

3

2

5

6

10 000,00р.

1

001

5

8 000,00р.

Салон красоты

40000000

2

Казн обяз

8

1

1

10

8

30 000,00р.

3

003

10

33 000,00р.

Автосервис

100000000

2

Казн обяз

7

3

2

5

6

10 000,00р.

1

001

5

8 000,00р.

Салон красоты

40000000

3

Акция

8

1

1

10

8

30 000,00р.

3

003

10

33 000,00р.

Автосервис

100000000

3

Акция

Отберем строки у которых совпадают поля КодБум (результат сцепления):

Код

Заяв

киПр

Код

Аг

Код

Бум

Объем

Заявки

ПрНач

Объем

Заявки

ПрТек

Цена

ЗаявкиПр

Код

Заявки Пок

Код

Заявки Пок

Объем заявки пок

Цена ЗаявкиПок

Наим Аг

СуммаДен

Наим Бум

8

1

1

10

8

30 000,00р.

3

003

10

33 000,00р.

Автосервис

100000000

Вексель

7

3

2

5

6

10 000,00р.

1

001

5

8 000,00р.

Салон красоты

40000000

Казн обяз

Выполним операцию селекции – отбор строк, в которых ОбъемЗаявкиПок не превышает ОбъемЗаявкиПрТек:

Код

Заяв

киПр

Код

Аг

Код

Бум

Объем

Заявки

ПрНач

Объем

Заявки

ПрТек

Цена

ЗаявкиПр

Код

Заявки Пок

Код

Заявки Пок

Объем заявки пок

Цена ЗаявкиПок

Наим Аг

СуммаДен

Наим Бум

7

3

2

5

6

10 000,00р.

1

001

5

8 000,00р.

Салон красоты

40000000

Казн обяз

Выполним операцию проекции:

Код

Заяв

киПр

Объем

Заявки

ПрНач

Объем

Заявки

ПрТек

Цена

ЗаявкиПр

Объем заявки пок

Цена ЗаявкиПок

Наим Аг

СуммаДен

Наим Бум

7

5

6

10 000,00р.

5

8 000,00р.

Салон красоты

40000000

Казн обяз

Для получения в автоматизированном режиме таблицы с результатом произведения используется запрос:

SELECT Агенты.*, Бумаги.*, ЗаказыНаПродажу.*, ЗаявкиНаПокупки.* FROM Агенты, Бумаги, ЗаказыНаПродажу, ЗаявкиНаПокупки ;

Для получения в автоматизированном режиме таблицы с результатом операции соединения используется запрос:

SELECT Агенты.НаимАг, Бумаги.НаимБум, ЗаказыНаПродажу.ОбъемЗаявкиПрТек, ЗаявкиНаПокупки.ОбъемЗаявкиПок, [ОбъемЗаявкиПрТек]-[ОбъемЗаявкиПок] AS Разность

FROM Бумаги INNER JOIN ((Агенты INNER JOIN ЗаказыНаПродажу ON Агенты.КодАг = ЗаказыНаПродажу.КодАг) INNER JOIN ЗаявкиНаПокупки ON Агенты.КодАг = ЗаявкиНаПокупки.КодАг) ON (Бумаги.КодБум = ЗаявкиНаПокупки.КодБум) AND (Бумаги.КодБум = ЗаказыНаПродажу.КодБум);

Для получения в автоматизированном режиме таблицы с результатом операции проекции используется запрос:

SELECT DISTINCT Агенты.НаимАг, Бумаги.НаимБум, ЗаказыНаПродажу.ОбъемЗаявкиПрТек, ЗаявкиНаПокупки.ОбъемЗаявкиПок, [ОбъемЗаявкиПрТек]-[ОбъемЗаявкиПок] AS Разность

FROM Бумаги INNER JOIN ((Агенты INNER JOIN ЗаказыНаПродажу ON Агенты.КодАг = ЗаказыНаПродажу.КодАг) INNER JOIN ЗаявкиНаПокупки ON Агенты.КодАг = ЗаявкиНаПокупки.КодАг) ON (Бумаги.КодБум = ЗаявкиНаПокупки.КодБум) AND (Бумаги.КодБум = ЗаказыНаПродажу.КодБум);

4.2.6. Формирование и отладка запроса

Так как между всеми таблица существуют связи «один-ко-многим», для исключения повторов строк следует использовать следующий запрос:

SELECT DISTINCTROW Агенты.НаимАг, Бумаги.НаимБум, ЗаказыНаПродажу.ОбъемЗаявкиПрТек, ЗаявкиНаПокупки.ОбъемЗаявкиПок, [ОбъемЗаявкиПрТек]-[ОбъемЗаявкиПок] AS Разность

FROM Бумаги INNER JOIN ((Агенты INNER JOIN ЗаказыНаПродажу ON Агенты.КодАг = ЗаказыНаПродажу.КодАг) INNER JOIN ЗаявкиНаПокупки ON Агенты.КодАг = ЗаявкиНаПокупки.КодАг) ON (Бумаги.КодБум = ЗаявкиНаПокупки.КодБум) AND (Бумаги.КодБум = ЗаказыНаПродажу.КодБум);

4.2.7. Подготовка запроса в Конструкторе

Для определения наличия определенной бумаги в нужном количестве создадим запрос, которые будет включать поле НаимАг из таблицы Агенты, поле НаимБум из таблицы Бумаги, поле ОбъемЗаявкиПрТек из таблицы ЗаказыНаПродажу и поле ОбъемЗаявкиПок из таблицы ЗаявкиНаПокупку.

Для определения наличия определенной бумаги создадим в запросе вычисляемое поле Разность: [ОбъемЗаявкиПрТек]-[ОбъемЗаявкиПок], которое будет определять разность между предложением по продаже и спросом.

Если эта разность положительна, значит бумага имеется в нужном количестве.

В Конструкторе запрос имеет структуру:

Получим результат запроса:

Наличие определенной бумаги

НаимАг

НаимБум

ОбъемЗаявкиПрТек

ОбъемЗаявкиПок

Разность

Салон красоты

Казначейское обязательство

6

5

1

Арык

Вексель

2

2

0

Автосервис

Вексель

8

10

-2

Автосервис

Казначейское обязательство

2

4

-2

Сибэнерго

Акция

10

22

-12

Салон красоты

Вексель

11

14

-3

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

Список источников

1.     Гофман В.Э., Хомоненко А.Д. Работа с базами данных в Delphi. – СПб,: БХВ-Петербург, 2001. – 656 с.: ил.

2.     Левин А. Самоучитель работы на компьютере. Москва, издательство «Нолидж», 1999 – 624 с.

3.     Козырев А.А. Самоучитель работы на персональном компьютере. Учебное пособие. Изд. 2-е, переработанное и дополненное. СПб.: Изд-во Михайлова В.А., 2000 – 304 с.

4.     Вейскас Дж. Эффективная работа: Microsoft Office Access 2003. Издательский дом  «Питер», 2005. – 1168 с.

5.     Хэлворсон М., Янг М. Эффективная работа: Office XP. Издательский дом «Питер», 2004. – 1072