Главная » SQL, Базы данных » ОБЩЕЕ ОПРЕДЕЛЕНИЕ СИСТЕМЫ БАЗ ДАННЫХ

0

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

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

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

Данные

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

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

в их внутренней структуре и потому практически не видны конечному пользователю

(о чем речь пойдет в части IV этой книги, особенно в главе 16).

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

для распределения информации по нескольким отдельным базам данных. Эта тема еще

будет затронута в данной книге, в частности в главе 2.

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

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

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

EMPLOYEE.

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

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

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

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

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

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

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

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

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

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

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

Необходимо отметить еще две описанные ниже особенности.

■     СУБД— это наиболее важный, но не единственный программный компонент системы. В числе других компонентов можно назвать утилиты, средства разра ботки приложений, средства проектирования, генераторы отчетов и диспетчер транзакций (transaction manager), или диспетчер обработки транзакций (transaction processing monitor — ТР monitor). Эти компоненты описаны более подробно в гла вах 2, 3, особенно в главах 15 и 16.

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

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

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

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

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

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

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

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

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

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

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии