Рисунок 4 - Сетевая модель
Основными элементами данной модели являются записи и связи. На формирование связи не накладывается особых ограничений - записи-потомки могут иметь неограниченное число записей-предков.
Преимущество данной модели заключается в возможности эффективной реализации по показателям оперативности и затрат памяти.
Недостатки - высокая сложность и жесткость схемы БД. Кроме того, в сетевой модели ослаблен контроль целостности связей из-за допустимости установления произвольных отношений [1].
В данной главе были рассмотрены основные понятия теории баз данных, описаны компоненты системы БД, выделены функции системы управления базами данных, а также приведена классификация СУБД в зависимости от используемой модели данных.
Access является программой создания и редактирования БД, входящей в пакет офисных программ Microsoft Office.
MS Access объединяет сведения из различных источников в рамках одной реляционной БД. Кроме того, данная СУБД позволяет создавать формы, отчеты и запросы, что помогает эффективно обновлять данные, осуществлять поиск, получать необходимые выборки данных, печатать отчеты, диаграммы и т.п. Все компоненты БД при этом хранятся в едином файле c расширением ACCDB [3].
Основными объектами данной СУБД являются следующие:
- таблица - классическая двумерная таблица, задачей которой является хранение данных в реляционной БД. Данные хранятся в записях (строках таблицы), состоящих из отдельных полей - атрибутов (столбцов). Каждая таблица хранит информацию определенного типа в зависимости от описываемой сущности;
- запрос - средство отбора данных по какому-либо условию. При помощи запросов реализуется выбор необходимых данных из БД;
- форма - средство для упрощения ввода и редактирования данных таблиц БД;
- отчет - средство, позволяющее извлекать нужную информацию из БД, представляя ее в удобном для восприятия виде. Кроме того, данное средство автоматически генерирует документ для распечатки;
- страницы - страницы доступа к данным, представляющие собой web-страницы для работы с БД посредством сети Интернет;
- макрос - набор макрокоманд, которые создаются пользователем с целью автоматизации каких-либо операций с БД;
- модуль - объект, содержащий программы, написанные на языке Visual Basic. Данные программы обычно применяются при обработке данных;
- область со списком - список возможных режимов создания объектов [1].
Нормализация представляет собой формальный метод анализа отношений, в основе которого лежат ключи и функциональные зависимости. В теории реляционных БД существует ряд нормальных форм.
. Первая нормальная форма
Отношение находится в первой нормальной форме в том случае, если все его
атрибуты имеют атомарные значения. Это говорит о том, что каждое поле содержит
ровно одно значение. Пример приведения отношения к первой нормальной форме
приведен в таблицах 1, 2.
Таблица 1 - Ненормализованная таблица
|
Имя |
Пол |
|
{Александр, Николай} |
Мужской |
|
Елена |
Женский |
Таблица 2 - Отношение в первой нормальной форме
|
Имя |
Пол |
|
Александр |
Мужской |
|
Николай |
Мужской |
|
Елена |
Женский |
. Вторая нормальная форма
Отношение находится во второй нормальной форме, если оно находится в первой нормальной форме, и каждый атрибут функционально зависит от ключевого поля.
. Третья нормальная форма
Отношение находится в третьей нормальной форме, если оно находится во второй нормальной форме, и ни один из атрибутов не является транзитивно зависимым от ключа.
В большинстве случаев транзитивная зависимость вызвана наличием в отношении двух семантических зависимостей различных типов.
Обычно для создания БД достаточно трех описанных форм.
Этап проектирования БД предполагает определение логической структуры данных для выбранной предметной области. Логическая структура определяет состав таблиц и их взаимосвязи.
Описание предметной области БД должно охватывать реальные процессы и объекты, а также определять все необходимые источники информации для выполнения предполагаемых запросов пользователей.
Состав и структура данных определяются при помощи анализа предметной области. Структура данных может быть представлена в виде информационно-логической модели (ИЛМ). При разработке модели можно использовать два подхода:
- аналитический (процессный) - при таком подходе в первую очередь формируется список задач, решение которых должно быть реализовано в рамках БД, затем выявляются все информационные потребности, и только после этого определяются состав, структура объектов модели и связи между ними;
- интуитивный - при данном подходе сразу устанавливаются типовые информационные объекты предметной области и связи между ними.
На практике оба этих подхода сочетаются для достижения лучшего эффекта. Это обусловлено тем, что на начальном этапе в большинстве случаев разработчики не располагают исчерпывающими сведениями обо всех задачах. Кроме того, гибкие средства создания реляционной БД позволяют на любом этапе разработки вносить корректировки в структуру, не нарушая ранее введенных данных.
Этапы проектирования и создания БД Access отображены на рисунке 5.
Рисунок 5 - Этапы проектирования и создания БД
Процесс создания БД начинается с конструирования таблиц. Для поддержания условия целостности каждая таблица должна содержать ключевое поле, а также правила проверки значений полей.
Существует несколько видов ключей:
- первичный ключ - одно или несколько полей, однозначно идентифицирующих запись. Данный ключ применяется для связывания таблиц с внешними ключами в других таблицах. Первичный ключ, который содержит информационные поля таблицы и несет полезную информацию об объектах, называется естественным. Ключ, который реализован в виде дополнительного служебного поля - искусственный (суррогатный) - представляет собой числовое поле, где хранятся числа возрастающей последовательности;
- внешний ключ - одно или несколько полей, которые содержат ссылку на поля первичного ключа другой таблицы. Внешний ключ отражает способ связи таблиц.
Связи между таблицами также бывают нескольких видов:
- один к одному - каждой записи первой сущности соответствует ровно одна запись второй сущности, и наоборот;
- один ко многим - каждой записи первой сущности может соответствовать несколько записей второй сущности, но каждой записи второй сущности соответствует только одна запись первой сущности;
- многие ко многим - каждой записи первой сущности может соответствовать несколько записей второй сущности, и наоборот [18].
Следующим этапом является создание схемы данных, отображающей связи между таблицами. В схеме данных также могут быть заданы дополнительные параметры поддержания связной целостности данных.
Связная целостность данных отражает факт того, что в БД установлены связи, которые поддерживаются в процессах загрузки, добавления и удаления записей в связанных таблицах, а также при изменении значений ключевых полей. При таком подходе подчиненные таблицы не могут содержать таких записей, для которых нет связанной записи в главной таблице.
После создания схемы данных начинается этап загрузки - ввода информации в БД. В большинстве случаев для этого применяются экранные формы, выступающие в качестве пользовательского интерфейса.
Проектирование БД, в основе которого лежит построение нормализованной модели данных предметной области, позволяет легко получить логическую структуру реляционной БД, где автоматически поддерживаются непротиворечивость и целостность данных [2].
Физическую структуру данных определяет тип данных каждого поля таблицы. MS Access использует типы данных, приведенные в таблице 3.
Таблица 3 - Типы данных
|
Тип |
Описание |
|
Текстовый |
Алфавитно-цифровые знаки для представления текста. Не применим в вычислениях. Не превосходит 255 символов. |
|
Memo |
Алфавитно-цифровые знаки для представления форматированного текста длиннее 255 символов |
|
Числовой |
Числовые данные, участвующие в выражениях |
|
Дата/время |
Хранение значений даты и времени |
|
Денежный |
Хранений валютных величин |
|
Счетчик |
Уникальное числовое значение, автоматически инкрементирующееся |
|
Логический |
Поля, имеющие значения «Да» или «Нет» |
|
OLE |
Хранение OLE-объектов других приложений MS Windows |
|
Вложение |
Рисунки, изображения, бинарные файлы, файлы MS Office |
|
Гиперссылка |
Хранение гиперссылок вызова web-страниц, а также ссылок на объекты Access |
|
Мастер подстановок |
Поле, реализующее выбор значений из других таблиц, запросов или списка значений |
Кроме типа данных, также можно задать ряд свойств поля, которые отражены
в таблице 4. При помощи значений свойств полей реализуется управление
отображением данных, предотвращается ввод ошибочных значений, задаются значения
по умолчанию, ускоряются процессы сортировки и поиска, а также происходит
управление другими функциональными характеристиками и внешним видом полей [13].
Таблица 4 - Свойства полей
|
Свойство |
Назначение |
|
Размер поля |
Максимальный размер данных для текстового, числового типа, а также типа «счетчик» |
|
Формат |
Формат данных для отображения и печати |
|
Число десятичных знаков |
Число отображаемых знаков в дробной части числовых значений |
|
Новые значения |
Способ присвоения значений полю «счетчик» (последовательный инкремент или случайные числа) |
|
Маска ввода |
Отображение знаков управления вводом данных |
|
Продолжение таблицы 4 |
|
|
Подпись |
Текст по умолчанию в формах, отчетах и запросах |
|
Значение по умолчанию |
Автоматическое значение поля при добавлении новой записи |
|
Условие на значение |
Ограничения целостности, проверяемые при вводе данных |
|
Сообщение об ошибке |
Текст, отображаемый при нарушении значения правила «Условие на значение» |
|
Индексированное поле |
Ускорение доступа к данным этого поля при помощи создания и применения индекса |
В данной главе было дано описание СУБД MS Access, выделены ее основные объекты, описаны основные нормальные формы, используемые при проектировании реляционных БД. Кроме того, приводится описание этапа проектирования БД, а также физической структуры данных, реализованной в рамках рассматриваемой СУБД.
В рамках практической части разработаем БД при помощи СУБД MS Access. В качестве предметной области будем использовать рекламное агентство.
Как говорилось ранее, проектирование БД начинается с составления
логической структуры - перечня таблиц. Данный перечень отображен в таблицах
5-9.
Таблица 5 - Предоставляемые услуги
|
Поле |
Тип |
|
Идентификатор |
|
|
Наименование услуги |
Текстовый |
|
Стоимость |
Денежный |
Таблица 6 - Сотрудники агентства
|
ПолеТип |
|
|
Идентификатор |
Счетчик |
|
Ф.И.О. |
Текстовый |
|
Должность |
Текстовый |
|
Дата устройства |
Дата/время |
Таблица 7 - Кадровый состав
|
Поле |
Тип |
|
Идентификатор |
Счетчик |
|
Должность |
Текстовый |
|
Оклад |
Денежный |
Таблица 8 - Клиенты агентства
|
Поле |
Тип |
|
Идентификатор |
Счетчик |
|
Наименование |
Текстовый |
|
Адрес |
Текстовый |
|
Телефон |
Текстовый |
Таблица 9 - Сделки
|
Поле |
Тип |
|
Идентификатор |
Счетчик |
|
Сотрудник |
Текстовый |
|
Клиент |
Текстовый |
|
Услуга |
Текстовый |
|
Количество |
Числовой |
|
Дата сделки |
Дата/время |
|
Сумма сделки |
Денежный |
При разработке БД используется СУБД MS Access 2010. Для создания таблиц использован конструктор
таблиц (рисунки 6-10) [5].
Рисунок 6 - Таблица «Услуги»
Рисунок 7 - Таблица «Сотрудники»
Рисунок 8 - Таблица «Кадры»
Рисунок 9 - Таблица «Клиенты»
Рисунок 10 - Таблица «Сделки»
Для создания связей между таблицами отредактируем их в режиме конструктора.
В таблице «Сотрудники» реализуем выпадающий список имеющихся должностей. Для этого необходимо выполнить следующие действия:
- открыть соответствующую таблицу в режиме конструктора;
- полю «Должность» присвоить тип данных «Мастер подстановок»;
- в окне «Создание подстановки» выбрать получение значений из другой таблицы или запроса;
- в качестве таблицы значений подстановки выбрать таблицу «Кадры»;
- в качестве поля подстановки выбрать поле «Должность»;
- при необходимости задать сортировку.
Для отображения схемы данных полученной БД необходимо воспользоваться
вкладкой меню «Работа с базами данных» и в графе «Отношения» выбрать пункт
«Схема данных». Полученная схема данных приведена на рисунке 11 [16]: