Базы данных и системы управления базами данных
ПОНЯТИЕ ИНФОРМАЦИОННОЙ СИСТЕМЫ
Базы данных - важнейшая составная частьинформационных систем. Здесь мы ограничимся лишь кратчайшими общими сведениями об информационных системах, сосредоточив внимание на базах данных как таковых.
Информационные системы предназначены для хранения и обработки больших объемов информации. Изначально такие системы существовали в письменном виде. Для этого использовались различные картотеки, папки, журналы, библиотечные каталоги и т.д. Любая информационная система должна выполнять три основные функции: ввод данных, запросы по данным, составление отчетов.
Ввод данных. Система должна предоставлять возможность накапливания и упорядочивания данных. Необходимо обеспечить просмотр этих данных, внесение в них изменений и дополнений с тем, чтобы поддерживать актуальность информации.
Запросы по данным. В системе должна существовать возможность находить и просматривать отдельные части накопленной информации.
Составление отчетов. Время от времени возникает необходимость обобщать и анализировать большую группу данных (или даже все данные) информационной системы, представляя ее в виде документа.
Обслуживание информационных систем, реализованных в письменном (бумажном) виде, сопряжено со многими трудностями: чем больше информационная система, тем больше бумаги (карточек) и места требуется для их хранения (в этом можно убедиться на примере библиотеки); много времени тратится на поиск нужной информации. Сложности возникают при обновлении, анализе и обработке данных.
Предположим мы хотим собрать информацию про альбомы музыкальных групп. Пусть имеется информация о некоторых альбомах: 1965, Led Zeppelin 4, Lp, Help!, Atlantic, 1971. Lp(England), EMI. 1970, Flash Gordon, Parlophone, 1980, Led Zeppelin 3, Soundtrack, Lp, Atlantic. Этот список мало о чем говорит. Извлечь какую-либо информацию из этого набора данных практически невозможно.
Представим данные в виде табл. 2.2.
Таблица 2.2 Информация об альбомах музыкальных групп
Название альбома | Год выпуска | Тип | Фирма альбома |
Help! | Lp (England) | Parlophone | |
Led Zeppelin 4 | Lp | Atlantic | |
Led Zeppelin 3 | Lp | Atlantic | |
Flash Gordon | Soundtrack | EMI |
Теперь воспринимать и использовать информацию стало гораздо удобнее. Представленная таблица являетсяинформационной моделью. Объектами, отраженными в этой модели, являются музыкальные альбомы (групп), причем все данныевзаимосвязаны.
ВИДЫ СТРУКТУР ДАННЫХ
В информатике совокупность взаимосвязанных данных называетсяинформационной структурой, или структурой данных. В нашем примере объектами модели являются музыкальные альбомы. Свойства же этих объектов находятся в столбцах таблицы («Название альбома», «Год выпуска», «Тип альбома», «Фирма»), их называют атрибутами объектов. Таким образом, каждая строка таблицы - есть совокупность атрибутов объекта. Такую строку называютзаписью, а столбец - полем записи.
Помимо сведений, указанных в атрибутах, табличная организация данных позволяет получить дополнительную информацию. К примеру, нетрудно узнать (в предположении, что наша табл. 2.2 заполнена данными):
• какая группа выпустила больше альбомов за определенный период;
• число альбомов данной группы;
• сколько имеется альбомов типа Soundtrack (музыка к фильму);
• какая фирма выпустила наибольшее число альбомов данной группы.
Табличная организация данных называется такжереляционной. Кроме табличной структуры данных существуют другие виды структурной организации данных.
Для иерархических структур (рис.2.22) характерна подчиненность объектов нижнего уровня объектам верхнего уровня. Важно отметить, что в дереве, между верхними и нижними объектами, задано отношение «один ко многим» (т.е. одной группе соответствует много альбомов, одному альбому соответствует много песен).
Рис. 2.22. Пример иерархической организации данных
Несмотря на то, что в атрибутах, описывающих песню, нет названия альбома, глядя на дерево по линиям связи можно сказать, какая песня принадлежит альбому. Благодаря линиям связи можно определить принадлежность альбома группе. Из данной иерархической структуры можно узнать:
• в каком альбоме больше песен;
• число альбомов выпущенных группой;
• есть ли в альбомах одинаковые песни и т.д.
Сетевую структуруданных можно представить в виде схемы, рис. 2.23.
Рис. 2.23. Пример сетевой организации данных
Глядя на рис. 2.23, можно определить, какими инструментами владеет музыкант, является ли он вокалистом. В этом случае есть два уровня взаимосвязанных объектов, но отношение между ними «многие ко многим».
Пусть в этой сетевой структуре данные о музыкантах и «инструментах» состоят из следующих атрибутов: музыкант - ФИО, рост, цвет волос, время рождения; инструмент- название инструмента, какой фирмой изготовлен инструмент.
Тогда схема позволяет ответить на следующие вопросы:
• гитары какой фирмы предпочитает большинство музыкантов;
• какой музыкант владеет наибольшим количеством инструментов и др.
Построение структуры данных происходит в следующем порядке:
• определяются объекты описания;
• определяются структуры этих объектов;
• выбирается тип структуры, отображающий отношения между объектами (табличная, иерархическая, сети);
• строится конкретная информационная структура.
ВИДЫ БАЗ ДАННЫХ
Дадим основное определение. База данных - это реализованная с помощью компьютера информационная структура (модель), отражающая состояние объектов и их отношения.
Следует учесть, что это определение не является единственно возможным. Информатика в отношении определений чаще всего не похожа на математику с ее полной однозначностью. Если подойти к понятию «база данных» с чисто пользовательской точки зрения, то возникает другое определение: база данных - совокупность хранимых операционных данных некоторого предприятия. Все дело в том, какой аспект доминирует в рассмотрении; в данной главе первое из определений более уместно.
Поскольку основу любой базы данных составляет информационная структура, базы данных делят на три рассмотренные выше типа: табличные (реляционные), сетевые, иерархические.
Опыт использования баз данных позволяет выделить общий набор их рабочих характеристик:
• полнота - чем полнее база данных, тем вероятнее, что она содержит нужную информацию (однако, не должно быть избыточной информации);
• правильная организация - чем лучше структурирована база данных, тем легче в ней найти необходимые сведения;
• актуальность - любая база данных может быть точной и полной, если она постоянно обновляется, т.е. необходимо, чтобы база данных в каждый момент времени полностью соответствовала состоянию отображаемого ею объекта;
• удобство для использования - база данных должна быть проста и удобна в использовании и иметь развитые методы доступа к любой части информации.
Соответственно возможностям организации реляционных, иерархических и сетевых информационых структур, существуют и аналогичные виды баз данных. В них данные представлены в формах, адекватных соответствующим структурам. Однако иерархические и сетевые базы данных являются гораздо менее распространенными, чем реляционные и не могут быть реализованы с помощью наиболее популярных СУБД, входящих в состав программного обеспечения ЭВМ, поэтому на них далее останавливаться не будем.
Реляционные базы данных
Наиболее распространенными в практике являются реляционные базы данных. Название «реляционная» (в переводе с английского relation - отношение) связано с тем, что каждая запись в таблице содержит информацию, относящуюся только к одному конкретному объекту.
Всякое отношение должно иметь свое имя. Пусть есть отношение с названием «Альбомы группы». В этом случае структура базы данных, состоящая из одной таблицы, запишется так: Альбомы группы (название альбома, год выпуска, тип альбома, фирма).Однако чаще база данных строится на основе нескольких таблиц, связанных между собой через общие атрибуты. Пусть, например, в базе данных «Рок-энциклопедия» содержатся две таблицы - 2.3, а и 2.3, б.
Таблица 2.3, а Музыкальные альбомы групп
Код альбома | Код группы | Название альбома | Год выпуска | Тип альбома | Фирма |
Help! | Lp (English) | Pariophone | |||
Led Zeppelin 4 | l97l | Lp | Atlantic | ||
Led Zeppelin 4 - | Lp | Atlantic | |||
Flash Gordon | Soundtrack | EMI |
Таблица 2.3, б Рок группы
Код группы | Название группы | Страна | Дата создания | Дата распада |
The Bealles | Англия | I970 | ||
Led Zeppelin 4 Flash Gordon | Англия Англия | 199I | - - |
Эти две таблицы связаны между собой общим полем «Код группы». Поле «Код альбома» в таблице 2.3, а создается для того, чтобы отличать альбомы друг от друга. Это очень важно, так как в таблице могут находиться альбомы с одинаковыми названиями.
Необходимость использования больше одной таблицы станет заметной, если объединить эти таблицы в одну (табл. 2.4).
Таблица 2.4 Объединение таблиц 23
Название группы | Страна | Дата создания | Дата распада | Название альбома | Год выпуска | Тип альбома | Фирма |
The Beatles | Англия | I970 | With the Beatles | Lp | Pariophone | ||
The Beatles | Англия | I970 | Please, please me | Lp | Pariophone | ||
The Beatles | Англия | I970 | Rubber soul | Lp | Pariophone |
Из таблицы 2.4 видно, что при внесении в нее данных об альбомах определенной группы каждый раз приходится дублировать информацию первых четырех полей таблицы. Многократное сохранение в БД одних и тех же данных (название группы, страна, дата создания, дата распада) приведет к неэффективному использованию памяти, к тому же существенно возрастет вероятность ошибок при вводе данных. Разбив же данные по таблицам, можно в значительной степени избежать этих трудностей.
Через связь, определенную между этими таблицами, можно узнать
• сколько альбомов выпустила группа;
• выпускались ли альбомы у фирмыEMI;
• в каком году было выпущено максимальное количество альбомов и т.п.
Реляционные базы данных удобны еще и тем, что для получения ответов на различные запросы существует разработанный математический аппарат, который называется исчислением отношений или реляционной алгеброй. Ответы на запросы получаются путем «разрезания» и «склеивания» таблиц по строкам и столбцам. При этом ясно, что ответы также будут иметь форму таблиц.
Надо отметить, что база данных - это, собственно, хранилище информации и не более того. Однако, работа с базами данных трудоемкая и утомительная. Для создания, ведения и осуществления возможности коллективного пользования базами данных используются программные средства, называемые системами управления базами данных (СУБД).