СТРУКТУРА БАЗЫ ДАННЫХ
ER-диаграмма
ER-диаграмма представляет собой модель «сущность-связь». В данной БД выделяются 3 сущности: турагентство, заказ, покупатель (табл.1). Вводя связи между сущностями, ER-диаграмму системы можно представить в виде ER-диаграммы
Таблица 1
Сущность |
Набор атрибутов |
Турагенство |
- Код тура - Название тура - Страна - Отель - Дата вылета - Количество дней - Цена - Наличие |
Заказ |
- Код заказа - Название тура - Покупатель - Дата заказа - Количество |
Покупатель |
- Код покупателя - Телефон - Покупатель - Адрес - Фотография |
Рис. 7.ER Diagram (Microsoft Access)
Таблицы
База данных состоит из следующих таблиц: «Турагентство», «Заказ», «Покупатель».
Рис. 8. Типы данных таблицы Турагентство
Рис. 9. Таблица Турагентство
Рис. 10. Типы данных таблицы Заказ
Рис. 11. Таблица Заказ
Рис. 12. Типы данных таблицы Покупатель
Рис. 13. Таблица Покупатель
Запросы, описание, формы, отчеты
Разработанные запросы:
вывод на экран полей: Покупатель, Телефон;
таблица: Покупатель.
вывод на экран полей из нескольких таблиц: Покупатель, Адрес, Дата Заказа, Название Тура, Страна;
таблицы: Покупатель, Заказ, турагентство
вывод на экран полей: Дата Заказа, Покупатель и Количество;
таблицы: Покупатель, Заказ.
На экран выводятся только те строки, где параметр “Дата Заказа” <01.10.2009.
· Запрос по текстовому значению атрибута
вывод на экран полей: Название Тура, Покупатель, Дата Заказа, Адрес, Телефон;
таблицы: Покупатель, Заказ.
На экран выводятся только те строки, где параметр “Название Тура” = ‘Свадебный’.
вывод на экран полей: Покупатель, Дата Заказа, Адрес;
таблицы: Покупатель, Заказ.
На экран выводятся только те строки, в которых параметр “фамилия” начинается с буквы “М”.
вывод на экран полей: Тур, Страна;
таблица: турагентство.
Спрашивает название страны и затем выводит строки, содержащие её.
· Запрос between
вывод на экран полей: Покупатель, Дата Заказа, Название Тура, Страна;
таблицы: Заказ, турагентство.
На экран выводятся только те строки, в которых параметр “Дата Заказа” не ниже 01.10.2009 года и не выше 10.10.2009 года.
· “Параметрический” запрос с between
вывод на экран полей: Тур, Количество Дней;
таблица: турагентство.
Спрашивает минимальное, а затем максимальное количество дней и выводит все туры в заданном диапазоне.
· “Вычисляемый” запрос
вывод на экран полей Покупатель, Количество, Цена, стоимость;
таблицы: турагентство, Заказ
Выводит на экран помимо прочих столбцов один дополнительный (стоимость), в котором подсчитывается общая стоимость за купленные туры.
вывод на экран полей: Покупатель, Sum-КоличествоКуплТуров;
таблица: Заказ.
Подсчитывает количество купленных туров у каждого покупателя, не взирая на название тура.
· Сортировка по числовому полю
вывод на экран полей: Покупатель, Дата Заказа, Количество таблицы: Заказ.
Выводит на экран отсортированную по возрастанию по дате заказа сводную таблицу.
вывод на экран полей: Покупатель, Количество, Цена, ЦенаСоСкидкой;
таблицы: турагентство, Заказ.
Выводит на экран помимо прочих столбцов один дополнительный (ЦенаСоСкидкой), в котором “отпускная цена” умножается на 0,9, если “количество купл туров” больше 2.
вывод на экран полей: Покупатель, Название Тура, Страна, Отель;
таблицы: турагентство, Заказ.
Выводит на экран выбранные столбцы туров в Польшу и Англию.
· Создать таблицу
CREATE TABLE тур (ID INT NOT NULL , Название CHAR(32) NOT NULL, Цена INT NOT NULL,Наличие INT NOT NULL, PRIMARY KEY(ID))
ALTER TABLE тур
ADD КоличествоДней INT;
INSERT INTO тур
VALUES ('1', 'ТурПоЕгипту', '10000', '4');
INSERT INTO тур
SELECT TOP 10 турагентство.[КодТура] AS [КодТура], турагентство.[НазваниеТура] AS [НазваниеТура], турагентство.Цена AS Цена, турагентство.Наличие AS Наличие
FROM турагентство;
UPDATE тур SET цена = 20000.
WHERE [КодТура]=1;
DELETE *
FROM видеосоздание
WHERE [КодТура]=1;
SELECT турагентство.[НазваниеТура], турагентство.Цена, турагентство.Наличие
FROM турагентство
WHERE (((турагентство.[НазваниеТура]) Like 'Т*'));
SELECT Заказ.[Покупатель], count(*) AS [ЧислоЗаказов]
FROM Заказ
GROUP BY Заказ.[Покупатель];
SELECT турагентство.[НазваниеТура], турагентство.Цена, турагентство.Наличие
FROM турагентство
WHERE (((турагентство.Цена)>=10000)) and (((турагентство.Наличие)>=2));
SELECT Заказ.[Покупатель], SUm(количество) AS сумма
FROM Заказ
GROUP BY Заказ.[Покупатель];
SELECT Заказ.Покупатель, Sum(Заказ.Количество) AS сумма
FROM Заказ
GROUP BY Заказ.Покупатель
HAVING (((Sum(Заказ.Количество))>=50));
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.