Курсовая работа по дисциплине «Базы данных» на тему: «Разработка базы данных для учета товара ООО «Компания Парфюм Косметик»» Содержание Введение 3 Глава 1. Описание предметной области 5 1.1 Общее положение компании «Парфюм Косметик» 5 1.2 Нормализация отношений 6 Глава 2. Разработка базы данных для учета товара ООО «Компания Парфюм Косметик»» 12 2.1 Постановка технических задач 12 2.2 Работа в SQL Server, создание тоблиц и запросов 13 2.3 Создание пользовательского интерфейса 19 Заключение 27 Список использованной литературы 28 2 Введение База данных – это организованная структура, предназначенная для хранения информации. С понятием базы данных тесно связано понятие системы управления базой данных. Это комплекс программных средств, предназначенных для создания структуры новой базы, наполнение её содержимым, редактирования содержимого и визуализации информации. Базы данных могут содержать различные объекты-таблицы. Современная жизнь немыслима без эффективного управления. Важной категорией являются системы обработки информации, от которых во многом зависит эффективность работы любого предприятия или учреждения. Эта обработка сводится к автоматизации. Автоматизация во многом упрощает работу с товаром и клиентами. С помощью ее экономиться не только время, но и людские и технические ресурсы. Информация более или менее защищена от порчи и потери. Автоматизированная база данных снабжена механизмами поиска и выборки информации. В курсовой работе рассматривается автоматизация баз данных компании «Парфюм Косметик». До автоматизации работникам компании приходилось тратить немало времени на фиксировании тавра, клиентов, заказов на бумаге, С автоматизацией этот процесс упрощается, появляется больше функций и возможностей, работа становится более эффективной, прибыльной и экономичной. Объектом курсовой работы является учет товара в компании ООО «Парфюм Косметик». Предметом курсовой работы является автоматизация учета товара и заказов в компании. Цель курсовой работы – разработка базы данных для компании «Парфюм Косметик». Для достижения поставленной цели необходимо решить следующие 3 задачи: Изучить структуру компании собрать необходимую информацию о ней Создание таблиц и запросов на основе данных компании Составить нормализацию отношений Автоматизировать базу данных учета товара Исследовать основные понятия Разработать пользовательский интерфейс в Visual Basic Вывести запросы и таблица на формы в Visual Basic Актуальность: в связи с большим потоком данных вручную становится невозможно вести учет товаров и обрабатывать заказы, работать с клиентами. Это процесс занимает много людских, временных и финансовых затрат. Большие объемы информации легче и проще обрабатывать с помощью программы, имеющей таблицы, запросы и т.д. 4 Глава 1. Описание предметной области 1.1. Общее положение компании «Парфюм Косметик» Компания «Парфюм Косметик» осуществляет свою деятельность на рынке России более 10 лет и зарекомендовала себя как честный и ответственный партнер. На сегодняшний день - это Крупнейшая в России парфюмернокосметическая компания, ее интересы представлены 18 филиалами в самых крупных городах России. Головной офис расположен в г.Екатеринбург. Компания принимает участие в разработке и производстве парфюмерии и косметики, тем самым является производственной компанией. Имея, положительную историю развития стремится к новым высотам и лидерству на рынке России. Компания сегодня является одним из крупнейших дистрибьюторов парфюмерно-косметической продукции класса люкс в России. Основная цель компании – обеспечение рынка здоровья и красоты высококачественными товарами. «Парфюм Косметик» готова к эффективному сотрудничеству со всеми заинтересованными в стабильности и надежности партнерами по бизнесу, стремимся создать для своих клиентов максимально удобные условия работы и ориентируемся на долгосрочное сотрудничество. Оптовая парфюмерии компания и «Парфюм косметики Косметик» мировых занимается торговых марок. поставками В широком ассортименте представлены духи, туалетная вода, средства по уходу за лицом, уходу за телом, уходу за волосами, подарочные наборы. Деятельность компании связана с оптовой продажей парфюмерии и косметики. 5 1.2. Нормализация отношений Нормализация представляет собой процесс, направленный на уменьшение избыточности информации в базе данных. Кроме самих данных, в базе данных также могут быть нормализованы различные наименования, имена объектов и выражения. Нормализация — это процесс, направленный на уменьшение избыточности информации в реляционной базе данных. Ненормализованная база данных содержит информацию в одной или нескольких различных таблицах; при этом создается впечатление, что включение данных в ту или иную таблицу не обусловлено никакими видимыми причинами. Такое положение дел может оказывать негативное влияние на безопасность данных, рациональное использование дискового пространства, скорость выполнения запросов, эффективность обновления базы данных и, что, наверное, является наиболее важным, на целостность хранимой информации. База данных перед нормализацией представляет собой структуру, которая логически еще не разбита на более управляемые таблицы меньшего размера. Данные не должны быть избыточными, поскольку при этом непроизводительно расходуется дисковое пространство. Нормальная форма — это своеобразный показатель уровня, или глубины, нормализации базы данных. Уровень нормализации базы данных соответствует нормальной форме, в которой она находится. Вот три наиболее распространенных нормальных формы, в которых может находиться база данных в процессе нормализации: Первая нормальная форма Вторая нормальная форма Третья нормальная форма Из трех перечисленных нормальных форм каждая последующая зависит от шагов, предпринятых в процессе получения предыдущей нормальной формы. 6 Первая нормальная форма Говорят, что модель данных соответствует первой нормальной форме, если в таблицах отсутствуют группы повторяющихся значений. Это соответствие достигается путем выделения атрибутов с повторяющимися значениями в отдельные сущности, созданием или выбором для них новых первичных ключей и установлением связей "один ко многим" от новых сущностей к старым. При этом первичные ключи новых сущностей станут внешними ключами для старой сущности. Для построения первой нормальной формы потребовалось разбить данные на логические составляющие (таблицы), каждая из которых имеет первичный ключ и гарантирует отсутствие повторяющихся групп данных. В работе будут использованы следующие поля: Naimenovanie_tovara Kolichestvo Cena Family Name Otchestvo Dolgnost Telefon Adress Family_k Name_k Otchestvo_k Telefon_k Adress_k Kolichestvo_z Data_zakaza 7 Вторая нормальная форма Говорят, что модель данных соответствует второй нормальной форме, если в сущностях, содержащих составной первичный ключ, неключевые атрибуты зависят от всего первичного ключа. Если же в какой-либо сущности имеется зависимость каких-либо неключевых атрибутов от части ключа, следует выделить их в отдельную сущность, сделав первичным ключом новой сущности ту часть первичного ключа, от которой зависят данные атрибуты, и установить связь "один ко многим" от новой сущности к старой. Целью второй нормальной формы является помещение в отдельную таблицу данных, которые только частично зависят от первичного ключа Вторая нормальная форма может быть получена из первой путем дальнейшего разбиения таблиц на более специальные составляющие. 1. Таблица “Sklad”. Sklad Kod_tovara ¥ Naimenovanie Kolichestvo Cena 2. Таблица “Sotrudniki” Sotrudniki Kod_sotrudnika Family ¥ Name Otchestvo Dolgnost Telefon Adress 8 3. Таблица“Klienty” Klienty Kod_klienta Family_k ¥ Name_k Otchestvo_k Telefon_k Adress_k 4. Таблица“Zakazy” Zakazy Kod_zakaza Kod_tovara ¥ Kolichestvo_z Kod_sotrudnika Kod_klienta Data_zakaza Третья нормальная форма Говорят, что модель данных соответствует третьей нормальной форме, если в сущностях отсутствует взаимозависимость между неключевыми атрибутами. Это соответствие достигается путем выделения в отдельную сущность атрибутов с одной и той же зависимостью от неключевого атрибута, использования атрибутов, определяющих эту зависимость, в качестве первичного ключа новой сущности и установки связи "один ко многим" от новой сущности к старой сущности. Целью третьей нормальной формы является устранение из таблицы данных, не зависящих от ее первичного ключа. 9 Результатом нормализации является модель данных, которую легко поддерживать, не содержащая неопределенностей в данных и повторений данных. Приведем к третьей нормальной форме таблицы: Склад. Ключевое поле - Код товара Сотрудники. Ключевое поле- Код сотрудника Клиенты. Ключевое поле – Код клиента Заказы. Ключевое поле – Код заказа Sklad Kod_tovara Naimenovanie Kolichestvo Cena 1 æ æ 1 Zakazy Kod_zakaza Kod_tovara Kolichestvo_t Kod_sotrudnika Kod_klienta Data_zakaza Klienty Kod_klienta Family_k Name_k Otchestvo_k Telefon_k Adress_k 10 1 æ Sotrudniki Kod_sotrudnika Family Name Otchestvo Dolgnost Telefon Adress Чем выгодна нормализация Нормализация базы данных выгодна со многих точек зрения. Далее перечислены некоторые из основных преимуществ, которые она дает: Лучшая общая организация базы данных Сокращение избыточности информации Непротиворечивость информации внутри базы данных Более гибкий проект базы данных Большая безопасность данных 11 Глава 2. Разработка базы данных для учета товара ООО «Компания Парфюм Косметик»» 2.1. Постановка технических задач Необходимо в Microsoft SQL Server 2008 разработать базу данных по учету товара в компании «Парфюм Косметик» и графически представить ее в среде Visual Basic 2008. Для этого необходимо: I. Технические требования к программе. Программа необходима для улучшения качества работы по учету товара, путем автоматизации данных таких как: 1. Информация о складе 2. Информация о сотрудниках 3. Информация о клиентах 4. Информация о заказах II.Требования к функциональным характеристикам. Данная программа должна отвечать таким требованиям, которые предусмотрены автоматизацией. То есть выполнять функции такие, как: 1. Для каждого товара из таблицы выведем наибольшую цену 2. Выведем товар, количество которого в заказе меньше 5 3. Вывести прибыль от продаж на каждую дату. 4. Вывести среднюю цену проданного товара. 5. Начисление НДС 13% на каждый вид товара. 6. Вывести все данных по каждому заказу. 7. Вывести на каждый вид заказа данные клиента и общую сумму заказа. 8. Вывод данных по наименованию проданного товара. 9. Вывести частых клиентов. 10. Вывести средний объем покупки для каждого клиента. 11. Вывести имена клиентов, из промежутка от «А» до «К» 12 2.2 Работа в SQL Server, создание тоблиц и запросов Создадим новую базу данных. Для этого запускаем SQL Server, затем в списке Нажимаем на Databases, затем создаем New Databases. Назовем ее «ПарфюмКосметик». Далее создаем в ней создадим 4 таблиц, обращаясь к нормализации из 1 главы: Sklad Sotrudniki Klienty Zakazy Заполняем таблицы, определив поля и их тип. Рис1.Sklad 13 Рис 2. Sortrudniki Рис 3. Klienty Рис 4. Zakazy 14 Созданные таблицы имеют вид: Рис 5. Таблица Sklad Рис 6. Таблица Sotrudniki 15 Рис 7. Таблица Klienty Рис 8. Таблица Zakazy Создание запросов Для выбора информации из таблиц по заданным параметрам используем запросы, которые в значительной степени упрощают ручную работу, экономят время и средства. Запросы к программе Запрос 1. Для каждого товара из таблицы выведем наибольшую цену SELECT 'Для' AS Для, Naimenovanie, 'наибольшая цена' AS Цена, MAX(Cena) AS Cena FROM dbo.Sklad GROUP BY Naimenovanie 16 Запрос 2. Выведем товар, количество которого в заказе меньше 5 SELECT TOP (100) PERCENT dbo.Zakazy.Kod_zakaza, dbo.Sklad.Naimenovanie, dbo.Sklad.Cena FROM dbo.Sklad INNER JOIN dbo.Zakazy ON dbo.Sklad.Kod_tovara = dbo.Zakazy.Kod_tovara WHERE (dbo.Zakazy.Kolichestvo_z < 5) ORDER BY dbo.Zakazy.Kod_zakaza Запрос 3. Вывести прибыль от продаж на каждую дату. SELECT dbo.Zakazy.Data_zakaza, SUM(dbo.Sklad.Cena * dbo.Zakazy.Kolichestvo_z) AS Сумма FROM dbo.Zakazy INNER JOIN dbo.Sklad ON dbo.Zakazy.Kod_tovara = dbo.Zakazy.Kod_tovara GROUP BY dbo.Zakazy.Data_zakaza Запрос 4. Вывести среднюю цену проданного товара. SELECT AVG(dbo.Sklad.Cena) AS Avg_Cena FROM dbo.Sklad INNER JOIN dbo.Zakazy ON dbo.Sklad.Kod_tovara = dbo.Zakazy.Kod_tovara Запрос 5. Начисление НДС 13% на каждый вид товара. SELECT dbo.Sklad.Naimenovanie, SUM(dbo.Sklad.Cena * .13) AS NDS FROM dbo.Sklad CROSS JOIN dbo.Zakazy GROUP BY dbo.Sklad.Naimenovanie Запрос 6. Вывести все данных по каждому заказу. SELECT TOP (100) PERCENT Z.Kod_zakaza, Z.Data_zakaza, T.Naimenovanie, T.Cena, K.Name_k, K.Adress_k, K.Telefon_k FROM dbo.Zakazy AS Z INNER JOIN dbo.Sklad AS T ON Z.Kod_tovara = T.Kod_tovara INNER JOIN dbo.Klienty AS K ON Z.Kod_klienta = K.Kod_klienta ORDER BY Z.Kod_zakaza Запрос 7. Вывести на каждый вид заказа данные клиента и общую сумму заказа. SELECT TOP (100) PERCENT dbo.Zakazy.Kod_zakaza, dbo.Klienty.Kod_klienta, dbo.Klienty.Family_k, dbo.Klienty.Name_k, dbo.Klienty.Otchestvo_k, dbo.Zakazy.Kolichestvo_z * dbo.Sklad.Cena AS Итого FROM dbo.Klienty INNER JOIN dbo.Zakazy ON dbo.Klienty.Kod_klienta = dbo.Zakazy.Kod_klienta INNER JOIN 17 dbo.Sklad ON dbo.Zakazy.Kod_tovara = dbo.Sklad.Kod_tovara ORDER BY dbo.Zakazy.Kod_zakaza Запрос 8. Вывод данных по наименованию проданного товара SELECT TOP (100) PERCENT T.Naimenovanie, Z.Kod_zakaza, Z.Data_zakaza, T.Cena, K.Name_k, K.Adress_k, K.Telefon_k FROM dbo.Zakazy AS Z INNER JOIN dbo.Sklad AS T ON Z.Kod_tovara = T.Kod_tovara INNER JOIN dbo.Klienty AS K ON Z.Kod_klienta = K.Kod_klienta Запрос 9. Вывести частых клиентов. SELECT TOP (100) PERCENT dbo.Klienty.Name_k, COUNT(dbo.Zakazy.Kolichestvo_z) AS 'Количество заказов' FROM dbo.Zakazy INNER JOIN dbo.Klienty ON dbo.Zakazy.Kod_klienta = dbo.Klienty.Kod_klienta GROUP BY dbo.Klienty.Name_k ORDER BY 'Количество заказов' DESC Запрос 10. Вывести средний объем покупки для каждого клиента. SELECT dbo.Klienty.Family_k, AVG(dbo.Zakazy.Kolichestvo_z) AS Srednee_kolichestvo FROM dbo.Klienty INNER JOIN dbo.Zakazy ON dbo.Klienty.Kod_klienta = dbo.Zakazy.Kod_klienta GROUP BY dbo.Klienty.Family_k Запрос 11. Вывести имена клиентов, из промежутка от «А» до «К». SELECT TOP (100) PERCENT Name_k FROM dbo.Klienty WHERE (Name_k BETWEEN 'А' AND 'К') ORDER BY Name_k Запрос 12. Данные проданного товара по сотруднику, отпустившего его.(Общее количество и стоимость) SELECT dbo.Sotrudniki.Family, SUM(dbo.Zakazy.Kolichestvo_z) AS Obshee_kolicestvo, SUM(dbo.Sklad.Cena * dbo.Zakazy.Kolichestvo_z) AS Stoimost FROM dbo.Sklad INNER JOIN dbo.Sotrudniki INNER JOIN dbo.Zakazy ON dbo.Sotrudniki.Kod_sotrudnika = dbo.Zakazy.Kod_sotrudnika ON dbo.Sklad.Kod_tovara = dbo.Zakazy.Kod_tovara GROUP BY dbo.Sotrudniki.Family 18 2.3 Создание пользовательского интерфейса Для создания интерфейса используется Visual Basic 2008. Создаем новый проект с названием «PARFUM». Затем создадим необходимые формы: 1. Главная форма (здесь располагается меню) Меню создается с помощью инструмента MenuSrtip В “Файл ” располагается подменю «Закрыть» 19 В «Таблицы» располагается В «Запросы »: 2. Формы для вывода таблиц. Ранее созданные таблицы(Cklad, Sotrudniki, Klienty, Zakazy) выводим на форму путем перетаскивания мышкой. Прикрепляем этти фиормы с таблицами к главной черз функцию FormA.Show(). Вместо А в функции стоит номер открываемой формы. 20 Аналогично выводятся на форму таблицы: Сотрудники, Клиенты, Заказы. (Их внешний вид показан в предыдущем пункте). 3. Формы для вывода запросов. На каждую форму выводим созданные запросы в SQL Server 2008, путем перетаскивания. Формы с запросами подключаются г главной форме м помощью функции FormA.Show().Вместо А ставиться номар подключаемой формы. Пример вывода запроса на форму: 21 22 23 24 25 4. Последний пункт меня представляет собой информацию о программном продукте. Это окно формы так же как предыдущие формы подключается к главной с помощью Form18.Show(). Нажав на конпку «ОК» закрывается данная форма, использовав функцию Close(). 26 Заключение Автоматизированная работа с базами данных очень удобна. Такая база имеет много функций и возможностей, она понятна и проста в обращении. Цель и задачи, поставленные в работе, выполнены – создана база данных для учета товара компании «Парфюм Косметик». Была узучена сфера деятельности компании, собрана необходимая информация. В работе были составлены таблицы и запросы на основе данных компании. Для удобного пользования разработан пользовательский интерфейс в среде Visual Basic. Данная база должна работать с оперативными данными, накопление этих данных позволит проводить анализ деятельности предприятия за любой период времени. Это является одной из задач внедрения системы. Назначение данной базы данных состоит в регистрации товара, сотрудников, клиентов. Есть возможность корректировки, хранения и обработки информации с целью поиска и выдачи ответов на стандартные запросы пользователей. Созданные формы и запросы позволяют быстро и эффективно обновлять данные, получать ответы на вопросы, осуществлять поиск нужных данных, анализировать данные. Для принятия обоснованных и эффективных решений в производственной деятельности, в управлении данная база поможет получать, накапливать, хранить и обрабатывать данные, представляя результат в виде наглядных 27 документов. Список использованной литературы 1. Хоменко А.Д. Базы данных. Учебник для ВУЗОВ. – М.: Технология, 2000. – 325 с. 2. Леонтьев В.П. Новейшая энциклопедия персонального компьютера. – М.: ОЛМА – ПРЕСС, 2003. – 650 с. 3. Карпова Т.С. Базы данных : модели, разработка, реализация. – С-Пб.: Питер, 2001. - 458 с. 4. Дейт, К. Дж. Введение в системы баз данных. : Пер. с англ. – 6-е изд. Диалектика, Москва, 1998. 5. Информатика. Базовый курс /Симонович С.В. и др. - СПб: Издательство «Питер», 2000. – 640с. 6. Голицына О.Л., Максимов Н.В. – Базы данных. – М.: Форум – Инфра М, 2003. – 352 с. 7. Дейт К.Дж. Введение в системы баз данных. – М.: Вильямс, 2001. – 354 с. 8. Материалы сайта http://www.sql.ru 9. Материалы сайта http://www.citforum.ru 10. Материалы сайта http://www.microsoft.ru 28