Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовые работы / Разработка клиент-серверного приложения. База данных для магазина нумизматики

.pdf
Скачиваний:
164
Добавлен:
28.06.2014
Размер:
1.03 Mб
Скачать

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ

Курсовой проект по дисциплине базы данных и экспертные системы.

Разработка клиент-серверного приложения: база данных для магазина нумизматики.

Выполнил студент группы А-13-08 Апухтин Михаил

Преподаватель Сидорова Наталья Петровна

Научный руководитель Маран Михкель Михкелевич

Москва,2011

Оглавление

 

Постановка задачи ......................................................................................................................................

3

Проектирование базы данных ...................................................................................................................

4

Разработка инфологической модели БД...............................................................................................

4

Разработка реляционной модели БД..................................................................................................

10

Проектирование правил целостности БД.........................................................................................

12

Реализация базы данных..........................................................................................................................

13

Создание таблиц и индексов с учетом декларативных ограничений. .............................................

13

Реализация процедурных ограничений при помощи триггеров. .....................................................

15

Реализация клиентской части приложения ............................................................................................

17

2

Постановка задачи

Спроектировать базу данных для магазина нумизматики и на ее основе разработать клиент-серверное приложение, позволяющее пользователю работать с указанной базой данных. При проектировании базы данных применить средство проектирования AllFusion Erwin Data Modeler. Реализацию базы данных провести в Microsoft SQL Server. Клиентскую часть реализовать в виде приложения Windows Forms на языке C# в среде

Microsoft Visual Studio.

3

Проектирование базы данных

Разработка инфологической модели БД

Краткое описание предметной области

Магазин осуществляет продажу монет (в базе данных хранится перечень всех продаваемых монет и их характеристики). Оплату можно производить при помощи банковского перевода, почтового перевода, интернет кошелька WebMoney или наличными (при доставке курьером). Доставка товара осуществляется по почте или курьером (200р. в пределах МКАД). Доставка осуществляется в любой день недели, как правило, спустя 1-2 дня после оформления заказа.

4

Структура БД

5

Entity

Entity

Name

Definition

Доставка

Описание доставок заказов, доставляемых

 

курьером.

Заказ

Описание заказов.

Заказ-товар

Таблица, отражающая все монеты,

 

входящие в данный заказ.

Монета

Описание монеты, выставленной на

 

продажу.

Покупатель

Данные о покупателях.

 

 

Состояние

Список состояний монет и коды,

 

соответствующие им.

Сотрудник

Список всех сотрудников, включающий

 

необходимые данные о них.

Способ оплаты

Список возможных способов оплаты и

 

коды, соответствующие им.

Способ получения

Список возможных способов получения и

 

коды, соответствующие им.

Статус заказа

Список возможных статусов заказов и

 

коды, соответствующие им.

6

Attribute(s) of "Доставка" Entity

Name

 

Datatype

Definition

Note

№ заказа

 

INTEGER

Порядковый номер

 

 

 

 

заказа.

 

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

 

DATE

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

Дата

 

 

 

заказа.

 

Время доставки

 

TIME

Примерное время

Время

 

 

 

доставки заказа.

 

Табельный номер

 

INTEGER

Порядковый номер

 

 

 

 

сотрудника

 

Attribute(s) of "Заказ" Entity

Name

 

Datatype

Definition

Note

№ заказа

 

INTEGER

Порядковый номер

Счетчик.

 

 

 

заказа.

 

Дата заказа

 

DATE

Дата заказа.

Дата

Время заказа

 

TIME

Время заказа.

Время

Код статуса

 

INTEGER

Код статуса заказа

 

Стоимость заказа

 

MONEY

Стоимость заказа с

Сумма в рублях

 

 

 

учетом доставки.

 

Код способа оплаты

 

INTEGER

Код способа оплаты

 

Код способа

 

INTEGER

Код способа

 

получения

 

 

получения

 

Логин

 

VARCHAR(20)

Логин пользователя

Не менее 3

 

 

 

 

символов,

 

 

 

 

начинающихся с

 

 

 

 

буквы.

Табельный номер

 

INTEGER

Порядковый номер

 

 

 

 

сотрудника

 

Attribute(s) of "Заказ-товар" Entity

Name

 

Datatype

Definition

Note

id монеты

 

INTEGER

Порядковый номер

 

 

 

 

монеты как товара.

 

№ заказа

 

INTEGER

Порядковый номер

 

 

 

 

заказа.

 

Attribute(s) of "Монета" Entity

Name

 

Datatype

Definition

Note

 

id монеты

 

INTEGER

Порядковый номер

Счетчик

 

 

 

 

монеты как товара.

 

 

Название

 

VARCHAR(60)

Название монты,

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

 

 

 

 

содержащее общие

 

 

 

 

 

данные.

 

 

Цена

 

MONEY

Цена монеты.

Сумма в рублях

 

Фото

 

IMAGE

Фото монеты.

Картинка.

 

Металл

 

VARCHAR(50)

Металл или сплав

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

 

 

 

 

из которого

металла или сплава.

 

 

 

 

изготовлена монета.

 

 

Вес

 

FLOAT

Вес монеты в

Десятичное число

 

7

Attribute(s) of "Монета" Entity

Name

 

Datatype

Definition

Note

 

 

 

граммах

>=0

Диаметр

 

