автордың кітабын онлайн тегін оқу Access 2010
А. Сеннов
Access 2010. Учебный курс
Технический редактор Ю. Сергиенко
Литературный редактор О. Некруткина
Художники Л. Адуевская, Л. Родионова
Корректоры В. Листова, В. Листова
Верстка Л. Родионова
А. Сеннов
Access 2010. Учебный курс. — СПб.: Питер, 2014.
ISBN 978-5-49807-806-9
© ООО Издательство "Питер", 2014
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав.
Введение
В книге рассматривается работа c базами данных в пакете MS Access 2010. Материал систематизирован на основе обобщения шестилетнего авторского опыта преподавания курса «Основы разработки баз данных» в рамках программ переподготовки и повышения квалификации Санкт-Петербургского государственного университета. Курс рассчитан на 72 учебных часа и проводится только в компьютерном классе, то есть теория вопроса рассматривается в минимально необходимом объеме. При написании данной книги использовались отработанные в процессе занятий учебные примеры и задания, выполненные в среде Access 2010.
Книга дополняется учебными примерами в форматах ACCDB (Access 2007) и MDB (Access 2003), а также списком заданий к этим примерам. Каждое задание может выполняться индивидуально, ссылки на необходимые исходные файлы и файлы, в которых можно посмотреть результат выполнения, приводятся в тексте заданий. Файлы примеров можно найти на сайте издательства «Питер» на странице, посвященной этой книге (http://www.piter.com/book.phtml?978549807806).
В процессе преподавания данного курса, как, впрочем, и некоторых других, автору приходилось мириться с отсутствием общепринятых стандартов образования по данной теме. Выход из этой ситуации видится в использовании европейских и международных стандартов, в частности ECDL (European Computer Driving Licence), который получил международное признание и поддержку государственных органов и образовательных структур многих стран и служит основой для сертификации пользователей персональных компьютеров. Авторский перевод программы этого стандарта, размещенной на открытом сайте http://www.ecdl.com, можно найти в приложениях 2 (базовый уровень) и 3 (углубленный, или расширенный уровень). С информацией об этом стандарте на русском языке можно ознакомиться на официальном сайте http://www.ecdl.ru. Автор является официально зарегистрированным тестирующим на соответствие данному стандарту. Стандарт ECDL становится особенно важен сейчас, после того как Российской Федерацией был подписан Болонский протокол, поскольку, скорее всего, именно он будет использоваться в наших вузах.
В начале глав указано, какие разделы соответствуют базовому, какие — углубленному уровню данного стандарта, а какие выходят за эти рамки.
В главе 1 рассматриваются общие вопросы создания баз данных и работа с таблицами MS Access. В главе 2 речь пойдет о запросах к базам данных (БД) и принципах их построения. В главах 3 и 4 рассматриваются вопросы создания экранных форм и отчетов для печати. Глава 5 посвящена разработке макросов и некоторым другим вопросам, которые не входят в программу ECDL, но могут быть полезны при самостоятельной практической работе.
Автор ответит на все присланные вопросы, замечания и пожелания (andrei.sennov@gmail.com).
От издательства
Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты comp@piter.com (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
Подробную информацию о наших книгах вы найдете на веб-сайте издательства http://www.piter.com.
Глава 1. Создание базы данных
В данной главе рассматриваются основные понятия теории баз данных и работа с таблицами MS Access. В разделах 1.1 и 1.2 материал излагается в основном в соответствии с программой (syllabus) европейского стандарта ECDL (European Computer Driving Licence, Европейские компьютерные права), базовый уровень (пятая версия, взято с открытого сайта http://www.ecdl.com/programmes/, см. приложение 2, разделы 5.1–5.2 программы ECDL). В разделах 1.3 и 1.4 рассматриваются дополнения, знание которых требуется в соответствии с расширенным уровнем (advanced level, версия вторая, см. приложение 3, раздел 5.1 ECDL). Так как разница между расширенным и базовым уровнями в разделах по разработке таблиц невелика и в версиях 2009 года пятой (базовый) и второй (расширенный) стала еще меньше, материал частично перекрывается. В разделе 5.2.2 часть учебных вопросов явно относится к тематике поиска информации, которой посвящена следующая глава.
Основы использования языка структурированных запросов SQL (5.1.1.4) также рассматриваются во второй главе.
Следует отметить, что в стандарте не вводится понятие нормализации, но, как нам кажется, оно важно для понимания внутреннего устройства реляционных баз данных.
1.1. Основные понятия
В данном разделе рассматриваются:
• общие концепции построения реляционных баз данных;
• первые шаги в среде MS Access;
• настройка рабочей среды.
Современные компьютеры могут хранить самые разнообразные данные: записи, документы, графику, звуко- и видеозаписи, научные и другие, во множестве форматов. Совокупность сведений о каких-либо объектах, процессах, событиях или явлениях, организованная таким образом, чтобы можно было легко представить любую часть этой совокупности, называют базой данных (БД). Задачи хранения, получения, анализа, визуализации данных принято называть управлением данными, а программы для решения подобных задач — системами управления базами данных (СУБД).
Следует разделять понятия «данные» и «информация». Под данными понимают сведения, представленные в некоторой знаковой системе и на определенном физическом носителе, который позволяет их вводить, хранить, обрабатывать, а также осуществлять информационный поиск. Данные, отобранные в результате такого поиска, то есть данные, удовлетворяющие некую информационную потребность субъекта или группы людей, называются информацией.
Таким образом можно сказать, что БД обеспечивает хранение данных, а СУБД — получение информации.
1.1.1. Общие понятия. Реляционная модель данных
На сегодняшний день базы данных в локальных и глобальных сетях используются повсеместно. Например, большинство интернет-сайтов, к которым мы обращаемся с целью получения информации, являются динамическими, то есть получают эту информацию для нас из своих баз данных. Без этого была бы невозможна работа поисковых систем, интернет-магазинов, систем заказа железнодорожных и авиабилетов, систем отношения банков с клиентами и т.д. Широко распространены медицинские базы данных, базы данных персонала, системы управления ресурсами предприятия, например, на базе программного обеспечения 1С, но не только такие.
Стремительно увеличивается количество баз данных «двусторонего» использования. Например, у большинства операторов мобильной связи имеется интернет-сервис, с помощью которого клиент может изменить тариф, отказаться/подключить услугу, заказать получение счета, изменяя при этом записи в базе данных оператора. Широкое распространение получили так называемые системы управления контентом, когда разные сотрудники могут работать над одним проектом, находясь при этом в разных местах или даже проживая в разных странах. При этом информация по проекту находится в базах данных на удаленном сервере, например интернет-сервере. Во многих странах успешно развиваются программы, аналог которых в РФ называется «Электронным правительством» — например, в Эстонии с помощью сети Интернет уже проводятся выборы. Естественно, такие базы данных создаются и поддерживаются (администрируются) большими коллективами высокопрофессиональных разработчиков и администраторов. Помимо допуска различных пользователей к различным данным из базы администраторы также несут ответственность за сохранность базы в случае непредвиденных обстоятельств, например хакерской атаки на динамический веб-сайт.
В данном пособии речь идет о «настольных» базах данных сравнительно небольшого размера, которые может создавать один (или несколько) человек средствами пакета Microsoft Office 2010. Впрочем, здесь также возможно администрирование, разграничение прав доступа, работа в сети и т.п.
Работа с настольными базами данных включает те же этапы, что и работа с крупными. Различают этапы логического проектирования, непосредственно создания базы данных, ввода данных, сопровождения и информационного поиска.
Проектирование, создание и сопровождение баз данных выполняется квалифицированными специалистами в этой области, при этом сопровождать базу могут не те люди, которые ее проектировали и создавали. Вводят данные и осуществляют информационный поиск, как правило, специалисты в конкретной предметной области. Они же могут также создавать и поддерживать небольшие и несложные базы данных в своей области.
Существует много различных программных пакетов для работы с данными, например dBASE, FoxPro, MySQL, Oracle и др. СУБД, входящая в пакет MS Office, — это MS Access. Среди программ такого класса можно назвать, вероятно, только две — кроме Access это OpenOffice.org Base, компонент пакета OpenOffice фирмы Sun Microsytems. Их отличительной особенностью по сравнению с другими пакетами, помимо задачи работы с небольшими базами данных, является наличие дешевого (Access) и бесплатного (Base) графического интерфейса, позволяющего работать с данными без серьезной специальной подготовки. Конечно, минимальным набором знаний необходимо владеть, и этот необходимый набор, в частности, представлен в стандарте ECDL.
Несложные базы данных, как правило, состоящие из одной таблицы, можно создавать и в электронных таблицах MS Excel. Так как это тоже компонент пакета MS Office, в дальнейшем при необходимости их легко импортировать в СУБД MS Access.
Чем различается работа с данными в MS Access и в электронных таблицах, например в MS Excel?
С электронными таблицами удобно работать, если число записей невелико (не более 500–1000). При увеличении числа записей работать становится неудобно, главным образом из-за плохой структурированности данных1. Кроме того, быстро возрастает нагрузка на оперативную память. Если хранить данные в разных файлах, по мере накопления информации будет все труднее в них ориентироваться. MS Access хранит данные в одном файле, но доступ к ним организован так, чтобы не использовать лишние ресурсы памяти. Отметим, что некоторые другие СУБД хранят информацию в разных файлах, но работе с ними это никак не мешает.
СУБД имеет более развитую систему защиты от несанкционированного доступа, чем электронные таблицы, а также возможность одновременной работы многих пользователей с одним файлом. Электронные таблицы также позволяют это делать, но их возможности ограничены. Так, защиту информации при совместной работе над одним файлом в MS Excel организовать нельзя.
В MS Access возможно создание связи между таблицами, что позволяет совместно использовать данные из разных таблиц. Это экономит память, увеличивает скорость обработки данных, позволяет избежать ненужного дублирования и лишних ошибок. Именно это, прежде всего, и отличает СУБД от электронных таблиц.
СУБД MS Access обычно применяют в тех случаях, когда прикладная задача требует хранения и обработки разнородной информации о большом количестве объектов и предполагает возможность многопользовательского режима работы. Тем не менее даже для хранения не очень большого объема данных в некоторых случаях лучше использовать пакет MS Access просто потому, что в нем заранее предусмотрена защита данных не только от несанкционированного доступа, но и от не вполне корректного обращения, то есть выше сохранность данных. Электронные таблицы являются удобным средством хранения ограниченного количества записей, но все-таки их основное назначение — обработка данных, организованных в таблицы, их анализ, вычисления. Например, в них удобнее выполнять работу по подготовке данных для размещения в базе данных, например, при вводе информации со сканера и т.п. Кроме того, рабочие книги MS Excel предназначаются практически только для индивидуального пользования2. В отличие от MS Access упрощенные базы данных MS Excel принято называть списками.
Существуют различные способы организации данных. Так, в разное время использовались базы данных, основанные на инвертированных списках, иерархические, сетевые структуры данных и т.д. В последнее время появились объектно-ориентированные базы данных. Но на сегодняшний день практически все работающие базы данных соответствуют реляционной модели. Рассмотрим ее основные особенности.
Одним из самых естественных способов представления данных является двухмерная таблица. Связи между данными также могут быть представлены в виде двухмерных таблиц. Так, например, связь между двумя таблицами можно установить, записывая в один из столбцов третьей, связующей таблицы номера записей в первой таблице, а в другой столбец — соответствующие им номера записей во второй таблице.
Таким образом, любой набор данных может быть представлен в виде плоских таблиц. Каждая таблица связи обладает следующими свойствами:
• все элементы столбца имеют одинаковый тип данных; столбцам присвоены уникальные номера (имена);
• в таблице нет двух одинаковых строк; порядок расположения строк и столбцов в таблице не имеет значения.
Таблица такого рода называется отношением. База данных, построенная с помощью отношений, называется реляционной базой данных. Независимо от того, сколько таблиц входит в базу данных, каждая строка любой таблицы содержит данные об одном объекте (человеке, техническом устройстве, документе и т.д.), а столбцы содержат различные характеристики этих объектов (названия, адреса, даты и т.д.). Строки таблицы принято называть записями, а столбцы — полями записей. В полях записей содержатся атрибуты объектов записей. Все записи имеют одинаковые поля, содержащие разные значения атрибутов. Каждое поле записи имеет строго определенный тип данных — текст, число, дата и т.п.
Для того чтобы таблицы можно было связать между собой, используют ключевые поля. Так называют одно или несколько полей, значение которого (или комбинация значений которых) однозначно определяет каждую запись таблицы, делает эту запись уникальной. Такие поля позволяют не только связать между собой разные таблицы, но и выполнить быстрый поиск данных для представления их в запросе, форме на экране или в отчете на принтере. Ключ, состоящий из нескольких полей, называют составным.
Связи между таблицами бывают трех типов: «один к одному», «один ко многим» и «многие ко многим». Если мы составляем список сотрудников, то отношение между конкретным сотрудником и его адресом — «один к одному». А название лаборатории по отношению к списку сотрудников — «один ко многим», так как в одной лаборатории работает много (больше одного) сотрудников. А если сопоставить список преподавателей какого-либо вуза со списком учебных дисциплин, которые в этом вузе преподаются, придется использовать связь типа «многие ко многим»: одну дисциплину могут преподавать разные преподаватели, и в то же время один преподаватель может читать разные дисциплины. Подробнее об организации связей разного типа мы будем говорить в разделе 1.3. В данном случае отметим только, что при организации связи типа «один ко многим» таблицу «один» принято называть главной, а таб
...