Предметной областью базы данных является деятельность магазина электроники и бытовой техники. Описан один основной вид деятельности: Продажа электроники и бытовой техники.
Сформулированы следующие задачи:
Возможность добавления, удаления данных
Учет поставок и сбыта товара
Счет выручки
Определение наиболее успешного менеджера
Хранение всех сведений о товаре
Требования к данным
Информация о поставщике должна содержать следующие атрибуты:
Наименование фирмы;
Номер телефона представителя фирмы поставщика;
Имя и фамилия представителя;
Данная база данных предполагает учет продаж товара, следовательно, должны фиксироваться следующие данные:
Дата продажи;
количество;
описание товара;
скидка на товар;
стоимость продажи;
менеджер продавший товар.
2Концептуальное проектирование. Создание ER-модели предметной области
Типы сущностей
Имя типа сущности
|
Описание
|
Ожидаемое количество экземпляров
|
manager
|
Содержит список менеджеров магазина
|
-
|
sale
|
Учет продаж
|
-
|
saleitem
|
Полные сведения о продаже
|
-
|
wares
|
Описание товаров
|
-
|
discount
|
Список скидок
|
-
|
period
|
Сроки поставок
|
-
|
provider
|
Список поставщиков и их представителей
|
-
|
order
|
Заказы на поставку товаров
|
-
|
orderitem
|
Описание заказов
|
-
|
Типы связей
Имя типа связи
|
Имена типов сущностей
|
Кратность
|
Описание
|
Продажа
|
manager
|
1:*
|
Учет продаж каждого менеджера
|
sale
|
1:1
|
Продано
|
sale
|
1:*
|
Информация о продажах
|
saleitem
|
1:1
|
Реализовано
|
saleitem
|
1:*
|
Информация о реализации товаров
|
wares
|
1:*
|
Уценено
|
wares
|
1:1
|
Скидки покупателям
|
discount
|
1:*
|
Доставлено
|
wares
|
1:1
|
Сроки поставки товаров
|
period
|
1:1
|
Установлено
|
period
|
1:1
|
Доставки поставщиками
|
provider
|
1:*
|
|
|
|
|
Заказано
|
provider
|
1:*
|
Заказы товаров
|
order
|
1:1
|
Поставлено
|
order
|
1:*
|
Информация о заказах
|
orderitem
|
1:1
|
Приход
|
wares
|
1:*
|
Заказанные товары
|
orderitem
|
1:*
|
Выделенные сущности и связи обладают следующими атрибутами:
Атрибуты типов сущностей и типов связей:
Имя типа сущности\типа связи
|
Атрибуты
|
Тип данных
|
Разрешить значение Null
|
Описание
|
manager
|
Idmanager
|
целочисленный
|
Нет
|
Уникальный идентификационный номер менеджера
|
name
|
Текст
|
Нет
|
Имя менеджера
|
phone
|
Текст
|
Да
|
Телефон заказчика
|
sale
|
Idsale
|
целочисленный
|
Нет
|
Уникальный идентификационный номер продажи
|
Idmanager
|
целочисленный
|
Нет
|
Номер менеджера продавшего товары
|
saledate
|
дата
|
Да
|
Дата продажи
|
saleitem
|
Idsale
|
целочисленный
|
Нет
|
Уникальный идентификационный номер продажи
|
Idwares
|
целочисленный
|
Нет
|
Номер товара
|
quantity
|
целочисленный
|
Нет
|
Количество проданного товара
|
wares
|
Idwares
|
целочисленный
|
Нет
|
Уникальный идентификационный номер товара
|
name
|
текст
|
Нет
|
Название товара
|
description
|
текст
|
Нет
|
Полное описание товара
|
orderprice
|
целочисленный
|
Нет
|
Цена закупки
|
saleprice
|
целочисленный
|
Да
|
Цена продажи
|
Iddiscount
|
целочисленный
|
Нет
|
Процент скидки на продажу товара
|
discount
|
Iddiscount
|
целочисленный
|
Нет
|
Уникальный идентификационный номер скидки
|
percent
|
целочисленный
|
Нет
|
Уровень скидок
|
period
|
Idprovider
|
целочисленный
|
Нет
|
Номер поставщика
|
Idwares
|
целочисленный
|
Нет
|
Номер товара
|
day
|
целочисленный
|
Нет
|
Количество дней за которые товар доставят
|
provider
|
Idprovider
|
целочисленный
|
Нет
|
Уникальный идентификационный номер поставщика
|
name
|
текст
|
Нет
|
Наименование фирмы поставщика
|
agentname
|
текст
|
Нет
|
Имя представителя поставщика
|
phone
|
текст
|
Нет
|
Номер телефона представителя
|
order
|
idorder
|
целочисленный
|
Нет
|
Уникальный идентификационный номер заказа
|
Idprovider
|
целочисленный
|
Нет
|
Номер поставщика у которого сделали заказ
|
orddate
|
дата
|
Нет
|
Дата заказа
|
orderitem
|
idorder
|
целочисленный
|
Нет
|
Номер заказа
|
Idwares
|
целочисленный
|
Нет
|
Номер заказанного товара
|
warescount
|
целочисленный
|
Нет
|
Количество заказанного товара
|
Домен атрибута – это набор допустимых значений одного или нескольких атрибутов. Были определены следующие допустимые значения:
Для атрибутов quantity, orderprice, day, warescount допустимы только положительные значения отличные от нуля.
Для атрибута percent допустимы только значения от 0 до 20 включительно (чтобы скидка не оказалась в убыток магазину).
Атрибут salecount является вычисляемым столбцом и считается по формуле: ([orderprice]*(1.3)) (накрутка магазина 30% от закупа)
Определяем первичные ключи для типов сущностей:
-
Первичный ключ
|
Сущность
|
idmanager
|
manager
|
idsale
|
sale
|
idwares
|
wares
|
iddiscount
|
discount
|
idprovider
|
provider
|
idorder
|
order
|
Концептуальная схема
3Логическое проектирование. Построение и проверка реляционной модели данных
Исключение из концептуальной модели особенностей несовместимых с реляционной моделью.
В ходе проектирования концептуальной модели были выявлены связи «многие ко многим». Устранение из концептуальной модели этих связей можно путем добавления новой сущности saleitem (содержание продаж), orderitem(содержание заказов), period (сроки доставки)
Имя типа сущности
|
Описание
|
Ожидаемое количество экземпляров
|
orderitem
|
Содержание заказов
|
-
|
saleitem
|
Содержание продаж
|
-
|
period
|
Сроки доставки
|
-
|
Формирование набора отношений
В процессе концептуального моделирования выявила следующий набор отношений, необходимого для представления сущностей, связей и атрибутов:
Описание реляционной схемы
manager (idmanager,name,phone)
Первичный ключ idmanager
Альтернативный ключ phone
On INSERT no action
On UPDATE cascade
sale (idsale, idmanager,saledate)
Первичный ключ idsale
On INSERT no action
On UPDATE cascade
saleitem(idsale, idwares, quantity)
Первичный ключ составной idsale, idwares
Внешний ключ idsale ссылается на sale (idsale)
Внешний ключ idwares ссылается на wares (idwares)
wares (idwares, name, description, orderprice, saleprice ,iddiscount)
Первичный ключ idwares
Альтернативный ключ description
Внешний ключ iddiscount ссылается на discount (iddiscount)
On INSERT cascade
On UPDATE cascade
discount (iddiscount, percent)
Первичный ключ iddiscount
Альтернативный ключ percent
On UPDATE cascade
period (idwares, idprovider, day)
Первичный ключ составной idwares, idprovider
Внешний ключ idwares ссылается на wares (idwares)
Внешний ключ idprovider ссылается на provider (idprovider)
provider(idprovider, name, agentname, phone)
Первичный ключ idprovider
Альтернативный ключ name, phone
On INSERT cascade
On UPDATE cascade
order (idorder, idprovider, orddate)
Первичный ключ idorder
Внешний ключ idprovider ссылается на provider (idprovider)
orderitem(idorder,idwares,warescount)
Первичный ключ составной idorder, idwares
Внешний ключ idwares ссылается на wares (idwares)
Нормализация - это процесс, позволяющий гарантировать эффективность структур данных в реляционной базе данных.
Отношения находятся во второй нормальной форме, и соответствуют требованиям пользовательских транзакций.
Вторая нормальная форма обязана столбцу saleprice, так как он является вычисляемым столбцом и зависит от другого, неключевого, столбца.
Достарыңызбен бөлісу: |