Основные идеи современной информационной технологии базируются на концепции, согласно которой данные должны быть организованы в базы данных с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Эти базы данных создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами данных (СУБД).
Увеличение объема и структурной сложности хранимых данных, расширение круга пользователей информационных систем привели к широкому распространению наиболее удобных и сравнительно простых для понимания реляционных (табличных) СУБД. Для обеспечения одновременного доступа к данным множества пользователей, нередко расположенных достаточно далеко друг от друга и от места хранения баз данных, созданы сетевые мультипользовательские версии БД основанных на реляционной структуре. В них тем или иным путем решаются специфические проблемы параллельных процессов, целостности (правильности) и безопасности данных, а также санкционирования доступа.
Целью этой работы является создать базу данных в СУБД ACCESS. Которая должна будет автоматизировать работу служащих аэропорта.
1. Предметная область
1.1 Описание ER-модели
|
|
|
|
|
∞
Свойство таблиц
1. Аэропорт.
Так как мы будем разрабатывать базу данных, которую будут использоваться только на одном предприятии, то указывать свойства (другими словами, реквизиты нескольких аэропортов), на наш взгляд, не имеет смысла.
2. Самолет
На наш взгляд для этой таблицы необходимы основные характеристики лайнеров, такие как: Бортовой номер, Модель, Авиакомпания хозяин, Дата выпуска, Ресурс.
3. Рейс
Для этой таблице будет необходимо: Во-первых, № рейса, который мы будем использовать как ключевое поле, во-вторых, время вылета, место вылети и место посадки, в-третьих, будем вводить бортовой номер самолета ( для связи этой таблицы с таблицей самолет), а также создадим 7 полей с названиями ПН,ВТ…ВС в которых будем указывать по каким дням недели будет выполняться этот рейс.
4. Билет
В эту таблицу будут вводится данные вносимые в билет: № рейса, Дата вылета, Класс, Цена, Скидки, Налоги, Агентский сбор, Норма багажа, № билета, Бортовой номер.
5. Пассажиры
В эту таблицу при покупке билета будут вноситься данные о пассажире: Фамилия, Имя, Отчество, Дата рождения, Страна, Место жительства, Паспортные данные.
6. Бронь
В этой таблице будут данные, вносимые оператором при бронировании билета: Направление, Предоплата, Дата брони, Паспортные данные, ФИО, На какой день.
Связь 1 к ∞ реализуется следующим образом: ключ из главной таблицы переносится в вспомогательную таблицу.
Связь ∞ к ∞ реализуется следующим способом: создается новая таблица в которую переносятся ключевые поля из связуемых таблиц.
1.2 Реляционная модель
2. Основные понятия баз данных
2.1 Базы данных и системы управления базами данных
База данных – это организованная структура, предназначенная для хранения информации. В современных базах данных хранятся не только данные, но и информация.
Это утверждение легко пояснить, если, например, рассмотреть базу данных крупного банка. В ней есть все необходимые сведения о клиентах, об их адресах, кредитной истории, состояние расчетных счетов, финансовых операциях и т.д. Доступ к этой базе данных имеется у достаточно большого количества сотрудников банка, но среди них вряд ли найдется такое лицо, которое имеет доступ ко всей базе полностью и при этом способно единолично вносить в нее произвольные изменения. Кроме данных, база содержит методы и средства, позволяющие каждому из сотрудников оперировать только с теми данными, которые входят в его компетенцию. В результате взаимодействия данных, содержащихся в базе, с методами, доступными конкретным сотрудникам, образуется информация, которую они потребляют и на основании которой в пределах собственной компетенции производят ввод и редактирование данных.
С понятием базы данных тесно связано понятие системы управления базой данных. Это комплекс программных средств, предназначенных для создания структуры новой базы, наполнение ее содержимым, редактирование содержимого и визуализации информации. Под визуализацией информации базы понимается отбор отображаемых данных в соответствии с заданным критерием, их упорядочение, оформление и последующая выдача на устройства вывода или передачи по каналам связи.
В мире существует множество систем управления базами данных. Несмотря на то что они могут по-разному работать с разными объектами и предоставляют пользователю различные функции и средства, большинство СУБД опираются на единый устоявшийся комплекс основных понятий. Это дает нам возможность рассмотреть одну систему и обобщить ее понятия, приемы и методы на весь класс СУБД. В качестве такого учебного объекта мы выберем СУБД MicrosoftAccess, входящую в пакет MicrosoftOffice.
2.2 Состав СУБД
Язык описания данных (ЯОД) – Средства описания данных в БД и связей между ними. Средствами этого языка описывается структура БД, форматы записей, пароли, защищающие данные.
Язык манипулирования данными (ЯМД) – язык для выполнения операций над данными, позволяющий менять их строение.
Для различных СУБД реализация этих уровней языков может быть различной. В одних случаях ЯОД и ЯМД требует составления пользователем программы полностью “вручную”, в других (что отражает современную тенденцию) в СУБД присутствует средства визуальной (зримой, наглядной) разработки программ. Для этого в современных СУБД имеются редакторы экранных форм, отчетов. “Кирпичиками” (инструментами) таких редакторов являются поля различных видов (поля ввода, поля вывода, вычисляемые поля), процедуры обработки различных типов (формы ввода, таблицы, отчеты, запросы).
На основании созданных пользователем объектов программы – генераторы формируют программный код на языке конкретной машины или на промежуточном языке.
2.3 Структура простейшей базы данных
Сразу поясним, что если в базе нет никаких данных (пустая база), то это все равно полноценная база данных. Этот факт имеет методическое значение. Хотя данных в базе и нет, но информация в ней все-таки есть – это структура базы. Она определяет методы занесения данных и хранения их в базе. Простейший «некомпьютерный» вариант базы данных – деловой ежедневник, в котором каждому календарному дню выделено по странице. Даже если в нем не записано ни строки, он не перестает быть ежедневником, поскольку имеет структуру, четко отличающую его от записных книжек, рабочих тетрадей и прочей писчебумажной продукции.
Базы данных могут содержать различные объекты. Основными объектами любой базы данных являются ее таблицы. Простейшая база данных имеет хотя бы одну таблицу. Соответственно, структура простейшей базы данных тождественно равна структуре ее таблицы.
Структуру двумерной таблицы образуют столбцы и строки. Их аналогами в простейшей базе данных являются поля и записи. Если записей в таблице пока нет, значит, ее структура образована только набором полей. Изменив состав полей базовой таблицы (или их свойства), мы изменяем структуру базы данных и, соответственно, получаем новую базу данных.
2.4 Свойства полей базы данных
Поля базы данных не просто определяют структуру базы – они еще определяют групповые свойства данных, записываемых в ячейки, принадлежащие каждому из полей. Ниже перечислены основные свойства полей таблиц баз данных на примере СУБД Microsoft Access.
Имя поля – определяет, как следует обращаться к данным этого поля при автоматических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц).
Тип поля – определяет тип данных, которые могут содержаться в данном поле.
Размер поля – определяет предельную длину (в символах) данных, которые могут размещаться в данном поле.
Формат поля – определяет способ форматирования данных в ячейках, принадлежащих полю.
Маска ввода – определяет форму, в которой вводятся данные а поле (средство автоматизации ввода данных).
Подпись – определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется свойство Имя поля).
Значение по умолчанию – то значение, которое вводится в ячейки поля автоматически (средство автоматизации ввода данных).
Условие на значение – ограничение, используемое для проверки правильности ввода данных (средство автоматизации ввода, которое используется, как правило, для данных, имеющих числовой тип, денежный тип или тип даты).
Сообщение об ошибке – текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных.
Обязательное поле – свойство, определяющее обязательность заполнения данного поля при наполнении базы.
Пустые строки – свойство, разрешающее ввод пустых строковых данных (от свойства Обязательное поле отличается тем, что относится не ко всем типам данных, а лишь к некоторым, например к текстовым).
Индексированное поле – если поле обладает этим свойством, все операции, связанные с поиском или сортировкой записей по значению, хранящемуся в данном поле, существенно ускоряются. Кроме того, для индексированных полей можно сделать так, что значение в записях будут проверяться по этому полю на наличие повторов, что позволяет автоматически исключить дублирование данных.
Поскольку в разных полях могут содержаться данные разного типа, то и свойства у полей могут различаться в зависимости от типа данных. Так, например, список вышеуказанных свойств полей относится в основном к полям текстового типа. Поля других типов могут иметь или не иметь эти свойства, но могут добавлять к ним и свои. Например, для данных, представляющих действительные числа, важным свойством является количество знаков после десятичной запятой. С другой стороны, для полей, используемых для хранения рисунков, звукозаписей, видео клипов и других объектов OLE, большинство вышеуказанных свойств не имеют смысла.
2.5 Типы данных
Таблицы баз данных, как правило, допускают работу с гораздо большим количеством разных типов данных. Так, например, базы данных Microsoft Access работают со следующими типами данных.
Текстовый – тип данных, используемый для хранения обычного неформатированного текста ограниченного размера (до 255 символов).
Числовой – тип данных для хранения действительных чисел.
Поле Мемо – специальный тип данных для хранения больших объемов текста (до 65 535 символов).
Физически текст не хранится в поле. Он храниться в другом месте базы данных, а в поле храниться указатель на него, но для пользователя такое разделение заметно не всегда.
Дата/время – тип данных для хранения календарных дат и текущего времени.
Денежный — тип данных для хранения денежных сумм. Теоретически, для их записи можно было бы пользоваться и полями числового типа, но для денежных сумм есть некоторые особенности (например, связанные с правилами округления), которые делают более удобным использование специального типа данных, а не настройку числового типа.
Счетчик – специальный тип данных для уникальных (не повторяющихся в поле) натуральных чисел с автоматическим наращиванием. Естественное использование – для порядковой нумерации записей.
Логический — тип для хранения логических данных (могут принимать только два значения, например Да или Нет).
Гиперссылка – специальное поле для хранения адресов URL Web-объектов Интернета. При щелчке на ссылке автоматически происходит запуск броузера и воспроизведение объекта в его окне.
Мастер подстановок – это не специальный тип данных. Это объект, настройкой которого можно автоматизировать ввод данных в поле так, чтобы не вводить их вручную, а выбирать их из раскрывающегося списка.
2.6 Безопасность баз данных
Базы данных – это тоже файлы, но работа с ними отличается от работы с файлами других типов, создаваемых прочими приложениями. Выше мы видели, что всю работу по обслуживанию файловой структуры берет на себя операционная система. Для базы данных предъявляются особые требования с точки зрения безопасности, поэтому в них реализован другой подход к сохранению данных.
Базы данных – это особые структуры. Информация, которая в них содержится, очень часто имеет общественную ценность. Нередко с одной и той же базой работают тысячи людей по всей стране. От информации, которая содержится в некоторых базах, может зависеть благополучие множества людей. Поэтому целостность содержимого базы не может и не должна зависеть ни от конкретных действий некоего пользователя, забывшего сохранить файлы перед выключением компьютера, ни от перебоев в электросети.
Проблема безопасности баз данных решается тем, что в СУБД для сохранения информации используется двойной подход. В части операций, как обычно, участвует операционная система компьютера, но некоторые операции сохранения происходят в обход операционной системы.
3. Проектирование баз данных
3.1 Режимы работы с базами данных
Обычно с базами данных работаю две категории пользователей. Первая категория – проектировщики. Их задача состоит в разработке структуры таблиц базы данных и согласование ее с заказчиком. Кроме таблиц проектировщики разрабатывают и другие объекты базы данных, предназначенные, с одной стороны, для автоматизации работы с базой, а с другой стороны – для ограничения функциональных возможностей работы с базу конкретными данными , (заказчик может считать их конфиденциальными и не предоставлять посторонним лицам).
Исключение составляет экспериментальное наполнение модельными данными на этапе отладки объектов базы.
Вторая категория исполнителей, работающих с базами данных, — пользователи. Они получают исходную базу данных от проектировщиков и занимаются ее наполнением и обслуживанием. В общем случае пользователи не имеют средств доступа к управлению структурой базы – только к данным, да и то не ко всем, а к тем, работа с которыми предусмотрена на конкретном рабочем месте.
Соответственно СУБД имеет два режима работы: проектировочный и пользовательский. Первый режим предназначен для создания или изменения структуры базы и создание ее объектов. Во втором режиме происходит использование ранее подготовленных объектов для наполнения базы или получения данных из нее.
3.2 Объекты базы данных
3.2.1 Таблицы
Таблицы – это основные объекты любой базы данных. Во-первых, в таблицах хранятся все данные, имеющиеся в базе, а во-вторых, таблицы хранят и структуру базы (поля, их типы и свойства).
3.2.2 Запросы
Эти объекты служат для извлечения данных из таблиц и предоставления их пользователю в удобном виде. С помощью запросов выполняют такие операции как отбор данных, их сортировку и фильтрацию. С помощью запросов можно выполнять преобразования данных по заданному алгоритму, создавать новые таблицы, выполнять автоматическое наполнения таблиц данными, импортированными из других источников, выполнять простейшие вычисления в таблицах и многое другое.
3.2.3 Формы
Если запросы – это специальные средства для отбора и анализа данных, то формы – это средства для ввода данных. Смысл их тот же – предоставить пользователю средства для заполнения только тех полей, которые ему заполнять положено. Одновременно с этим в форме можно разместить специальные элементы управления (счетчики, раскрывающиеся списки, переключатели, флажки и прочее) для автоматизации ввода. Преимущества форм раскрываются особенно наглядно, когда происходит ввод данных с заполненных бланков. В этом случае форму делают графическими средствами так, чтобы она повторяла оформление бланка – это заметно упрощает работу наборщика, снижает его утомление и предотвращает появление печатных ошибок.
3.2.4 Отчеты
По своим свойствам и структуре отчеты во многом похожи на формы, но предназначены только для вывода данных, причем для вывода не на экран, а на принтер. В связи с этим отчеты отличаются тем, что в них приняты специальные меры для группирования выводимых данных и для вывода специальных элементов оформления, характерных для печатных документов.
Это специальные объекты баз данных, реализованных в последних версиях СУБД Microsoft Access (начиная с Access 2000).
Правда, более коректно их называть страницами доступа к данным. Физически это особый объект, выполненный в коде HTML, размещаемый на Web-странице и передаваемый клиенту вместе с ней. Сам по себе этот объект не является базой данной, но содержит компоненты, через которые осуществляется связь переданной Web-страницы с базой данных, остающейся на сервере. Пользуясь этими компонентами, посетитель Web-узла может просматривать записи базы в полях страницы доступа. Таким образом, страницы доступа к данным осуществляют интерфейс между клиентом, сервером и базой данных, размещенной на сервере. Эта база данных не обязательно должна быть базой данных Microsoft Access. Страницы доступа, созданные средствами Microsoft Access, посволяют работать также с базами данных Microsoft SQL Server.
3.2.6 Макросы и модули
Эти категории объектов предназначены как для автоматизации повторяющихся операций при работе с СУБД, так и для создания новых функций путем программирования. В СУБД Microsoft Access макросы состоят из последовательности внутренних команд СУБД и являются одним из средств автоматизации работы с базой. Модули создаются средствами внешнего языка программирования, в данном случае языка Visual Basic for Applications. Это одно из средств, с помощью которых разработчик базы может заложить в нее нестандартные функциональные возможности, удовлетворить специфическое требование заказчика, повысить быстродействие системы управления, а также уровень ее защищенности.
3.3 Проектирование базы данных
Методически правильно начинать работу с карандашом и листом бумаги в руках, не используя компьютер. На данном этапе он просто не нужен. Неоптимальные решения и прямые ошибки, заложенные на этапе проектирования, впоследствии очень трудно устраняются, поэтому этот этап является основополагающим.
3.3.1 Разработка технического задания
Техническое задание на проектирование базы данных должен предоставить заказчик. Однако для этого он должен владеть соответствующей терминологией и знать, хотя бы в общих чертах, технические возможности основных СУБД. К сожалению, на практике такое положение встречается не всегда. Поэтому обычно используют следующие подходы:
- Демонстрируют заказчику работу аналогичной базы данных, после чего согласовывают спецификацию отличий;
- Если аналога нет, выясняют круг задач и потребностей заказчика, после чего помогают ему подготовить техническое задание.
При подготовке технического задания составляют:
- Список исходных данных, с которыми работает заказчик;
- Список выходных данных, которые необходимы заказчику для управления структурой своего предприятия;
- Список выходных данных, которые не являются необходимыми для заказчика, но которые он должен предоставить в другие организации (в вышестоящие структуры, в органы статистического учета, прочие административные и контролирующие организации).
При этом очень важно не ограничиваться взаимодействием с головным подразделением заказчика, а провести обсуждение со всеми службами и подразделениями, которые могут оказать оказаться поставщиками данных в базу или их потребителями.
3.3.2 Разработка структуры базы данных
Выяснив основную часть данных, которые заказчик потребляет или поставляет, можно приступать к созданию структуры базы, то есть структуры ее основных таблиц.
1. Работа начинается с составления генерального списка полей – он может насчитывать десятки и даже сотни позиций.
2. В соответствии с типом данных, размещаемых в каждом поле, определяют наиболее подходящий тип для каждого поля.
3. Далее распределяют поля генерального списка по базовым таблицам. На первом этапе распределение производят по функциональному признаку. Цель – обеспечить, чтобы ввод данных в одну таблицу производился, по возможности, в рамках одного подразделения, а еще лучше – на одном рабочем месте.
4. В каждой из таблиц намечают ключевое поле. В качестве такого выбирают поле, данные в котором повторяться не могут. Например, для таблицы данных о студентах таким поле может служить индивидуальный шифр студента. Для таблицы, в которой содержаться расписание занятий, такого поля можно и не найти, но его можно создать искусственным комбинированием полей «Время занятия» и «Номер аудитории». Эта комбинация не повторима, так как в одной аудитории в одно и то же время не принято проводить два различных занятия. Если в таблице вообще нет ни каких полей, которые можно было бы использовать, как ключевые, всегда можно ввести дополнительное поле типа Счетчик – оно не может содержать повторяющихся данных по определению.
5. С помощью карандаша и бумаги расчерчивают связи между таблицами. Такой чертеж называется схемой данных. Существует несколько типов возможных связей между таблицами. Наиболее распространенными являются связи «один ко многим» и «один к одному». Связь между таблицами организуется на основе общего поля, причем в одной из таблиц оно обязательно должно быть ключевым, то есть на стороне «один» должно выступать ключевое поле, содержащее уникальные, неповторяющиеся значения. Значения на стороне «многие» могут повторяться.
6. Разработкой схемы данных заканчивается «бумажный» этап работы над техническим предложением. Эту схему можно согласовать с заказчиком, после чего приступать к непосредственному созданию базы данных.
Следует помнить, что по ходу разработки проекта заказчику непременно будут приходить в голову новые идеи. На всех этапах проектирования он стремится охватить единой системой все новые и новые подразделения и службы предприятия. Возможность гибкого использования его пожеланий во многом определяется квалификацией разработчика базы данных. Если схема данных составлена правильно, подключать к базе новые таблицы нетрудно. Если структура базы нерациональна, разработчик может испытать серьезные трудности и войти в противоречие с заказчиком. Противоречия исполнителя с заказчиком всегда свидетельствуют о недостаточной квалификации исполнителя. Именно по этому этап предварительного проектирования базы данных следует считать основным. От его успеха зависит, насколько база данных станет удобной, и будут ли с ней работать пользователи. Если отмечается, что пользователи базы «саботируют» ее эксплуатацию и предпочитают работать традиционными методами, это говорит не о низкой квалификации пользователей, а о недостаточной квалификации разработчика базы.
На этом этапе завершается предварительное проектирование базы данных, и на следующем этапе начинается ее непосредственная разработка. С этого момента следует начать работу с СУБД.
4. Реализация СУБД АЭРОпорт
В ходе проделанной работы, нами были созданы:
- 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) & Перезапустите базу данных!»
EndSub
Private Sub butProtOn_Click()
setProtShift False MsgBox «Защитаустановлена!» & Chr(13) & «Перезапустите базу данных!»
EndSub
Private Sub setProtShift(myFlag As Boolean) dbChangeProperty «StartupForm»,DB_TEXT, «пароль» – Перваяформа(см. Приложение №6)
dbChangeProperty «StartupShowStatusBar», DB_BOOLEAN, myFlag – Нижняяполоскаэкрана
dbChangeProperty «AllowBuiltinToolbars», DB_BOOLEAN, myFlag – Панелиинструментов
dbChangeProperty «AllowFullMenus», DB_BOOLEAN, myFlag –Менютаблиц, формит.п.
dbChangeProperty «AllowBreakIntoCode», DB_BOOLEAN, myFlag – Ошибкивмодуле
dbChangeProperty «AllowSpecialKeys», DB_BOOLEAN, myFlag – Специальныеключи (CTRL+BREAK,…)
dbChangeProperty «AllowBypassKey», DB_BOOLEAN, myFlag – Ключ Shift
End Sub
Function dbChangeProperty(strName As String, varType As Variant, varValue As Variant) As Boolean
Dim prp As Variant, dbs As Database
On Error GoTo 999 – Назначаем переход по ошибке
dbChangeProperty = False – Возвращаем результат при ошибке
Set dbs = CurrentDb – Выбираем базу
dbs.Properties(strName) = varValue – Присваиваем значение
dbChangeProperty = True – Возвращаем результат
Exit Function – Выходим из программы
999:If Err = 3270 Then – Свойство не найдено
Set prp = dbs.CreateProperty(strName, varType, varValue) – Создаемсвойство
dbs.Properties.Append prp – Добавляемсвойство
Err.Clear – Очищаемпотокотошибки
Resume Next – Возвращаемся к следующему оператору
End If
Err.Clear – Очищаем от незнакомой ошибки
End Function
Список использованной литературы
[Электронный ресурс]//URL: https://drprom.ru/kursovaya/baza-dannyih-aeroport/
1. Информатика. Базовый курс /Симонович С.В. и др. — СПб: Издательство «Питер», 2000. – 640с.
2. Информатика. Учебное пособие /Под ред. В.Г. Кирия. – Иркутск: ИрГТУ,1998 часть 2. – 382с.
3. Информатика. Учебное пособие /Ломтадзе В.В., Шишкина Л.П. – Иркутск: ИрГТУ, 1999. – 116с.
Приложение №1
Структура формы «Билет»
Приложение №2
Структура запроса «№ билета запрос»
Приложение №3
Внешний вид формы «Пассажиры»
Приложение №4
Внешний вид отчета «Пассажиры Запрос1»
Приложение №5
Структура макроса «открытие запроса рейс»
Приложение №6