Содержание
Задача 1.4. Выдать названия клиентов с заказами на определенный месяц текущего года, их адреса, сведения о месте нахождения. 3
Задача 1.12. Кому из финских клиентов были оформлены заказы на поставку товаров со скидкой с начала текущего года?. 6
Задача 2.2. Выдать фамилии и имена сотрудников, работавших по заказам клиентов из России в течение определенного периода текущего года. 8
Задача 4.2. Получить сведения о проектах с партнерами из России, которые выполнены в течение определенного периода, включая стоимость и продолжительность. 13
Задача 6.14. Имеются ли в составе портфелей бумаги, эмиссия которых была осуществлена позже указанной даты, и в каком количестве?. 17
Список литературы.. 19
Задача 1.4. Выдать названия клиентов с заказами на определенный месяц текущего года, их адреса, сведения о месте нахождения
Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S_(названия клиентов с заказами на определенный месяц текущего года, их адреса, сведения о месте нахождения)
S_(Клиенты.Название, Клиенты.Страна, Клиенты.Адрес).
Названия клиентов с заказами на определенный месяц текущего года, их адреса, сведения о месте нахождения:
Название |
страна |
адрес |
Состав полей и таблиц, используемых в запросе из схемы № 1 (база данных Борей) в виде обобщенной функционально-технологической схемы задачи, представлен в графическом виде на рисунке 1.
Рисунок 1. Функционально-технологическая схема задачи
Подготовка выходного сообщения позволит уменьшить трудозатраты на выборку информации для организации взаимодействия с клиентами, сделавшими заказ на определенную дату. Это может понадобиться для подготовки заказов или их контроля в зависимости от текущего момента времени.
С позиций потребителя-пользователя запрос можно охарактеризовать как простой с поэтапным потреблением информации. Для работы с данными результирующая таблица может быть экспортирована в Excel. При реализации в Access данный запрос может быть запросом на выборку.
Подготовка запроса в Access с использованием *.mdb-файла осуществляется с использованием Конструктора, поскольку все данные находятся в связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. SQL-запрос передается серверу, который возвращает клиенту результирующую таблицу. Выполнение процедур создания и использования запроса осуществляется на рабочей станции и на сервере сети.
Рисунок 2. Подсистема базы данных
Методы связи и первичные ключи видны из рисунка.
Процедура реляционной обработки данных выполняется вручную. Представляем значения исходных данных в таблицах.
Таблица 1. Клиенты (фрагмент)
Код клиента |
Название |
Обращаться к |
Адрес |
Город |
Страна |
Телефон |
Факс |
ALFKI |
Alfreds Futterkiste |
Maria Anders |
Obere Str. 57 |
Берлин |
Германия |
030-0074321 |
030-0076545 |
ANATR |
Ana Trujillo Emparelados |
Ana Trujillo |
Avda. de la Constitucion 2222 |
Мехико |
Мексика |
(5) 555-47291 |
(5) 555-3745 |
ANTON |
Antonio Moreno Taqueria |
Antonio Moreno |
Mataderos 2312 |
Мехико |
Мексика |
(5) 555-3932 |
|
AROUT |
Around the Horn |
Thomas Hardy |
120 Hanover Sq. |
Лондон |
Великобритания |
(171) 555-7788 |
(171) 555-6750 |
Таблица 2. Заказы (фрагмент)
Код заказа |
Клиент |
Сотрудник |
Дата размещения |
Дата назначения |
Дата исполнения |
11011 |
Alfreds Futterkiste |
Бабкина, Ольга |
09-04-1998 |
07-05-1998 |
13-04-1998 |
10952 |
Alfreds Futterkiste |
Белова, Мария |
16-03-1998 |
27-04-1998 |
24-03-1998 |
10702 |
Alfreds Futterkiste |
Воронова, Дарья |
13-10-1997 |
24-11-1997 |
21-10-1997 |
10625 |
Ana Trujillo Emparelados |
Бабкина, Ольга |
08-08-1997 |
05-09-1997 |
14-08-1997 |
Таблица 3. Результат выполнения реляционной операции произведения
Запрос2 |
||||||
Код заказа |
Клиент |
Дата размещения |
Код клиента |
Название |
Адрес |
Страна |
10702 |
Alfreds Futterkiste |
13-10-1997 |
ALFKI |
Alfreds Futterkiste |
Obere Str. 57 |
Германия |
10952 |
Alfreds Futterkiste |
16-03-1998 |
ALFKI |
Alfreds Futterkiste |
Obere Str. 57 |
Германия |
11011 |
Alfreds Futterkiste |
09-04-1998 |
ALFKI |
Alfreds Futterkiste |
Obere Str. 57 |
Германия |
10308 |
Ana Trujillo Emparelados |
18-09-1996 |
ANATR |
Ana Trujillo Emparelados |
Avda. de la Constitucion 2222 |
Мексика |
10625 |
Ana Trujillo Emparelados |
08-08-1997 |
ANATR |
Ana Trujillo Emparelados |
Avda. de la Constitucion 2222 |
Мексика |
Таблица 4. Результат выполнения реляционной операции соединения – сцепления строк с совпадающими значениями поля «Код Клиента»
Запрос2 |
||||
Код заказа |
Дата размещения |
Название |
Адрес |
Страна |
10702 |
13-10-1997 |
Alfreds Futterkiste |
Obere Str. 57 |
Германия |
10952 |
16-03-1998 |
Alfreds Futterkiste |
Obere Str. 57 |
Германия |
11011 |
09-04-1998 |
Alfreds Futterkiste |
Obere Str. 57 |
Германия |
10308 |
18-09-1996 |
Ana Trujillo Emparelados |
Avda. de la Constitucion 2222 |
Мексика |
10625 |
08-08-1997 |
Ana Trujillo Emparelados |
Avda. de la Constitucion 2222 |
Мексика |
Таблица 5. Результат выполнения операции селекции – выбора строк по принадлежности значений поля дата назначения по заданному параметру периода времени – фрагмент :
Запрос2 |
|||||
Код заказа |
Клиент |
Дата размещения |
Название |
Адрес |
Страна |
10726 |
Eastern Connection |
03-11-1997 |
Eastern Connection |
35 King George |
Великобритания |
10727 |
Reggiani Caseifici |
03-11-1997 |
Reggiani Caseifici |
Strada Provinciale 124 |
Италия |
10728 |
Queen Cozinha |
04-11-1997 |
Queen Cozinha |
Alameda dos Canarios, 891 |
Бразилия |
10729 |
LINO-Delicateses |
04-11-1997 |
LINO-Delicateses |
Ave. 5 de Mayo Porlamar |
Венесуэла |
Таблица 6. Результат выполнения операции проекции. Фрагмент
Запрос2 |
|||
Дата размещения |
Название |
Адрес |
Страна |
03-11-1997 |
Eastern Connection |
35 King George |
Великобритания |
03-11-1997 |
Reggiani Caseifici |
Strada Provinciale 124 |
Италия |
04-11-1997 |
Queen Cozinha |
Alameda dos Canarios, 891 |
Бразилия |
04-11-1997 |
LINO-Delicateses |
Ave. 5 de Mayo Porlamar |
Венесуэла |
05-11-1997 |
Bon app' |
12, rue des Bouchers |
Франция |
06-11-1997 |
Chop-suey Chinese |
Hauptstr. 29 |
Швейцария |
06-11-1997 |
Bon app' |
12, rue des Bouchers |
Франция |
Полный вариант запроса на выборку клиентов, заказавших товары на 1 ноября текущего года, их телефонов и факсов.
SELECT Заказы.ДатаРазмещения, Клиенты.Название, Клиенты.Адрес, Клиенты.Страна
FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента
WHERE (((Заказы.ДатаРазмещения) Between #11/1/1997# And #12/1/1997#));
Задача 1.12. Кому из финских клиентов были оформлены заказы на поставку товаров со скидкой с начала текущего года?
Определить, кому из финских клиентов были оформлены заказы на поставку товаров со скидкой с начала текущего года.
Для запроса будем использовать поля Название и Страна из таблицы Клиенты, поля КодТовара, Цена, Количество и Скидка из таблицы Заказано, а также поля ДатаИсполнения из таблицы Заказы.
Зададим условия отбора для поля Страна – Финляндия, а для поля Скидка - >0.
Также создадим вычисляемое поле для выделения года из даты. Для этого в заголовок пустого поля введем выражение Год: Year([ДатаИсполнения]).
Чтобы запрашивался интересующий год, введем условие отбора [Введите год:] для созданного вычисляемого поля Год.
В режиме Конструктора запрос примет вид:
Для SQL-сервера запрос реализуется следующей инструкцией:
SELECT Клиенты.Название, Заказы.ДатаИсполнения, Клиенты.Страна, Заказано.КодТовара, Заказано.Цена, Заказано.Количество, Заказано.Скидка, Year([ДатаИсполнения]) AS Год
FROM Клиенты INNER JOIN (Заказы INNER JOIN Заказано ON Заказы.КодЗаказа = Заказано.КодЗаказа) ON Клиенты.КодКлиента = Заказы.КодКлиента
WHERE (((Клиенты.Страна)="Финляндия") AND ((Заказано.Скидка)>0) AND ((Year([ДатаИсполнения]))=[Введите год:]));
Запрос выдаст следующий результат для 1998 года:
ТоварыДляФинскихКлиентов |
|||||||
Название |
Дата исполнения |
Страна |
Товар |
Цена |
Количество |
Скидка |
Год |
Wartian Herkku |
24-04-1998 |
Финляндия |
Genen Shouyu |
180,00р. |
10 |
10,00% |
1998 |
Wartian Herkku |
24-04-1998 |
Финляндия |
Schoggi Schokolade |
60,00р. |
20 |
10,00% |
1998 |
Задача 2.2. Выдать фамилии и имена сотрудников, работавших по заказам клиентов из России в течение определенного периода текущего года
Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S_(Сведения о сотрудниках, работавших по заказам клиентов из Украины в течение определенного периода текущего года).
S_(Сотрудники.Фамилия, Сотрудники.Должность, Клиенты.Страна, Заказы_на_работы.ДатаПолучения).
Сведения о сотрудниках, работавших по заказам клиентов из Украины в течение определенного периода текущего года
Фамилия сотрудника |
Должность сотрудника |
Страна |
Дата Назначения |
Реквизит «Фамилия сотрудника» является обязательным по условию задачи, остальные реквизиты используются в процедурах профилизации, сегментации и связи.
Определяем состав полей и таблиц, используемых в запросе из схемы № 2. Представляем в графическом виде обобщенную функционально-технологическую схему задачи.
Подготовка выходного сообщения позволит уменьшить трудозатраты на выборку информации для организации взаимодействия с клиентами в течение августа текущего года или проанализировать ситуацию на тот момент.
С позиций потребителя-пользователя запрос можно охарактеризовать как простой с поэтапным потреблением информации. Для работы с данными результирующая таблица может быть экспортирована в Excel. При реализации в Access данный запрос может быть запросом на выборку.
Подготовка запроса в Access с использованием *.mdb-файла осуществляется с использованием Конструктора, поскольку все данные находятся связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. SQL-запрос передается серверу, который возвращает клиенту результирующую таблицу. Выполнение процедур создания и использования запроса осуществляется на рабочей станции и на сервере сети.
Таблица Заказы_на_работы имеет простой ключ «КодЗаказа», таблица Клиенты – простой ключ «КодКлиента», таблица Сотрудники – простой ключ «КодСотрудника». Таблицы Клиенты и Сотрудники является главными, Заказы – подчиненная таблица. Тип связи «один-ко-многим». Связь по полям «КодКлиента» и «КодСотрудника» (ключи связи). Целостность по значениям определяется отсутствием в таблице Заказы_на_работы значений поля «КодКлиента» и поля «КодСотрудника», которых нет соответственно в таблице Клиенты и таблице Сотрудники. Значения поля «КодКлиента» и значения поля «КодСотрудника» в таблице Заказы_на_работы обновляются автоматически при изменении значений поля «КодКлиента» в таблице Клиенты и поля «КодСотрудника» в таблице Сотрудники.
Процедура реляционной обработки данных выполняется вручную. Представляем значения исходных данных в таблицах.
Таблица Сотрудники (фрагмент):
КодСотрудника |
Фамилия Сотрудника |
Должность Сотрудника |
1 |
Иванов Федор Евгеньевич |
Инженер |
2 |
Сидоров Иван Данилович |
менеджер |
Таблица Клиенты (фрагмент):
КодКлиента |
Название компании |
Страна |
1 |
ООО «Сибирский Берег» |
Россия |
2 |
ЧП «Глухов» |
Украина |
Таблица Заказы_на_работы (фрагмент):
КодЗаказа |
Код Клиента |
Код Сотрудника |
Дата Назначения |
1 |
1 |
2 |
01.03.04 |
2 |
2 |
2 |
12.05.04 |
3 |
2 |
1 |
01.09.03 |
Результат выполнения реляционной операции произведения (фрагмент):
Код Заказа |
Код Клиента |
Код Сотрудника |
Дата назначения |
Код Клиента |
Название компании |
Страна |
Фамилия Сотрудника |
Должность |
1 |
1 |
2 |
01.03.04 |
1 |
ООО «Сибирский берег» |
Россия |
Иванов Федор Евгеньевич |
Инженер |
1 |
1 |
2 |
01.03.04 |
1 |
ООО «Сибирский берег» |
Россия |
Сидоров Иван Данилович |
менеджер |
1 |
1 |
2 |
01.03.04 |
2 |
ЧП «Глухов» |
Украина |
Иванов Федор Евгеньевич |
Инженер |
1 |
1 |
2 |
01.03.04 |
2 |
ЧП «Глухов» |
Украина |
Сидоров Иван Данилович |
Менеджер |
2 |
2 |
2 |
12.05.04 |
1 |
ООО «Сибирский берег» |
Россия |
Иванов Федор Евгеньевич |
Инженер |
2 |
2 |
2 |
12.05.04 |
1 |
ООО «Сибирский берег» |
Россия |
Сидоров Иван Данилович |
Менеджер |
2 |
2 |
2 |
12.05.04 |
2 |
ЧП «Глухов» |
Украина |
Иванов Федор Евгеньевич |
Инженер |
2 |
2 |
2 |
12.05.04 |
2 |
ЧП «Глухов» |
Украина |
Сидоров Иван Данилович |
Менеджер |
3 |
2 |
1 |
01.09.03 |
1 |
ООО «Сибирский берег» |
Россия |
Иванов Федор Евгеньевич |
Инженер |
3 |
2 |
1 |
01.09.03 |
1 |
ООО «Сибирский берег» |
Россия |
Сидоров Иван Данилович |
Менеджер |
3 |
2 |
1 |
01.09.03 |
2 |
ЧП «Глухов» |
Украина |
Иванов Федор Евгеньевич |
Инженер |
3 |
2 |
1 |
01.09.03 |
2 |
ЧП «Глухов» |
Украина |
Сидоров Иван Данилович |
Менеджер |
Результат выполнения реляционной операции соединения – сцепления строк с совпадающими значениями поля «Код Сотрудника» и поля «Код Клиента» (фрагмент):
Код Заказа |
Код Клиента |
Код Сотрудника |
Дата назначения |
Код Клиента |
Название компании |
Страна |
Фамилия Сотрудника |
Должность |
1 |
1 |
2 |
01.03.04 |
1 |
ООО «Сибирский берег» |
Россия |
Сидоров Иван Данилович |
менеджер |
2 |
2 |
2 |
12.05.04 |
2 |
ЧП «Глухов» |
Украина |
Сидоров Иван Данилович |
менеджер |
3 |
2 |
1 |
01.09.03 |
2 |
ЧП «Глухов» |
Украина |
Иванов Федор Евгеньевич |
Инженер |
Результат выполнения операции селекции – выбора строк по принадлежности значений поля «Страна» - значению «Украина» и значений поля «Дата назначения» интервалу от 01.02.2004 до 15.09.2004 включительно (фрагмент):
Код Заказа |
Код Клиента |
Код Сотрудника |
Дата назначения |
Код Клиента |
Название компании |
Страна |
Фамилия Сотрудника |
Должность |
2 |
1 |
2 |
12.05.04 |
1 |
ЧП «Глухов» |
Россия |
Сидоров Иван Данилович |
менеджер |
Результат выполнения операции проекции (фрагмент):
Фамилия Сотрудника |
Должность |
Дата назначения |
Страна |
Сидоров Иван Данилович |
менеджер |
12.05.04 |
Россия |
Полный вариант запроса на выборку сведений о сотрудниках, работавших по заказам клиентов из Украины в течение определенного периода текущего года :
SELECT [Сотрудники].[Фамилия], [Сотрудники].[Должность], [Клиенты].[Страна], [Заказы_на_работы].[ДатаНазначения]
FROM Сотрудники INNER JOIN (Клиенты INNER JOIN Заказы_на_работы ON [Клиенты].[КодКлиента]=[Заказы_на_работы].[КодКлиента]) ON [Сотрудники].[КодСотрудника]=[Заказы_на_работы].[КодСотрудника]
WHERE ((([Клиенты].[Страна])="Украина") And (([Заказы_на_работы].[ДатаНазначения]) Between [НачДата] And [КонечДата]))
Задача 4.2. Получить сведения о проектах с партнерами из России, которые выполнены в течение определенного периода, включая стоимость и продолжительность
Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S_(Сведения о проектах с партнерами из России, которые выполнены в течение определенного периода, включая стоимость и продолжительность).
S_(Проекты.НазваниеПроекта, Проекты.ОписаниеПроекта, Проекты.ОценочнаяСтоимость, Проекты.ДатаНачалаПроекта, Проекты.ДатаЗавершенияПроекта).
Сведения о проектах с партнерами из России, которые выполнены в течение определенного периода, включая стоимость и продолжительность
Название проекта |
Описание проекта |
Оценочная стоимость |
Дата начала проекта |
Дата завершения проекта |
Реквизиты оценочная стоимость, название проекта и описание проекта требуются по условию задачи, реквизиты дата начала проекта и дата завершения проекта составляю продолжительность проекта, что также требуется по условию задачи.
Определяем состав полей и таблиц, используемых в запросе из схемы № 4 (рис.4, база данных Проекты). Представляем в графическом виде обобщенную функционально-технологическую схему задачи.
Подготовка выходного сообщения позволит уменьшить трудозатраты на выборку информации для организации взаимодействия с клиентами в течение августа текущего года или проанализировать ситуацию на тот момент.
С позиций потребителя-пользователя запрос можно охарактеризовать как простой с поэтапным потреблением информации. Для работы с данными результирующая таблица может быть экспортирована в Excel. При реализации в Access данный запрос может быть запросом на выборку.
Подготовка запроса в Access с использованием *.mdb-файла осуществляется с использованием Конструктора, поскольку все данные находятся связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. SQL-запрос передается серверу, который возвращает клиенту результирующую таблицу. Выполнение процедур создания и использования запроса осуществляется на рабочей станции и на сервере сети.
Методы связи и первичные ключи видны из рисунка
Процедура реляционной обработки данных выполняется вручную. Представляем значения исходных данных в таблицах.
Таблица Партнеры (фрагмент):
КодКлиента |
Страна |
1 |
Россия |
2 |
England |
Таблица Проекты (фрагмент):
Код Проекта |
Название Проекта |
Описание Проекта |
КодКлиента |
Оценочная стоимость |
Дата Начала проекта |
Дата Завершения Проекта |
1 |
Алюминий |
Поставка алюминия |
1 |
6 986 569,00р. |
01.01.2004 |
01.01.2005 |
3 |
Медь |
Покупка меди |
2 |
43 432 432,00р. |
03.03.2004 |
04.04.2005 |
Результат выполнения реляционной операции произведения (фрагмент):
Код Клиента |
Страна |
КодПроекта |
Название Проекта |
Описание Проекта |
КодКлиента |
Оценочная стоимость |
Дата Начала проекта |
Дата Завершения Проекта |
1 |
Россия |
1 |
Алюминий |
Поставка алюминия |
1 |
6 986 569,00р. |
01.01.2004 |
01.01.2005 |
2 |
England |
3 |
Медь |
Покупка меди |
2 |
43 432 432,00р. |
03.03.2004 |
04.04.2005 |
Результат выполнения реляционной операции соединения – сцепления строк с совпадающими значениями поля «Код Клиента» (фрагмент):
Код Клиента |
Страна |
КодПроекта |
Название Проекта |
Описание Проекта |
Оценочная стоимость |
Дата Начала проекта |
Дата Завершения Проекта |
1 |
Россия |
1 |
Алюминий |
Поставка алюминия |
6 986 569,00р. |
01.01.2004 |
01.01.2005 |
2 |
England |
3 |
Медь |
Покупка меди |
43 432 432,00р. |
03.03.2004 |
04.04.2005 |
Результат выполнения операции селекции – выбора строк по принадлежности значений поля «Страна» - значению «Россия», а дата начала и завершения проекта – введенным значениями, например 01.03.2004 и 05.05.2004 соответственно (фрагмент):
Код Клиента |
Страна |
КодПроекта |
Название Проекта |
Описание Проекта |
Оценочная стоимость |
Дата Начала проекта |
Дата Завершения Проекта |
1 |
Россия |
1 |
Алюминий |
Поставка алюминия |
6 986 569,00р. |
01.01.2004 |
01.01.2005 |
Результат выполнения операции проекции (фрагмент):
Название Проекта |
Описание Проекта |
Оценочная стоимость |
Дата Начала проекта |
Дата Завершения Проекта |
Алюминий |
Поставка алюминия |
6 986 569,00р. |
01.01.2004 |
01.01.2005 |
Полный вариант запроса на выборку сведений о проектах с партнерами из России, которые выполнены в течение определенного периода, включая стоимость и продолжительность:
SELECT Проекты.НазваниеПроекта, Проекты.ОписаниеПроекта, Проекты.ОценочнаяСтоимость, Проекты.ДатаНачалаПроекта, Проекты.ДатаЗавершенияПроекта
FROM Партнеры INNER JOIN Проекты ON Партнеры.КодКлиента = Проекты.КодКлиента
WHERE ((([Начало периода])<=[Проекты]![ДатаНачалаПроекта]) AND (([Конец периода])>=[Проекты]![ДатаЗавершенияПроекта]) AND ((Партнеры.Страна)="Россия"));
Задача 6.14. Имеются ли в составе портфелей бумаги, эмиссия которых была осуществлена позже указанной даты, и в каком количестве?
Исходя из результатов анализа информационной потребности, определяем состав и структуру требуемого сообщения S_(динамика объемов продаж по определенному агенту).
S_(Портфели.КодБумаги, Бумаги.ДатаЭм)
Динамика объемов продаж по определенному агенту, табличное представление выходного сообщения:
Код Бумаги |
Дата эмиссии |
Подготовка выходного сообщения позволит проанализировать динамику объемов продаж по определенному агенту.
С позиций потребителя-пользователя запрос можно охарактеризовать как простой с поэтапным потреблением информации. Для работы с данными результирующая таблица может быть экспортирована в Excel. При реализации в Access данный запрос может быть запросом на выборку.
Подготовка запроса в Access с использованием *.mdb-файла осуществляется с использованием Конструктора, поскольку все данные находятся в связанных между собой таблицах. При формировании запроса автоматически генерируется SQL-код. SQL-запрос передается серверу, который возвращает клиенту результирующую таблицу. Выполнение процедур создания и использования запроса осуществляется на рабочей станции и на сервере сети.
Процедура реляционной обработки данных выполняется вручную. Представляем значения исходных данных в таблицах.
Полный вариант запроса на выборку незастрахованных компьютеров:
SELECT Портфели.КодБумаги, Бумаги.ДатаЭм
FROM Агенты INNER JOIN (Портфели.КодБумаги ON Бумаги.ДатаЭм = Сделки.КодБум) ON Агенты.КодАг = Дата.Эм)
WHERE ((Бумаги.ДатаЭм = "Дата.Эм"));
Список литературы
1. Грабер М. SQL: Пер. с англ. -М.: Лори, 2001. - 644 с.
2. Информационные, технологии в маркетинге: Учеб. / Под ред. Г. А. Титоренко - М.- ЮНИТИ-ДАНА, 2000. - 335 с.
3. Карпова Т. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2001.-304 с.
4. Козырев А.А. Информационные технологии в экономике и управлении:Учеб. - СПб.: Изд-во Михайлова В. А., 2000. - 360 с.
5. Робинсон С. Microsoft Access 2000. - СПб.: Питер, 2001. - 512 с.