Цель выполнения курсового проекта




страница1/5
Дата25.07.2016
Размер1.1 Mb.
  1   2   3   4   5

[KR balish]

31 мая 2012 г.



Оглавление



1. Цель выполнения курсового проекта.

Целями данного курсового проекта являются: закрепление знаний и навыков, полученных в рамках курса «Базы данных», и получение практического опыта проектирования и реализации баз данных в архитектуре «клиент-сервер».


2. Анализ предметной области.



2.1 Описание предметной области.
On-line магазин компьютерных игр GameMarket.net
Магазин занимается продажей компьютерных дисков с играми через интернет с помощью платежной системы «WebMoney» с возможностью доставки покупателю наземной почтой, курьером или авиапочтой (каждый вид доставки имеет свою стоимость и скидки). Каждый покупатель имеет собственный аккаунт, где хранятся его ФИО, логин, пароль, адрес электронной почты, полный домашний адрес, номер счета WebMoney», размер накопительной скидки и контактный телефон. У каждого покупателя есть счета (номера счетов), которые содержат информацию о способе, стоимости и дате отправки купленного покупателем товара, а также скидку на доставку. У каждой продажи есть свой уникальный номер. Покупатель может купить несколько дисков сразу и они будут отправлены единой посылкой в течение 5 дней. Если этот же покупатель совершит еще одну покупку в день его предыдущей покупки, то этот товар будет оправлен в первой посылке. В противном случае новый заказ будет выслан другой посылкой через 5 дней.

Магазин обслуживает персонал. Продавцы занимаются оформлением счетов покупателей. Каждый сотрудник имеет собственный аккаунт, где хранятся его ФИО, логин, пароль, должность, адрес электронной почты, полный домашний адрес, номер счета WebMoney», оклад, процентная ставка к зарплате с продажи товара и контактный телефон.

У каждой игры указаны название, разработчик, издатель, дата выпуска, описание, количество дисков на складе и процент надбавки на цену покупки у поставщика для получения прибыли, а также цена последней поставки.

Магазин сотрудничает с поставщиками дисков. У каждого поставщика есть название, адрес электронной почты, адрес, номер счета WebMoney» и контактный телефон. Поставка товара идет партиями, каждая партия имеет свой номер. В партии указан какой товар, по какой цене, в каком количестве, когда и кем поставляется.

Цена на диск складывается из цены последней поставки плюс процент для получения прибыли.

На каждую покупку распространяется фиксированная скидка. Также каждый покупатель имеет индивидуальную накопительную скидку. При общей сумме покупок свыше 1000 руб – 1%, свыше 5000 руб – 5%, свыше 10 000 руб – 10%.


2.2 Ограничения, присутствующие в предметной области.


  1. Автоматическое добавление в поле «Количество на складе» таблицы «Товары» количества товара, указанного при осуществлении поставки, а также заполнение поля «Цена последней поставки».

  2. При осуществлении продажи – автоматическое уменьшение числа товара на складе на количество проданного товара, а также вывод на экран ошибки в случае, когда количество на продажу больше, чем количество товара на складе.

  3. Проверка того, чтобы дата осуществления покупки, дата выпуска товара и дата поставки товара были не больше текущей.

  4. Автоматическая установка даты отправки товара (дата покупки + 5 дней).

  5. Подсчет накопительной скидки для покупателя при осуществлении новой покупки.


2.3 Основные задачи, решаемые в предметной области.


  1. Подсчет конечной цены продажи.

  2. Подсчет зарплаты сотрудников.

  3. Поиск дисков по названию/разработчику/издателю.

  4. Поиск покупателя, купившего товара на наибольшую сумму.

  5. Поиск самого активного продавца по количеству оформленных счетов.

  6. Вывод статистики используемых способов доставки в процентном соотношении.

  7. Вывод товаров, которые не продавались более месяца.

  8. Подсчет общей прибыли магазина за заданный период.

  9. Поиск самого популярного товара по результатам продаж.

  10. Вывод истории заказов заданного клиента.


