Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция 6-СУБД.doc
Скачиваний:
33
Добавлен:
11.06.2015
Размер:
756.74 Кб
Скачать

117

VI. Информация о различных субд

СУБД ACCESS

СУБД MySQL

СУБД Sybase

СУБД DB2

СУБД Informix

СУБД Teradata Database

СУБД InterBase (FirebirdSQL)

СУБД dBASE III Plus и FoxPro

СУБД Ingres

Субд sql Server Другие субд (PostgreSql, "Линтер", Caché, "Паллада", eXtremeDb, Progress)

За почти пятидесятилетнюю историю развития БД были созданы сотни различных программных продуктов, которые обеспечивали управление данными. Это были разработки как ведущих разработчиков программных средств (MS, IBM, Oracle, др.), так и программные средства некоторых организаций в России и за рубежом. Только отдельные фирмы – разработчики сохранили свою приверженность к этому направлению. Рассмотрим кратко наиболее известные СУБД.

СУБД ACCESS

Microsoft Access – это настольная СУБД. Для работы с данными используется процессор баз данных Microsoft Jet, объекты доступа к данным и средство быстрого построения интерфейса — Конструктор форм. Для получения распечаток используются Конструкторы отчетов. Автоматизация рутинных операций может быть выполнена с помощью макрокоманд. Если не хватает функциональности визуальных средств, можно обратиться к созданию процедур и функций. При этом как в макрокомандах можно использовать вызовы функций, так и из кода процедур и функций можно выполнять макрокоманды [2].

В отличие от других рассматриваемых средств разработки, СУБД Access имеет русифицированный интерфейс и частично переведенный на русский язык файл контекстной помощи. Характеристики СУБД ACCESS представлены в таблицах 1, 2.

Таблица 1 - Спецификации БД

Характеристика

Значение

Максимальный размер файла БД (.mdb)

1 Гбайт

Число объектов в базе данных

32768

Количество модулей, включая формы и отчеты

1024

Число символов в имени объекта

64

Число символов в пароле

14

Число символов в имени пользователя или группы

20

Число одновременно работающих пользователей

255

Таблица 2 - Спецификации таблиц

Характеристика

Значение

Число символов в имени таблицы

64

Число символов в имени поля

64

Количество полей в таблице

255

Количество открытых таблиц

1024

Максимальный размер таблицы

1 Гбайт

Число символов в текстовом поле

255

Число символов в поле Memo

при вводе данных программным путем

65535

1 Гбайт

Максимальный размер объекта OLE

1 Гбайт

Количество индексов в таблице

32

Количество полей в индексе

10

Число символов в выражении для условия на значение

2048

Число символов в описании таблицы или поля

255

Число символов в записи, не считая поля MEMO и поля объектов OLE

2000

Число символов в выражении для значения свойства

255

В СУБД Access существуют следующие объекты – таблицы, формы, отчеты, запросы, макросы, модули, события.

Прежде чем создавать таблицы, формы и другие объекты необходимо задать структуру БД. У полей таблицы задаются свойства, обязательность их заполнения, условие на значение записи и полей, отображение и скрытие линий сетки, маска ввода, связи между таблицами; оформление настраивается или указывается по умолчанию; можно увеличить ширину столбца, изменить структуру таблицы.

В СУБД Access есть несколько способов создания таблиц: в режиме «Конструктор», с помощью «Мастера таблиц», путем непосредственного ввода данных в таблицы, через запрос SQL, с применением функции языка Visual Basic for Applications (VBA), путем импорта таблиц из других БД. Каждый из этих способов имеет свои плюсы и минусы. Во всех случаях остается возможность в любое время изменить и расширить созданную БД. Хотя при созданной и эксплуатируемой БД нельзя без веских причин изменять структуру БД (добавлять, удалять поля, изменять свойства полей).

Создание таблицы в режиме «Конструктор» позволяет описать каждое поле и назначить свойства полям. Для каждого поля задается значение по умолчанию, размер, имя, свойства, дается описание. Поле можно переименовывать, указать подпись в качестве альтернативного имени, удалить, изменить тип данных, настроить параметры по умолчанию.

