Опубликован: 19.11.2012 | Уровень: для всех | Доступ: платный | ВУЗ: Национальный исследовательский университет "Высшая Школа Экономики"
Лекция 8:

Системы управления базами данных

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

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

База данных MS Access является реляционной базой данных и состоит из множества взаимосвязанных таблиц, которые и представляют отношения. Столбцы таблицы отражают сведения, одинаковым образом характеризующие объекты реального мира, которые моделируются с использованием данной таблицы. Для каждого свойства выделяется отдельный столбец – поле таблицы. Строки таблицы содержат информацию об экземплярах реальных объектов и называются записями.

Разработка и описание структур таблиц данных

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

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

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

После проектирования таблиц и их полей следует определить первичный ключ каждой таблицы и провести анализ предполагаемых таблиц на соответствие нормальным формам (хотя бы первым трем). Например, в базу данных задачи об оплате звонков после нормализации добавлены еще две таблицы – таблица с перечнем услуг (таблица Услуги) и таблица со стоимостью каждой услуги в рамках существующих тарифов (таблица Контакты). Это позволяет избежать дублирования информации о тарифах и услугах. Структуры таблиц показаны на схеме базы данных (рис.8.5). Первичные ключи таблиц помечены слева изображением ключа. Заметим, что поля Код абонента, Код звонка, Код тарифа и Код услуги являются полями, обеспечивающими уникальную идентификацию записей в соответствующих таблицах. В таблице Контакты определен составной ключ, который образуется комбинацией полей Код тарифа и Код услуги.

После выполненного проектирования будущих таблиц необходимо выполнить описание структур таблиц средствами СУБД. Это можно сделать в режиме конструктора. Можно использовать встроенные шаблоны таблиц или списков SharePoint, например, шаблоны "Контакты", "Задачи", "Вопросы" и "События". Если имена полей выбранного шаблона недостаточно информативны, их можно изменить. В режиме конструктора можно менять любые свойства полей, менять поля местами или добавлять новые поля. Использовать конструктор для модификации таблиц можно в любое время, даже после ввода данных в таблицу.

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

Поля могут иметь любой используемый в офисных приложениях тип данных: Счетчик, Текстовый, Числовой, Дата/время, Логический, Поле объекта OLE. Возможно использование поля комментариев (Memo). MS Access автоматически накладывает условия на значения, определяемые типом поля, например, не допускается ввод текста в числовые поля. Установка типа данных одновременно определяет набор дополнительных атрибутов соответствующего поля. В каждом поле могут храниться данные только одного типа. Изменение типа поля после ввода данных в таблицу может привести к потере данных.

Поля таблицы и их свойства

Рис. 8.4. Поля таблицы и их свойства

Если поле используется в качестве первичного ключа таблицы, то оно может иметь любой тип данных. Часто применяется тип данных Счетчик, который гарантирует, что при вводе данных в это поле автоматически попадает номер записи в возрастающей последовательности. Можно задействовать в качестве первичного ключа определенный пользователем набор полей. МЕМО-поля и поля объекта OLE не могут быть первичными ключами. Во время ввода данных в поля первичного ключа MS Access автоматически следит за тем, чтобы в поля вводились уникальные или повторяющиеся значения в соответствии с заданным свойством Индексированное поле. Ключи не только идентифицируют записи таблиц, но и используются для установки межтабличных связей.

Для увеличения скорости доступа к данным поле, не объявленное первичным ключом, может индексироваться (вторичный ключ). Пользователь может создать сколько угодно индексов. Индексы создаются при сохранении макета таблицы и автоматически обновляются при вводе и изменении записей. Пользователь может в любое время добавить новые или удалить ненужные индексы в окне конструктора таблиц. Следует иметь в виду, что индексы замедляют изменение, ввод и удаление данных, поэтому не рекомендуется создавать избыточные индексы.

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

При проектировании базы данных можно предусмотреть возможности работы с внешними данными. Это импорт данных и связь с внешними таблицами данных. В случае импорта происходит создание дубликата внешних данных во вновь создаваемой таблице. К импортируемым данным могут применяться все средства манипуляции данными, обеспечивается быстродействие при обращении к ним и независимость от исходного источника данных. Однако возникают проблемы, связанные с поддержкой актуальности и соответствия друг другу двух копий одной и той же информации. Eсли актуальность данных является критичным фактором, то необходимо использовать связь с внешними данными. В этом случае в базе данных появляется лишь ссылка на внешние источники данных, и работа с ними происходит с помощью специальных драйверов, которые традиционно входят в пакет MS Access. Это драйверы для работы с данными, созданными в форматах Paradox, Excel, dBase, FoxPRO, а также в текстовом (txt) и гипертекстовом (htm) форматах. При связывании с внешними данными естественно возникают ограничения возможностей по управлению структурой таблиц, а также зависимость от состояния внешнего источника, к которому осуществляется подключение.

Аннна Миллер
Аннна Миллер
Екатерина Дмитриева
Екатерина Дмитриева
Марина Сафонова
Марина Сафонова
Россия
Лидия Белова
Лидия Белова
Россия