Взаимосвязь между таблицами одной базы данных называется схемой данных. Существует несколько типов возможных связей между таблицами. Наиболее распространенными являются связи «один ко многим», «один к одному». Связь организуется на основе общего поля, причем в одной из таблиц (на стороне «один») оно обязательно должно быть ключевым.
Ключевое поле (первичный ключ) - поле с неповторяющимися, уникальными данными.
Технология «Клиент-сервер» - технология, разделяющая приложение СУБД на две части: клиентскую (интерактивный графический интерфейс, расположенный на компьютере пользователя) и сервер, собственно осуществляющий управление данными, разделение информации, администрирование и безопасность, находящийся на выделенном компьютере. Взаимодействие «клиент – сервep» осуществляется следующим образом: клиентская часть приложения формирует запрос к серверу баз данных, на котором выполняются все команды, а результат исполнения запроса отправляется клиенту для просмотра и использования. Данная технология применяется, когда размеры баз данных велики, когда велики размеры вычислительной сети, и производительность при обработке данных, хранящихся не на компьютере пользователя.
SQL (Structured Query Language - язык структурированных запросов) - универсальный язык, предназначенный для создания и выполнения запросов, обработки данных как в собственной базе данных приложения, так и с базами данных, созданных другими приложениями, поддерживающими SQL. Также SQL применяется для управления реляционными базами данных.
Основные функции системы управления базами данных (СУБД):
- непосредственное управление данными во внешней памяти. Эта функция включает обеспечение необходимых структур внешней памяти как для хранения данных, непосредственно входящих в БД, так и для служебных целей, например, для убыстрения доступа к данным в некоторых случаях (обычно для этого используются индексы);
- управление буферами оперативной памяти. СУБД обычно работают с БД значительного размера; по крайней мере, этот размер обычно существенно больше доступного объема оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов;
- управление транзакциями. Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует изменения БД, произведенные этой транзакцией, во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие «транзакции» необходимо для поддержания логической целостности БД;
- журнализация. Одним из основных требований к СУБД является надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два возможных вида аппаратных сбоев: так называемые мягкие сбои, которые можно трактовать как внезапную остановку работы компьютера (например, аварийное выключение питания), и жесткие сбои, характеризуемые потерей информации на носителях внешней памяти. Поддержание надежности хранения баз данных в БД требует избыточности хранения данных, причем та часть данных, которая используется для восстановления, должна храниться особо надежно. Наиболее распространенным методом поддержания такой избыточной информации является ведение журнала изменений БД. Журнал изменений - это особая часть БД, недоступная пользователям СУБД и поддерживаемая с особой тщательностью (иногда поддерживаются две копии журнала, располагаемые на разных физических дисках), в которую поступают записи обо всех изменениях основной части БД. Во всех случаях придерживаются стратегии «упреждающей. записи в журнал (так называемого протокола Write Ahead Log - WAL). Самая простая ситуация восстановления - индивидуальный откат транзакции;
- поддержка языков БД. Для работы с базами данных используются специальные языки, в целом называемые языками баз данных. В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с БД, начиная от ее создания, и обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language).
Поля - это основные элементы структуры базы данных. Они обладают свойствами. От свойств полей зависит, какие типы данных можно вносить в поле, а какие нет, а также то, что можно делать с данными, содержащимися в поле.
Основным свойством любого поля является его длина. Длина поля выражается в символах или в знаках. От длины поля зависит, сколько информации в нем может поместиться. Так как символы кодируются одним или двумя байтами, то можно условно считать, что длина поля измеряется в байтах.
Очевидным уникальным свойством любого поля является его имя. Одна база данных не может иметь двух полей с одинаковым именем. Кроме имени у поля есть еще свойство подпись. Подпись - это та информация, которая отображается в заголовке столбца. Ее нельзя путать с именем поля, хотя если подпись не задана, то в заголовке отображается имя поля. Разным полям, например, можно задать одинаковые подписи.
Система управления базами данных (СУБД) MS Access ориентирована на работу с объектами, к которым относятся таблицы базы данных, формы, запросы, отчеты, макросы и модули. Для типовых процессов обработки данных - ввода, просмотра, обновления, поиска по заданным критериям, получения отчетов, Access позволяет конструировать в диалоговом режиме такие объекты, как формы, запросы, отчеты. Эти объекты состоят из графических элементов, называемых элементами управления. Основные элементы управления служат для связи объектов с записями таблиц, являющихся источниками данных.
Множество мастеров MS Access помогает пользователю выполнить работы, не прибегая к конструированию. Мастера позволяют создать новые формы, запросы, отчеты, анализировать таблицы базы данных и даже полностью создать одну из многочисленных типовых баз данных.
Для создания приложений пользователя могут использоваться макросы и модули на языке программирования Visual Basic.
Каждый объект и элемент управления имеет свои свойства, определяя которые можно настраивать объекты и элементы управления.
Таблицы создаются пользователем для хранения данных по одному объекту модели данных предметной области.
Запросы создаются пользователем для выборки нужных данных из одной или нескольких связанных таблиц. Запрос может формироваться с помощью запросов по образцу QBE или с помощью языка структурированных запросов SQL. С помощью запроса также можно обновить, удалить или добавить данные в таблицы или создать новые таблицы на основе уже существующих.
Формы предназначены для ввода, просмотра и корректировки взаимосвязанных данных базы на экране в удобном виде, который может соответствовать привычному для пользователя документу. Формы также могут использоваться для создания панелей управления в приложении пользователя.
Отчеты предназначены для формирования выходного документа, предназначенного для вывода на печать.
Макросы содержат описание действий, которые должны быть выполнены в ответ на некоторое событие. Каждое действие реализуется макрокомандой. Выбор макрокоманд и задание параметров, используемых ими при выполнении, является простой автоматизированной операцией. Макрос позволяет объединить разрозненные операции обработки данных в приложении.
Модули содержат программы на языке Visual Basic, которые могут разрабатываться пользователем для реализации нестандартных процедур при создании приложения.
Запрос можно представить себе как точку зрения на данные, включенные в таблицу. Запросы служат для селекции и фильтрации набора данных. Они позволяют выбрать из базы только необходимую информацию, которая соответствует определенному критерию (условию) и нужна для решения конкретной задачи.
В качестве примера рассмотрим организацию запросов в системе управления базами данных (СУБД) Мiсrоsоft Access. Результат обработки запроса представляет собой таблицу, называемую Dynaset. В эту таблицу включены выбранные из основной таблицы (или нескольких таблиц) блоки данных, которые удовлетворяют критериям запроса. Dynaset - динамический, временный набор данных, поэтому при каждом выполнении запроса он строится вновь на основе «свежих» табличных данных.
Выделяют два типа запросов:
- QВЕ-запросы (Query Ву Example - запрос по образцу). Пользователь дает им определения, специфицируя отдельные параметры в окне проектирования с использованием подсказок (образцов);
- SQL-запросы (Btructured Query Language - структурированный язык запросов). Пользователь формулирует их с использованием инструкций и функций, выстраивая описание. QВЕ-запрос Access легко транслирует в соответствующий SQL-запрос. Обратная операция тоже не составляет труда.
Можно воспользоваться запросом для проведения вычислений с блоками данных. Он может задать в каждом поле некоторую функцию, обрабатывающую содержимое этого поля. Результат обработки выдается в Dynaset. Функция обработки задается в строке Total, которая появляется после нажатия в пиктографическом меню кнопки с греческой литерой «сигма». Саму функцию можно выбрать в этой строке, развернув список возможных значений.
С помощью структурированного языка запросов SQL в рамках МS Access пользователь может сформулировать сколь угодно сложные по структуре критериев и вычислений запросы. Этот же язык позволяет управлять обработкой запросов. SQL-запрос представляет собой последовательность инструкций, в которую могут включаться выражения и вызовы агрегатных функций.