Скачиваний:
147
Добавлен:
02.05.2014
Размер:
2.66 Mб
Скачать

1.2. Что такое система баз данных

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

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

На рис. 1.3 показана весьма упрощенная схема системы баз данных. Здесь отражено четыре главных компонента системы, а именно: данные, аппаратное обеспечение, программное обеспечение и пользователи. Каждый из этих компонентов кратко рас- сматривается ниже. Далее они будут обсуждаться значительно подробнее (за исключени- ем аппаратного обеспечения, поскольку большая часть аспектов его использования вы- ходит за рамки этой книги).

Данные

Системы с базами данных существуют как на самых малых компьютерах, так и на крупнейших мэйнфреймах. Нет необходимости говорить, что предоставляемые каждой конкретной системой средства в некоторой мере зависят от мощности и возможностей базовой машины. В частности, системы на больших машинах ("большие системы"), в основном, многопользовательские, тогда как системы на малых машинах ("малые сис- темы"), как правило, однопользовательские. Однопользовательская система (single- user system) — это система, в которой одновременно к базе данных может получить доступ не более одного пользователя, а многопользовательская система (multi-user system) — это такая система, в которой к базе данных могут получить доступ сразу не- сколько пользователей. Как и в схеме на рис. 1.3, исходя из соображений общности, мы обычно будем подразумевать именно второй вид систем, хотя, с точки зрения пользователей, между этими системами фактически не существует большого различия. Основная задача большинства многопользовательских систем — позволить каждому отдельному пользователю работать с ней так, как он мог бы работать с однопользова-

тельской системой. Различия между этими двумя видами систем проявляются в их внутренней структуре, и потому практически не видны конечному пользователю (о чем речь пойдет ниже).

Система управления базами данных (СУБД)

Прикладные программы

Конечные пользователи

Рис. I 3. Упрощенная схема системы баз данных

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

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

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

сведения о регистрации сотрудников на курсах обучения (рис. 1.4). Допустим, что для контроля процесса обучения необходимо знать отдел каждого зачислен- ного на курсы студента. Совершенно очевидно, что нет необходимости вклю- чать такую информацию в файл ENROLLMENT, поскольку ее всегда можно полу- чить из файла EMPLOYEE.

EMPLOYEE I NAME | ADDRESS | DEPARMENT | SALARY]

ENROLLMENT NAME COURSE

Рис. 1.4. Файлы EMPLOYEE и ENROLLMENT

■ Под понятием разделяемости данных подразумевается возможность использова- ния отдельных элементов, хранимых в базе данных несколькими различными пользователями. Имеется в виду, что каждый из пользователей сможет получить доступ к одному и тому же элементу данных, возможно, для достижения различ- ных целей. Как уже упоминалось, разные пользователи могут даже получать дос- туп к одному и тому же элементу данных в одно и то же время (параллельный доступ). В приведенном выше примере информация об отделе в файле EMPLOYEE может разделяться пользователями отдела кадров и отдела обучения. Причем, как подчеркивалось выше, эти две группы пользователей смогут применять такую ин- формацию для разных целей, что обычно и происходит.

Замечание. Если база данных не является разделяемой, то ее иногда называют личной или базой данных специального назначения.

Одним из следствий упомянутых выше характеристик базы данных (интегрированное™ и разделяемости) является то, что каждый конкретный пользователь обычно имеет дело лишь с небольшой частью всей базы данных, причем обрабатываемые различными пользо- вателями части могут произвольным образом перекрываться. Иначе говоря, каждая база данных воспринимается ее различными пользователями по-разному. Фактически даже те два пользователя базы данных, которые работают с одними и теми же элементами данных, могут иметь значительно отличающиеся представления о них. Более подробное обсужде- ние этого вопроса приводится далее, в разделе 1.5 и в главах 2 и 3 (особенно — в главе 9).

В разделе 1.3 мы продолжим обсуждение свойств элементов данных, хранимых в системе баз данных.

Аппаратное обеспечение

К аппаратному обеспечению системы относится следующее.

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

  • Аппаратный процессор (или процессоры) вместе с основной (первичной) памя- тью, предназначенные для поддержки работы программного обеспечения системы баз данных (подробности — в следующем разделе).

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

Программное обеспечение

