Математические основы баз данных


Курсовая работа

Математические основы баз данных


Исполнитель: Нестеров В.П.

Содержание


Введение

.Общая часть

.1Транзитивные зависимости

.Практическая часть

.1Описание предметной области

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

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

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

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

.2.2Вторая нормальная форма

.2.3Третья нормальная форма

.2.4Четвертая нормальная форма

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

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

.4 Инфологическая модель данных в нотации Чена

.5 Концептуальная модель

.5.1Логический уровень модели данных

.5.2Физический уровень модели данных

.5.3Сгенерированный в ERwin SQL код таблиц

.6Руководство пользователя

.6.1Регистрация

Заключение

Список использованной литературы


Введение


В деловой и личной сфере часто приходится работать с данными из разных источников, каждый из которых связан с определенным видом деятельности. Для координации всех этих данных необходимы определенные знания и организационные навыки. В общем смысле термин база данных - это совокупность сведений о конкретных объектах реального мира в какой-либо предметной области или разделе предметной области. Увеличение объема и структурной сложности хранимых данных, расширение круга пользователей информационных систем выдвинуло требование создания удобных средств интеграции хранимых данных и управления ими.


1.Общая часть


.1 Транзитивные зависимости


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

В качестве теоретико-множественного постулата будем использовать следующий принцип, эквивалентный известной аксиоме выбора.

Непустое упорядоченное множество, в котором каждое линейно упорядоченное подмножество обладает верхней гранью, имеет максимальный элемент.

Далее целесообразно рассмотреть некоторые примеры отношения зависимости:

Понятие линейной зависимости в векторном пространстве V над полем . Система векторов векторного пространства V называется линейно зависимой, если существует конечная линейно зависимая ее подсистема, в противном случае - линейно независимой.

Понятие линейной зависимости в конечномерных векторных пространствах дается в курсе алгебры. Конечная система векторов V называется линейно зависимой, если существуют элементы поля одновременно не равные нулю и такие, что линейная комбинация. Множество линейных комбинаций множества векторов векторного пространства V с коэффициентами из поля P называется линейной оболочкой этих векторов и обозначается . При этом - является подпространством в пространстве V, порожденным . Получаем транзитивное отношение зависимости.

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

Пусть на множестве A задано рефлексивное и симметричное бинарное отношение (называемое отношением сходства). Подмножество X множества A будем считать зависимым, если оно содержит два различных элемента, находящихся в отношении .

Оболочкой множества служит множество


В этом случае можно усилить аксиому отношения зависимости следующим образом:

Z Z.


Тогда оболочкой множества будет множество всех элементов, находящихся в отношении сходства хотя бы с одним элементом из множества .

Введенное отношение зависимости будет транзитивным тогда и только тогда, когда соответствующее бинарное отношение будет транзитивно, то есть является отношением эквивалентности на .

В случае, когда - отношение эквивалентности будет независимым тогда и только тогда, когда множество содержит не более одного элемента. Любое максимальное независимое подмножество будет содержать ровно по одному элементу из каждого класса эквивалентности .

Особый интерес представляют транзитивные пространства зависимости. Важным результатом является доказательство инвариантности размерности любого транзитивного пространства зависимости.

Докажем некоторые свойства, справедливые для транзитивных пространств зависимости Z.

Свойство 1: зависит от .

Доказательство:

зависит от , то есть , и . Рассмотрим , тогда - независимо и - зависимо, а , получаем, что , поэтому . Имеем .

По определению 8 любое подмножество зависит от

Свойство 2: Если зависит от , а зависит от , то зависит от .

Доказательство:

Запишем условие, используя свойство 1 , а , тогда очевидно, что .?

Свойство 3: Если X - минимальное порождающее множество в A, то X - базис в A.

Доказательство:

Пусть X - минимальное порождающее множество в A. Покажем, что оно не может быть зависимым, так как в этом случае его можно было бы заменить собственным подмножеством, все еще порождающим A. Действительно, в силу транзитивности отношения зависимости, любое множество, порождающее множество X, будет так же порождать и множество A. Следовательно, X - независимое порождающее множество, которое по определению 6 является базисом.

Свойство 4: для любого .

Доказательство: Следует из свойства 3.

Свойство 5 (о замене.) :

Если X - независимое множество и Y - порождающее множество в A, то существует такое подмножество множества Y, что и - базис для A.

Доказательство:

Рассмотрим систему J таких независимых подмножеств Z множества A, что .

Так как X независимо, то такие множества существуют; кроме того, если - некоторое линейно упорядоченное множество множеств из J, то его объединение снова принадлежит J, поскольку Z удовлетворяет условию , и если Z зависимо, то некоторое конечное подмножество множества Z должно было бы быть зависимым; это подмножество содержалось бы в некотором множестве в противоречии с тем фактом, что все независимы.

По лемме Цорна J имеет максимальный элемент М; в силу максимальности каждый элемент множества Y либо принадлежит М, либо зависит от М, откуда . Этим доказано, что М - базис в A. Так как , то М имеет вид , где удовлетворяет условиям .?

Пространство зависимости Z называется конечномерным, если любое его независимое множество конечно.

Теорема 3.

Пусть Z - транзитивное пространство зависимости. Тогда любые два базиса в этом пространстве равномощны.

Доказательство:

Рассмотрим сначала случай конечномерного пространства .

Пусть В, С - любые два базиса в А, их существование обеспечивается теоремой 2, и , , , где различные элементы обозначены различными буквами или снабжены различными индексами. Применим индукцию по max (r, s).

Если r = 0 или s = 0, то или , и . Поэтому можно предполагать, что r ? 1, s ? 1, без ограничения общности будем считать, что r > s, так что на самом деле r > 1.

Предположим, что базисы будут равномощными для любого t < r

По лемме о замене множество можно дополнить до базиса D элементами базиса С, скажем

, t ? s < r.

Теперь пересечение D c В состоит из n + 1 элемента, и D содержит, кроме того, еще t (< r) элементов, тогда как В содержит, кроме этого пересечения, еще r - 1 элементов, так что по предположению индукции , то есть .

Поскольку r > 1, отсюда вытекает, что t ? 1, и поэтому пересечение D с С содержит не меньше чем n+1 элементов. Используя еще раз предположение индукции, находим, что и, следовательно, r = s и базисы В и С равномощны.

Далее, пусть В - конечный базис в . Тогда и любой другой базис С пространства будет конечным. Действительно, В выражается через конечное множество элементов в силу транзитивности будет порождающим и независимым множеством в , то есть .

Наконец, если базисы В и С бесконечны. Каждый элемент из В зависит от некоторого конечного подмножества базиса С, и наоборот. Мощность множества всех конечных подмножеств всякого бесконечного множества равна мощности самого множества. Поэтому мощности В и С совпадают.?

Теорема 4.

Пусть Z - произвольное пространство зависимости, тогда следующие условия эквивалентны

(i)Z транзитивно;

(ii)для любого конечного ;

(iii) конечных и Z

Z;

(iv)для любого конечного .

Доказательство:

(i) (ii) Справедливо по теореме 3 и примеру 7.

(ii) (iii) Возьмем , так что - независимы и . Допустим, что утверждение Z неверно. Тогда Z. Рассмотрим . Имеем . Но Z, поэтому Z . По (ii) имеем. Но - противоречие.

(iii) (ii) Докажем от противного. Пусть . Можно считать, что . Тогда по (iii) независимо. Получили противоречие с максимальностью

(iii) (i)Нужно доказать равенство для произвольного .

Возьмем и покажем, что Так как , то Пусть существует , тогда независимо и существует Z и Z . Расширяя в можно предположить, что По (ii) , то есть . Поэтому по (iii) Z . видим, что . Значит, . Получаем противоречие с тем, что Следовательно, , то сеть .

Теперь достаточно показать, что . Пусть , тогда зависимо, расширяя в можно предположить, что , кроме того , тогда по (ii) . независимо, поэтому . По (iii) Z . видим, что . Значит, , получили противоречие с максимальностью . Следовательно, , обратное включение очевидно, поэтому .

(iv) (ii) В силу теорем 1 и 3 и доказанной эквивалентности

(i) (ii).?

Далее будем рассматривать произвольное конечномерное транзитивное пространство зависимости Z.

Определение 12.

Мощность максимального независимого подмножества данного множества называется рангом этого множества: .

Будем рассматривать конечные подмножества .

Имеют место следующие свойства.

Свойство 1о: Z .

Доказательство: Z .

Свойство 2о: Z .

Доказательство: Z, возьмем , тогда по свойству 1о и . Обратное утверждение следует из определения 13.

Свойства 3о - 7о сформулированы для .

Свойство 3о: .

Доказательство: Ясно, что , и так как число элементов любого подмножества не больше числа элементов самого множества, то данное свойство выполняется.

Свойство 4о: .

Доказательство: следует из того, что любое независимое подмножество в можно продолжить до максимального независимого подмножества в ;

Свойство 5о: .

Доказательство:

Пусть Тогда И затем . Имеем .

Свойство 6о: .

Доказательство: вытекает из свойства 40;

Свойство 7о: .

Доказательство:

.


2.Практическая часть


.1 Описание предметной области


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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


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

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


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

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


.2.2 Вторая нормальная форма

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

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

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

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

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

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

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

PK номер партии, количество товара в партии, цена поставки партии, дата поставки партии, название поставщика, адрес электронной почты поставщика, адрес поставщика, номер счета «WebMoney» поставщика, контактный телефон поставщика.

Декомпозиция:

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

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

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

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

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


.2.3 Третья нормальная форма

Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме и отсутствует транзитивная зависимость между атрибутами:

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

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

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

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

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

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

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

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

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

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

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

Декомпозиция:

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

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

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

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

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

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

2.2.4 Четвертая нормальная форма

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

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

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

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

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

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

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

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

Декомпозиция:

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

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

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

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

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

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

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


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


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


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