FLOAT

Диаметр монеты в

Десятичное число

 

 

 

мм.

>=0

Номинал

 

VARCHAR(20)

Номинал монеты.

Строка с номиналом

Страна

 

VARCHAR(80)

Страна, в которой

Строка с

 

 

 

отчеканена монета.

наименованием

 

 

 

 

страны

Код состояния

 

INTEGER

Код состояния

 

 

 

 

монеты

 

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

 

INTEGER

Количество монет

Целое число >=0

складе

 

 

на складе.

 

Attribute(s) of "Покупатель" Entity

Name

 

Datatype

Definition

Note

Логин

 

VARCHAR(20)

Логин пользователя

Не менее 3

 

 

 

 

символов,

 

 

 

 

начинающихся с

 

 

 

 

буквы.

Пароль

 

VARCHAR(20)

Пароль

Не менее 4

 

 

 

пользователя

символов (букв или

 

 

 

 

цифр)

e-mail

 

VARCHAR(20)

E-mail пользователя

Строка вида: *@*.*

ФИО

 

VARCHAR(40)

ФИО пользователя

 

Адрес

 

VARCHAR(60)

Полный адрес

 

 

 

 

пользователя

 

Почтовый индекс

 

VARCHAR(6)

Почтовый индекс

Число от 000001 до

 

 

 

пользователя

999999

Дата рождения

 

DATE

Дата рождения

 

 

 

 

пользователя

 

Дата регистрации

 

DATE

Дата регистрации

 

 

 

 

пользователя в

 

 

 

 

магазине

 

Пол

 

VARCHAR(1)

Пол пользователя

М или Ж

Телефон

 

VARCHAR(15)

Телефон

 

 

 

 

пользователя.

 

Attribute(s) of "Состояние" Entity

Name

 

Datatype

Definition

Note

 

Код состояния

 

INTEGER

Код состояния

Счетчик

 

 

 

 

монеты

 

 

Обозначение

 

VARCHAR(10)

Международное

 

 

состояния

 

 

обозначение

 

 

 

 

 

состояния монеты.

 

 

Расшифровка

 

VARCHAR(20)

Расшифровка

 

 

обозначения

 

 

международного

 

 

 

 

 

обозначения

 

 

 

 

 

состояния монеты

 

 

8

Attribute(s) of "Сотрудник" Entity

Name

 

Datatype

Definition

Note

Табельный номер

 

INTEGER

Порядковый номер

Счетчик

 

 

 

сотрудника

 

ФИО

 

VARCHAR(40)

ФИО сотрудника

 

e-mail

 

VARCHAR(20)

E-mail сотрудника

Строка вида: *@*.*

Телефон

 

VARCHAR(15)

Телефон

 

 

 

 

сотрудника

 

Должность

 

VARCHAR(20)

Должность

 

 

 

 

сотрудника

 

Attribute(s) of "Способ оплаты" Entity

Name

 

Datatype

Definition

Note

Код способа оплаты

 

INTEGER

Код способа оплаты

Счетчик

Способ оплаты

 

VARCHAR(20)

Расшифровка кода

 

 

 

 

способа оплаты

 

Attribute(s) of "Способ получения" Entity

Name

 

Datatype

Definition

Note

Код способа

 

INTEGER

Код способа

Счетчик

получения

 

 

получения

 

Способ получения

 

VARCHAR(20)

Расшифровка кода

 

 

 

 

способа получения

 

Attribute(s) of "Статус заказа" Entity

Name

 

Datatype

Definition

Note

Код статуса

 

INTEGER

Код статуса заказа

Счетчик.

Статус

 

VARCHAR(20)

Расшифровка кода

 

 

 

 

статуса заказа

 

9

Relationship

Relationship

Name

Cardinality

Заказ/Доставка

One-to-Zero-or-One (Z)

Заказ/Заказ-товар

One-to-One-or-More (P)

Монета/Заказ-товар

One-to-Zero-One-or-More

Покупатель/Заказ

One-to-Zero-One-or-More

Состояние/Монета

One-to-Zero-One-or-More

Сотрудник/Заказ

One-to-Zero-One-or-More

Сотрудник/Доставка

One-to-Zero-One-or-More

Способ оплаты/заказ

One-to-Zero-One-or-More

Способ получения/заказ

One-to-Zero-One-or-More

Статус заказа/Заказ

One-to-Zero-One-or-More

Разработка реляционной модели БД

Функциональные зависимости.

Пусть X и Y – атрибуты некоторого отношения R. Если в любой момент времени каждому значению X соответствует единственное значение

Y, то Y функционально зависит от X (X→Y).

Атрибут Y функционально полно зависит от составного атрибута X, если он функционально зависит от X и не зависит функционально от любого подмножества атрибута X.

Покажем функционально полную зависимость атрибутов сущностей разрабатываемой базы данных от ключей соответствующих сущностей.

Покупатель

Логин

Логин

Логин

Пароль

Логин

e-mail

Логин

ФИО

Логин

Адрес

Логин

Дата_рождения

Логин

Дата_регистрации

Логин

Пол

Логин

Телефон

Логин

Почтовый индекс

Сотрудник

Табельный_номер Табельный_номер Табельный_номер ФИО Табельный_номер e-mail Табельный_номер Телефон Табельный_номер Должность

10