С помощью «Мастера» можно быстро создать БД со всеми необходимыми таблицами, формами и отчетами на основе имеющихся в системе заготовок. Это простейший способ быстрого создания БД.

Можно создать пустую БД, а затем добавить в нее таблицы, формы, отчеты и другие объекты. Такой способ является наиболее гибким, но требует отдельного определения каждого элемента БД.

Встроенный язык SQL позволяет максимально гибко работать с данными и значительно ускоряет доступ к внешним данным. С помощью команды Create можно определить состав полей и их основные свойства.

С помощью языка программирования VBA можно создавать массивы, свои типы данных, вызывать DLL-функции, с помощью OLE Automation - контролировать работу приложений, которые могут функционировать как OLE-серверы. Можно целиком создавать базы данных с помощью кодирования, когда в этом появляется необходимость.

Для визуализации данных используются формы. Большая часть данных, представленных в форме, берется из таблицы или запроса. Другая информация, несвязанная ни с таблицей, ни с запросом, хранится в макете формы. Для создания связи между формой и записями таблицы, являющейся источником данных формы, используются графические объекты, называемые элементами управления. Формы могут содержать следующие разделы: заголовок, верхний колонтитул, область данных, нижний колонтитул и примечание. Формы создаются с помощью Конструктора или Мастера. В форме отчетов можно задать вставку даты, построение диаграмм, автоотчет.

С помощью запросов Select можно просматривать, анализировать и изменять данные из нескольких таблиц. Они также используются для получения данных из таблиц для форм и отчетов. При выполнении запроса на выборку данные, удовлетворяющие условиям отбора, выбираются из одной или нескольких таблиц и выводятся в определенном порядке. Запрос может вычислять сумму, среднее значение, число элементов и значения других статистических функций, группируя данные и выводя их в компактном виде. Запрос создается с помощью соответствующего Мастера или Конструктора запросов. В бланке запроса указывается значения полей, которые будут использоваться в вычислениях или в качестве заголовков строк и столбцов. С помощью команд SQL и фильтров можно также добавлять таблицы, поля, изменять заголовки столбцов, отображать все поля, перемещать столбцы, редактировать, сортировать по столбцам, осуществлять запрос записей без подчиненных таблиц, запрос нескольких элементов, создавать окно ввода. Условия отбора задаются с помощью другого поля, сравнением на содержание текста или значение числа.

Отчет — это средство для организации данных при выводе на печать. Сведения для отчета берутся из базовой таблицы, запроса или инструкции SQL, являющихся источниками данных для отчета. Другие сведения вводятся при разработке отчета. Вся информация в отчете разбивается на разделы, каждый из которых имеет специальное назначение. При печати разделы располагаются на страницах в определенном порядке. В режиме Конструктор на экране отображается макет каждого раздела отчета в одном экземпляре. При печати некоторые разделы могут неоднократно повторяться. Элементы управления, такие как надпись или поле, находящиеся в разделе, определяют местоположение информации в отчете. Отчет с группировкой данных позволяет вычислить итоговые значения для групп, а также представить информацию в удобном для использования виде. При выводе результатов можно поставить номера страниц, указать параметры страниц, отправить по e-mail, печатать одну или несколько записей, отчеты, формы, запросы вывести в формате Word или HTML.

Макросом называют набор из одной или более макрокоманд, выполняющих определенные операции, такие как открытие форм или печать отчетов. С помощью Макросов можно определить горячие клавиши, создать БД с помощью окна, др. Макросы могут быть полезны для автоматизации часто выполняемых задач. Например, при нажатии пользователем кнопки можно запустить макрос, который распечатает отчет. Макрос может быть как собственно макросом, состоящим из последовательности макрокоманд, так и группой макросов. При наличии большого числа макросов, объединение родственных макросов в группы может упростить управление базой данных. Для просмотра имен макросов для выбранной группы макросов достаточно в окне макроса в меню Вид выбрать команду Имена макросов. При запуске макроса в группе макросов, выполняется макрокоманда в столбце Макрокоманда, а также все следующие макрокоманды, в которых столбец Имя макроса пуст. Для запуска макроса из группы макросов следует указать имя группы, а затем, через точку, имя макроса.