СущностьОписание сущностиАтрибутОписание атрибутаПокупатели Содержит информацию о покупателяхФИО покупателя (РК)Фамилия, имя, отчество покупателя (первичный ключ)Логин покупателяЛогин покупателя для входа в информационную системуПароль покупателяПароль покупателя для входа в информационную системуАдрес электронной почты покупателяАдрес электронной почты для обратной связи с покупателемПолный домашний адрес покупателяАдрес места проживания покупателя, куда будут оправлены покупкиНомер счета «WebMoney» покупателяСчет «WebMoney» покупателя для осуществления безналичных расчетовРазмер накопительной скидки покупателяНакопительная скидка покупателя, зависящая от общей суммы его покупокКонтактный телефон покупателяКонтактный телефон для обратной связи с покупателемСотрудникиСодержит информацию о сотрудникахФИО сотрудника (РК)Фамилия, имя, отчество сотрудника (первичный ключ)Логин сотрудникаЛогин сотрудника для входа в информационную системуПароль сотрудникаПароль сотрудника для входа в информационную системуАдрес электронной почты сотрудникаАдрес электронной почты для обратной связи с сотрудникомПолный домашний адрес сотрудникаАдрес, где прописан сотрудникНомер счета «WebMoney» сотрудникаСчет «WebMoney» сотрудника для осуществления безналичных расчетовДолжность сотрудникаДолжность, занимаемая сотрудникомОклад сотрудникаОклад, ежемесячно получаемый сотрудникомПроцентная ставка к зарплате с продажи товара сотрудникаПроцент от стоимости оформленных продавцом продаж, прибавляемый к его окладуКонтактный телефон сотрудникаКонтактный телефон для обратной связи с сотрудникомСчетаСодержит информацию о счетах покупателейНомер счета (РК)Номер счета (первичный ключ)Дата отправки товараДата, когда будет оправлен покупателю купленный им товарСкидка на доставкуСкидка на товар, отправляемый покупателюСпособ доставкиСпособ доставки (наземная почта, авиапочта, курьер)Стоимость доставкиСтоимость перевозки товараФИО сотрудника (FК)Фамилия, имя, отчество сотрудника (внешний ключ от сущности «Сотрудники»)ФИО покупателя (FК)Фамилия, имя, отчество покупателя (внешний ключ от сущности «Покупатели»)ПродажаСодержит информацию о продажахНомер продажи (РК)Номер продажи (первичный ключ)Дата продажиДата осуществления продажиСкидка на продажуСкидка на покупаемый товарКоличество на продажуКоличество покупаемого товараНазвание игры (FК)Название игры (внешний ключ от сущности «Товар»)Номер счета (FK)Номер счета (внешний ключ от сущности «Счета»)ТоварСодержит информацию о товарахНазвание игры (РК)Название игры (первичный ключ)Разработчик игрыНазвание компании-разработчика игрыИздатель игрыНазвание компании-издателя игрыДата выпуска игрыДата, когда игра была отправлена на прилавки магазиновКоличество дисков на складеХранимое на складе количество копий данной игрыОписаниеКраткое описание сюжета и возможностей игрыПроцент надбавки на цену покупки у поставщика для получения прибылиПроцент надбавки, который суммируется с ценой последней поставки данной игрыЦена последней поставкиЦена последней поставкиПартии товараСодержит информацию о поступивших партиях товаровНомер партии (РК)Номер партии (первичный ключ)Количество товара в партииКоличество товара в пришедшей на склад партииЦена поставки партииЦена поставки данной партии товараДата поставки партииДата поставки данной партии товараНазвание игры (FK)Название игры (внешний ключ от сущности «Товар»)Название поставщика (FK)Название поставщика (внешний ключ от сущности «Поставщики») ПоставщикиСодержит информацию о поставщикахНазвание поставщика (РК)Название компании поставщика (первичный ключ)Адрес электронной почты поставщикаАдрес электронной почты для обратной связи с поставщикомАдрес поставщикаАдрес компании поставщикаНомер счета «WebMoney» поставщикаСчет «WebMoney» поставщика для осуществления безналичных расчетовКонтактный телефон поставщикаКонтактный телефон для обратной связи с поставщиком

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

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


Таблица 2.2 Связи сущностей

Родительская сущностьДочерняя сущностьОписание связиМощность связиПокупателиСчетаПокупатели имеют Счета1:MСотрудникиСчетаСотрудники оформляют Счета1:MПоставщикиПартии товараПоставщики поставляют Партии товара1:MТоварПродажаТовар помещается в Продажу1:MТоварПартии товараТовар поставляется в Партии товара1:MСчетаПродажиСчета содержат Продажи1:M

2.4 Инфологическая модель данных в нотации Чена


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

Рисунок 2.1. Модель данных в нотации Чена.


.5 Концептуальная модель


В качестве СУБД была выбрана PostgreSQL по следующим причинам:

1.PostgreSQL является бесплатной СУБД.

.Отличная интеграция с языком высокого уровня Java.

.Как следствие предыдущего пункта, PostgreSQL - идеальное решение для реализации web-приложений, написанных на Java.

.Поддержка БД практически неограниченного размера.

.Мощные и надёжные механизмы транзакций и репликации (механизм синхронизации содержимого нескольких копий объекта (например, содержимого базы данных). Репликация - это процесс, под которым понимается копирование данных из одного источника на множество других и наоборот) [4].

.Наследование.

.Легкая расширяемость.

В дальнейшем в работе для создания концептуальной модели данных используется CASE-средство ERwin, которое позволяет быстро и наглядно спроектировать модель в виде диаграмм «сущность-связь», а затем сгенерировать SQL код базы данных. Так как ERwin 7.3 не поддерживает PostgreSQL, в качестве СУБД была выбрана MySql 5.x, потому что SQL синтаксис и основные типы данных в PostgreSQL и MySql совпадают.


.5.1 Логический уровень модели данных

В ERwin результат проектирования на концептуальном уровне представляется логической моделью данных (рисунок 2.5.1).

В логической модели данных отображаются сущности и атрибуты, ключевые атрибуты в модели представлены в сущности, над чертой. Внешние ключи (мигрирующие атрибуты из родительской сущности) обозначаются как (FK - Foreign Key)[2]. Логический уровень означает прямое отображение фактов из реальной жизни. Они именуются на естественном языке, с любыми разделителями слов (пробелы, запятые и т.д.). На логическом уровне не рассматривается использование конкретной СУБД, не определяются типы данных (например, целое или вещественное число) и не определяются индексы для таблиц[2].

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

Главное достоинство суррогатного ключа состоит в том, что он никогда не изменяется, поскольку не является информативным полем таблицы (не несёт никакой информации об описываемом записью объекте) [4].

При использовании суррогатных ключей не следует озадачивать пользователя вводом значений, которые не несут для него никакой информации. Они генерируются автоматически независимо от пользователя [1].

Введем суррогатные ключи для сущностей «Покупатели», «Сотрудники», «Поставщики» и «Товар», кроме того, атрибуты «ФИО покупателя» и «ФИО сотрудника» разделим на три атрибута («фамилия», «имя», «отчество») каждый и сгруппируем их в составные альтернативные ключи. Так же альтернативными ключами сделаем атрибуты «название поставщика» и «название игры». Альтернативные ключи (AK - Alternative Key) служат для ускорения поиска по базе данных.


Рисунок 2.5.1 - Модель данных на логическом уровне в нотации IDEF1x


2.5.2 Физический уровень модели данных

Модель данных на физическом уровне отличается от модели данных на логическом уровне тем, что она полностью ориентирована на выбранную СУБД, т.е. в отличие от логической модели, в которой не имеет значения, какой конкретно тип данных имеет атрибут, в физической модели данных важно описать информацию о конкретных физических объектах - таблицах, полях, индексах, процедурах и т.д [2]. Для СУБД PostgreSQL характерно то, что все объекты базы данных, должны иметь англоязычное наименование.

В ходе проектирования физического уровня была получена модель, представленная на рисунке 2.5.2.


Рисунок 2.5.2 - Модель данных на физическом уровне в нотации IDEF1x


Соответствия между объектами логического и физического уровня показаны в следующих таблицах:


СущностьТаблицаНазваниеНазваниеПартии товараAccountsПерсонал магазинаBuyersПокупателиConsignmentПоставщикиGoodsПродажаReteilСчетаShop_StaffТоварVendor"Партии товара" Entity"Consignment" TableНазваниеNameDatatypeIs PKIs FKНомер партииConsignment_IDNUMERICYesNoДатаConsignment_dateDATENoNoНомер поставщикаVendor_IDNUMERICNoYesКоличество товара в партииGoods_countINTEGERNoNoЦена поставкиDelivery_priceDOUBLE PRECISIONNoNoНомер товараGoods_IDNUMERICNoYes

"Сотрудники"Column(s) of "Shop_Staff" TableНазваниеNameDatatypeIs PKIs FKНомер сотрудникаEmployee_IDNUMERICYesNoФамилияLast_NameVARCHAR(20)NoNoИмяFirst_NameVARCHAR(20)NoNoОтчествоThird_NameVARCHAR(20)NoNoЛогинLoginVARCHAR(20)NoNoПарольPasswordVARCHAR(20)NoNoДолжностьPostVARCHAR(20)NoNoemailemailVARCHAR(20)NoNoНомер счета WebMoneyWebMoney_account_numberVARCHAR(20)NoNoДомашний адресHome_addressVARCHAR(100)NoNoКонтактный телефонPhoneVARCHAR(12)NoNoСтавка от продажи, %Wage_rateNUMERICNoNoОклад, рубSalaryDOUBLE PRECISIONNoNo

