Содержание
Введение 2
1. Обоснование концептуальной модели базы данных 4
2. Выполнение нормализации базы данных 6
3. Конструирование таблиц базы данных и заполнение полей 8
Рис 2 - Создание базы данных 11
4. Оформление схемы данных 12
5. Конструирование запросов к базе данных 13
6. Разработка форм базы данных 19
7. Разработка отчета 21
Заключение 22
Список использованных источников. 23
Введение
Современный уровень развития информационных и телекоммуникационных технологий позволяет использовать информационные системы, созданные на их основе в промышленных компаниях, государственных и муниципальных учреждениях, организациях местного самоуправления и т.д. С их помощью автоматизируется хозяйственная деятельность и бизнес-процессы, упрощается планирование, решаются управленческие задачи.
Одной из основополагающих частей информационных систем является база данных, в которой накапливается информация. В настоящее время рынок систем управления базами данных (СУБД) весьма велик, существуют решения разной степени распределенности, вычислительной мощности, адаптированности к разным платформам. Наиболее распространенными на сегодняшний день являются такие СУБД как MySQL, PostgreSQL, MS SQL Server, SQLite, Oracle Database, Firebird.
В данной работе будут смоделированы основные этапы создании базы данных торговой компании: описание предметной области, создание концептуальной и логической модели, физическое проектирование базы данных, наполнение тестовыми данными, разработка основных запросов к базе данных.
В качестве СУБД в работе используется MS SQL Server 2008, который при невысоких аппаратных требованиях обладает значительной вычислительной мощностью, позволяющей строить на его основе распределенные информационные системы с большой нагрузкой. Также MS SQL Server 2008 обладает всеми средствами для создания и обеспечения работоспособности базы данных, поддерживает визуальную технологию создания объектов базы данных, стандарт языка SQL.
В данной работе будет рассматриваться модель «Торговая компания», которая должна содержать информацию о товарах, магазинах, поставщиках, покупателях. Также должны быть реализованы запросы:
- получить список всех товаров, продаваемых в заданном магазине;
- получить список товаров, поставщик которых находится в том же городе, что и магазин, их продающий;
- получить список всех потребителей, купивших товары стоимостью не больше заданной;
- получить список поставщиков, которые поставили заданный товар в магазин с заданным адресом;
- получить пары (номер товара, название поставщика), продаваемых через магазины, в которых обслуживается заданный потребитель;
- получить список пар (магазин, адрес), в которых продается заданный товар от заданного поставщика.
1. Обоснование концептуальной модели базы данных
Обоснование концептуальной модели базы данных для данной задачи заключается в определении сущностей, связей между ними и их атрибутов, которые позволят хранить всю необходимую информацию о товарах, магазинах, поставщиках и покупателях, а также выполнять запросы к базе данных, соответствующие требованиям задания.
В данной концептуальной модели базы данных были выделены четыре основные сущности: товары, магазины, поставщики и покупатели, которые описывают основные объекты, с которыми работает торговая компания. Каждая из этих сущностей имеет свои атрибуты, которые позволяют хранить информацию о них.
Для связей между сущностями были использованы связи многие-ко-многим, так как каждый магазин может продавать несколько товаров, каждый поставщик может поставлять несколько товаров, а каждый покупатель может купить несколько товаров. Также была использована связь один-ко-многим между магазинами и поставщиками, так как каждый магазин может иметь несколько поставщиков, но каждый поставщик может поставлять товары только в один магазин.
Для выполнения запросов к базе данных были предложены соответствующие запросы на языке SQL, которые позволяют получать необходимую информацию о товарах, магазинах, поставщиках и покупателях в соответствии с требованиями задания.
Таблица 1 - Спецификация сущностей
Название сущности
|
Атрибуты сущности
|
Товары
|
id_tovar (идентификатор товара), название (название товара), стоимость (стоимость товара)
|
Магазины
|
id_mag (идентификатор магазина), название (название магазина), адрес (адрес магазина), город (город, в котором находится магазин)
|
Поставщики
|
id_post (идентификатор поставщика), название (название поставщика), адрес (адрес поставщика), город (город, в котором находится поставщик)
|
Покупатели
|
id_pok (идентификатор покупателя), имя (имя покупателя), фамилия (фамилия покупателя), адрес (адрес покупателя), город (город, в котором находится покупатель), сумма_покупок (общая сумма покупок покупателя)
|
Каждая из этих сущностей имеет свои атрибуты, которые описывают ее характеристики. Например, для сущности "Товары" это идентификатор товара, название товара и стоимость товара. Для сущности "Магазины" это идентификатор магазина, название магазина, адрес магазина и город, в котором он находится. Для сущности "Поставщики" это идентификатор поставщика, название поставщика, адрес поставщика и город, в котором он находится. Для сущности "Покупатели" это идентификатор покупателя, имя покупателя, фамилия покупателя, адрес покупателя, город, в котором он находится, и общая сумма покупок покупателя.
Графически диаграмма Er-модели показана на рисунке 1
Рисунок 1- Типы связей между сущностями
2. Выполнение нормализации базы данных
Нормализация базы данных — это важный шаг в проектировании баз данных, который позволяет избежать избыточности данных, увеличения объема хранимых данных и упрощает процесс управления данными.
Процесс нормализации базы данных происходит поэтапно и включает в себя несколько нормальных форм (1НФ, 2НФ и 3НФ). Первая нормальная форма (1НФ) гарантирует, что все атрибуты таблицы содержат только простые значения, то есть каждая ячейка таблицы содержит только одно значение. Вторая нормальная форма (2НФ) гарантирует, что каждая запись в таблице связана с единственным ключом, и все остальные атрибуты зависят только от этого ключа. Третья нормальная форма (3НФ) гарантирует, что каждый атрибут таблицы зависит только от ключа и не зависит от других атрибутов таблицы.
Для выполнения нормализации базы данных необходимо провести анализ связей между сущностями и их атрибутами, выделить основные функциональные зависимости и разделить таблицы на отдельные таблицы таким образом, чтобы каждая таблица отвечала только за одну конкретную сущность и ее атрибуты. Для этого можно использовать методы нормализации, такие как устранение повторяющихся групп атрибутов, разделение атрибутов на отдельные таблицы и т.д.
После выполнения нормализации базы данных необходимо установить связи между таблицами и определить тип связей (один к одному, один ко многим или многие ко многим). Для этого можно использовать внешние ключи, которые связывают таблицы по определенным правилам и обеспечивают целостность данных.
Важно отметить, что нормализация базы данных является процессом, который может занять значительное время, особенно для больших баз данных. Однако, хорошо спроектированная база данных, выполненная в соответствии с требованиями нормализации, может значительно упростить процесс управления данными и обеспечить более эффективный доступ к ним.
Для данной курсовой работы с заданием на модель "Торговая компания", выполнение нормализации базы данных позволит сделать ее более структурированной и уменьшить избыточность данных, что приведет к более эффективному хранению и управлению информацией.
На первом этапе нормализации базы данных нужно выделить основные сущности, связи между ними и их атрибуты. Например, сущности "Товары", "Магазины", "Поставщики" и "Покупатели" могут быть выделены в качестве основных сущностей в базе данных. Затем следует проанализировать зависимости между атрибутами каждой сущности и выделить функциональные зависимости.
На втором этапе нужно выполнить разделение таблиц на отдельные таблицы, чтобы каждая таблица отвечала только за одну сущность и ее атрибуты. Например, для сущности "Товары" можно создать таблицу "Товары", которая будет содержать информацию о каждом товаре, его названии, описании и т.д. Для сущности "Магазины" можно создать таблицу "Магазины", которая будет содержать информацию о каждом магазине, его адресе, контактной информации и т.д. Для сущности "Поставщики" можно создать таблицу "Поставщики", которая будет содержать информацию о каждом поставщике, его контактной информации и т.д. Для сущности "Покупатели" можно создать таблицу "Покупатели", которая будет содержать информацию о каждом покупателе, его контактной информации и т.д.
На третьем этапе нужно установить связи между таблицами и определить тип связей (один к одному, один ко многим или многие ко многим). Например, можно установить связь между таблицей "Товары" и таблицей "Магазины" посредством внешнего ключа, который будет указывать на магазин, в котором данный товар продается. Аналогично, можно установить связь между таблицей "Товары" и таблицей "Поставщики" посредством внешнего ключа, который будет указывать на поставщика, который поставляет данный товар.
Таким образом, выполнение нормализации базы данных для данной курсовой работы позволит упростить процесс управления данными, обеспечить целостность данных и более эффективный доступ.
3. Конструирование таблиц базы данных и заполнение полей
После выполнения процесса нормализации базы данных необходимо приступить к конструированию таблиц и заполнению их полей. На основании спецификации сущностей, указанных в таблице 1, можно составить спецификации для всех таблиц базы данных, необходимых для работы системы "Торговая компания". Ниже приведены спецификации таблиц для каждой из сущностей:
Таблица "Items" (Товары):
item_id (идентификатор товара, целое число)
item_name (название товара, строка)
item_price (цена товара, вещественное число)
item_description (описание товара, строка)
Таблица 1: Спецификация таблицы "Items"
Имя поля
|
Тип данных
|
Свойства поля
|
item_id
|
int
|
Primary Key, Not Null, Unique
|
item_name
|
varchar
|
Not Null
|
item_category
|
varchar
|
Not Null
|
item_price
|
decimal
|
Not Null
|
Таблица "Vendors" (Поставщики):
vendor_id (идентификатор поставщика, целое число)
vendor_name (название поставщика, строка)
vendor_address (адрес поставщика, строка)
vendor_phone (контактный телефон поставщика, строка)
Таблица 2: Спецификация таблицы "Vendors"
Имя поля
|
Тип данных
|
Свойства поля
|
vendor_id
|
int
|
Primary Key, Not Null, Unique
|
vendor_name
|
varchar
|
Not Null
|
vendor_address
|
varchar
|
Not Null
|
vendor_city
|
varchar
|
Not Null
|
Таблица "Customers" (Покупатели):
customer_id (идентификатор покупателя, целое число)
customer_name (имя покупателя, строка)
customer_email (адрес электронной почты покупателя, строка)
customer_phone (контактный телефон покупателя, строка)
Таблица 3: Спецификация таблицы "Customers"
Имя поля
|
Тип данных
|
Свойства поля
|
customer_id
|
int
|
Primary Key, Not Null, Unique
|
customer_name
|
varchar
|
Not Null
|
customer_address
|
varchar
|
Not Null
|
customer_city
|
varchar
|
Not Null
|
Таблица "Shops" (Магазины):
shop_id (идентификатор магазина, целое число)
shop_name (название магазина, строка)
shop_address (адрес магазина, строка)
shop_phone (контактный телефон магазина, строка)
Таблица 4: Спецификация таблицы "Shops"
Имя поля
|
Тип данных
|
Свойства поля
|
shop_id
|
int
|
Primary Key, Not Null, Unique
|
shop_name
|
varchar
|
Not Null
|
shop_address
|
varchar
|
Not Null
|
shop_city
|
varchar
|
Not Null
|
Таблица "Movements" (Поставки-продажи):
movement_id (идентификатор поставки-продажи, целое число)
item_id (идентификатор товара, целое число)
vendor_id (идентификатор поставщика, целое число)
shop_id (идентификатор магазина, целое число)
customer_id (идентификатор покупателя, целое число)
movement_date (дата поставки-продажи, дата)
movement_type (тип поставки-продажи, строка)
movement_quantity (количество товара в поставке-продаже, целое число)
movement_price (цена товара в поставке-продаже, вещественное число)
Следует отметить, что поля таблицы "Movements" включают в себя внешние ключи на таблицы "Items", "Vendors", "Shops" и "Customers", которые связывают записи в таблице "Movements" с соответствующими записями в таблицах "Items", "Vendors", "Shops" и "Customers".
Таблица 5: Спецификация таблицы "Movements"
Имя поля
|
Тип данных
|
Свойства поля
|
movement_id
|
int
|
Primary Key, Not Null, Unique
|
movement_type
|
varchar
|
Not Null
|
movement_date
|
datetime
|
Not Null
|
movement_quantity
|
int
|
Not Null
|
item_id
|
int
|
Foreign Key, Not Null, References "Items"
|
vendor_id
|
int
|
Foreign Key, Not Null, References "Vendors"
|
shop_id
|
int
|
Foreign Key, Not Null, References "Shops"
|
customer_id
|
int
|
Foreign Key, References "Customers"
|
Создание базы данных
Do'stlaringiz bilan baham: |