Модуль - это набор объявлений и процедур (программа-приложение) на языке VBA, используемом также в Excel, Word, PowerPoint. Модули форм и модули отчетов связаны с определенными формами или отчетами. Они часто содержат процедуры обработки событий, запускаемых в ответ на событие в форме или отчете. Процедуры обработки событий используются для управления поведением формы или отчета и их откликом на события, например, такие как нажатие кнопки. При создании первой процедуры обработки события для формы или отчета автоматически создается связанный с ней модуль формы или отчета. Для просмотра модуля для формы или отчета достаточно нажать кнопку Программа на панели инструментов в режиме «Конструктор». В процедурах модулей форм и отчетов могут содержаться вызовы процедур, добавленных в стандартные модули. В стандартных модулях содержатся общие процедуры, не связанные ни с каким объектом, а также часто используемые процедуры, которые могут быть запущены из любого окна БД. Для просмотра списка стандартных модулей БД выберите вкладку «Модули» в окне БД. Формы, отчеты и стандартные модули выводятся также в окно просмотра объектов.

Событие - это определенное действие, которое происходит над объектами БД или возникает в определенном объекте. СУБД Access реагирует на большое число различных событий: нажатие кнопки мыши, изменение данных, открытие или закрытие форм, и т.д. Обычно события возникают вследствие действий пользователя. С помощью процедур обработки события или макроса возможно определение собственных откликов на события, происходящие в форме, отчете или элементе управления. При создании процедуры обработки события для объекта в модуль формы или модуль отчета добавляется именованная заготовка процедуры обработки события для данного события и объекта. Остается только дописать код, определяющий желаемый отклик на событие в форме или отчете. Чтобы в ответ на событие запустить макрос, следует открыть окно свойств для формы, отчета или элемента управления, найти соответствующее событию свойство и установить в качестве его значения вызов макроса.

Рассмотрим операции, которые можно выполнять над различными объектами БД ACCESS.

База данных: ОТКРЫТЬ, ВЫХОД из ACCESS, Архивариус, Импорт/Экспорт в/из Excel, Access, HTML, Word, dBase, FoxPro; Репликация - восстановление основной реплики, использование портфеля, синхронизация, создание реплики, устранение конфликтов.

Данные: ВВОД, ВЫДЕЛЕНИЕ, ЗАМЕНА, КОПИРОВАНИЕ, ПОИСК, РЕДАКТИРОВАНИЕ, СОРТИРОВКА, Исправление ошибокАВТОЗАМЕНА, ОТМЕНА, ОРФОГРАФИЯ; Гиперссылка - создание поля, ВВОД, ИЗМЕНЕНИЕ, КОПИРОВАНИЕ; Запись - ДОБАВЛЕНИЕ НОВОЙ, КОПИРОВАНИЕ, ПЕРЕХОД, УДАЛЕНИЕ; Индекс - ключ, индекс (создание для одного или нескольких полей); Объекты OLE (рисунки, звук, видеоклипы, файлы) – ВВОД.

Операции с файлами: восстановление закрытой и открытой БД, преобразование БД, сжатие, установка папки по умолчанию, защита БД на уровне пользователя, ограничение прав пользователя, создание пароля БД, создание файла рабочей группы, шифровка/дешифровка, резервное копирование.

Элемент управления: выделение, выравнивание текста в полях, вычисление и добавление полей, изменение свойств, типа, интервала, ограничение значений, подготовка надписей, определение шрифтов, цвета.

Справки: содержание и предметный указатель, контекстная помощь, поиск темы, ПОМОШНИК, совет дня.

В СУБД ACCESS имеется возможность построения законченного приложения для работы низко квалифицированного пользователя - кнопочной формы, определение параметров запуска приложения, построение пользовательского меню и панелей инструментов, связывание меню и панелей инструментов с формами и отчетами.