3. Проектирование инфологической модели данных.

Реляционная база данных содержит как структурную, так и семантическую информацию. Структура базы данных определяется числом и видом включенных в нее отношений, и связями типа «один-ко-многим», существующими между кортежами этих отношений. Семантическая часть описывает множество функциональных зависимостей, существующих между атрибутами этих отношений [1].

К сожалению, не все отношения одинаково желательны. Таблица, отвечающая минимальному определению отношения, может иметь быть неэффективную или неподходящую структуру. Для некоторых отношений изменение данных может привести к нежелательным последствиям, называемых аномалиями модификации (modification anomalies). Аномалии могут быть устранены путем разбиения исходного отношения на два или более новых отношения. В большинстве случаев нормализация является более предпочтительной [3].

3.1 Первая нормальная форма.


Отношения, которые соответствуют всем свойствам отношений, находятся в первой нормальной форме:

On-Line Магазин

(ФИО покупателя, логин покупателя, пароль покупателя, адрес электронной почты покупателя, полный домашний адрес покупателя, номер счета «WebMoney» покупателя, размер накопительной скидки покупателя, контактный телефон покупателя, дата отправки товара, скидка на доставку, способ доставки, стоимость доставки, ФИО сотрудника, логин сотрудника, пароль сотрудника, должность сотрудника, адрес электронной почты сотрудника, полный домашний адрес сотрудника, номер счета «WebMoney» сотрудника, оклад сотрудника, процентная ставка к зарплате с продажи товара сотрудника, контактный телефон сотрудника, номер счета, номер партии, название игры, разработчик игры, издатель игры, дата выпуска игры, описание игры, количество дисков на складе, процент надбавки на цену покупки у поставщика для получения прибыли, цена последней поставки, номер продажи, дата продажи, скидка на продажу, количество на продажу, количество товара в партии, цена поставки партии, дата поставки партии, название поставщика, адрес электронной почты поставщика, адрес поставщика, номер счета «WebMoney» поставщика, контактный телефон поставщика)


3.2 Вторая нормальная форма.
Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме и каждый его неключевой атрибут функционально полно зависит от первичного ключа. Составной первичный ключ был выбран по следующим соображениям:

По номеру партии можно узнать название поставщика. По номеру продажи можно узнать номер счета. Если игра есть в базе, но еще ни разу не была продана или партия с этим товаром еще не была поставлена, то невозможно будет узнать название игры по номеру продажи или номеру партии. Если сотрудник является продавцом, который еще не оформил ни одного счета, либо сотрудник вообще не является продавцом (например, он является администратором) и не оформляет счета, то по номеру счета, который можно узнать по номеру продажи, невозможно будет определить таких сотрудников. Если покупатель еще не совершил ни одной покупки, а только зарегистрировался, то его также невозможно идентифицировать по номеру счета и, соответственно, по номеру продажи. Поэтому в составной первичный ключ войдут следующие атрибуты:

PK (ФИО покупателя, ФИО сотрудника, номер продажи, название игры, номер партии)



/

PK ФИО покупателя, логин покупателя, пароль покупателя, адрес электронной почты покупателя, полный домашний адрес покупателя, номер счета «WebMoney» покупателя, размер накопительной скидки покупателя, контактный телефон покупателя.



/

PK ФИО сотрудника, логин сотрудника, пароль сотрудника, должность сотрудника, адрес электронной почты сотрудника, полный домашний адрес сотрудника, номер счета «WebMoney» сотрудника, оклад сотрудника, процентная ставка к зарплате с продажи товара сотрудника, контактный телефон сотрудника.



/

PK название игры, разработчик игры, издатель игры, дата выпуска игры, описание игры, количество дисков на складе, процент надбавки на цену покупки у поставщика для получения прибыли, цена последней поставки.



/

PK номер продажи, дата продажи, скидка на продажу, количество на продажу, номер счета, дата отправки товара, скидка на доставку, способ доставки, стоимость доставки.