Покупатели" EntityColumn(s) of "Buyers" TableНазваниеNameDatatypeIs PKIs FKНомер покупателяBuyer_IDNUMERICYesNoФамилияLast_NameVARCHAR(20)NoNoИмяFirst_NameVARCHAR(20)NoNoОтчествоThird_NameVARCHAR(20)NoNoЛогинLoginVARCHAR(20)NoNoПарольPasswordVARCHAR(20)NoNoemailemailVARCHAR(20)NoNoНомер счета WebMoneyWebMoney_account_numberVARCHAR(20)NoNoДомашний адресHome_addressVARCHAR(100)NoNoКонтактный телефонPhoneVARCHAR(12)NoNoНакопительная скидка, %Summ_DiscountINTEGERNoNo

"Поставщики" Entity"Vendor" TableНазваниеNameDatatypeIs PKIs FKНомер поставщикаVendor_IDNUMERICYesNoНазваниеVendor_NameVARCHAR(30)NoNoАдресAddressVARCHAR(100)NoNoemailemailVARCHAR(20)NoNoНомер счета WebMoneyWebMoney_account_numberVARCHAR(20)NoNoТелефонPhoneVARCHAR(12)NoNo

"Продажа" EntityColumn(s) of "Reteil" TableНазваниеNameDatatypeIs PKIs FKНомер продажиReteil_IDNUMERICYesNoНомер счетаAccount_IDNUMERICNoYesКоличествоReteil_countINTEGERNoNoСкидка, %DiscountINTEGERNoNoНомер товараGoods_IDNUMERICNoYesДата продажиDate_of_reteilDATENoNo

"Счета" EntityColumn(s) of "Accounts" TableНазваниеNameDatatypeIs PKIs FKНомер счетаAccount_IDNUMERICYesNoНомер покупателяBuyer_IDNUMERICNoYesДата отправки товараDate_of_sendingDATENoNoСкидка на доставку, %Discount_on_shippingINTEGERNoNoНомер сотрудникаEmployee_IDNUMERICNoYesСпособ доставкиType_of_shippingVARCHAR(30)NoNoСтоимость доставкиPrice_of_shippingDOUBLE PRECISIONNoNo "Товар" EntityColumn(s) of "Goods" TableНазваниеNameDatatypeIs PKIs FKНомер товараGoods_IDNUMERICYesNoРазработчикDeveloperVARCHAR(25)NoNoНазваниеNameVARCHAR(25)NoNoИздательPublisherVARCHAR(25)NoNoОписаниеDescriptionTEXTNoNoДата выпускаDate_of_releaseDATENoNoПроцент увеличения ценыPercent_of_price_increasingINTEGERNoNoКоличество на складеCount_at_storehouseNUMERICNoNoЦена последней поставкиPrice_of_last_deliveryDOUBLE PRECISIONNoNoИзображениеImageVARCHAR(50)NoNo

2.5.3 Сгенерированный в ERwin SQL код таблиц

CREATE TABLE Vendor

(_ID NUMERIC NOT NULL,_Name VARCHAR(30),VARCHAR(100),VARCHAR(12),VARCHAR(20),_account_number VARCHAR(20),KEY (Vendor_ID)

);

TABLE Goods

(_ID NUMERIC NOT NULL,VARCHAR(25),VARCHAR(25),VARCHAR(25),TEXT,_of_price_increasing INTEGER,_at_storehouse NUMERIC,_of_last_delivery DOUBLE PRECISION,_of_release DATE,VARCHAR(50),KEY (Goods_ID)

);