В Microsoft Access есть Мастер анализа таблиц, анализатор быстродействия и Мастер анализа приложений. Мастер анализа таблиц исследует таблицу, в случае необходимости предлагает новую структуру и связи, а также переделывает ее. Анализатор быстродействия исследует всю БД, дает рекомендации по ее улучшению, а также осуществляет их.

Начиная с версии СУБД Access 2000, поддерживается совместимость версий «снизу вверх». Это означает, что .mde-файл созданный в СУБД Access 2000 будет работать в более поздних версиях, а вот наоборот - не будет. Дело в том, что от версии к версии меняется формат .mde файла. Преобразованная таким образом БД будет работать быстрее, потому, что скомпилируются все модули приложения. Но в результате уже нельзя редактировать формы и отчеты в режиме конструктора. Преобразовать файл .mde в .mdb обратно стандартными средствами СУБД Access так же невозможно. Поэтому необходимо всегда сохранять исходную (.mdb) версию БД. Можно сделать исполняемый файл .exe, способный работать без наличия СУБД Access.

При компиляции в СУБД Access создается не машинный (двоичный) код, а так называемый p-код. Р-код близок к машинному, но программа в р-коде не может быть непосредственно выполнена процессором. Преобразование (трансляция) в двоичный код происходит во время выполнения программы. Без p-кода невозможно было бы прерывать выполнение приложений, редактировать тексты программ и снова продолжать выполнение.

При работе в сети файл mdb размещают на сервере, а mde-программы на компьютерах пользователя. Если надо поменять старую версию программы на новую, то не надо останавливать всю работу предприятия в случае с одним mdb файлом. Просто отлаживается mde-программа на компьютере пользователя, добавляются поля, таблицы в файлы mdb на сервере, а потом заменяются по сети mde-файлы пользователей. Если mdb-таблицы хранятся на сервере, то можно подключиться к ним через драйверы ODBC из любой версии СУБД Access.

Если количество таблиц превышает 50 шт., то с таким числом таблиц трудно работать. Поэтому надо разделять БД на несколько частей.

Установка связей между таблицами делается в специальной вкладке «Схема данных». В открывшемся диалоговом окне выбираем кнопку «Добавить таблицу». В появившемся диалоговом окне раскрываем вкладку таблицы и выбираем нужные.

Для установки связи между таблицами нужно выбрать в одной из таблиц поле для связи, нажать левую кнопку мыши и перетащить поле во вторую таблицу. Отпустить левую кнопку мыши над тем полем подчиненной таблицы, с которым устанавливается связь. После этого появится диалоговое окно «Изменение связей». Здесь поставьте автоматическую проверку ссылочной целостности - флажок обеспечение целостности данных, и если требуется, каскадное обновление/удаление связанных полей. В каждой таблице должен быть ключ - идентификатор записи. Чаще всего ключами делают поля типа «счетчик» - числовое поле с уникальными значениями. Но можно проиндексировать еще одно поле в таблице и тогда поиск пойдет быстрее.

При добавлении и удалении записей или при обновлении значений в индексном поле требуется обновлять индекс, что при большом количестве индексов в таблице может замедлять работу. Поэтому индексы рекомендуется создавать только для тех полей таблицы, по которым наиболее часто выполняется поиск записей. Индексировать можно любые поля, кроме МЕМО-полей, полей типа Гиперссылка и объектов OLE.

Для индексирования открываем таблицу в режиме Конструктор, выбираем поле, для которого требуется создать индекс, далее во вкладке «Общие» выбираем для свойства Индексированное поле значение: Да (Допускаются совпадения) или Нет (Совпадение не допускаются). Индекс может быть составным. Обычно такую индексацию применяют, когда нужно задать уникальные значения для группы полей. Снова открываем таблицу в режиме Конструктора, на панели инструментов Конструктор таблиц жмем кнопку Индексы. В первой пустой строке поля Индекс вводим имя индекса, затем в поле Имя поля жмем на стрелку и выбираем первое поле, для которого необходимо создать индекс. В следующей строке поля Имя поля указываем второе индексируемое поле, причем для данной строки поле Индекс должно оставаться пустым. Далее повторяем это для всех полей, которые необходимо включить в индекс (разрешается включать в индекс до 10 полей).