/

PK номер партии, количество товара в партии, цена поставки партии, дата поставки партии, название поставщика, адрес электронной почты поставщика, адрес поставщика, номер счета «WebMoney» поставщика, контактный телефон поставщика.
Декомпозиция:
Покупатели (ФИО покупателя (РК), логин покупателя, пароль покупателя, адрес электронной почты покупателя, полный домашний адрес покупателя, номер счета «WebMoney» покупателя, размер накопительной скидки покупателя, контактный телефон покупателя)

Сотрудники (ФИО сотрудника (РК), логин сотрудника, пароль сотрудника, должность сотрудника, адрес электронной почты сотрудника, полный домашний адрес сотрудника, номер счета «WebMoney» сотрудника, оклад сотрудника, процентная ставка к зарплате с продажи товара сотрудника, контактный телефон сотрудника)

Продажа (номер продажи (РК), номер счета, дата отправки товара, скидка на доставку, способ доставки, стоимость доставки, дата продажи, скидка на продажу, количество на продажу, ФИО сотрудника (FК), ФИО покупателя (FК), название игры (FК))

Товар (название игры (РК), разработчик игры, издатель игры, дата выпуска игры, описание игры, количество дисков на складе, процент надбавки на цену покупки у поставщика для получения прибыли, цена последней поставки)

Партии товара (номер партии (РК), количество товара в партии, цена поставки партии, дата поставки партии, название поставщика, адрес электронной почты поставщика, адрес поставщика, номер счета «WebMoney» поставщика, контактный телефон поставщика, название игры (FK))
3.3 Третья нормальная форма.
Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и отсутствует транзитивная зависимость между атрибутами:

Номер партии → название игры


Номер партии → название поставщика

Номер партии → адрес электронной почты поставщика

Номер партии → адрес поставщика

Номер партии → номер счета «WebMoney» поставщика

Номер партии → контактный телефон поставщика


/

Название игры название поставщика



/

Название игры адрес электронной почты поставщика



/

Название игры адрес поставщика



/

Название игры номер счета «WebMoney» поставщика



/

Название игры контактный телефон поставщика


Декомпозиция:
Покупатели (ФИО покупателя (РК), логин покупателя, пароль покупателя, адрес электронной почты покупателя, полный домашний адрес покупателя, номер счета «WebMoney» покупателя, размер накопительной скидки покупателя, контактный телефон покупателя)

Сотрудники (ФИО сотрудника (РК), логин сотрудника, пароль сотрудника, должность сотрудника, адрес электронной почты сотрудника, полный домашний адрес сотрудника, номер счета «WebMoney» сотрудника, оклад сотрудника, процентная ставка к зарплате с продажи товара сотрудника, контактный телефон сотрудника)

Продажа (номер продажи (РК), номер счета, дата отправки товара, скидка на доставку, способ доставки, стоимость доставки, дата продажи, скидка на продажу, количество на продажу, ФИО сотрудника (FК), ФИО покупателя (FК), название игры (FК))

Товар (название игры (РК), разработчик игры, издатель игры, дата выпуска игры, описание игры, количество дисков на складе, процент надбавки на цену покупки у поставщика для получения прибыли, цена последней поставки)

Партии товара (номер партии (РК), количество товара в партии, цена поставки партии, дата поставки партии, название игры (FK), название поставщика (FK))

Поставщики (название поставщика (РК), адрес электронной почты поставщика, адрес поставщика, номер счета «WebMoney» поставщика, контактный телефон поставщика)

3.4 Четвертая нормальная форма.
Отношение находится в четвертой нормальной форме, если оно находится в третьей нормальной форме, и отсутствуют многозначные зависимости между ключами:

название игры → → номер счета

название игры → → дата отправки товара

название игры → → скидка на доставку

название игры → → способ доставки

название игры → → стоимость доставки

название игры → → ФИО сотрудника

название игры → → ФИО покупателя


Декомпозиция:
Покупатели (ФИО покупателя (РК), логин покупателя, пароль покупателя, адрес электронной почты покупателя, полный домашний адрес покупателя, номер счета «WebMoney» покупателя, размер накопительной скидки покупателя, контактный телефон покупателя)

Сотрудники (ФИО сотрудника (РК), логин сотрудника, пароль сотрудника, должность сотрудника, адрес электронной почты сотрудника, полный домашний адрес сотрудника, номер счета «WebMoney» сотрудника, оклад сотрудника, процентная ставка к зарплате с продажи товара сотрудника, контактный телефон сотрудника)

Счета (номер счета (РК), дата отправки товара, скидка на доставку, способ доставки, стоимость доставки, ФИО сотрудника (FК), ФИО покупателя (FК))

Продажа (номер продажи (РК), дата продажи, скидка на продажу, количество на продажу, название игры (FК), номер счета (FK))

Товар (название игры (РК), разработчик игры, издатель игры, дата выпуска игры, описание игры, количество дисков на складе, процент надбавки на цену покупки у поставщика для получения прибыли, цена последней поставки)

Партии товара (номер партии (РК), количество товара в партии, цена поставки партии, дата поставки партии, название игры (FK), название поставщика (FK))

Поставщики (название поставщика (РК), адрес электронной почты поставщика, адрес поставщика, номер счета «WebMoney» поставщика, контактный телефон поставщика)

3.5 Описание основных сущностей и их атрибутов.


Описание основных сущностей и их атрибутов приводится в таблице 3.1.

Таблица 3.1. Описание сущностей и атрибутов



Сущность

Описание сущности

Атрибут

Описание атрибута

Покупатели



Содержит информацию о

покупателях



ФИО покупателя (РК)

Фамилия, имя, отчество покупателя (первичный ключ)

Логин покупателя

Логин покупателя для входа в информационную систему

Пароль покупателя

Пароль покупателя для входа в информационную систему

Адрес электронной почты покупателя

Адрес электронной почты для обратной связи с покупателем

Полный домашний адрес покупателя

Адрес места проживания покупателя, куда будут оправлены покупки

Номер счета «WebMoney» покупателя

Счет «WebMoney» покупателя для осуществления безналичных расчетов

Размер накопительной скидки покупателя

Накопительная скидка покупателя, зависящая от общей суммы его покупок

Контактный телефон покупателя

Контактный телефон для обратной связи с покупателем

Сотрудники

Содержит информацию о

сотрудниках



ФИО сотрудника (РК)

Фамилия, имя, отчество сотрудника (первичный ключ)

Логин сотрудника

Логин сотрудника для входа в информационную систему

Пароль сотрудника

Пароль сотрудника для входа в информационную систему

Адрес электронной почты сотрудника

Адрес электронной почты для обратной связи с сотрудником

Полный домашний адрес сотрудника

Адрес, где прописан сотрудник

Номер счета «WebMoney» сотрудника

Счет «WebMoney» сотрудника для осуществления безналичных расчетов

Должность сотрудника

Должность, занимаемая сотрудником

Оклад сотрудника

Оклад, ежемесячно получаемый сотрудником

Процентная ставка к зарплате с продажи товара сотрудника

Процент от стоимости оформленных продавцом продаж, прибавляемый к его окладу

Контактный телефон сотрудника

Контактный телефон для обратной связи с сотрудником

Счета

Содержит информацию о

счетах покупателей



Номер счета (РК)

Номер счета (первичный ключ)

Дата отправки товара

Дата, когда будет оправлен покупателю купленный им товар

Скидка на доставку

Скидка на товар, отправляемый покупателю

Способ доставки

Способ доставки (наземная почта, авиапочта, курьер)

Стоимость доставки

Стоимость перевозки товара

ФИО сотрудника (FК)

Фамилия, имя, отчество сотрудника (внешний ключ от сущности «Сотрудники»)

ФИО покупателя (FК)

