Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
39
Добавлен:
01.05.2014
Размер:
664.06 Кб
Скачать

1.7. Реляционные системы управления базами данных

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

В 1970 году Е.Ф. Кодд опубликовал революционную по содержанию статью (Codd, 1970), которая всерьез поколебала устоявшиеся представления о базах данных. Он выдвинул идею, что данные нужно связывать в соответствии с их внутренними логическими возможностями, а не физическими указателями. Таким образом, пользователи смогут копировать данные из разных источников, если логическая информация, необходимая для такого комбинирования, присутствует в исходных данных. Это открыло новые возможности для информационно-управляющих систем, поскольку запросы к базам данных теперь не были ограничены физическими указателями.

Рис. 1.11. Логическая связь, не поддерживаемая физическим указателем

Для того чтобы понять, какие недостатки присущи системам, основан­ным на физических указателях, рассмотрим рис. 1.11. На нем показано, что файлы CUSTOMER, INVOICE и INVOICE LINE связаны физическими указа­телями. Файлы MANUFACTURER (ИЗГОТОВИТЕЛЬ) и PRODUCT тоже свя­заны. Пунктирная линия между INVOICE LINE и PRODUCT обозначает, что между ними существует логическая связь, поскольку каждая строка счета относится к конкретному товару. Однако предположим, что файл PRODUCT не привязан к файлу INVOICE LINE физическим указателем. Как тогда, со­ставить следующий отчет?

Для каждого клиента перечислить изготовителей приобретенных им товаров.

Для составления такого отчета требуется двигаться от файла CUSTOMER через INVOICE и INVOICE LINE к PRODUCT и затем к MANUFACTURER. Но поскольку между файлами INVOICE LINE и PRODUCT нет физической связи, то обычными средствами базы данных такой путь проделать невоз­можно. Для того чтобы все-таки получить такую информацию, придется пользоваться древними и неуклюжими способами работы с файлами. Это потребует искусного длительного программирования. Те же информацион­ные системы, использующие базы данных, которые поддерживают извлече­ние данных на основе логических связей, легко ответят на такой вопрос.

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

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

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

Публикация работ Кодда в начале семидесятых вызвала взрыв активно­сти как среди ученых, так и среди разработчиков коммерческих систем по созданию реляционной системы управления базами данных. Результатом этой деятельности явилось создание во второй половине семидесятых реля­ционных систем, которые поддерживали такие языки, как Structured Query Language (SQL, язык структурированных запросов), Query Language (Quel, язык запросов) и Query-by-Example (QBE, запросы по образцу). С широким распространением персональных компьютеров в восьмидесятые годы также появились реляционные базы данных для микрокомпьютеров. В 1986 году SQL был принят в качестве стандарта ANSI языков реляционных баз дан­ных. Этот стандарт обновлялся в 1989 и в 1992 годах.

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

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

Неверным, однако, было бы полагать, что современные реляционные системы управления базами данных являются последним словом в развитии СУБД. Реляционные базы данных продолжают совершенствоваться, и их внутренняя природа значительно меняется, предоставляя пользователям возможность решать все более сложные задачи. По нашему мнению, наибо­лее существенные из таких перемен происходят в области объектно-ориенти­рованных баз данных. Еще одно чрезвычайно важное новшествопереход организаций к работе с базами данных на технологию клиент/сервер. Этот принцип мы рассмотрим в следующем разделе.

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

Таблица 1.1. Сравнительная характеристика способов

обращения к данным

Способ доступа

к данным

Характеристика

Файлы последовательного доступа

Записи должны обрабатываться в последовательном порядке

Файлы произвольного доступа

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

Иерархическая база данных

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

Зависит от предопределенных физических указателей

Сетевая база данных

Поддерживает иерархические и неиерархические отноше­ния между данными.

Зависит от предопределенных физических указателей

Реляционная база данных

Поддерживает все логические отношения между данными.

Логический доступ к данным, не зависящий от физической реализации

Появление в 1981 году IBM PC сделало настольный компьютер обычным явлением в офисе. Программы обработки текстов, работы с таблицами и многие другие сами по себе оправдывали использование таких машин. Кроме того, было вполне естественно связывать компьютеры в сеть, чтобы пользователи могли общаться по электронной почте и работать с общими ресурсами, такими как принтеры и диски. Вначале серверы были созданы для управления печатью и доступом к файлам. Это были серверы печати и файловые серверы. Например, в ответ на запрос клиента на доступ к кон­кретному файлу, файловый сервер пересылал этот файл через сеть на кли­ентский компьютер (рис. 1.13). Сегодня же большинство серверов состав­ляют серверы баз данных — программы, которые запускаются на серверной машине и обслуживают доступ клиентов к базе данных (рис. 1.14). Напри­мер, клиент запускает прикладную программу, и ему требуется запросить базу данных. Для этого он обращается к серверу за нужными ему данными, сервер выполняет запрос и возвращает результат клиенту. Прикладная про­грамма может также посылать данные на сервер с требованием обновить базу данных. Сервер вносит необходимые изменения.

Рис. 1.12. Развитие систем управления базами данных

Система клиент/серверлокальная сеть, состоящая из клиентских компьюте­ров, которые обслуживает компьютер-сервер.

Сервер базы данных,программа, которая запускается на машине-сервере и обслуживает доступ клиентов к базе данных.

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

Графическийпользовательскийинтерфейс. Графические средства доступа ко­нечного пользователя к компьютерной системе.

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

Открытые системыпонятие, означающее согласованную работу объединенного вместе различного оборудования и программного обеспечения.

Взаимодействиережим, в котором две или более различных системы обмениваются информацией, внося свой вклад в решение общей задачи.

Рис. 1.13. Извлечение целого файла с файлового сервера

В некотором смысле технология клиент/сервер наиболее яркое во­площение сочетания распределенной обработки данных с централизованным управлением и доступом к данным. Провидцы предсказывали неизбежное появление распределенных вычислений уже более двух десятилетий назад, однако в реальности они появились лишь недавно. Хотя многие сложные проблемы взаимодействия пока не решены, перспективы увеличения эффек­тивности обработки данных и доступа к базам данных еще никогда не были столь радужными.

Рис. 1.14. Клиенты, взаимодействующие с сервером базы данных

Соседние файлы в папке Базы данных1