ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 10.11.2023
Просмотров: 185
Скачиваний: 5
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
6.8 Размещение базы данных
Все таблицы, а также другие объекты базы данных Access — запросы, формы, отчеты, макросы и модули, построенные для этой базы, и внедренные
61 объекты могут размещаться на диске в одном файле формата ACCDB. Это упрощает технологию ведения базы данных и приложения пользователя.
Обеспечивается высокая компактность размещения всех объектов базы дан- ных на диске и эффективность обработки данных.
Когда база данных открыта, для корректного внесения изменений тре- буются блокировки данных разных уровней. Контроль над ними осуществля- ется с помощью файла блокировки. Если в MS Access 2010 открыт mdb-файл, для контроля блокирования создается файл с расширением ldb и тем же име- нем, что у mdb-файла. Для файлов в формате ACCDB блокирование управля- ется файлом с расширением laccdb. Как ldb-файлы, так и laccdb-файлы унич- тожаются автоматически, когда база данных будет закрыта всеми пользова- телями.
Введение отдельных блокирующих файлов для файлов Access 2010 и файлов, созданных в более ранних версиях Access, обеспечивает одновре- менное открытие в Access 2010 файлов mdb и accdb с одинаковым именем, и это не приведет к возникновению конфликтов в блокирующем файле, по- скольку будут созданы два разных блокирующих файла. Также можно от- крывать один и тот же файл mdb в Access 2010 и в более ранней версии
Access одновременно, обе версии используют один и тот же блокирующий файл ldb.
База данных Access 2010 может быть превращена в базу данных, дос- тупную только для выполнения, не доступную для изменений и скрывающую свой код. Для этого она должна быть скомпилирована и сохранена в файле формата ACCDE, заменившем файлы с расширением mdb предыдущих вер- сий. В процессе преобразования из базы данных удаляется весь исходный текст программ на VBA, база сжимается, что значительно сокращает размер файла. В базе данных формата ACCDE код VBA может только выполняться, но просматривать и изменять его нельзя. При этом у пользователей нет раз- решений на изменение структуры форм, отчетов или модулей. Для преобра- зования файла базы данных ACCDB в формат ACCDE на вкладке Файл (File) нажмите кнопку Сохранить и опубликовать (Save & Publish) и выберите в списке Сохранить базу данных как(Save Database As) пункт Создать
ACCDE(Make ACCDE) и в окне Сохранить как(Save As) нажмите кнопку
Сохранить(Save).
Проекты Access, являясь клиентскими приложениями пользователя, позволяют подключаться к базам данных SQL Server, размещенным на ва- шем компьютере или в сети. Проект размещается в adp-файле на компьютере пользователя. В проекте пользователь может создавать базу данных на сер- вере SQL или использовать существующую. Файл проекта, как и файл базы данных Access, может быть преобразован в исполняемый файл, который приобретет расширение ade.
Начиная с Access 2007 появилось новое расширение файлов — accdr, позволяющее открывать базу данных в режиме выполнения. С помощью
62 простой замены расширения файла базы данных с accdb на accdr можно соз- дать исполняемую версию базы данных Access 2007, закрытую для измене- ний. Чтобы восстановить полную функциональность, можно просто вернуть файлу старое расширение — accdb.
7 СОЗДНИЕ БАЗЫ ДАННЫХ В СУБД MS ACCESS 2010
7.1 Начало работы с Access. Интерфейс пользователя
Сразу после запуска Access отображается новый компонент пользова- тельского интерфейса Access 2010 — представление Backstage с открытой вкладкой Файл (File) (рис. 32). Представление Backstage — это место, где можно управлять файлами. В момент открытия здесь доступны команды
Создать (New), Открыть (Open), Параметры (Options). Доступен список недавно использованных последних баз данных, который позволяет быстро выполнить открытие одной из них. Всплывающая подсказка каждой пред- ставленной в списке последних баз данных отображает местоположение ее файла — полный путь к нему. Представлены многочисленные шаблоны для создания различных типовых баз данных. Для открытой базы данных при выборе вкладки Файл (File) отображается представление Backstage с коман- дами, применимыми ко всей базе данных, такими как Сохранить и опубли-
ковать (Save& Publish), Сжать и восстановить (Compact & Repair, Зашиф-
ровать паролем (Encrypt with Password).
Рисунок 32 – Окно представленияBackstage
63
На странице представления можно перейти к настройке основных па- раметров Access, параметров текущей базы данных, безопасности докумен- тов и компьютера, открыть справку. Кнопка Выход (Exit Access) обеспечива- ет закрытие Access.
В Access 2010 используется интерфейс пользователя, который упроща- ет доступ к многочисленным функциональным возможностям в процессе создания и работы с объектами базы данных и приложения пользователя.
Главный элемент пользовательского интерфейса MS Access 2010 пред- ставляет собой Ленту, которая идет вдоль верхней части окна каждого при- ложения (рис. 33). Лента управления содержит вкладки. По умолчанию их пять: Файл, Главная, Создание, Внешние данные, Работа с базами дан-
ных. Каждая вкладка связана с видом выполняемого действия.
Рисунок 33 – Элементы интерфейса MS Access 2010
Панель быстрого доступа. Расположена в верхней части окна Access.
По умолчанию на панели быстрого доступа расположены четыре кнопки управления.
Область навигации, расположенная по левому краю окна Access. Она предназначена для отображения объектов или групп объектов открытой базы данных, а также для перехода от объекта к объекту. Чтобы раскрыть группу объектов следует щелкнуть мышкой по кнопке. Управлять объектами можно командами ленты и командами контекстного меню.
Коллекция
Коллекция — это элемент интерфейса, который отображает группу ко-
64 манд, показывая результат выполнения каждой из них. Смысл состоит в том, чтобы предоставить пользователю возможность по внешнему виду найти и выбрать нужные действия в Access 2010, сосредоточившись на результате, а не на поиске команды.
Коллекции различаются по форме и размерам. Примеры коллекций можно видеть на вкладках конструктора форм и отчетов. На рис. 34 приведе- на коллекция кнопки Темы.
Дополнительную более тонкую настройку внешнего вида формы или отчета можно выполнить, воспользовавшись командами вкладок Формат и
Упорядочить.
Рисунок 34 –Пример коллекции на вкладке конструктора при работе с ма- кетом формы или отчета
Диалоговые окна
Диалоговые окна выводятся при выполнении некоторых команд для уточнения операции и передачи параметров. При открытом диалоговом окне нельзя перейти к выполнению других действий в данном приложении. Диало- говое окно имеет постоянные размеры, но может быть перемещено в другое место.
В некоторых группах вкладок ленты имеются маленькие значки — кнопки вызова диалоговых окон. Нажатие такой кнопки открывает соответ- ствующее диалоговое окно или область задач, предоставляя дополнительные возможности, относящиеся к этой группе.
Пример диалогового окна Формат таблицы для выбора дополнитель- ных параметров форматирования открытой таблицы базы данных на вкладке
Главная приведен на рис. 35.
65
Рисунок 35 –Диалоговое окно Формат таблицы
Пример области задач для отображения содержимого буфера обмена, открывающейся кнопкой в группе Буфер обмена на вкладке Главная, при- веден на рис. 36.
Рисунок 36 –Область задач внутреннего обмена
Контекстное меню
66
Access практический каждый элемент объекта в любом режиме снаб- жает динамическим контекстным меню, вызываемым правой кнопкой мыши и содержащим набор команд, применимых в данной ситуации. Эти меню включают большое число команд, не доступных в других элементах интер- фейса Access. Например, команды открытия существующего объекта (табли- цы, формы, отчета) в режиме конструктора, режиме таблицы или макета представлены только в контекстном меню этого объекта, выбранного в об- ласти навигации, которая представляет все объекты базы данных.
7.2 Основные этапы разработки базы данных в среде MS Access
Процесс разработки конкретного программного приложения в среде
Access в первую очередь определяется спецификой автоматизируемой пред- метной области. Однако для большинства из них можно выделить ряд типич- ных этапов:
разработка и описание структур таблиц данных;
разработка схемы данных и задание системы взаимосвязей между таблицами;
разработка системы запросов к таблицам базы данных и (при необ- ходимости их интеграция в схему данных;
разработка экранных форм ввода/вывода данных;
разработка системы отчетов по данным;
разработка программных расширений для базы данных, решающих специфические задачи по обработке содержащейся в ней информа- ции, с помощью иструментария макросов и модулей;
разработка системы защиты данных, прав и ограничений по доступу.
7.2.1 Описание предметной области
Пусть на рынке (в некоторой торговой системе) циркулирует опреде- ленный набор ценных бумаг (акций), каждая из которых характеризуется на- именованием, номинальной ценой, суммарным объемом пакета (то есть сколь- ко всего единиц данной бумаги был эмитировано), датой эмиссии. Одновре- менно на рынке действуют его субъекты (агенты), которые могут продавать и покупать бумаги. Очевидно, что каждый агент характеризуется, по меньшей мере, наименованием и величиной средств, которыми он обладает. Таким об- разом, достаточно естественно выкристаллизовываются четыре массива ин- формации (четыре сущности): данные по бумагам, данные по агентам (рынка), данные по принадлежности бумаг агентам (по портфелям) и, наконец, данные по заявкам агентов на покупку или продажу тех или иных бумаг.
Теперь попытаемся описать структуры потоков информации, которые фигурируют в автоматизируемой предметной области, на более логически строгом уровне.
Массив (таблица) данных по существующим активам (присвоим ей имя
67
Бумаги) будет содержать колонки (поля):
Код бумаги;
Наименование бумаги;
Номинальная цена;
Суммарный объем пакета;
Дата эмиссии;
Тип бумаги (например, акция или облигация).
Соответственно, таблица Агенты будет состоять из колонок:
Код агента;
Наименование агента;
Объем денежных средств, которыми обладает агент;
Комментарий по агенту.
Заметим, что поля Код бумаги и Код агента являются ключами, обеспе- чивающими уникальную идентификацию записей в соответствующих табли- цах.
Для хранения информации о содержании портфелей ценных бумаг, ко- торыми владеют агенты, создадим таблицу Портфели со структурой:
Код бумаги;
Код агента;
Количество бумаг данного наименования в портфеле, которым об- ладает данный агент.
В таблице Портфели мы сталкиваемся с составным ключом, который образует комбинация полей Код бумаги и Код агента. Наконец, информацию о намерениях тех или иных агентов продать те или иные бумаги поместим в таблицу Заявки:
Код заявки;
Код бумаги;
Код агента;
Объем заявки (в единицах измерения, соответствующих бумагам данного наименования);
Цена заявки.
Отметим, что экономическое содержание, вкладываемое в величину, содержащуюся в поле Объем заявки, может иметь различные интерпретации.
Например, можно считать, что если это значение положительно, то это заявка на покупку, а если отрицательно, то – на продажу. Очевидно, что возможны и альтернативные решения по организации данной таблицы. Например, можно было бы создать два отдельных поля: Объем заявки на покупку и Объем заяв-
ки на продажу. Дополнительно хочется обратить внимание на те резоны, в соответствии с которыми в качестве ключа использовано отдельное поле Код
заявки. Это позволяет одновременно хранить в таблице разные предложения по одной и той же бумаге, поступающие от одного и того же агента.
68
7.2.2 Создание таблиц
Процесс разработки базы данных в СУБД MS Access начинается с за- дания описания структур таблиц. Рассмотрим этот процесс более подробно для таблиц примера, описанного в подразделе 6.3.1.
Итак, для начала нам необходимо создать описание таблицы Бумаги.
Нажав кнопку Создать и выбрав в появившемся вслед диалоговом окне ре- жим Конструктор, мы попадаем в окно, предназначенное для ввода описа- ния структуры создаваемой таблицы. Оно изображено на рис. 37.
Рисунок37 – Создание описания структуры таблицы Бумаги
Как видно из рисунка 37, процесс описания атрибутов поля начинается с присвоения ему имени (идентификатора). Желательно, чтобы это имя было, с одной стороны, информативным, а с другой – кратким, что обеспечивает несомненные удобства при дальнейших манипуляциях с ним. Далее необхо- димо определить тип поля, что, очевидно, должно делаться, исходя из содер- жания тех данных, которые будут в нем храниться.
Обратим внимание на тип Счетчик, присвоенный полю КодБум (код бумаги). Он означает, что СУБД будет самостоятельно помещать в это поле некоторое числовое значение для каждой вновь создаваемой записи таблицы, обеспечивая таким образом его уникальность.
Выбор типа данных в Access одновременно определяет набор дополни- тельных атрибутов соответствующего поля. В частности, поле ДатаЭм (дата эмиссии) имеет тип Дата и, как это показано на рис. 37, может иметь допол- нительные атрибуты:
69
формат поля, определяющий условия вывода данных из этого поля
(по умолчанию);
маска ввода, определяющая условия ввода данных в поле;
подпись – содержит расширенный заголовок;
значение по умолчанию - позволяет указать значение, автоматиче- ски присваиваемое полю при создании новой записи. В нашем слу- чае по умолчанию будет задаваться текущая дата, возвращаемая встроенной функцией Date();
условие на значение – определяет требования к данным, вводимым в поле. Например, для выполнения требования, чтобы дата эмиссии предшествовала текущей, следует задать выражение <=Date();
сообщение об ошибке – определяет текст сообщения, которое бу- дет выводиться в случае нарушения заданного выше условия;
обязательное поле – указывает, требует или нет поле обязательного ввода значения;
индексированное поле – определяет индекс, создаваемый по дан- ному полю. Индекс ускоряет выполнение запросов, в которых ис- пользуются индексированные поля, и операции сортировки и груп- пировки.
Основываясь на опыте проектирования различных баз, необходимо за- метить, что не следует пренебрегать возможностями управления данными, которые открывают дополнительные атрибуты полей. Их грамотное и про- думанное использование позволяет организовать централизованный и эф- фективный контроль за корректностью и целостностью данных.
На завершающем этапе процесса проектирования структуры таблицы происходит задание ключей и индексов. В первом случае достаточно выде- лить строки, которые должны составить ключевое выражение, и щелкнуть мышью по кнопке Ключевое поле на вкладке Конструктор (рис. 38). В таб- лице Бумаги роль уникального ключевого идентификатора выполняет поле
КодБум.
Рисунок 38 – Вкладка Конструктор на ленте
Также при создании таблицы имеет смысл заранее продумать возмож- ные упорядочения, которые могут понадобиться при работе с содержащими- ся в ней данными. Задание индексов с соответствующими ключевыми выра- жениями может в дальнейшем существенно ускорить процесс работы (осо- бенно с большими массивами данных). В частности, при работе с данными из
70 таблицы Бумаги весьма вероятно, что нам придется выводить их в алфавит- ном порядке по названиям, а также отсортированными в порядке убывания дат. Процесс задания соответствующих индексов показан на рис. 39.
Рисунок 39 – Создание индексов для таблицы
Эффективным методом решения задач контроля корректности входных данных является ограничение множества допустимых значений поля некото- рым списком. Рассмотрим это более подробно на примере поля ТипБум (тип бумаги), которая, допустим, в рассматриваемой торговой системе может быть либо акцией, либо облигацией. Нетрудно заметить, что будет разумным присвоить типу Акция код 1, а типу Облигация – код 2. Это позволит сущест- венно сэкономить место за счет уменьшения объема хранимой информации
(особенно при большом количестве записей). Однако с точки зрения воспри- ятия вводимой информации пользователем гораздо удобнее иметь дело с ос- мысленным текстом, чем запоминать, какие коды ему соответствуют.
Средством решения этой проблемы в Access является задание подста- новочного списка значений для поля. Для этого следует выбрать вкладку
Подстановка в окне Свойства поля, далее для свойства Тип элемента управления задать значение Список. На рис. 40 показано, как описать другие свойства элемента управления Список, чтобы организовать заполнение поля
ТипБум требуемыми значениями.
После создания описания структуры таблицы можно перейти в режим непосредственного ввода в нее данных. Как уже говорилось, важным пре- имуществом интерфейса СУБД Access является продуманная гибкая система перехода от режима Конструктора к режиму ввода данных в таблицу (Ре-
жим таблицы). Такой переход можно осуществить, щелкнув мышью по пик- тограмме Вид, расположенной на панели инструментов, либо выбрав функ- цию меню Вид> Режим таблицы.
Все таблицы, а также другие объекты базы данных Access — запросы, формы, отчеты, макросы и модули, построенные для этой базы, и внедренные
61 объекты могут размещаться на диске в одном файле формата ACCDB. Это упрощает технологию ведения базы данных и приложения пользователя.
Обеспечивается высокая компактность размещения всех объектов базы дан- ных на диске и эффективность обработки данных.
Когда база данных открыта, для корректного внесения изменений тре- буются блокировки данных разных уровней. Контроль над ними осуществля- ется с помощью файла блокировки. Если в MS Access 2010 открыт mdb-файл, для контроля блокирования создается файл с расширением ldb и тем же име- нем, что у mdb-файла. Для файлов в формате ACCDB блокирование управля- ется файлом с расширением laccdb. Как ldb-файлы, так и laccdb-файлы унич- тожаются автоматически, когда база данных будет закрыта всеми пользова- телями.
Введение отдельных блокирующих файлов для файлов Access 2010 и файлов, созданных в более ранних версиях Access, обеспечивает одновре- менное открытие в Access 2010 файлов mdb и accdb с одинаковым именем, и это не приведет к возникновению конфликтов в блокирующем файле, по- скольку будут созданы два разных блокирующих файла. Также можно от- крывать один и тот же файл mdb в Access 2010 и в более ранней версии
Access одновременно, обе версии используют один и тот же блокирующий файл ldb.
База данных Access 2010 может быть превращена в базу данных, дос- тупную только для выполнения, не доступную для изменений и скрывающую свой код. Для этого она должна быть скомпилирована и сохранена в файле формата ACCDE, заменившем файлы с расширением mdb предыдущих вер- сий. В процессе преобразования из базы данных удаляется весь исходный текст программ на VBA, база сжимается, что значительно сокращает размер файла. В базе данных формата ACCDE код VBA может только выполняться, но просматривать и изменять его нельзя. При этом у пользователей нет раз- решений на изменение структуры форм, отчетов или модулей. Для преобра- зования файла базы данных ACCDB в формат ACCDE на вкладке Файл (File) нажмите кнопку Сохранить и опубликовать (Save & Publish) и выберите в списке Сохранить базу данных как(Save Database As) пункт Создать
ACCDE(Make ACCDE) и в окне Сохранить как(Save As) нажмите кнопку
Сохранить(Save).
Проекты Access, являясь клиентскими приложениями пользователя, позволяют подключаться к базам данных SQL Server, размещенным на ва- шем компьютере или в сети. Проект размещается в adp-файле на компьютере пользователя. В проекте пользователь может создавать базу данных на сер- вере SQL или использовать существующую. Файл проекта, как и файл базы данных Access, может быть преобразован в исполняемый файл, который приобретет расширение ade.
Начиная с Access 2007 появилось новое расширение файлов — accdr, позволяющее открывать базу данных в режиме выполнения. С помощью
62 простой замены расширения файла базы данных с accdb на accdr можно соз- дать исполняемую версию базы данных Access 2007, закрытую для измене- ний. Чтобы восстановить полную функциональность, можно просто вернуть файлу старое расширение — accdb.
7 СОЗДНИЕ БАЗЫ ДАННЫХ В СУБД MS ACCESS 2010
7.1 Начало работы с Access. Интерфейс пользователя
Сразу после запуска Access отображается новый компонент пользова- тельского интерфейса Access 2010 — представление Backstage с открытой вкладкой Файл (File) (рис. 32). Представление Backstage — это место, где можно управлять файлами. В момент открытия здесь доступны команды
Создать (New), Открыть (Open), Параметры (Options). Доступен список недавно использованных последних баз данных, который позволяет быстро выполнить открытие одной из них. Всплывающая подсказка каждой пред- ставленной в списке последних баз данных отображает местоположение ее файла — полный путь к нему. Представлены многочисленные шаблоны для создания различных типовых баз данных. Для открытой базы данных при выборе вкладки Файл (File) отображается представление Backstage с коман- дами, применимыми ко всей базе данных, такими как Сохранить и опубли-
ковать (Save& Publish), Сжать и восстановить (Compact & Repair, Зашиф-
ровать паролем (Encrypt with Password).
Рисунок 32 – Окно представленияBackstage
63
На странице представления можно перейти к настройке основных па- раметров Access, параметров текущей базы данных, безопасности докумен- тов и компьютера, открыть справку. Кнопка Выход (Exit Access) обеспечива- ет закрытие Access.
В Access 2010 используется интерфейс пользователя, который упроща- ет доступ к многочисленным функциональным возможностям в процессе создания и работы с объектами базы данных и приложения пользователя.
Главный элемент пользовательского интерфейса MS Access 2010 пред- ставляет собой Ленту, которая идет вдоль верхней части окна каждого при- ложения (рис. 33). Лента управления содержит вкладки. По умолчанию их пять: Файл, Главная, Создание, Внешние данные, Работа с базами дан-
ных. Каждая вкладка связана с видом выполняемого действия.
Рисунок 33 – Элементы интерфейса MS Access 2010
Панель быстрого доступа. Расположена в верхней части окна Access.
По умолчанию на панели быстрого доступа расположены четыре кнопки управления.
Область навигации, расположенная по левому краю окна Access. Она предназначена для отображения объектов или групп объектов открытой базы данных, а также для перехода от объекта к объекту. Чтобы раскрыть группу объектов следует щелкнуть мышкой по кнопке. Управлять объектами можно командами ленты и командами контекстного меню.
Коллекция
Коллекция — это элемент интерфейса, который отображает группу ко-
64 манд, показывая результат выполнения каждой из них. Смысл состоит в том, чтобы предоставить пользователю возможность по внешнему виду найти и выбрать нужные действия в Access 2010, сосредоточившись на результате, а не на поиске команды.
Коллекции различаются по форме и размерам. Примеры коллекций можно видеть на вкладках конструктора форм и отчетов. На рис. 34 приведе- на коллекция кнопки Темы.
Дополнительную более тонкую настройку внешнего вида формы или отчета можно выполнить, воспользовавшись командами вкладок Формат и
Упорядочить.
Рисунок 34 –Пример коллекции на вкладке конструктора при работе с ма- кетом формы или отчета
Диалоговые окна
Диалоговые окна выводятся при выполнении некоторых команд для уточнения операции и передачи параметров. При открытом диалоговом окне нельзя перейти к выполнению других действий в данном приложении. Диало- говое окно имеет постоянные размеры, но может быть перемещено в другое место.
В некоторых группах вкладок ленты имеются маленькие значки — кнопки вызова диалоговых окон. Нажатие такой кнопки открывает соответ- ствующее диалоговое окно или область задач, предоставляя дополнительные возможности, относящиеся к этой группе.
Пример диалогового окна Формат таблицы для выбора дополнитель- ных параметров форматирования открытой таблицы базы данных на вкладке
Главная приведен на рис. 35.
65
Рисунок 35 –Диалоговое окно Формат таблицы
Пример области задач для отображения содержимого буфера обмена, открывающейся кнопкой в группе Буфер обмена на вкладке Главная, при- веден на рис. 36.
Рисунок 36 –Область задач внутреннего обмена
Контекстное меню
66
Access практический каждый элемент объекта в любом режиме снаб- жает динамическим контекстным меню, вызываемым правой кнопкой мыши и содержащим набор команд, применимых в данной ситуации. Эти меню включают большое число команд, не доступных в других элементах интер- фейса Access. Например, команды открытия существующего объекта (табли- цы, формы, отчета) в режиме конструктора, режиме таблицы или макета представлены только в контекстном меню этого объекта, выбранного в об- ласти навигации, которая представляет все объекты базы данных.
7.2 Основные этапы разработки базы данных в среде MS Access
Процесс разработки конкретного программного приложения в среде
Access в первую очередь определяется спецификой автоматизируемой пред- метной области. Однако для большинства из них можно выделить ряд типич- ных этапов:
разработка и описание структур таблиц данных;
разработка схемы данных и задание системы взаимосвязей между таблицами;
разработка системы запросов к таблицам базы данных и (при необ- ходимости их интеграция в схему данных;
разработка экранных форм ввода/вывода данных;
разработка системы отчетов по данным;
разработка программных расширений для базы данных, решающих специфические задачи по обработке содержащейся в ней информа- ции, с помощью иструментария макросов и модулей;
разработка системы защиты данных, прав и ограничений по доступу.
7.2.1 Описание предметной области
Пусть на рынке (в некоторой торговой системе) циркулирует опреде- ленный набор ценных бумаг (акций), каждая из которых характеризуется на- именованием, номинальной ценой, суммарным объемом пакета (то есть сколь- ко всего единиц данной бумаги был эмитировано), датой эмиссии. Одновре- менно на рынке действуют его субъекты (агенты), которые могут продавать и покупать бумаги. Очевидно, что каждый агент характеризуется, по меньшей мере, наименованием и величиной средств, которыми он обладает. Таким об- разом, достаточно естественно выкристаллизовываются четыре массива ин- формации (четыре сущности): данные по бумагам, данные по агентам (рынка), данные по принадлежности бумаг агентам (по портфелям) и, наконец, данные по заявкам агентов на покупку или продажу тех или иных бумаг.
Теперь попытаемся описать структуры потоков информации, которые фигурируют в автоматизируемой предметной области, на более логически строгом уровне.
Массив (таблица) данных по существующим активам (присвоим ей имя
67
Бумаги) будет содержать колонки (поля):
Код бумаги;
Наименование бумаги;
Номинальная цена;
Суммарный объем пакета;
Дата эмиссии;
Тип бумаги (например, акция или облигация).
Соответственно, таблица Агенты будет состоять из колонок:
Код агента;
Наименование агента;
Объем денежных средств, которыми обладает агент;
Комментарий по агенту.
Заметим, что поля Код бумаги и Код агента являются ключами, обеспе- чивающими уникальную идентификацию записей в соответствующих табли- цах.
Для хранения информации о содержании портфелей ценных бумаг, ко- торыми владеют агенты, создадим таблицу Портфели со структурой:
Код бумаги;
Код агента;
Количество бумаг данного наименования в портфеле, которым об- ладает данный агент.
В таблице Портфели мы сталкиваемся с составным ключом, который образует комбинация полей Код бумаги и Код агента. Наконец, информацию о намерениях тех или иных агентов продать те или иные бумаги поместим в таблицу Заявки:
Код заявки;
Код бумаги;
Код агента;
Объем заявки (в единицах измерения, соответствующих бумагам данного наименования);
Цена заявки.
Отметим, что экономическое содержание, вкладываемое в величину, содержащуюся в поле Объем заявки, может иметь различные интерпретации.
Например, можно считать, что если это значение положительно, то это заявка на покупку, а если отрицательно, то – на продажу. Очевидно, что возможны и альтернативные решения по организации данной таблицы. Например, можно было бы создать два отдельных поля: Объем заявки на покупку и Объем заяв-
ки на продажу. Дополнительно хочется обратить внимание на те резоны, в соответствии с которыми в качестве ключа использовано отдельное поле Код
заявки. Это позволяет одновременно хранить в таблице разные предложения по одной и той же бумаге, поступающие от одного и того же агента.
68
7.2.2 Создание таблиц
Процесс разработки базы данных в СУБД MS Access начинается с за- дания описания структур таблиц. Рассмотрим этот процесс более подробно для таблиц примера, описанного в подразделе 6.3.1.
Итак, для начала нам необходимо создать описание таблицы Бумаги.
Нажав кнопку Создать и выбрав в появившемся вслед диалоговом окне ре- жим Конструктор, мы попадаем в окно, предназначенное для ввода описа- ния структуры создаваемой таблицы. Оно изображено на рис. 37.
Рисунок37 – Создание описания структуры таблицы Бумаги
Как видно из рисунка 37, процесс описания атрибутов поля начинается с присвоения ему имени (идентификатора). Желательно, чтобы это имя было, с одной стороны, информативным, а с другой – кратким, что обеспечивает несомненные удобства при дальнейших манипуляциях с ним. Далее необхо- димо определить тип поля, что, очевидно, должно делаться, исходя из содер- жания тех данных, которые будут в нем храниться.
Обратим внимание на тип Счетчик, присвоенный полю КодБум (код бумаги). Он означает, что СУБД будет самостоятельно помещать в это поле некоторое числовое значение для каждой вновь создаваемой записи таблицы, обеспечивая таким образом его уникальность.
Выбор типа данных в Access одновременно определяет набор дополни- тельных атрибутов соответствующего поля. В частности, поле ДатаЭм (дата эмиссии) имеет тип Дата и, как это показано на рис. 37, может иметь допол- нительные атрибуты:
69
формат поля, определяющий условия вывода данных из этого поля
(по умолчанию);
маска ввода, определяющая условия ввода данных в поле;
подпись – содержит расширенный заголовок;
значение по умолчанию - позволяет указать значение, автоматиче- ски присваиваемое полю при создании новой записи. В нашем слу- чае по умолчанию будет задаваться текущая дата, возвращаемая встроенной функцией Date();
условие на значение – определяет требования к данным, вводимым в поле. Например, для выполнения требования, чтобы дата эмиссии предшествовала текущей, следует задать выражение <=Date();
сообщение об ошибке – определяет текст сообщения, которое бу- дет выводиться в случае нарушения заданного выше условия;
обязательное поле – указывает, требует или нет поле обязательного ввода значения;
индексированное поле – определяет индекс, создаваемый по дан- ному полю. Индекс ускоряет выполнение запросов, в которых ис- пользуются индексированные поля, и операции сортировки и груп- пировки.
Основываясь на опыте проектирования различных баз, необходимо за- метить, что не следует пренебрегать возможностями управления данными, которые открывают дополнительные атрибуты полей. Их грамотное и про- думанное использование позволяет организовать централизованный и эф- фективный контроль за корректностью и целостностью данных.
На завершающем этапе процесса проектирования структуры таблицы происходит задание ключей и индексов. В первом случае достаточно выде- лить строки, которые должны составить ключевое выражение, и щелкнуть мышью по кнопке Ключевое поле на вкладке Конструктор (рис. 38). В таб- лице Бумаги роль уникального ключевого идентификатора выполняет поле
КодБум.
Рисунок 38 – Вкладка Конструктор на ленте
Также при создании таблицы имеет смысл заранее продумать возмож- ные упорядочения, которые могут понадобиться при работе с содержащими- ся в ней данными. Задание индексов с соответствующими ключевыми выра- жениями может в дальнейшем существенно ускорить процесс работы (осо- бенно с большими массивами данных). В частности, при работе с данными из
70 таблицы Бумаги весьма вероятно, что нам придется выводить их в алфавит- ном порядке по названиям, а также отсортированными в порядке убывания дат. Процесс задания соответствующих индексов показан на рис. 39.
Рисунок 39 – Создание индексов для таблицы
Эффективным методом решения задач контроля корректности входных данных является ограничение множества допустимых значений поля некото- рым списком. Рассмотрим это более подробно на примере поля ТипБум (тип бумаги), которая, допустим, в рассматриваемой торговой системе может быть либо акцией, либо облигацией. Нетрудно заметить, что будет разумным присвоить типу Акция код 1, а типу Облигация – код 2. Это позволит сущест- венно сэкономить место за счет уменьшения объема хранимой информации
(особенно при большом количестве записей). Однако с точки зрения воспри- ятия вводимой информации пользователем гораздо удобнее иметь дело с ос- мысленным текстом, чем запоминать, какие коды ему соответствуют.
Средством решения этой проблемы в Access является задание подста- новочного списка значений для поля. Для этого следует выбрать вкладку
Подстановка в окне Свойства поля, далее для свойства Тип элемента управления задать значение Список. На рис. 40 показано, как описать другие свойства элемента управления Список, чтобы организовать заполнение поля
ТипБум требуемыми значениями.
После создания описания структуры таблицы можно перейти в режим непосредственного ввода в нее данных. Как уже говорилось, важным пре- имуществом интерфейса СУБД Access является продуманная гибкая система перехода от режима Конструктора к режиму ввода данных в таблицу (Ре-
жим таблицы). Такой переход можно осуществить, щелкнув мышью по пик- тограмме Вид, расположенной на панели инструментов, либо выбрав функ- цию меню Вид> Режим таблицы.