Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая СУБД Самборецкий 394-1.doc
Скачиваний:
2
Добавлен:
03.08.2019
Размер:
217.09 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ  РОССИЙСКОЙ ФЕДЕРАЦИИ  ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ  ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ  ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ  ТЮМЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ  Институт математики, естественных наук  и информационных технологий  Кафедра программного обеспечения 

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

по дисциплине «Базы данных и СУБД»

Разработка приложения для учета торговых операций магазина музыкальных товаров

Выполнил: студент 394-1 группы Самборецкий Станислав Сергеевич

Проверил: ст.преподаватель кафедры Программного обеспечения Ялдыгин Валерий Борисович

Тюмень 2011

Оглавление

Оглавление 2

Глава 1. Описание предметной области. Постановка задачи 3

Глава 2. Нормализация 4

Приложение. Описание таблиц 11

Глава 1. Описание предметной области. Постановка задачи

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

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

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

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

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

Глава 2. Нормализация

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

ТАБЛИЦА 1. Пример ненормализованной таблицы для данной задачи

OrdedID

InstId

InstName

InstType

Count

Cost

DiscontId

Discont

Saler

100

1

2

Fender Strat

D'Addario ProSteels

Гитара

Струны

1

5

40000

200

-

-

Иванов Иван

101

3

4

Gibson Les Paul

RotoSound BS9

Гитара

Струны

1

4

70000

300

12457

5%

Петров Петр

В данной таблице возникают следующие аномалии.

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

  • Аномалии удаления. Удаление товаров определенного типа приводит к удалению заказов.

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

Для того, чтобы устранить эти аномалии, необходимо привести отношение к Нормальной Форме Бойса-Кодда.

Первая нормальная форма (1НФ) – отношение, в котором на пересечении каждой строки и каждого столбца содержится одно и только одно значение.

Данное отношение мы можем привести к 1НФ, создав сложный первичный ключ, состоящий из столбцов Номер заказа и Номер товара. Данная пара будет уникальной при определенных заказчиком условиях.

ТАБЛИЦА 2. Отношение, соответствующее 1НФ

OrdedID

InstId

InstName

InstType

Count

Cost

DiscontId

Discont

Saler

100

1

Fender Strat

Гитара

1

40000

-

-

Иванов Иван

100

2

D'Addario ProSteels

Струны

5

200

-

-

Иванов Иван

101

3

Gibson Les Paul

Гитара

1

70000

12457

5%

Петров Петр

101

4

RotoSound BS9

Струны

4

300

12457

5%

Петров Петр

Необходимо ввести следующие определения.

Функциональная зависимость. Описывает связь между атрибутами отношения. Если в отношении R, содержащем атрибуты А и В, атрибут B функционально зависит от атрибута А, то каждое значение атрибута А связано только с одним значением атрибута B (Атрибуты A и B могут состоять из одного или нескольких атрибутов).

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

Полная функциональная зависимость. Если А и B – атрибуты отношения, то атрибут B находится в полной функциональной зависимости от атрибута А, если атрибут B является функционально зависимым от А, но не зависит ни от одного собственного подмножества атрибута A.

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

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

Sells - таблица, содержащая сложный первичный ключ из атрибутов Номер заказа и Номер товара. Атрибуты, выраженные полной функциональной зависимостью: Количество и Завершенность заказа.

ТАБЛИЦА 3. Отношение Sells, соответствующее 2НФ

OrdedID

InstId

Count

Complete

100

1

1

1

100

2

5

1

101

3

1

1

101

4

4

1

Orders - таблица с первичным ключом Номер Заказа, имеющая атрибуты: Номер дисконтной карты, Данные о Владельце Дисконтной карты, Дата Совершения Покупки, Фамилия, Имя, Модификатор Продавца, совершившего операцию.

ТАБЛИЦА 4. Отношение Orders, соответствующее 2НФ

OrdedID

DiscontId

OwnerFName

OwnerLName

Discont

Date

SalerId

100

-

-

-

-

21.11.2011

1

101

12457

Александр

Розенбаум

5%

22.11.2011

3

InstrumentsList - Таблица с первичным ключом Номер Товара, имеющая атрибуты: Наименование, Описание, Тип Товара.

ТАБЛИЦА 5. Отношение InstrumentsList, соответствующее 2НФ

InstrumentID

Name

Description

Type

1

Fender Strat

Гитара Fender Stratocaster, произведено в США

Гитара

2

D'Addario ProSteels

Сверхтонкие струны (9-42) для электрогитары

Струны

3

Gibson Les Paul

Легендарная гитара

Гитара

4

RotoSound BS9

Отличные струны от британского производителя

Струны

Транзитивная зависимость. Если для атрибутов А, B и C некоторого отношения существуют зависимости вида A→B и B→C, это означает, что атрибут C транзитивно зависит от атрибута А через атрибут B (при условии, что атрибут А функционально не зависит ни от атрибута B, ни от атрибута C). Транзитивная зависимость является одним из типов функциональной зависимости.

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

Таблицы Orders и InstrumentsList не соответствуют 3НФ. Для приведения и в соответствие, необходимо часть информации перенести в другие таблицы. Таким образом образуются следующие таблицы:

TypeList - таблица, хранящая типы музыкальных инструментов.

ТАБЛИЦА 6. Отношение TypeList, полученное при приведении InstrumentsList к 3НФ

TypeID

TypeName

1

Гитара

2

Струны

SalersList - таблица, хранящая данные о продавцах.

ТАБЛИЦА 7. Отношение SalersList, полученное при приведении Orders к 3НФ

SalerID

FirstName

LastName

Modificator

1

Иван

Иванов

0,05

2

Петр

Петров

0,07

DiscontOwners - таблица, хранящая данные о владельцах дисконтных карт. Также для приведения этой таблицы к 3НФ, необходимо создать ещё одну таблицу.

DiscontTypes - таблица со скидками.

ТАБЛИЦА 8. Отношение DiscontOwners, полученное при приведении Orders к 3НФ

DiscontID

OwnerFName

OwnerLName

SellCount

TypeID

PredDiscont

12456

Александр

Розенбаум

10

1

-

12457

Александр

Розенбаум

7

2

12456

ТАБЛИЦА 9. Отношение DiscontTypes, полученное при приведении Orders к 3НФ

TypeID

TypeName

1

0,95

2

0,93

Нормальная форма Бойса-Кодда (НФБК). Определение для 3НФ предполагает, что отношение имеет только один потенциальный ключ (а именно первичный ключ). В связи с этим было дано более строгое определение, учитывающее возможное наличие нескольких потенциальный ключей. Отношение находится в НФБК тогда и только тогда, когда каждый его детерминант является потенциальным ключом. В нашем случае во все полученные отношения соответствуют НФБК.

В итоге нормализации была получена следующая База Данных.

Рис. 1 - Диаграмма Базы данных типа «Сущность-связь» (нотация IDEF1X)