
- •Часть 1
- •Глава 1. Управление базами данных.
- •1.1. Вводный пример
- •1.2. Что такое система баз данных
- •1.3. Что такое база данных
- •Свойства
- •1.4. Почему база данных
- •1.5.Независимость данных
- •1.6. Реляционные и другие системы
- •1.7. Резюме
- •1.5. А)
- •Глава 2.
- •2.1. Цель
- •2.2. Три уровня архитектуры
- •2.3. Внешний уровень
- •2.4. Концептуальный уровень
- •2.5. Внутренний уровень
- •2.6. Отображения
- •2.7. Администратор базы данных
- •2.8. Система управления базой данных
- •2.9. Система управления передачей данных
- •2.10. Архитектура клиент/сервер
- •2.11. Утилиты
- •2.12. Распределенная обработка
- •2.13. Резюме
- •Глава 3.
- •3.1. Введение
- •3.2. Реляционные системы
- •3.3. Замечание относительно терминологии
- •3.4. Реляционная модель
- •3.5. Оптимизация
- •3.6. Каталог
- •3.7. Базовые таблицы и представления
- •3.8. Язык sql
- •3.9. База данных поставщиков и деталей
- •3.10. Резюме
1.2. Что такое система баз данных
Как уже отмечалось выше, система баз данных — это компьютеризированная система хранения записей; т.е. это компьютеризированная система, основная цель которой— содержать информацию и предоставлять ее по требованию. К информации может относиться все, что заслуживает внимания отдельного пользователя или предприятия, использующего систему; иначе говоря, все необходимое для текущей работы данного пользователя или предприятия.
Замечание. Термины "данные" и "информация" трактуются в этой книге как синонимы. Некоторые авторы предпочитают отличать эти два понятия, используя термин "данные" для ссылки на значения, которые реально сохранены в базе данных, а термин "информация" для пояснения смысла этих значений пользователю. Разница, безусловно, существенная, но предпочтительнее сделать ее более определенной там, где это уместно, вместо того чтобы полагаться на различные понятия между двумя, по существу, одинаковыми терминами.
На рис. 1.4 показана весьма упрощенная схема системы баз данных. Здесь отражено четыре главных компонента системы, а именно: данные, аппаратное обеспечение, программное обеспечение и пользователи. Каждый из этих компонентов кратко рассматривается ниже. Далее они будут обсуждаться значительно подробнее (за исключением аппаратного обеспечения, большая часть вопросов по которому выходит за рамки этой книги).
Рис. 1.4. Упрощенная схема системы баз данных
Данные
Системы баз данных существуют как на малых компьютерах (даже переносных ПК), так и на больших машинах. Нет необходимости говорить, что средства, предоставляемые каждой конкретной системой, в некоторой мере зависят от мощности и возможностей базовой машины. В частности, системы на больших машинах ("большие системы") в основном многопользовательские, тогда как системы на малых машинах ("малые системы"), как правило, однопользовательские. Однопользовательская система (single-user system) — это система, в которой в одно и то же время к базе данных может получить доступ не более одного пользователя; многопользовательская система (multi-user system)— это система, в которой к базе данных могут получить доступ сразу несколько пользователей. Как и в схеме на рис. 1.4, мы для общности будем подразумевать, как правило, второй вид систем, хотя на самом деле, с точки зрения пользователей, между этими системами не существует большого различия. Основная задача большинства многопользовательских систем — позволить каждому отдельному пользователю работать с системой как с однопользовательской. Различия между многопользовательской и однопользовательской системами проявляются в их внутренней структуре и потому практически не видны конечному пользователю (это будет описано далее в книге).
Обычно для упрощения предполагают, что все данные в системе хранятся в одной базе данных; мы будем придерживаться этого предположения, поскольку оно существенно не влияет на все дальнейшие рассуждения. Однако на практике даже при использовании малых систем могут быть серьезные причины распределять информацию по нескольким отдельным базам данных. Эта тема еще будет затронута далее в этой книге.
В общем случае данные в базе данных (по крайней мере, в больших системах) являются интегрированными и общими. Эти два аспекта, интеграция и разрешение общего доступа, представляют собой наиболее важное преимущество использования систем баз данных на "большом" оборудовании; и по меньшей мере один из них — интеграция — является преимуществом их использования на "малом" оборудовании. Конечно, есть множество других преимуществ (даже на "малом" оборудовании), но о них речь пойдет позже. Сначала следует объяснить, что понимается под терминами "интегрированные" и "общие".
• Под понятием интегрированные данные подразумевается возможность представить базу данных как объединение нескольких отдельных файлов данных, полностью или частично не перекрывающихся. Например, база данных может содержать файл EMPLOYEE, включающий имена сотрудников, адреса, отделы, зарплату и т.д., и файл ENROLLMENT, представляющий регистрацию сотрудников на курсах обучения (рис. 1.5). Допустим, что для контроля процесса обучения необходимо знать отдел каждого зачисленного на курсы студента. Совершенно очевидно, что нет необходимости включать такую информацию в файл ENROLLMENT, поскольку ее всегда можно получить путем обращения к файлу EMPLOYEE.
EMPLOYEE ENROLLMENT
|
| |
NAME
|
ADDRESS | DEPARMENT | SALARY ( . . .
| |
|
| |
NAME
|
COURSE | ...
| |
|
Рис. 1.5. Файлы EMPLOYEE и ENROLLMENT
• Под понятием общие данные подразумевается возможность использования отдельных областей данных в базе данных несколькими различными пользователями, т.е. каждый из этих пользователей может иметь доступ к одной и той же области данных (причем различные пользователи могут использовать эти данные для разных целей). Как уже упоминалось, различные пользователи могут иметь доступ даже к одной и той же области данных в одно и то же время (одновременный доступ). В приведенном выше примере информация об отделе в файле EMPLOYEE может разделяться (совместно использоваться) пользователями отдела кадров и отдела обучения; причем, как подчеркивалось выше, эти две группы пользователей могут использовать такую информацию для разных целей, как обычно и происходит.
Одним из следствий интегрированности базы данных является то, что любой конкретный пользователь обычно имеет отношение к какой-то небольшой части всей базы данных (кроме того, эти части, связанные с различными пользователями, могут перекрываться многими способами). Иначе говоря, такая база данных может восприниматься различными пользователями по-разному. На самом деле, даже два пользователя одной и той же общей области базы данных могут иметь значительно отличающиеся взгляды на эту область. Более подробное обсуждение приводится далее в этой и следующей главе.
Аппаратное обеспечение
К аппаратному обеспечению системы относятся:
• накопители для хранения информации (обычно диски с перемещаемыми головками» вместе с подсоединенными устройствами ввода-вывода, контроллерами устройств, каналами ввода-вывода и т.д.;
• процессор (или процессоры) вместе с основной памятью, которая используется для поддержки работы программного обеспечения системы (см. следующий раздел)
В этой книге не уделяется много внимания аппаратной части системы ввиду того, что, во-первых, эти вопросы составляют большую тему, которую нужно рассматривать особо; во-вторых, проблемы, которые существуют в этой области, не являются специфическими для систем баз данных и, в-третьих, эти проблемы достаточно подробно освещаются в других книгах и в соответствующей документации.
Программное обеспечение
Между собственно физической базой данных (т.е. данными, которые в действительности сохранены) и пользователями системы располагается уровень программного обеспечения — диспетчер базы данных (database manager) или, что более привычно, система управления базами данных СУБД (database management system(DMBS)). Все запросы пользователей на доступ к базе данных обрабатываются СУБД ; возможности добавления файлов или таблиц), выборки и обновления данных в этих файлах или таблицах также обеспечивает СУБД. Основная функция, выполняемая СУБД,— это предоставление пользователю базы данных возможности работать с ней, не вникая в детали на уровне аппаратного обеспечения (пользователь более отстранен от этих деталей, чем прикладной программист, использующий среду программирования). Иными словами, СУБД позволяет пользователю рассматривать базу данных как объект более высокого уровня по сравнению с аппаратным обеспечением, а также поддерживает выражаемые в терминах высокого уровня пользовательские операции (например, операции которые можно выполнять с помощью языка SQL, упомянутого ранее). Далее в книге будут обсуждаться эта и другие функции СУБД.
Замечание. СУБД — наиболее важный, но не единственный программный компонент системы. Среди других — утилиты, средства разработки приложений, средства проектирования, генераторы отчетов и др. Обсуждение данного вопроса приводится далее в этой книге.
Пользователи
Пользователей можно разделить на три большие группы.
•Первая — прикладные программисты, которые отвечают за написание прикладных программ, использующих базу данных. Для этих целей применимы языки СОВОL, РL/1 или более современные, такие как С или Раsса1. Прикладные программы выполняют над данными все стандартные операции; выборку существующей информации, вставку новой информации, удаление или обновление существующей информации. Все эти функции выполняются через соответствующий запрос к СУБД. Эти программы могут быть простыми программами пакетной обработки или оперативными приложениями, функция которых — поддержка работы конечного пользователя (см ниже), имеющего непосредственный оперативный доступ к базе данных через рабочую станцию или терминал. Большинство современных приложений относится к оперативным.
• Вторая — конечные пользователи, которые работают с системами баз данных непосредственно через рабочую станцию или терминал. Конечный пользователь может получить доступ к базе данных, используя одно из оперативных приложений, упомянутых выше, или же воспользоваться интегрированным интерфейсом программного обеспечения самой системы баз данных. Такой интерфейс также поддерживается оперативным приложением, но это приложение не создается пользователем, оно является встроенным в систему баз данных. В большинстве систем есть, по крайней мере, одно такое встроенное приложение, а именно: процессор языка запросов, который позволяет пользователю указывать команды или выражения высокого уровня (такие как select или insert) для данной СУБД. Язык SQL, упомянутый выше, — типичный пример языка запросов для базы данных.
Замечание. Общепринятый термин "язык запросов" не совсем точно отражает рассматриваемое понятие, поскольку слово "запрос" подразумевает лишь выборку, в то время как с помощью этого языка выполняются также операции обновления, вставки и удаления (а возможно, и многие другие).
Кроме языка запросов, в большинстве систем также предоставляются дополнительные встроенные интерфейсы, в которых пользователь в явном виде не использует команд, таких как select. Для работы с базой данной пользователь, например, выбирает необходимые команды меню или заполняет поля в формах. Такие интерфейсы, основанные на меню и формах, облегчают работу с базами данных тем, кто не имеет опыта работы с информационными технологиями (ИТ; часто употребляется также сокращение ИС — информационные системы, эти понятия практически эквивалентны). Командный интерфейс, т.е. язык запросов, напротив, требует некоторого опыта работы с ИТ (возможно, не очень большого). Однако командный интерфейс обычно более гибок, чем основанный на меню и формах; кроме того, в языках запросов обычно есть определенные функции, которые не поддерживаются интерфейсами, основанными на меню и формах.
• Третья группа (не показана на рис. 1.4) — администраторы базы данных, или АБД. Функции администраторов мы будем обсуждать далее в этой и следующей главе.
На этом закончим предварительное описание основных аспектов систем баз данных и приступим к более детальному изучению идей.