База данных «Учет обмена валюты»
Приведём таблицу ко второй нормальной форме. Атрибуты «фамилия», «дата рождения» «дата выдачи паспорта» функционально зависят от части ключа «серия паспорта» поэтому выделим их в отдельную таблицу: Сформировать отчет с детальными строками, с расшифровками кодов и с итогами по двум уровням группировки (указаны в условии), по одному простому отчету для каждой таблицы, представления, запроса. Обмен… Читать ещё >
База данных «Учет обмена валюты» (реферат, курсовая, диплом, контрольная)
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования
«Уральский государственный экономический университет»
ЦЕНТР ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ КУРСОВАЯ РАБОТА по дисциплине Базы данных Тема: База данных «Учет обмена валюты»
Выполнена: студентом Байчурин Евгений Валерьевич Екатеринбург
Постановка задачи Учет обмена валюты.
1. Создать базу из основной таблицы с оперативными данными и четырех таблиц справочников с наименованиями кодов (используются для расшифровки кодов в формах, в представлениях, в запросах и в отчетах).
2. Создать базовый, перекрестные, итоговые, графические представления и запросы (не менее шести). Запросы и представления оформить в виде табличных форм, диаграмм.
3. Сформировать формы для заполнения таблиц и просмотра запросов, представлений с русифицированными кнопками, наименованиями полей (по одной форме для каждой таблицы и представления или запроса и по одной составной форме).
4. Сформировать отчет с детальными строками, с расшифровками кодов и с итогами по двум уровням группировки (указаны в условии), по одному простому отчету для каждой таблицы, представления, запроса .
5. Сформировать меню из пунктов: таблицы, формы, представления, запросы и отчеты для вызова разработанных таблиц, форм, представлений, запросов и отчетов.
Входная информация Исходная таблица:
Обмен валюты: дата, фамилия, паспортные данные, код валюты, количество валюты проданной и купленной, количество рублей, затраченных на покупку и вырученных от продажи валюты, код банка.
Справочники: валюта (код, наименование), области (код, наименование), банки (код и наименование, код города), города (код и наименование города, код области).
Отчет по видам валют и банкам с итогами (сумма проданной и купленной валюты, валютная выручка) по видам валют и банкам.
Нормализация таблиц Справочники находятся в третьей нормальной форме, так как все неключевые атрибуты взаимно функционально независимы.
Создадим таблицу «Обмен валюты» используя атрибуты объекта «Обмен валюты».
Обмен валюты (дата, фамилия, паспортные данные, код валюты, количество валюты проданной и купленной, количество рублей, затраченных на покупку и вырученных от продажи валюты, код банка).
Таблица находится не в нормализованной форме, ибо атрибуты «паспортные данные», «количество валюты проданной и купленной» и «количество рублей, затраченных на покупку и вырученных от продажи валюты» содержат несколько значений.
Приведём таблицу к первой нормальной форме, для чего разобьём атрибут «паспортные данные» на атрибуты «Серия паспорта», «Дата рождения» и «Дата выдачи паспорта», атрибут «количество валюты проданной и купленной» — на атрибуты «количество проданной валюты» и «количество купленной валюты», атрибут «количество рублей, затраченных на покупку и вырученных от продажи валюты» на атрибуты «затраты на покупку валюты» и «выручка от продажи валюты».
Обмен валюты (дата, фамилия, серия паспорта, дата рождения, дата выдачи паспорта, код валюты, количество проданной валюты, количество купленной валюты, затраты на покупку валюты, выручка от продажи валюты, код банка).
Выделим первичный ключ таблицы: дата, серия паспорта, код валюты, код банка.
Обмен валюты (дата, серия паспорта, код валюты, код банка, дата рождения, фамилия, дата выдачи паспорта, количество проданной валюты, количество купленной валюты, затраты на покупку валюты, выручка от продажи валюты).
Приведём таблицу ко второй нормальной форме. Атрибуты «фамилия», «дата рождения» «дата выдачи паспорта» функционально зависят от части ключа «серия паспорта» поэтому выделим их в отдельную таблицу:
Сотрудники (серия паспорта, фамилия, дата рождения, дата выдачи паспорта).
Обмен валюты (дата, код сотрудника, код валюты, код банка, количество проданной валюты, количество купленной валюты, затраты на покупку валюты, выручка от продажи валюты).
Таблица «Сотрудники» находится в третьей нормальной форме.
Таблица «Обмен валюты» находится в третьей нормальной форме.
Получим следующие таблицы:
Обмен валюты (дата, код сотрудника, код валюты, код банка, количество проданной валюты, количество купленной валюты, затраты на покупку валюты, выручка от продажи валюты).
Сотрудники (серия паспорта, фамилия, дата рождения, дата выдачи паспорта).
Валюта (код, наименование).
Области (код, наименование).
Банки (код и наименование, код города).
Города (код и наименование города, код области).
Описание таблиц:
Таблица «Обмен валюты»
Наименование поля | Тип данных | Ограничения | |
Дата (dt) | Дата | Первичный ключ | |
Код сотрудника (ks) | Целое | Первичный ключ Внешний ключ | |
Код валюты (kv) | Целое | Первичный ключ Внешний ключ | |
Код банка (kb) | Целое | Первичный ключ Внешний ключ | |
Количество проданной валюты (kolpr) | Вещественное | NOT NULL | |
Количество купленной валюты (kolkp) | Вещественное | NOT NULL | |
Затраты на покупку валюты (zatr) | Вещественное | NOT NULL | |
Выручка от продажи валюты (viruch) | Вещественное | NOT NULL | |
Таблица «Сотрудники»
Наименование поля | Тип данных | Ограничения | |
Серия паспорта (sp) | Целое | Первичный ключ | |
Фамилия (fam) | Строка (30) | NOT NULL | |
Дата рождения (dr) | Дата | NOT NULL | |
Дата выдачи паспорта (dp) | Дата | NOT NULL | |
Таблица «Валюты»
Наименование поля | Тип данных | Ограничения | |
Код (kv) | Целое | Первичный ключ | |
Наименование (nv) | Строка (30) | NOT NULL | |
Таблица «Области»
Наименование поля | Тип данных | Ограничения | |
Код (ko) | Целое | Первичный ключ | |
Наименование (nobl) | Строка (30) | NOT NULL | |
Таблица «Банки»
Наименование поля | Тип данных | Ограничения | |
Код (kb) | Целое | Первичный ключ | |
Наименование (nb) | Строка (30) | NOT NULL | |
Код города (kg) | Целое | Внешний ключ | |
Таблица «Города»
Наименование поля | Тип данных | Ограничения | |
Код (kg) | Целое | Первичный ключ | |
Наименование (ng) | Строка (30) | NOT NULL | |
Код области (ko) | Целое | Внешний ключ | |
Для создания базы данных будем использовать СУБД Microsoft Visual FoxPro.
Создадим таблицы базы данных.
Рис. 1. Окно конструктора таблицы «Обмен валюты»
Рис. 2. Окно конструктора таблицы «Сотрудники»
Рис. 3. Окно конструктора таблицы «Валюты»
Рис. 4. Окно конструктора таблицы «Области»
Рис. 5. Окно конструктора таблицы «Банки»
Рис. 6. Окно конструктора таблицы «Города»
Создадим объект База данных и добавим в него созданные таблицы.
Рис. 7. Таблицы базы данных.
Создадим индексы для связи таблиц базы данных.
Рис. 8. Индексы таблицы «Обмен валюты»
Первичный ключ таблицы «Обмен валюты» является составным, поэтому для индекса задаём выражение, включающее значения всех входящих в ключ полей:
DTOC (dt)+ks+BINTOC (kv)+BINTOC (kb)
Где
DTOC () возвращает дату в символьном виде исходя из выражения типа Date или DateTime.
BINTOC () преобразует целые цифровые значения в бинарную строку. Обычно используется для уменьшения размера индекса, построенного на целых цифровых полях.
Аналогично создадим индексы для других таблиц.
Логическая модель базы Откроем окно базы данных и зададим связи между таблицами по построенным индексам.
Рис. 9. Схема базы данных Выходная информация Создадим формы для таблиц базы.
Рис. 10. Окно макета формы «Банки»
Рис. 11. Форма «Банки»
Рис. 12. Окно макета формы «Города»
Рис. 13. Форма «Города»
Рис. 14. Окно макета формы «Области»
Рис. 15. Форма «Области»
Рис. 16. Окно макета формы «Обмен валюты»
Рис. 17. Форма «Обмен валюты»
Рис. 18. Окно макета формы «Сотрудники»
Рис. 19. Форма «Сотрудники»
Рис. 20. Окно макета формы «Валюты»
Рис. 21. Форма «Валюты»
база данные код таблица
Создадим запросы Текст запроса на языке SQL
SELECT Базовое_представление.ng AS Город,;
COUNT (Базовое_представление.nb) AS Банков;
FROM ;
" data1! базовое представление" Базовое_представление;
GROUP BY Базовое_представление.ng;
ORDER BY Базовое_представление.ng
Создадим запрос, выводящий среднюю прибыль для каждой области и для каждого сотрудника Текст запроса на языке SQL:
SELECT Oblast. nobl AS область, Sotr. fam AS сотрудник,;
AVG (Obmen.viruch-Obmen.zatr) AS средняя;
FROM ;
data1!obmen ;
INNER JOIN data1! sotr ;
ON Obmen. ks = Sotr. sp ;
INNER JOIN data1! banki ;
ON Obmen. kb = Banki. kb ;
INNER JOIN data1! city ;
ON Banki. kg = City. kg ;
INNER JOIN data1! oblast ;
ON City. ko = Oblast. ko;
GROUP BY Oblast. nobl, Sotr. fam;
ORDER BY Oblast. nobl, Sotr. fam
Оформим представления и запросы в виде табличных форм и диаграмм.
Создадим составную форму Создадим детальный отчёт по видам валют и банкам Создадим по одному простому отчету для каждой таблицы, представления, запроса.
Создадим меню Текст процедуры вызова базового представления:
Close database
Open database C: obmen_valutidata1
USE «data1!базовое представление»
Browse
Close database
Создадим главную форму Чтобы приложение закрывалось, добавим для метода формы Destroy Event в процедуру текст:
CLEAR EVENT
Поместим меню на форму: добавим в метод Init Event текст
DO «C:Obmen_valutiМенюmenu1.mpr» WITH THIS, .T.
Свойству формы ShowWindow присвоим 2 — As Top Level Form.
Создадим программу с текстом
DO FORM «C:obmen_valutiформыглавная форма. scx»
_SCREEN.Visible = .T.
READ EVENTS
1. Плещёв В. В. Базы данных. Visaul FoxPro, Access, SQL Server, Oracle с примерами и упражнениями: Учебное пособие 3 е изд., испр. и доп. (рекомендовано УМО Минобразования РФ) Екатеринбург: Изд-во Уральского государственного экономического университета, 2007. 323 с.