Автор работы: Пользователь скрыл имя, 25 Марта 2012 в 07:47, контрольная работа
работа состоит из 3 частей.теория,практика и задачи
Результат выполнения запроса
Клиенты на октябрь | ||||||
---|---|---|---|---|---|---|
Название | Адрес | Город | Область | Индекс | Страна | Дата размещения |
Alfreds Futterkiste | Obere Str. 57 | Берлин |
| 12209 | Германия | 16-10-2005 |
Comercio Mineiro | Av. dos Lusiadas, 23 | Сан-Пауло | SP | 05432-043 | Бразилия | 27-10-2005 |
Для получения в автоматизированном режиме таблицы с результатом выполнения операции произведения используется следующий запрос:
SELECT Клиенты*, Заказы* FROM Клиенты, Заказы
Для получения в автоматизированном режиме таблицы с результатом выполнения операции соединения используется следующий запрос:
SELECT Клиенты*, Заказы FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента= Заказы.КодКлиента
Для получения в автоматизированном режиме таблицы с результатом выполнения операции селекции используется следующий запрос:
SELECT Клиенты*, Заказы FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента= Заказы.КодКлиента WHERE WHERE ((((Заказы.ДатаРазмещения)>#
Для получения в автоматизированном режиме таблицы с результатом выполнения операции проекции используется следующий запрос:
SELECT DISTINCTROW Клиенты.Название, Клиенты.Адрес, Клиенты.Город, Клиенты.Область, Клиенты.Индекс, Клиенты.Страна, Заказы.ДатаРазмещения
FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента
WHERE ((((Заказы.ДатаРазмещения)>#
ORDER BY Заказы.ДатаРазмещения;
6. Формирование запроса
Поскольку между таблицами Заказы и Клиенты существует связь «один-ко-многим», для исключения повторяющихся строк необходимо использовать следующую инструкцию
SELECT DISTINCTROW
Полный вариант SQL-запроса:
SELECT DISTINCTROW Клиенты.Название, Клиенты.Адрес, Клиенты.Город, Клиенты.Область, Клиенты.Индекс, Клиенты.Страна, Заказы.ДатаРазмещения
FROM Клиенты INNER JOIN Заказы ON Клиенты.КодКлиента = Заказы.КодКлиента
WHERE ((((Заказы.ДатаРазмещения)>#
ORDER BY Заказы.ДатаРазмещения;
Задача 2.2
Выдать фамилии и имена сотрудников, работавших по заказам клиентов из России в течение определенного периода текущего года
Решение.
1. Определение состава входного сообщения
Исходя из анализа информационной потребности, определяем состав и структуру требуемого сообщения S(Сотрудники работавшие с клиентами из России): S(Сотрудники.Имя, Сотрудники.Фамилия, Клиенты.Страна, [Заказы на работы]. ДатаНазначения).
Имя | Фамилия | Страна | ДатаНазначения |
|
|
|
|
2. Разработка модели процесса
Определяем состав полей и таблиц, используемых в нашем запросе. Представляем в графическом виде обобщенную функционально-технологическую схему задачи. Поскольку сведения о клиентах, находятся в таблице Клиенты, сведения о дате заказа, в таблице Заказы на работы, а сведения о сотрудниках в таблице Сотрудники в запросе необходимо использовать следующие таблицы: Клиенты, Заказы на работы, Сотрудники. Таблицы Клиенты и Заказы на работу связанны между собой по полю «КодКлиента», причем Клиенты является главной, а Заказы подчиненной. Таблицы Сотрудники и Заказы на работу связанны между собой по полю «КодСотрудника», причем Сотрудники является главной, а Заказы подчиненной. Эти таблицы образуют часть схемы данных, используемую для решения задачи, поэтому других таблиц на входе процесса нет.
На выходе процесса представлено сообщение с определенной в предыдущем пункте
структурой.
3. Общее описание процесса решения задачи
Получения выходного сообщения позволит уменьшить трудозатраты на выборку по сотрудникам, работавшим по заказам из клиентов России в течении определенного периода текущего года. Получение информации всеми потребителями должно положительно повлиять на результаты работы компании.
С позиции потребителя-пользователя запрос можно охарактеризовать как простой с поэтапным потреблением информации.
4. Представление подсхемы базы данных
Таблица Заказы на работы имеет простой ключ «КодЗаказа», таблица Клиенты —
простой ключ «КодКлиента». Таблица Сотрудники простой ключ «КодСотрудника». В отношении между таблицами Заказы на работы и Клиенты, Клиенты является главной, а Заказы подчиненной. Тип связи – «один-ко-многим». Связь по полю «КодКлиента». В отношении между таблицами Заказы на работы и Сотрудники, Сотрудники является главной, а Заказы на работы подчиненной. Тиисиии— «один-ко-многим». Связь по полю «КодСотрудника». Значение полей «КодЮииии» «КодСотрудника» вТаблице Заказы на работы обновляются автоматически при изменениях значений соответствующих полей в главных таблицах.
5. Подготовка контрольного примера
Процедура реляционной обработки данных выполняется вручную. Представляем значение
исходных данных в таблицах.
Все представленные ниже таблицы являются фрагментами:
Сотрудники | ||
КодСотрудника | Имя | Фамилия |
1 | Иван | Иванов |
2 | Петр | Петров |
Клиенты | |
КодКлиента | Страна |
1 | Украина |
2 | Китай |
3 | Россия |
4 | Украина |
Заказы на работы | |||
КодЗаказа | КодКлиента | КодСотрудника | ДатаНазначения |
1 | 1 | 1 | 12.08.1998 |
2 | 1 | 1 | 12.05.1998 |
3 | 2 | 2 | 12.05.1998 |
8 | 3 | 1 | 15.03.1998 |
Результат выполнения запроса
Сотрудники работавшие с клиентами из России | |||
Имя | Фамилия | Страна | ДатаНазначения |
Иван | Иванов | Россия | 15.03.1998 |
6. Формирование запроса
Для исключения повторяющихся строк необходимо использовать следующую
инструкцию
SELECT DISTINCTROW
SELECT DISTINCTROW Сотрудники.Имя, Сотрудники.Фамилия, Клиенты.Страна,
[Заказы на работы] .ДатаНазначения
FROM Сотрудники INNER JOIN (Клиенты INNER JOIN [Заказы на работы] ON
Клиенты.КодКлиента = [Заказы на работы].КодКлиента) ON Сотрудники.КодСотрудника
= [Заказы на работы].КодСотрудника
WHERE (((Клиенты.Страна)="Россия") AND (([Заказы на