logo search
Алексеев информатика

6.4. Базы данных

Одной из важных возможностей ЭВМ является хранение и обработка больших объемов информации, причем происходит накопление не только текстовых и графических документов (рисунки, чертежи, фотографии, географические карты), но и страниц глобальной сети HTML, звуковых и видеофайлов. Эти возможности реализуются с помощью баз данных.

База данных (БД) – совокупность данных, организованных по определенным правилам, предусматривающим общие принципы описания, хранения и манипулирования данными, которые относятся к определенной предметной области.

Под данными понимается информация, представленная в виде, пригодном для обработки автоматическими средствами при возможном участии человека.

Под предметной областью понимается однородная часть реального мира, представляющая интерес для конкретного исследования.

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

Главное достоинство электронных БД – возможность быстрого поиска и сортировки (отбора) информации, а также простая генерация (создание) отчета по заданной форме. Например, по номерам зачеток легко определить фамилии студентов или по фамилии писателя составить список его произведений.

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

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

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

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

Программисты и системные аналитики, создавая БД, стремятся упорядочить информацию по различным признакам (реквизитам, атрибутам), для того чтобы можно было извлекать из БД информацию с произвольным сочетанием признаков.

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

Системы управления базами данных (СУБД) – пакет программ, обеспечивающих создание БД и организацию данных. СУБД позволяют вводить, отбирать и редактировать данные. СУБД предоставляют средства для извлечения данных по определенному критерию (требованию, правилу). СУБД дают возможность конечным пользователям осуществлять непосредственное управление данными, а программистам и системным аналитикам быстро разрабатывать более совершенные программные средства их обработки.

Рассмотрим существующие классификации баз данных.

По технологии обработки данных БД подразделяются на централизованные и распределенные.

Централизованная БД хранится в памяти одной ЭВМ.

Распределенная БД состоит из нескольких частей (возможно, пересекающихся или даже дублирующих друг друга), хранящихся на различных ЭВМ вычислительной сети.

По способу доступа к данным базы данных разделяются на БД с локальным доступом и БД с удаленным (сетевым) доступом.

При локальном доступе БД размещена на одной отдельной ЭВМ, и считывание информации из БД производится непосредственно с этой машины. При удаленном доступе управление машиной, на которой размещена БД, производится по сети с другой ЭВМ.

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

Реляционная БД является простейшей и наиболее привычной формой представления данных в виде таблицы. В теории множеств таблице соответствует термин отношение (relation), который и дал название этой БД. Для нее имеется развитый математический аппарат – реляционное исчисление и реляционная алгебра, где определены такие математические операции, как объединение, вычитание, пересечение, соединение и др.

Существенный вклад в разработку БД этого типа сделал американский ученый Е. Кодд (Е. Codd).

Достоинством реляционной БД является сравнительная простота инструментальных средств ее поддержки, недостатком – жесткость структуры данных (невозможность, например, задания строк таблицы произвольной длины) и зависимость скорости ее работы от размера базы данных. Для многих операций, определенных в такой БД, может оказаться необходимым просмотр всей БД.

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

Указанный недостаток снят в сетевой БД, в которой (по крайней мере, теоретически) возможны связи «всех со всеми». Поскольку на практике это осуществить невозможно, приходится прибегать к некоторым ограничениям. Использование иерархической и сетевой БД ускоряет доступ к информации в базе данных. Каждый элемент данных должен содержать ссылки на некоторые другие элементы. По этой причине требуются значительные ресурсы как дисковой, так и оперативной памяти ЭВМ.

Сведения о некоторых СУБД приведены в таблице.

Рассмотрим основные понятия и компоненты реляционных БД (например, MS Access), которые в настоящее время имеют наибольшее коммерческое использование.

Реляционная БД ориентирована на организацию данных в виде двумерных таблиц-отношений. Каждая таблица представляет собой двумерный массив и обладает следующими свойствами:

Таблица – это набор данных по конкретной теме (предметной области), например, сведения о студентах высшего учебного заведения. Данные в таблице располагаются в столбцах (полях) и строках (записях).

Поле – это элементарная единица логической организации данных, которая соответствует отдельной, неделимой единице информации – атрибуту. Для каждого поля задается обозначение – имя поля (идентификатор поля внутри записи), например «Фамилия».

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

Итак, для реляционных БД существует несколько равноправных терминов: столбец может называться полем или доменом, а строка – записью или кортежем.

На рисунке приведены две таблицы из одной базы данных. Одна таблица содержит основные сведения о студентах, вторая – результаты сдачи сессии. Из рисунка видно, что каждое поле имеет уникальное (единственное в данной таблице) имя. В таблице «Сессия» атрибут «Результат» показывает средний бал, полученный при сдаче сессии.

Каждая запись должна однозначно идентифицироваться (определяться) уникальным ключом записи. В общем случае ключи записи бывают двух видов: первичный (уникальный) и вторичный.

Первичный ключ – это одно или несколько полей, однозначно идентифицирующих запись. Если первичный ключ состоит из одного поля, он называется простым, если из нескольких полей – составным ключом.

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

Вторичный ключ – это такое поле, значение которого может повторяться в нескольких записях, т. е. он не является уникальным. Если по значению первичного ключа может быть найден один-единственный экземпляр записи, то по вторичному ключу – несколько записей.

Одной из основных характеристик БД является набор допустимых типов данных, которые могут содержаться в полях записей. За каждым полем записи строго закреплен конкретный тип данных, определяющий ограниченный набор применимых к нему операций. К типам данных относятся: символьный (текстовый), числовой, булевский (логический), денежный, дата, время, связанный по технологии OLE объект.

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

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

Следующий рисунок иллюстрирует процесс создания связей между этими тремя таблицами.

Для поиска и отбора данных, удовлетворяющих определенным условиям, создается запрос. Запрос – это инструкция для отбора нужных записей из данной БД в соответствии с определенными условиями, которые порой называют критериями.

Большинство СУБД разрешают использовать запросы следующих типов:

На рисунке показана форма (бланк) запроса-выборки, предназначенного для отбора из БД оценок по математике у студентов группы БТ-61, а на следующем рисунке – результаты сделанной выборки.

Запрос можно формировать с использованием логических (булевых) операций И (AND), ИЛИ (OR), HE (NOT). Например, если требуется выбрать из БД сведения о результатах сдачи математики студентами групп БТ-61 и БТ-62, то необходимо изменить запрос следующим образом:

В этом случае из БД будут отобраны данные с помощью логической операции ИЛИ и на экране появятся сведения о студентах двух групп – БТ-61 и БТ-62.

Логическая операция И используется для решения следующей задачи. Пусть требуется выбрать из БД фамилии студентов группы БТ-63, сдавших математику с оценкой 5. На следующем рисунке показано, как формируется запрос с использованием логической операции И.

Результаты отбора приведены на следующем рисунке. Рассматриваемые примеры умышленно выбраны простыми, для того чтобы можно было проверить полученный результат даже без использования ЭВМ.

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

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

В СУБД MS Access это делается так. В очередном свободном заголовке поля делается следующая запись:

Результат: =((Математика)+(Физика)+(Информатика)+(Графика))/4

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

Like(Фамилия)

Конкретный пример показан на рисунке слева.

Форма позволяет отобрать данные из одной или нескольких таблиц и вывести их на экран, используя стандартный или созданный пользователем макет. При этом формы могут воссоздавать привычные для конечного пользователя документы. Формы используются не только для вывода данных из БД, но также (и, пожалуй, чаще) и для ввода данных. На рисунке представлена форма, позволяющая установить средний бал каждого студента (см. поле «Результат»). Содержание формы изменяется пользователем в зависимости от стоящей перед ним задачи.

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

Нестандартная обработка данных может быть произведена с помощью макросов (последовательности нескольких команд, вызываемых нажатием одной клавиши) либо с помощью программ, написанных на языке Access Visual Basic.

Справка.

Современные СУБД позволяют работать с огромными объемами информации. По некоторым оценкам, за последние 15 лет размеры баз данных выросли на два порядка, и процесс этот продолжается. Сегодня стандартными считаются базы данных объемом в 1 – 10 Гбайтов, а некоторые из них перешагнули рубеж 100 Гбайтов. По прогнозам специалистов, развитие крупных информационно-поисковых систем и хранилищ данных приведет к созданию БД, вмещающих свыше 10 Тбайтов.