MS Access предоставляет в распоряжение непрограммирующему пользователю разнообразные диалоговые средства, которые позволяют ему создавать приложения не прибегая к разработке запросов на языке SQL или к программированию макросов или модулей на языке VBA.
Access обладает широкими возможностями по импорту / экспорту данных в различные форматы, от таблиц Excel и текстовых файлов, до практически любой серверной СУБД через механизм ODBC.
Еще одно немаловажное преимущество MS Access заключается в развитых встроенных средствах разработки приложений. Большинство приложений, распространяемых среди пользователей, содержит тот или иной объем кода VBA (Visual Basic for Applications). Поскольку VBA является единственным средством для выполнения многих стандартных задач в Access (работа с переменными, построение команд SQL во время работы программы, обработка ошибок, использование Windows API и т.д.), для создания более-менее сложных приложений необходимо его знание и знание объектной модели MS Access.
Одним из средств программирования в Access является язык макрокоманд. Программы, созданные на этом языке, называются макросами и позволяют легко связывать отдельные действия, реализуемые с помощью форм, запросов, отчетов. Макросы управляются событиями, которые вызываются действиями пользователями при диалоговой работе с данными через формы или системными событиями.
Получается что Access, обладая всеми чертами СУБД,
предоставляет и дополнительные возможности. Это не только гибкая и простая в
использовании СУБД, но и система для разработки работающих с базами данных
приложений.
Обычно с базами данных работаю две категории пользователей. Первая категория - проектировщики. Их задача состоит в разработке структуры таблиц базы данных и согласование ее с заказчиком. Кроме таблиц проектировщики разрабатывают и другие объекты базы данных, предназначенные, с одной стороны, для автоматизации работы с базой, а с другой стороны - для ограничения функциональных возможностей работы с базой (если это необходимо из соображений безопасности). Проектировщики не наполняют базу конкретными данными, (заказчик может считать их конфиденциальными и не предоставлять посторонним лицам). Исключение составляет экспериментальное наполнение модельными данными на этапе отладки объектов базы.
Вторая категория исполнителей, работающих с базами данных, - пользователи. Они получают исходную базу данных от проектировщиков и занимаются ее наполнением и обслуживанием. В общем случае пользователи не имеют средств доступа к управлению структурой базы - только к данным, да и то не ко всем, а к тем, работа с которыми предусмотрена на конкретном рабочем месте.
Соответственно СУБД имеет два режима работы: проектировочный
и пользовательский. Первый режим предназначен для создания или
изменения структуры базы и создание ее объектов. Во втором режиме происходит
использование ранее подготовленных объектов для наполнения базы или получения
данных из нее.
2.2 Предметная область
Описание ER - модели
Свойство таблиц
1. Аэропорт.
Так как мы будем разрабатывать базу данных, которую будут использоваться только на одном предприятии, то указывать свойства (другими словами, реквизиты нескольких аэропортов), на мой взгляд, не имеет смысла.
2. Самолет
Для этой таблицы необходимы основные характеристики лайнеров, такие как: Бортовой номер, Модель, Авиакомпания хозяин, Дата выпуска, Ресурс.
3. Рейс
Для этой таблице будет необходимо: Во-первых, № рейса, который мы будем использовать как ключевое поле, во-вторых, время вылета, место вылети и место посадки, в-третьих, будем вводить бортовой номер самолета (для связи этой таблицы с таблицей самолет), а также создадим 7 полей с названиями ПН, ВТ…ВС в которых будем указывать по каким дням недели будет выполняться этот рейс.
4. Билет
В эту таблицу будут вводится данные вносимые в билет: № рейса, Дата вылета, Класс, Цена, Скидки, Налоги, Агентский сбор, Норма багажа, № билета, Бортовой номер.
5. Пассажиры
В эту таблицу при покупке билета будут вноситься данные о пассажире: Фамилия, Имя, Отчество, Дата рождения, Страна, Место жительства, Паспортные данные.
6. Бронь
В этой таблице будут данные, вносимые оператором при бронировании билета: Направление, Предоплата, Дата брони, Паспортные данные, Ф.И.О., На какой день.
Связь 1 к ∞ реализуется следующим образом: ключ из главной таблицы переносится в вспомогательную таблицу.
Связь ∞ к ∞ реализуется следующим способом: создается новая таблица в которую переносятся ключевые поля из связуемых таблиц.
Реляционная модель
Если запросы - это специальные средства для отбора и анализа данных, то формы - это средства для ввода данных. Смысл их тот же - предоставить пользователю средства для заполнения только тех полей, которые ему заполнять положено. Одновременно с этим в форме можно разместить специальные элементы управления (счетчики, раскрывающиеся списки, переключатели, флажки и прочее) для автоматизации ввода. Преимущества форм раскрываются особенно наглядно, когда происходит ввод данных с заполненных бланков. В этом случае форму делают графическими средствами так, чтобы она повторяла оформление бланка - это заметно упрощает работу наборщика, снижает его утомление и предотвращает появление печатных ошибок.
По своим свойствам и структуре отчеты во многом похожи на формы, но предназначены только для вывода данных, причем для вывода не на экран, а на принтер. В связи с этим отчеты отличаются тем, что в них приняты специальные меры для группирования выводимых данных и для вывода специальных элементов оформления, характерных для печатных документов.
Это специальные объекты баз данных, реализованных в последних версиях СУБД Microsoft Access (начиная с Access 2000). Правда, более коректно их называть страницами доступа к данным. Физически это особый объект, выполненный в коде HTML, размещаемый на Web-странице и передаваемый клиенту вместе с ней. Сам по себе этот объект не является базой данной, но содержит компоненты, через которые осуществляется связь переданной Web-страницы с базой данных, остающейся на сервере. Пользуясь этими компонентами, посетитель Web-узла может просматривать записи базы в полях страницы доступа. Таким образом, страницы доступа к данным осуществляют интерфейс между клиентом, сервером и базой данных, размещенной на сервере. Эта база данных не обязательно должна быть базой данных Microsoft Access. Страницы доступа, созданные средствами Microsoft Access, посволяют работать также с базами данных Microsoft SQL Server.
Эти категории объектов предназначены как для автоматизации
повторяющихся операций при работе с СУБД, так и для создания новых функций
путем программирования. В СУБД Microsoft Access макросы состоят
из последовательности внутренних команд СУБД и являются одним из средств
автоматизации работы с базой. Модули создаются средствами
внешнего языка программирования, в данном случае языка Visual Basic for
Applications. Это одно из средств, с помощью которых разработчик базы может
заложить в нее нестандартные функциональные возможности, удовлетворить
специфическое требование заказчика, повысить быстродействие системы управления,
а также уровень ее защищенности.
2.4 Разработка технического задания
Техническое задание на проектирование базы данных должен предоставить заказчик. Однако для этого он должен владеть соответствующей терминологией и знать, хотя бы в общих чертах, технические возможности основных СУБД. К сожалению, на практике такое положение встречается не всегда. Поэтому обычно используют следующие подходы:
Демонстрируют заказчику работу аналогичной базы данных, после чего согласовывают спецификацию отличий;
Если аналога нет, выясняют круг задач и потребностей заказчика, после чего помогают ему подготовить техническое задание.
При подготовке технического задания составляют:
· Список исходных данных, с которыми работает заказчик;
· Список выходных данных, которые необходимы заказчику для управления структурой своего предприятия;
· Список выходных данных, которые не являются необходимыми для заказчика, но которые он должен предоставить в другие организации (в вышестоящие структуры, в органы статистического учета, прочие административные и контролирующие организации).
При этом очень важно не ограничиваться взаимодействием с
головным подразделением заказчика, а провести обсуждение со всеми службами и
подразделениями, которые могут оказать оказаться поставщиками данных в базу или
их потребителями.
Выяснив основную часть данных, которые заказчик потребляет или поставляет, можно приступать к созданию структуры базы, то есть структуры ее основных таблиц.
. Работа начинается с составления генерального списка полей - он может насчитывать десятки и даже сотни позиций.
. В соответствии с типом данных, размещаемых в каждом поле, определяют наиболее подходящий тип для каждого поля.
. Далее распределяют поля генерального списка по базовым таблицам. На первом этапе распределение производят по функциональному признаку. Цель - обеспечить, чтобы ввод данных в одну таблицу производился, по возможности, в рамках одного подразделения, а еще лучше - на одном рабочем месте.
. В каждой из таблиц намечают ключевое поле. В качестве такого выбирают поле, данные в котором повторяться не могут. Например, для таблицы данных о студентах таким поле может служить индивидуальный шифр студента. Для таблицы, в которой содержаться расписание занятий, такого поля можно и не найти, но его можно создать искусственным комбинированием полей «Время занятия» и «Номер аудитории». Эта комбинация не повторима, так как в одной аудитории в одно и то же время не принято проводить два различных занятия. Если в таблице вообще нет ни каких полей, которые можно было бы использовать, как ключевые, всегда можно ввести дополнительное поле типа Счетчик - оно не может содержать повторяющихся данных по определению.
. С помощью карандаша и бумаги расчерчивают связи между таблицами. Такой чертеж называется схемой данных. Существует несколько типов возможных связей между таблицами. Наиболее распространенными являются связи «один ко многим» и «один к одному». Связь между таблицами организуется на основе общего поля, причем в одной из таблиц оно обязательно должно быть ключевым, то есть на стороне «один» должно выступать ключевое поле, содержащее уникальные, неповторяющиеся значения. Значения на стороне «многие» могут повторяться.
. Разработкой схемы данных заканчивается «бумажный» этап работы над техническим предложением. Эту схему можно согласовать с заказчиком, после чего приступать к непосредственному созданию базы данных.
Следует помнить, что по ходу разработки проекта заказчику непременно будут приходить в голову новые идеи. На всех этапах проектирования он стремится охватить единой системой все новые и новые подразделения и службы предприятия. Возможность гибкого использования его пожеланий во многом определяется квалификацией разработчика базы данных. Если схема данных составлена правильно, подключать к базе новые таблицы нетрудно. Если структура базы нерациональна, разработчик может испытать серьезные трудности и войти в противоречие с заказчиком. Противоречия исполнителя с заказчиком всегда свидетельствуют о недостаточной квалификации исполнителя. Именно по этому этап предварительного проектирования базы данных следует считать основным. От его успеха зависит, насколько база данных станет удобной, и будут ли с ней работать пользователи. Если отмечается, что пользователи базы «саботируют» ее эксплуатацию и предпочитают работать традиционными методами, это говорит не о низкой квалификации пользователей, а о недостаточной квалификации разработчика базы.
На этом этапе завершается предварительное проектирование базы
данных, и на следующем этапе начинается ее непосредственная разработка. С этого
момента следует начать работу с СУБД.
3. Реализация СУБД
В ходе проделанной работы, нами были созданы:
ü 8 таблиц (Структура таблицы «Билет» указан в Приложении №1).
ü 10 запросов, из них 9 на выборку и 1 на удаление (Структура запроса «№ билета запрос» указан в Приложении №2)
ü 19 таблиц (Пример формы «Пассажиры» указан в Приложении №3)
ü 1 отчет, который используется для печати билета (Пример отчета «Пассажиры Запрос1» указан в Приложении №4)
ü 28 макросов (Структура макроса «открытие запроса рейс» указана в Приложении №5)
ü Написано несколько процедур на языке VBA, рассмотрим одну из них:
Как известно, система защиты СУБД ACCESS не очень надежна, к примеру, для того чтобы отключить макрос при запуске приложения, достаточно просто удерживать нажатой клавишу «Shift», как раз эту и еще некоторые другие горячие клавиши отключает эта процедура, так же она не позволяет добавлять новые Панели инструментов, а включает только одну (Пример указан в Приложении №6).
Рассмотрим код:
Private Sub butProtOff_Click()
setProtShift True MsgBox «Защита удалена!» & Chr(13) & Перезапустите базу данных!»
End Sub
Private Sub butProtOn_Click()False MsgBox «Защита установлена!» & Chr(13) & «Перезапустите базу данных!»
End Sub
Private Sub setProtShift (myFlag As Boolean) dbChangeProperty «StartupForm», DB_TEXT, «пароль» - Первая форма (см. Приложение №6)«StartupShowStatusBar», DB_BOOLEAN, myFlag - Нижняя полоска экрана«AllowBuiltinToolbars», DB_BOOLEAN, myFlag - Панели инструментов«AllowFullMenus», DB_BOOLEAN, myFlag - Меню таблиц, форм и т.п.«AllowBreakIntoCode», DB_BOOLEAN, myFlag - Ошибки в модуле«AllowSpecialKeys», DB_BOOLEAN, myFlag - Специальные ключи (CTRL+BREAK,…)«AllowBypassKey», DB_BOOLEAN, myFlag - Ключ Shift
End Sub dbChangeProperty (strName As String, varType As Variant, varValue As Variant) As Boolean
Dim prp As Variant, dbs As Database
On Error GoTo 999 - Назначаем переход по ошибке= False - Возвращаем результат при ошибке
Set dbs = CurrentDb - Выбираем базу. Properties(strName) = varValue - Присваиваем значение
dbChangeProperty = True - Возвращаем результатFunction - Выходим из программы
: If Err = 3270 Then - Свойство не найдено
Set prp = dbs. CreateProperty (strName, varType, varValue) - Создаем свойство. Properties. Append prp - Добавляем свойство. Clear - Очищаем поток от ошибкиNext - Возвращаемся к следующему операторуIf. Clear - Очищаем от незнакомой ошибки
End Function
Заключение
Я разработала базу данных аэропорта.
С помощью моей базы можно без затруднений и специальных знаний вести базу данных, которая позволяет делать все операции с рейсами, пассажирами, билетами. То есть добавлять, изменять, обновлять, удалять и просматривать все имеющиеся и вводимые данные.
На примере моей базы данных для аэропорта, я предоставила к рассмотрению и анализу практически все функции и возможности Microsoft Accsess. Эта программа достаточна проста и удобна в обращении.
Я считаю, что база данных в среде СУБД MS Access практическом применении удобна и достаточно эффективна. Все зависит от пользователя, объема располагаемых им знаний и умения ими воспользоваться. Говоря о себе могу сказать, что эта программа имеет много полезных функций и в дальнейшем мне очень пригодится.