Между собственно физической базой данных (т.е. данными, которые реально хра- нятся) и пользователями системы располагается уровень программного обеспечения, который можно называть по-разному: менеджер базы данных (database manager), сервер базы данных (database server) или, что более привычно, система управления базами данных, СУБД (database management system — DBMS). Все запросы пользо- вателей на доступ к базе данных обрабатываются СУБД. Все имеющиеся средства до- бавления файлов (или таблиц), выборки и обновления данных в этих файлах или таб- лицах также предоставляет СУБД. Основная задача СУБД — предоставить пользова- телю базы данных возможность работать с ней, не вникая в детали на уровне аппа- ратного обеспечения. (Пользователь СУБД более отстранен от этих деталей, чем при- кладной программист, применяющий языковую среду программирования.) Иными словами, СУБД позволяет конечному пользователю рассматривать базу данных как объект более высокого уровня по сравнению с аппаратным обеспечением, а также предоставляет в его распоряжение набор операций, выражаемых в терминах языка вы- сокого уровня (например, набор операций, которые можно выполнять с помощью язы- ка SQL, упомянутого выше, в разделе 1.1). Далее в книге будут подробно обсуждаться обе указанные функции СУБД.

Необходимо отметить еще две особенности.

  • СУБД — это наиболее важный, но не единственный программный компонент сис- темы. Среди других компонентов — утилиты, средства разработки приложений, средства проектирования, генераторы отчетов и менеджер транзакций (transaction manager) или диспетчер выполнения транзакций (TP monitor). Эти компоненты обсуждаются далее, в главе 2, 3 и (еще подробнее) в части IV.

  • Термин СУБД также часто используется в отношении конкретных программных продуктов конкретных изготовителей, например такого, как СУБД IBM "DB2 Universal Database" для системы OS/390. Иногда, в тех случаях, когда конкретная копия подобного продукта устанавливается для работы на определенном компью- тере, используется термин экземпляр СУБД. Как вы, безусловно, понимаете, необ- ходимо строго различать эти два понятия.

Замечание. Следует иметь в виду, что в среде изготовителей термин база данных часто используется даже тогда, когда на самом деле подразумевается СУБД (в од- ном из уже упомянутых толкований). Вот типичный пример: "База данных изгото- вителя X превосходит по производительности базу данных изготовителя Y в два раза". Такое небрежное обращение с терминами предосудительно; тем не менее оно очень широко распространено. (Проблема, естественно, заключается в том, что если называть СУБД базой данных, то как же тогда называть саму базу дан- ных?) Предостерегающий лектор.

Пользователи

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

  • Первая группа— прикладные программисты, которые отвечают за написание прикладных программ, использующих базу данных. Для этих целей применимы такие языки, как COBOL, PL/I, С++, Java или какой-нибудь высокоуровневый язык четвертого поколения (подробности — в главе 2). Прикладные программы получают доступ к базе данных посредством выдачи соответствующего запроса к СУБД (обычно это некоторый SQL-оператор). Подобные программы могут быть простыми пакетными приложениями или же интерактивными приложениями, предназначенными для поддержки работы конечных пользователей (см. следую- щий абзац). В последнем случае они предоставляют пользователям непосредст- венный оперативный доступ к базе данных через рабочую станцию или терминал. Большинство современных приложений относится именно к этой категории.

  • Вторая группа— конечные пользователи, которые работают с системой баз данных непосредственно через рабочую станцию или терминал. Конечный поль- зователь может получать доступ к базе данных, применяя одно из интерактивных приложений, упомянутых выше, или же интерфейс, интегрированный в про- граммное обеспечение самой СУБД. Безусловно, подобный интерфейс также под- держивается интерактивными приложениями, однако эти приложения не создают- ся пользователями-программистами, а являются встроенными в СУБД. Большин- ство СУБД включает по крайней мере одно такое встроенное приложение, а именно — процессор языка запросов, позволяющий пользователю в диалоговом режиме вводить запросы к базе данных (их часто иначе называют операторами (statement) или командами (commands)), например SELECT или INSERT. Язык SQL, упоминавшийся в разделе 1.1, — типичный пример языка запросов базы данных.

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

Кроме языка запросов, в большинстве систем дополнительно предоставляются специализированные встроенные интерфейсы, в которых пользователь в яв- ном виде не использует команд, подобных оператору SELECT. Работа с базой данных осуществляется за счет выбора пользователем необходимых команд меню или заполнения требуемых полей в предоставленных формах. Такие не- командные интерфейсы, основанные на меню и формах, облегчают работу с базами данных тех, кто не имеет опыта работы с информационными техноло- гиями (ИТ; часто употребляется также сокращение ИС — информационные системы; эти понятия практически эквивалентны). Командный интерфейс, т.е. язык запросов, напротив, требует некоторого профессионального опыта работы с ИТ (безусловно, не такого большого, какой необходим для написа- ния прикладных программ на языке программирования, подобном COBOL). Однако командный интерфейс более гибок, чем некомандный, к тому же язы- ки запросов обычно включают определенные функции, отсутствующие в не- командных интерфейсах.

■ Третья группа (не показана на рис. 1.4) — администраторы базы данных, или АБД. Обсуждение функций администраторов баз данных и связанных с ними (что очень важно) функций администраторов данных отложим до раздела 1.4 и главы 2 (раздел 2.7).

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

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]