Лекция 19
Тема: ЗНАКОМСТВО с СУБД ACCESS. ПОНЯТИЕ О ЯЗЫКЕ ЗАПРОСОВ SQL
Литература:
1. Информатика. /Под ред. Н.В.Макаровой. – М.: Финансы и статистика, 2006
2. Информатика. 3-е изд. /А.Н.Степанов – СПб.: Питер, 2003
Знакомство с СУБД MS Access
MS Access — одна из самых мощных, гибких и простых в использовании СУБД. Возможностей Access достаточно для того, чтобы создавать и доступные рядовому пользователю приложения, и весьма сложные структуры, используя специальный язык программирования — Visual Basic for Applications. Достоинством Access является также интегрированность с пакетом Microsoft Office. Данные, созданные в разных приложениях, входящих в этот пакет, легко импортируются из одного приложения в другое. В Access используется стандартный для среды Windows (и ее приложений) многооконный графический интерфейс, но в отличие от других приложений, не многодокументальный. Единовременно может быть открыта только одна база данных.
Объектом обработки MS Access является файл БД, имеющий имя (заданное по правилам Windows) и расширение .mdb. В этот файл входят следующие основные объекты MS Access:
q таблицы — базовые объекты MS Access. В БД может быть много взаимосвязанных двумерных таблиц. В них хранятся данные; Это базовый объект БД, все остальные объекты создаются на основе существующих таблиц (производные объекты);
q формы — необязательные элементы БД. Режим формы используется для просмотра, изменения, добавления и удаления данных. Кроме того, форму можно применять для проверки вводимых данных или для управления работой других форм, в формы можно внедрять объекты (рисунки, графики). Если нужно автоматизировать работу с данными, лучше использовать формы;
q запросы — это производные таблицы, которые создаются пользователем для выборки нужных данных из одной или нескольких связанных таблиц. С помощью запросов данные можно упорядочивать, фильтровать, изменять, объединять, создавать новые таблицы на основе существующих и т. п.;
q отчеты — это, фактически, те же запросы, но оформленные в удобном и наглядном виде для вывода данных на принтер. Создать действительно полноценный выходной документ с использованием всех средств форматирования текста и дополнительной обработки данных можно только с помощью отчетов;
q макросы — это макрокоманды. Если какие-то операции с данными повторяются довольно часто, то эти операции можно сгруппировать в макрос и далее выполнять эту группу операций, используя назначенную комбинацию клавиш;
q модули — это программные процедуры, служащие для автоматизации работы с БД. Модули пишутся на языке Visual Basic.
Каждый из перечисленных объектов может иметь имя не более 64 произвольных символов (за исключением точки и некоторых специальных знаков). Таким же требованиям должны удовлетворять имена полей.
В таблицах MS Access можно хранить данные следующих типов:
q текстовые — произвольные последовательности символов (до 255);
q числовые — числа любого типа;
q денежные — данные, выраженные в денежных единицах;
q дата/время — календарные даты, текущее время;
q логические — поле может принимать одно из значений — истина (true) или ложь (false) (ДА, НЕТ);
q счетчики — целые порядковые номера, вводятся в поле автоматически для каждой записи; эти числа не могут быть изменены пользователем;
q поля МЕМО — тексты, имеющие длину более 255 символов (до 65 535 символов). Физически текст не хранится в поле, он хранится в другом месте БД, а в поле находится указатель на него;
q поля объекта OLE — рисунки, звуковые файлы, таблицы Excel, документы Word (на самом деле такие объекты хранятся не в таблице, а в другом месте БД, в таблице содержатся только указатели на эти объекты);
q гиперссылки — специальные поля для хранения адресов Web-страниц. При щелчке на ссылке автоматически запускается браузер и загружается Web-страница.
Каждый тип поля имеет свой набор свойств. Наиболее важными свойствами полей являются:
· Размер поля. Определяет максимальную длину текстового или числового поля.
· Формат поля. Устанавливает формат данных.
· Обязательное поле. Указывает на то, что данное поле обязательно надо заполнить.
Основные этапы создания БД (в Access)
1. Создание структуры БД
· определение количества полей;
· название полей;
· тип данных, хранящихся в полях.
2. Ввод и редактирование данных
3. Связывание таблиц. После создания различных таблиц, содержащих данные, надо обеспечить целостность базы данных. Для этого необходимо связать таблицы между собой. Если одной записи в первой таблице могут соответствовать несколько записей во второй таблице, и наоборот, одной записи во второй таблице – несколько записей в первой таблице, то реализуется связь в отношении «многие-ко-многим». Две таблицы, находящиеся в отношении «многие-ко-многим» могут быть связаны только с помощью третьей (связующей).
4. Создание форм, запросов, отчетов и т.п.
СУБД Access для построения всех видов запросов, а также для обновления и управления реляционными базами данных, использует структурированный язык запросов SQL (Structured Query Language). Когда пользователь создает запрос в режиме конструктора запроса, Access автоматически создает эквивалентную инструкцию SQL. Фактически, для большинства свойств запроса, доступных в окне свойств в режиме конструктора, имеются эквивалентные предложения или параметры языка SQL. Операторы SQL, соответствующие данному запросу, отображаются в режиме "Конструктор" командой ВИД/РЕЖИМ SQL.
SQL предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление), а также некоторых сопутствующих операций.
SQL является непроцедурным языком и не содержит имеющихся в обычных языках программирования операторов управления, организации подпрограмм, ввода-вывода и т.п. Поэтому SQL автономно не используется, он обычно погружен в среду встроенного языка программирования СУБД (например, Fox Pro) или процедурного языка C++ или Pascal.
В современных СУБД с интерактивным интерфейсом можно создавать запросы, не применяя SQL, однако его применение позволяет расширить возможности СУБД. В различных СУБД состав операторов SQL несколько отличается.
Основные операторы SQL:
CREATE TABLE – создание таблицы;
DROP TABLE – удаление таблицы;
ALTER TABLE – изменение структуры таблицы;
SELECT, UPDATE, INSERT, DELETE – выборка, изменение, вставка, удаление записей.
Оператор SELECT позволяет выполнять выборку и вычисления над данными одной или нескольких таблиц (имя таблицы и поля разделяются точками).
Синтаксис оператора SELECT (необязательные опции даны в квадратных скобках):
SELECT [ALL|DISTINCT] <список данных>
FROM <список таблиц>
[WHERE <условие выборки>]
[GROUP BY <имя поля> [, <имя поля>]…]
[HAVING <условие поиска>]
[ORDER BY <спецификация сортировки> [, <спецификация сортировки>]…]
Результатом выполнения оператора SELECT является также таблица, которая может иметь (ALL) или не иметь (DISTINCT) повторяющиеся строки.
Далее на рис.22, рис.23 и рис.24 приводятся примеры экранов в СУБД Access, иллюстрирующих создание запроса на выборку фамилий трёх клиентов, имеющих максимальный кредит: бланк запроса, выполненный запрос и этот же запрос на языке SQL.
Рис 22
Рис 23
Рис. 24
Связи в базе данных
Преимуществом установки связей является поддержка целостности базы данных: данные автоматически защищаются от изменения и удаления тех записей, которые могут нарушить связи между таблицами. Например, невозможно удалить код клиента из таблицы “КЛИЕНТЫ”, если в таблице “ЗАКАЗЫИ ПРОДАЖИ” имеются сведения об операциях с данным клиентом. Связываемые поля обычно имеют одинаковые имена (это не обязательно), и одинаковые типы данных (это обязательно!). Чаще всего связывают ключевое поле одной таблицы с совпадающим полем другой.
ACCESS поддерживает три типа отношений между таблицами (его необходимо указывать при установлении связи):
· Один-к-одному, когда каждая запись в одной таблице соответствует только одной записи в другой таблице (оба поля уникальные);
· Один-ко-многим (например, может быть много записей в таблице "ЗАКАЗЫИ ПРОДАЖИ" для одного и того же клиента);
· Много-ко-многим.
Создание и удаление связей осуществляется командой СЕРВИС/СХЕМА ДАННЫХ. Создание и удаление связей между открытыми таблицами не допустимо, их нужно предварительно закрыть.
В окне “Схема данных” связываемое поле одной таблицы перемещается на соответствующее поле второй таблицы, при этом открывается окно "Изменение связей". Тип отношения устанавливается автоматически с учётом уже заданного свойства связываемых полей "Индексированное поле" (см. рис.9)
В этом же окне необходимо установить флажок “Обеспечение целостности данных” и нажать на кнопку “Создать”. После создания связи в окне “Схема данных” связанные поля будут соединены линией с соответствующими обозначениями.
Чтобы преодолеть ограничения на удаление или изменение связанных записей, следует при установлении связи включить режимы "Каскадное обновление связанных полей" и "Каскадное удаление связанных записей".