Реляционная база данных состоит из отношений, структура которых определяется с помощью особых методов, называемых нормализацией.
Эти отношения обладают следующими характеристиками:
отношение имеет имя, которое отличается от имен всех других отношений в реляционной схеме;
каждая ячейка отношения содержит только одно элементарное (неделимое) значение;
каждый атрибут имеет уникальное имя;
значения атрибута берутся из одного и того же домена;
каждый кортеж является уникальным, т.е. дубликатов кортежей быть не может;
порядок следования атрибутов не имеет значения;
теоретически порядок следования кортежей в отношении не имеет значения; (Но практически этот порядок может существенно повлиять на эффективность доступа к ним)
набор возможных значений для данной позиции отношения определяется множеством, или доменом, на котором определяется эта позиция. В таблице все значения в каждом столбце должны происходить от одного и того же домена, определенного для данного атрибута;
во множестве нет повторяющихся элементов. Аналогично, отношение не может содержать кортежей-дубликатов;
поскольку отношение является множеством, то порядок элементов не имеет значения. Следовательно, порядок кортежей в отношении несуществен.
Реляционная база данных может состоять из произвольного количества нормализованных отношений. Общепринятое обозначение реляционной схемы включает имя отношения, за которым (в скобках) располагаются имена атрибутов. При этом первичный ключ (обычно) подчеркивается.
Достоинствами реляционной модели данных являются простота, гибкость структуры, удобство реализации на компьютере, высокая стандартизация и использование математического аппарата реляционной алгебры и реляционного исчисления.
К недостаткам можно отнести атомарность, ограниченность и предопределенность набора возможных типов данных. Это затрудняет использование реляционных моделей для некоторых современных приложений. Названная проблема решается расширением реляционных моделей в объектно-реляционные.
В объектно-реляционноймодели отдельные записи база данных представляются в виде объектов. Между записями базы данных и функциями их обработки устанавливаются взаимосвязи с помощью механизмов, подобных соответствующим средствам в объектно-ориентированных языках программирования. Объектно-ориентированные модели сочетают особенности сетевой и реляционной моделей и используются для создания крупных БД со сложными структурами данных.
В реляционной модели все данные представляются как факты о сущностях и связях, это и понимают под основными свойствами. Сущность - это, например, человек, место, вещь, событие, концепция, о которых хранится информация. Сущности именуются обычно существительными, такими как "покупатель", "компьютер", "служащий", "продажа".
Более точно, сущность - это множество индивидуальных объектов - экземпляров, причем все эти объекты являются различными.
Связь - это функциональная зависимость между сущностями. Например, "служащий" совершает "продажи".
Каждая сущность обладает атрибутами. Атрибут - это свойство объекта, характеризующее его экземпляр. Сущность "служащий" может иметь атрибуты "имя", "дата рождения" и т.д.
Общепринятым видом графического изображения реляционной модели данных является ER - диаграмма. На такой диаграмме сущности (таблицы) изображаются прямоугольниками, возможно, соединенными между собой линиями (связями). Такое графическое представление облегчает восприятие структуры базы данных по сравнению с текстовым описанием.
Различают целостность по сущностям и целостность по ссылкам. В целостности по сущностям не разрешается, чтобы какой-либо атрибут, участвующий в первичном ключе базового отношения принимал неопределенные значения.
Базовые отношения - это реально существующие модели отношения, которые соответствуют реальному объекту предметной области.
Целостность по ссылкам основана на понятии внешнего ключа.
Пусть даны отношения R1 и R2. Пусть k1, - это первичный ключ отношения R1.
Если в отношении R2 присутствуют атрибуты k1, то для отношения R2, k1 - это внешний ключ. Если базовое отношение R2 содержит внешний ключ k1, то каждое значение k1 в R2 должно быть либо равным какому-либо значению R1, либо полностью неопределенным.
Достоинствами реляционного подхода являются:
1) наличие простого, и в тоже время мощного математического аппарата
2) возможность навигационного манипулирования данными без знания физических основ хранения данных.
Чтобы база данных была надежной, необходимо чтобы существовала нормализация. Существуют три нормальных формы.
Итак, условия первой нормальной формы:
Определить требуемые элементы данных, потому что они становятся столбцами в таблице. Поместить связанные элементы данных в таблицу.
Гарантировать отсутствие повторяющихся групп данных.
Гарантировать наличие первичного ключа.
Значение всех атрибутов атомарны
Информационная система находится в первой нормальной форме.
Условия второй нормальной формы:
отношение в первой нормальной форме
независимость первичных ключей и столбцов
Информационная система находится во второй нормальной форме.
Третья нормальная форма является заключительным шагом. Существуют нормальные формы с более высокими порядковыми номерами, но они гораздо сложнее и не обязательно ведут к созданию более эффективной базы данных. В базе данных требуется выбирать компромисс между минимизации избыточности данных и эффективностью.
Условия третьей нормальной формы:
отношение во второй нормальной форме.
все поля, не входящие в первичный ключ, зависят от первичного ключа.
Информационная система находится в третьей нормальной форме.
Таким образом, нормализация отношений успешно достигнута.
После нормализации отношений было создано 7 таблиц. Проиллюстрируем эти таблицы в режиме конструктора:
Рисунок 2.2 - таблица покупки в режиме конструктора
Рисунок 2.3 - таблица города в режиме конструктора
Рисунок 2.4 - таблица клиенты в режиме конструктора
Рисунок 2.5 - таблица поставщики в режиме конструктора
Рисунок 2.6 - таблица товары в режиме конструктора
Рисунок 2.7 - таблица продажи в режиме конструктора
Рисунок 2.8 - таблица склад в режиме конструктора
Рисунок 3.1 - Главная кнопочная форма
Дизайн разработан на основе понятия о “диалоговых окнах". Существует главное окно, или так называемая “Главная форма". Открыв ее, пользователю предлагаются следующие действия:
добавить поставщика товаров;
добавить покупателя товаров;
добавить товар;
добавить города;
просмотреть запросы;
просмотреть таблицы;
просмотреть отчеты.
Существуют также связанные с ней формы, о которых говорилось выше.
Форма на добавление города:
Рисунок 3.2 - Добавление города
Форма на добавление поставщика:
Рисунок 3.3 - Добавление поставщика
Форма на покупателя:
Рисунок 3.4 - Добавление покупателя
Форма для добавления товара во множество товаров:
Рисунок 3.5 - Добавление товара
Форма на добавление покупки:
Рисунок 3.6 - Добавление сделки
Форма на добавление продажи:
Рисунок 3.7 - Добавление продажи
Форма товаров на складе:
Рисунок 3.8 - Товары на складе
Форма о программе:
Рисунок 3.9 - Форма "О программе"
Требуемая функциональность определяется удобным интерфейсом и написанием запросов, которые бы осуществляли важные действия над базой данных. Разработан ряд основных запросов, которые осуществляют такие действия:
узнать сколько покупателей в каждом городе;
узнать сколько поставщиков в каждом городе;
узнать какие клиенты не совершали покупок;
узнать какие поставщики не поставляли на склад товар;
узнать сумму всех сделок с каждым поставщиком;
узнать сумму сделок с клиентами;
узнать стоимость всех товаров на складе.
Благодаря созданию запросов, база данных оптового склада, значительно упрощает работу пользователя и делает ее более понятной.
В любой базе данных для эффективности работы создаются отчеты. Чтоб конкретно знать результаты проделанной работы за определенный период времени, надо проводить подсчеты. Но в нашем случае все намного проще, когда можно создать отчеты. Для еще более удобной работы пользователя на главной форме созданы кнопочки печати отчетов. В нашем случае эти кнопочки называются “отчет по покупкам” и “отчет по продажам". После того, пользователь составил быстро отчет, он так же с легкостью может вывести его на печать.