TABLE Consignment

(_ID NUMERIC NOT NULL,_date DATE,_ID NUMERIC NOT NULL,_count INTEGER,_price DOUBLE PRECISION,_ID NUMERIC NOT NULL,KEY (Consignment_ID),

(Vendor_ID) REFERENCES Vendor (Vendor_ID),

(Goods_ID) REFERENCES Goods (Goods_ID)

);

TABLE Buyers

(_ID NUMERIC NOT NULL,_Name VARCHAR(20),_Name VARCHAR(20),_Name VARCHAR(20),VARCHAR(20),VARCHAR(20),VARCHAR(20),_account_number VARCHAR(20),_address VARCHAR(100),VARCHAR(12),_Discount INTEGER,KEY (Buyer_ID)

);

TABLE Shop_Staff

(_ID NUMERIC NOT NULL,_Name VARCHAR(20),_Name VARCHAR(20),_Name VARCHAR(20),VARCHAR(20),VARCHAR(20),VARCHAR(20),VARCHAR(20),_account_number VARCHAR(20),_address VARCHAR(100),VARCHAR(12),_rate NUMERIC,DOUBLE PRECISION,KEY (Employee_ID)

);

TABLE Accounts

(_ID NUMERIC NOT NULL,_ID NUMERIC NOT NULL,_of_sending DATE,_on_shipping INTEGER,_ID NUMERIC NOT NULL,_of_shipping VARCHAR(30),_of_shipping DOUBLE PRECISION,KEY (Account_ID),

(Buyer_ID) REFERENCES Buyers (Buyer_ID),

(Employee_ID) REFERENCES Shop_Staff (Employee_ID)

);

TABLE Reteil

(_ID NUMERIC NOT NULL,_ID NUMERIC NOT NULL,_count INTEGER,INTEGER,_ID NUMERIC NOT NULL,_of_reteil DATE,KEY (Reteil_ID),

(Account_ID) REFERENCES Accounts (Account_ID),

(Goods_ID) REFERENCES Goods (Goods_ID)

2.6 Руководство пользователя


2.6.1 Регистрация

Незарегистрированные пользователи имеют доступ к функции регистрации и поиска товара.

Для регистрации нового пользователя, пройдите по ссылке «Регистрация» и заполните все поля, затем нажмите на кнопку «Зарегистрироваться» - рис. 2.8.1В случае успешной регистрации, Вы сможете войти на сайт под своим логином и паролем.


Рисунок 2.8.1 Регистрация нового пользователя.


Заключение


В данном курсовом проекте была создана база данных «On-line магазин», которая содержит информацию о работе интернет-магазина. В ходе выполнения данного курсового проекта были выполнены все пункты задания для курсового проекта:

анализ предметной области;

выделение сущностей и атрибутов;

установление связей между сущностями;

проектирование логического и физического уровней, используя CASE-средство ERwin;

реализация базы данных в СУБД PostgreSQL;

организация бизнес-логики посредством представлений, хранимых процедур, триггеров, а также заполнение и тестирование БД.

создание клиентского приложения, работающего с базой данных.

В ходе проектирования и реализации БД были получены знания об основах работы с СУБД PostgreSQL, написании подпрограмм на языке plpgSQL, получен практический опыт самостоятельного проектирования и реализации баз данных в архитектуре «клиент-сервер» на языке высокого уровня Java.

Список использованной литературы

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

1.Базы данных: модели, разработка, реализация / Т.С. Карпова. - СПб.: Питер. 2010. - 304 с.

.Борри Х. Firebird: руководство разработчика баз данных: Пер. с англ. - СПб.: БХВ-Петербург, 2006. - 1104 с.

.Гарсиа-Молина, Гектор, Ульман, Джеффри, Д., Дженнифер Системы баз данных. Полный курс.: Пер. с англ.- М.: Издательский дом «Вильямс», 2009. - 1088 с.

.Голицына О.Л., Максимов Н.В., Попов Н.И. «Базы данных», Москва 2008 год;

.Гринченко Н.Н., Гусев Е.В., Макаров Н.П., и др. «Проектирование баз данных СУБД Microsoft Access» 2009 год;

.Джеффри П. Мак - Манус. «Обработка Баз Данных на Visual Basic 6» Москва 2010 год;

.Дорофеев, A.С. Методические указания к выполнению курсового проекта по дисциплинам базы данных, управление данными: учебное пособие / А.С. Дорофеев. - Иркутск: Издательство Иркутского государственного технического университета, 2010 г.

8.Карпова Т.А. - Базы данных: модели, разработка, реализация. Уч. пособие - СПб: Питер,2009.

9.Кузин А.В., Демин В.М. «Разработка баз данных в системе Microsoft Access», 2007 год;

.Семакин И., Залогова Л., Русаков С., и др. «Информатика. Базовый курс», Москва 2010 год;

.Томас Коннолли, Королин Бегг, Анна Строган «Базы данных»; Москва 2011 год.

.Трипутина, В.В. Проектирование баз данных с помощью Case-средства ErWin. Методические указания к выполнению лабораторных работ: учебное пособие / В.В. Трипутина. - Иркутск: Издательство Иркутского государственного технического университета.

.Кренке, Д. Теория и практика построения баз данных / Д. Кренке. - СПб: ПИТЕР, 2009 г.

14.Википедия - Свободная энциклопедия [электронный ресурс]. - Режим доступа: <ru.wikipedia.org>

15.Энциклопедия SQL. 3-е изд. / Дж. Грофф. П.Вайнберг. - СПб.: Питер. 2011. - 896 с.



Похожие материалы:

Особенности социально-экономического и политического развития России вторая половина ХVI-ХVII в.)