Для коммерческого распространения приложений, разработанных на СУБД Access, предназначен пакет Access Developer Toolkit, вместе с которым поставляются некоторые дополнения и несколько дополнительных объектов ActiveX. Главное качество СУБД Access – тесная интеграция с Microsoft Office. К примеру, скопировав в буфер графический образ таблицы, открыв Microsoft Word и применив вставку из буфера, получим в документе готовую таблицу с данными из БД.

Вся работа с БД осуществляется через окно контейнера. Отсюда осуществляется доступ ко всем объектам, а именно: таблицам, запросам, формам, отчетам, макросам, модулям.

Посредством драйверов ISAM можно получить доступ к файлам таблиц некоторых других форматов: DBASE, Paradox, Excel, текстовым файлам, FoxPro, а посредством технологии ODBC – и к файлам многих других форматов.

СУБД Access может выступать как в роли OLE контролера, так и ОЕЕ сервера. Это значит, что можно контролировать работу приложений Access из любого приложения, при условии, что оно может выступать в роли OLE контролера и наоборот.

При создании многих объектов и элементов управления в Access предоставляется несколько возможностей реализации поставленной задачи. Как правило, большая часть объектов создается визуально, путем нажатия кнопки Создать. При этом необходимо находиться в контейнере базы данных на той вкладке, объекты которой вас интересуют. В качестве альтернативы можно воспользоваться меню Вставка и выбрать в нем соответствующий объект.

Многие разработчики стараются «навешивать» на одну форму множество элементов: полей, полей со списками, подчиненных форм, вкладок на которых опять поля и т.д. Это чревато потерей скорости загрузки такой формы. Дело в том, что обычно каждый элемент имеет связанный с ним источник данных, который нужно «подцепить» при открытии.

Бывает так, что прежде нормально грузившаяся форма, вдруг начинает «тормозить». Одной из причин может быть то, что источник данных такой формы - вся таблица, которая, как известно, заполняется. Все нормально, пока данных там порядка нескольких тысяч строк. Если больше, то при работе такая форма заметно потяжелеет, особенно, если она сделана как подчиненная на основной. Как выход - использовать в качестве источника данных формы запрос, где количество записей можно ограничить, например, периодом дат (текущий год, месяц).

Старайтесь не использовать больше одной - двух подчиненных форм. Помните, что при открытии основной формы последовательно происходит загрузка в саму форму и подчиненные, что требует времени. Особенно это касается форм с вкладками, на которых расположены подчиненные. Уменьшайте на форме число скрытых полей и подчиненных форм, которые используются для вычисления или поиска.

Наличие большого количества полей со списками, источники данных которых запросы к таблицам с большим количеством записей, так же нежелательно по причине загрузки данных в такие поля при открытии формы. Некоторые подчиненные формы не несут важной в данный момент информации и их можно загружать уже после загрузки основной, например нажатием на кнопку или двойным щелчком по полю.

Если убрать галочку для раздела меню «Сервис - Параметры - Вкладка общие - Отслеживать автозамену имен», то приложение будет работать быстрее.

Проводите регулярное сжатие БД. Это можно настроить автоматически в разделе меню «Сервис - Параметры - Вкладка общие - Сжимать при закрытии». Дело в том, что в СУБД Access есть своя «корзина», и при удалении записи физически не удаляются, а помечаются как удаленные (знаком *), то есть «становятся в очередь на удаление». Так же в СУБД Access есть скрытые системные таблицы, в которых хранятся параметры форм. Форму удалили, а параметры остались. Включили в БД много рисунков, она резко увеличилась по объему, удалили рисунки - а размер остался. Выход - сжатие базы (дефрагментация). При регулярном сжатии база становиться более устойчивой.

Рекомендуется отключить Journal (Журнал) в Outlook. Журнал Outlook генерирует запись при каждом запуске и выходе из приложения. Этот журнал может стать очень большим и будет поглощать дисковое пространство и процессорное время, необходимое приложению.

Соседние файлы в папке Лекции