Математические основы баз данных
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
?а была отправлена на прилавки магазиновКоличество дисков на складеХранимое на складе количество копий данной игрыОписаниеКраткое описание сюжета и возможностей игрыПроцент надбавки на цену покупки у поставщика для получения прибылиПроцент надбавки, который суммируется с ценой последней поставки данной игрыЦена последней поставкиЦена последней поставкиПартии товараСодержит информацию о поступивших партиях товаровНомер партии (РК)Номер партии (первичный ключ)Количество товара в партииКоличество товара в пришедшей на склад партииЦена поставки партииЦена поставки данной партии товараДата поставки партииДата поставки данной партии товараНазвание игры (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 характерно то, что все объекты базы данных, долж