Мощный импульс развитию промышленности был дан в результате экономической политики Петра. Достаточно сказать что за первую четверть. Подавление всех этих волнений и восстаний сохранение феодального строя потребовало консолидации. Во Франции и Англии буржуазия действительно достаточно рано оформилась как особый класс и заявила о своих претензиях на участие во власти. Но следует иметь в. Экономические и социальные условия для формирования.

Позвоночник - столб жизни

Древние восточные целители считали что позвоночник это вместилище жизненно важных энергий человека. Чтобы оценить правоту этого. Наиболее существенные нагрузки приходятся на позвонки нижних отделов. Так самый нижний позвонок. А на иллюстрации показан разрез шейного позвонка с кровеносными сосудами красные и синие и спинным мозгом. Костный шиловидный отросток обеспечивает. Остеохондроз возникающий в результате изнашивания.

Методики исследования агрессивности

Ag Dir P Af Com Dep Rag Тест компактен удобен в применении длительность процедуры около минут. Хорошо показывает различные. Используется для диагностики поведения во фрустрирующей ситуации в том числе и агрессивного. Настоящая методика впервые описана в г. С. Розенцвейгом под. IV. Методика диагностики уровня социальной фрустрированности Л.И. Вассермана. Модификация В.В. Бойко. Методологическим обоснованием теста руки является.

Пособие на ребенка

Тема Рогачевой Екатерины Дмитриевны. Единовременное пособие при рождении ребенка. Пособие по уходу за ребенком в возрасте до полутора лет. Ежемесячное пособие на ребенка условия назначения. Ежемесячное пособие на период отпуска по уходу за ребенком до достижения им возраста полутора лет выплачивается за счет средств Фонда социального страхования. Контрольная работа

Мониторинг готовности региональной системы образования к реализации современной казахстанской модели образования

Почему возникла необходимость в этой программе В области многое уже делается по реализации новых методологии ценностей целей содержания стратегических. Цели развития региональной системы образования в годах. Руководители подразделений института Карагандинского института повышения квалификации и.