Фамилия, имя, отчество покупателя (внешний ключ от сущности «Покупатели»)

Продажа

Содержит информацию о

продажах


Номер продажи (РК)

Номер продажи (первичный ключ)

Дата продажи

Дата осуществления продажи

Скидка на продажу

Скидка на покупаемый товар

Количество на продажу

Количество покупаемого товара

Название игры (FК)

Название игры (внешний ключ от сущности «Товар»)

Номер счета (FK)

Номер счета (внешний ключ от сущности «Счета»)

Товар

Содержит информацию о

товарах


Название игры (РК)

Название игры (первичный ключ)

Разработчик игры

Название компании-разработчика игры

Издатель игры

Название компании-издателя игры

Дата выпуска игры

Дата, когда игра была отправлена на прилавки магазинов

Количество дисков на складе

Хранимое на складе количество копий данной игры

Описание

Краткое описание сюжета и возможностей игры

Процент надбавки на цену покупки у поставщика для получения прибыли

Процент надбавки, который суммируется с ценой последней поставки данной игры

Цена последней поставки

Цена последней поставки

Партии товара

Содержит информацию о

поступивших партиях товаров



Номер партии (РК)

Номер партии (первичный ключ)

Количество товара в партии

Количество товара в пришедшей на склад партии

Цена поставки партии

Цена поставки данной партии товара

Дата поставки партии

Дата поставки данной партии товара

Название игры (FK)

Название игры (внешний ключ от сущности «Товар»)

Название поставщика (FK)

Название поставщика (внешний ключ от сущности «Поставщики»)


Поставщики

Содержит информацию о

поставщиках



Название поставщика (РК)

Название компании поставщика (первичный ключ)

Адрес электронной почты поставщика

Адрес электронной почты для обратной связи с поставщиком

Адрес поставщика

Адрес компании поставщика

Номер счета «WebMoney» поставщика

Счет «WebMoney» поставщика для осуществления безналичных расчетов

Контактный телефон поставщика

Контактный телефон для обратной связи с поставщиком

3.6 Выявление связей между сущностями

В рассматриваемой предметной области можно выделить связи, приведенные в таблице 3.2:




Родительская сущность

Дочерняя сущность

Описание связи

Мощность связи

Покупатели

Счета

Покупатели имеют Счета

1:M


Сотрудники

Счета

Сотрудники оформляют Счета

1:M

Поставщики

Партии товара

Поставщики поставляют Партии товара

1:M

Товар

Продажа

Товар помещается

в Продажу


1:M



Товар

Партии товара

Товар поставляется

в Партии товара


1:M

Счета

Продажи

Счета содержат Продажи

1:M




3.7 Инфологическая модель данных в нотации Чена.
Инфологическая модель данных в нотации Чена, показывающая взаимосвязь отношений, приведена на рисунке 3.1.

Название


Email

Поставщики

Адрес

Телефон


Счет WebMoney

Количество

Партии товара

Дата поставки

Цена поставки

Название


Издатель

Товар


Описание

Увелич. цены %

Разработчик

Цена посл. пост-ки

Кол-во на складе

Дата выпуска

Способ достав.

Счета


Дата опр. товара

Скидка на достав.

Стоимость достав.

Счет WebMoney

Логин

Телефон


Пароль

Накоп. скидка

Email

Покупатели



Дом. адрес

ФИО


Логин

Телефон


Пароль

Должность

Email

Сотрудники



ФИО

Оклад


Дом. адрес

Ставка от продажи

Счет WebMoney

М

М



М

М

М



М

1

1



1

1

1



1

Оформляет

Имеет

Содержат


Помещается

в

Поставляется



в

Поставляют

Количество.

Продажа


Дата продажи

Скидка


Номер партии

Номер продажи

Номер счета
Рисунок 3.1. Модель данных в нотации Чена.

  1   2   3   4   5


База данных защищена авторским правом ©uverenniy.ru 2016
обратиться к администрации

    Главная страница