Лекция №3

 

Лекция 3.

Различные архитектурные решения,  используемые при реализации многопользовательских СУБД. Краткий обзор  СУБД

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

Ключевые термины: многопользовательские СУБД, файл-сервер, сеть с файловым сервером, клиент-сервер, трехзвенная архитектура, многозвенная архитектура, современные СУБД.

Цель лекции: показать основные варианты технологии работы нескольких пользова­телей с одной базой данных, связанные как с основными свойствами вычислительной техники так и с развитием программного обеспечения.

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

 

 

При использовании этой технологии база данных, СУБД и прикладная программа (при­ложение) располагаются на одном компьютере (мэйнфрейме или персональном компьютере) (рис.3.1.). Для такого способа организации не требуется поддержки сети и все сводится к ав­тономной работе. Работа построена следующим образом:

  -База данных в виде набора файлов находится на жестком диске компьютера.

  -На том же компьютере установлены СУБД и приложение для работы с БД .

  -Пользователь запускает приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к БД на выборку/обновление информации.

  -Все обращения к БД идут через СУБД, которая инкапсулирует внутри себя все сведе­ния о физической структуре БД.

  -СУБД инициирует обращения к данным, обеспечивая выполнение запросов пользова­теля (осуществляя необходимые операции над данными).

  -Результат СУБД возвращает в приложение.

  -Приложение, используя пользовательский интерфейс, отображает результат выполне­ния запросов.

  Многопользовательская технология работы обеспечивалась либо режимом мультипро­граммирования (одновременно могли работать процессор и внешние устройства - например, пока в прикладной программе одного пользователя шло считывание данных из внешней па­мяти, программа другого пользователя обрабатывалась процессором), либо режимом разде­ления времени (пользователям по очереди выделялись кванты времени на выполнении их программ). Такая технология была распространена в период «господства» больших ЭВМ (IBM-370, ЕС-1045, ЕС-1060). Основным недостатком этой модели является резкое снижение производительности при увеличении числа пользователей.

 

3.3. Технология с сетью и файловым сервером (архитектура «файл-сервер»)

Увеличение сложности задач, появление персональных компьютеров и локальных вы­числительных сетей явились предпосылками появления новой архитектуры «файл-сервер». Эта архитектура баз данных с сетевым доступом предполагает назначение одного из компь­ютеров сети в качестве выделенного сервера, на котором будут храниться файлы базы дан­ных [3]. В соответствии с запросами пользователей файлы с файл-сервера передаются на ра­бочие станции пользователей, где и осуществляется основная часть обработки данных. Цен­тральный сервер выполняет в основном только роль хранилища файлов, не участвуя в обра­ботке самих данных (рис.3.3.).

 

Рис. 3.2.. Архитектура «файл-сервер»

Работа построена следующим образом:

  -  База данных в виде набора файлов находится на жестком диске специально выде­ленного компьютера (файлового сервера).

  -  Существует локальная сеть, состоящая из клиентских компьютеров, на каждом из которых установлены СУБД и приложение для работы с БД.

  -  На каждом из клиентских компьютеров пользователи имеют возможность запус­тить приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к БД на выборку/обновление информации.

  -  Все обращения к БД идут через СУБД, которая инкапсулирует внутри себя все сведения о физической структуре БД, расположенной на файловом сервере.

  -  СУБД инициирует обращения к данным, находящимся на файловом сервере, в ре­зультате которых часть файлов БД копируется на клиентский компьютер и обраба­тывается, что обеспечивает выполнение запросов пользователя (осуществляются необходимые операции над данными).

  -  При необходимости (в случае изменения данных) данные отправляются назад на файловый сервер с целью обновления БД.

  -  Результат СУБД возвращает в приложение.

  -  Приложение, используя пользовательский интерфейс, отображает результат вы­полнения запросов.

  -  В рамках архитектуры «файл-сервер» были выполнены первые версии популярных так называемых настольных СУБД, таких, как dBaseи MicrosoftAccess.

  -  В литературе [3] указываются следующие основные недостатки данной архитектуры:

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

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

  -  Как правило, используется навигационный подход, ориентированный на работу с отдельными записями.

  В БД на файл-сервере гораздо проще вносить изменения в отдельные таблицы, минуя приложения, непосредственно из инструментальных средств (например, из утилиты DatabaseDesktop фирмы Borland для файлов Paradox и dBase); подобная возможность облегчается тем обстоятельством, что фактически у таких СУБД база данных - понятие более логическое, чем физическое, поскольку под БД понимает­ся набор отдельных таблиц, сосуществующих в отдельном каталоге на диске. Все это позволяет говорить о низком уровне безопасности - как с точки зрения хище­ния и нанесения вреда, так и с точки зрения внесения ошибочных изменений.

Недостаточно развитый аппарат транзакций служит потенциальным источником ошибок в плане нарушения смысловой и ссылочной целостности информации при одновременном внесении изменений в одну и ту же запись.

3.3. Технология «клиент - сервер» Использование технологии «клиент - сервер» предполагает наличие некоторого количе­ства компьютеров, объединенных в сеть, один из которых выполняет особые управляющие функции (является сервером сети).

    Так, архитектура «клиент - сервер» разделяет функции приложения пользователя (назы­ваемого клиентом) и сервера. Приложение-клиент формирует запрос к серверу, на котором расположена БД, на структурном языке запросов SQL (StructuredQueryLanguague), являю­щемся промышленным стандартом в мире реляционных БД. Удаленный сервер принимает запрос и переадресует его SQL-серверу БД. SQL-сервер - специальная программа, управ­ляющая удаленной базой данных. SQL-сервер обеспечивает интерпретацию запроса, его вы­полнение в базе данных, формирование результата выполнения запроса и выдачу его прило­жению-клиенту. При этом ресурсы клиентского компьютера не участвуют в физическом вы­полнении запроса; клиентский компьютер лишь отсылает запрос к серверной БД и получает результат, после чего интерпретирует его необходимым образом и представляет пользовате­лю. Так как клиентскому приложению посылается результат выполнения запроса, по сети «путешествуют» только те данные, которые необходимы клиенту. В итоге снижается нагруз­ка на сеть. Поскольку выполнение запроса происходит там же, где хранятся данные (на сер­вере), нет необходимости в пересылке больших пакетов данных. Кроме того, SQL-сервер, если это возможно, оптимизирует полученный запрос таким образом, чтобы он был выпол­нен в минимальное время с наименьшими накладными расходами [3, 3]. Архитектура систе­мы представлена на рис. 3.3.

    Все это повышает быстродействие системы и снижает время ожидания результата запро­са. При выполнении запросов сервером существенно повышается степень безопасности дан­ных, поскольку правила целостности данных определяются в базе данных на сервере и явля­ются едиными для всех приложений, использующих эту БД. Таким образом, исключается возможность определения противоречивых правил поддержания целостности. Мощный ап­парат транзакций, поддерживаемый SQL-серверами, позволяет исключить одновременное изменение одних и тех же данных различными пользователями и предоставляет возможность откатов к первоначальным значениям при внесении в БД изменений, закончившихся аварий­но [3, 3].


 

 

 

Рис 3.3 Архитектура «клиент - сервер»

Итак, в результате работа построена следующим образом:

   База данных в виде набора файлов находится на жестком диске специально выде­ленного компьютера (сервера сети).

  СУБД располагается также на сервере сети.

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

 На каждом из клиентских компьютеров пользователи имеют возможность запус­тить приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к СУБД, расположенной на сервере, на вы­борку/обновление информации. Для общения используется специальный язык за­просов SQL, т.е. по сети от клиента к серверу передается лишь текст запроса.

  СУБД инкапсулирует внутри себя все сведения о физической структуре БД, рас­положенной на сервере.

 СУБД инициирует обращения к данным, находящимся на сервере, в результате ко­торых на сервере осуществляется вся обработка данных и лишь результат выпол­нения запроса копируется на клиентский компьютер. Таким образом СУБД воз­вращает результат в приложение.

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

 

  -Посылка запросов серверу.

  -Интерпретация результатов запросов, полученных от сервера.

  -Представление результатов пользователю в некоторой форме (интерфейс пользо­вателя).

       Функции серверной части:

-Прием запросов от приложений-клиентов.

-Интерпретация запросов.

-Оптимизация и выполнение запросов к БД.

-Отправка результатов приложению-клиенту.

-Обеспечение системы безопасности и разграничение доступа.

-Управление целостностью БД.

-Реализация стабильности многопользовательского режима работы.

В архитектуре «клиент - сервер» работают так называемые «промышленные» СУБД. Промышленными они называются из-за того, что именно СУБД этого класса могут обеспе­чить работу информационных систем масштаба среднего и крупного предприятия, организа­ции, банка. К разряду промышленных СУБД принадлежат MSSQLServer, Oracle, Gupta, Informix, Sybase, , DB3, InterBaseи ряд других [3].

Как правило, SQL-сервер обслуживается отдельным сотрудником или группой сотрудни­ков (администраторы SQL-сервера). Они управляют физическими характеристиками баз данных, производят оптимизацию, настройку и переопределение различных компонентов БД, создают новые БД, изменяют существующие и т. д., а также выдают привилегии (разре­шения на доступ определенного уровня к конкретным БД, SQL-серверу) различным пользо­вателям [3].

Рассмотрим основные достоинства данной архитектуры по сравнению с архитектурой «файл-сервер»:

                     Существенно уменьшается сетевой трафик.

         Уменьшается сложность клиентских приложений (большая часть нагрузки ложится на

серверную часть), а следовательно, снижаются требования к аппаратным мощностям

клиентских компьютеров.

         Наличие специального программного средства - SQL-сервера - приводит к тому, что

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

       Существенно повышается целостность и безопасность БД.

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

3.4. Трехзвенная (многозвенная) архитектура «клиент - сервер».

Трехзвенная (в некоторых случаях многозвенная) архитектура(N-tierили multi-tier).представляет собой дальнейшее совершенствование технологии «клиент - сервер». Рассмот­рев архитектуру «клиент - сервер», можно заключить, что она является 3-звенной: первое звено - клиентское приложение, второе звено - сервер БД + сама БД. В трехзвенной архи­тектуре вся бизнес-логика (деловая логика), ранее входившая в клиентские приложения, вы­деляется в отдельное звено, называемое сервером приложений. При этом клиентским прило­жениям остается лишь пользовательский интерфейс. Так, в качестве клиентского приложе­ния в описанном выше примере выступает Web-браузер.

Что улучшается при использовании трехзвенной архитектуры? Теперь при изменении бизнес-логики более нет необходимости изменять клиентские приложения и обновлять их у всех пользователей. Кроме того, максимально снижаются требования к аппаратуре пользова­телей.

Итак, в результате работа построена следующим образом:

       База данных в виде набора файлов находится на жестком диске специально выде­ленного компьютера (сервера сети).

       СУБД располагается также на сервере сети.

       Существует специально выделенный сервер приложений, на котором располагает­ся программное обеспечение (ПО) делового анализа (бизнес-логика) [1].

       Существует множество клиентских компьютеров, на каждом из которых установ­лен так называемый «тонкий клиент» - клиентское приложение, реализующее ин­терфейс пользователя.

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

       Сервер приложений анализирует требования пользователя и формирует запросы к БД. Для общения используется специальный язык запросов SQL, т.е. по сети от сервера приложений к серверу БД передается лишь текст запроса.

       СУБД инкапсулирует внутри себя все сведения о физической структуре БД, рас­положенной на сервере.

       СУБД инициирует обращения к данным, находящимся на сервере, в результате ко­торых результат выполнения запроса копируется на сервер приложений.

       Сервер приложений возвращает результат в клиентское приложение (пользовате­лю).

       Приложение, используя пользовательский интерфейс, отображает результат вы­полнения запросов.

3.5. Краткий обзор СУБД

Многие авторы классифицируют СУБД на две большие категории: так называемые «на­стольные» и «серверные».

 

Настольные СУБД

Настольные СУБД используются для сравнительно небольших задач (небольшой объем обрабатываемых данных, малое количество пользователей). С учетом этого, указанные СУБД имеют относительно упрощенную архитектуру, в частности, функционируют в режи­ме файл-сервер, поддерживают не все возможные функции СУБД (например, не ведется журнал транзакций, отсутствует возможность автоматического восстановления базы данных после сбоев и т. п.). Тем не менее, такие системы имеют достаточно обширную область при­менения. Прежде всего, это государственные (муниципальные) учреждения, сфера образова­ния, сфера обслуживания, малый и средний бизнес. Специфика возникающих там задач за­ключается в том, что объемы данных не являются катастрофически большими, частота об­новлений не бывает слишком высокой, организация территориально обычно расположена в одном небольшом здании, количество пользователей колеблется от одного до 10-15 человек. В подобных условиях использование настольных СУБД для управления информационными системами является вполне оправданным, и они с успехом применяются.

Одними из первых СУБД были так называемые dBase-совместимые программные сис­темы, разработанные разными фирмами. Первой широко распространенной системой такого рода была система dBaseIII - PLUS(фирма Achton-Tate). Развитый язык программирования, удобный интерфейс, доступный для массового пользователя, способствовали широкому рас­пространению системы. В то же время работа системы в режиме интерпретации обусловли­вала низкую производительность на стадии выполнения. Это привело к появлению новых систем-компиляторов, близких к системе dBaseIII - PLUS: Clipper(фирма NantucketInc.), FoxPro(фирма FoxSoftware), FoxBase+ (фирма FoxSoftware), VisualFoxPro(фирма Microsoft).Одно время достаточно широко использовалась СУБД PARADOX(фирма BorlandInternational).

В последние годы очень широкое распространение получила система управления база­ми данных MicrosoftAccess, которая входит в целый ряд версий пакета MicrosoftOf- fice(фирма Microsoft).

Серверные СУБД

Для крупных организаций ситуация принципиально меняется. Там использование файл-серверных технологий является неудовлетворительным по описанным выше причинам. Поэтому на передний край борьбы за автоматизацию выходят так называемые серверные СУБД.

Основными производителями таких систем обработки и хранения данных являются 3 корпорации: Oracle, Microsoftи IBM.

Наиболее распространенными клиент-серверными системами здесь соответственно яв­ляются системы Oracle(разработчик компания Oracle), MSSQLServer(разработчик компа­ния Microsoft), DB3 , InformixDynamicServer(компания IBM).

Дадим краткую характеристику этим системам.

MSSQLServer

К настоящему времени разработано несколько версий систем: MSSQLServer-3000, MSSQLServer-3005, MSSQLServer-3008.Приведем информацию о системе MSSQLServer- 3008 с сервера Microsoft(http://www.microsoft.com/rus/SQL/3008/default.mspx)

Microsoft® SQLServer3008 - это законченное предложение в области баз данных и анализа данных для быстрого создания масштабируемых решений электронной коммерции, бизнес-приложений и хранилищ данных. Оно позволяет значительно сократить время выхо­да этих решений на рынок, одновременно обеспечивая масштабируемость, отвечающую са­мым высоким требованиям. В SQLServerвключена поддержка языка XMLи протокола HTTP, средства повышения быстродействия и доступности, позволяющие распределить на­грузку и обеспечить бесперебойную работу, функции для улучшения управления и настрой­ки, снижающие совокупную стоимость владения

Платформа бизнес-анализа SQLServer3008, тесно интегрированная с MicrosoftOffice, предоставляет развитую маштабируемую инфраструктуру для внедрения мощных возможно­стей бизнес-анализа в рабочий процесс всех бизнес-подразделений вашей компании, откры­вая доступ к нужной бизнес-информации через знакомый интерфейс MSExcelи MSWord.

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

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

MSSQLServer-3008 предлагает разработчикам развитую, удобную и функциональную среду программирования, включая средства работы с веб службами, инновационные техно-

логии доступа к данным - все, что необходимо для эффективной работы с данными любых типов и форматов.

Oracle

К настоящему времени разработано несколько версий систем, каждая из которых включает целую линейку продуктов, например Oracle8, Oracle 9i, Oracle 10g.

Соответствующие линейки продуктов включают как собственно СУБД (напримерOracleDatabase 10g, OracleDatabase 11g) , так и средства разработки и анализа данных.

Приведем информацию о системе с сервера Oraclehttp://www.oracle.com/global/ru/mid/ oracle_products/database.html).

Oracleпредлагает комплексные, открытые, доступные и удобные в использовании тех­нологические решения. Готовые пакетируемые решения автоматически включают в свою стоимость базу данных, сервер приложений, интеграционную платформу, инструменты ана­литики и управления неструктурированными данными. Масштабируемые бизнес- приложения Oracleмогут быть легко интегрированы с ИТ-инфраструктурой предприятия без потери уже вложенных в ITинвестиций.

СУБД OracleDatabase 11gобеспечивает улучшенные характеристики за счет автомати­зации задач администрирования и обеспечения лучших в отрасли возможностей по безопас­ности и соответствию нормативно-правовым актам в области защиты информации. Появи­лось больше функций автоматизации, самодиагностики и управления. Среди характеристик системы можно отметить управление большими объемами данных с использованием распределенных таблиц и компрессии, эффективную защиту данных, возможность полного восстановления, возможность интеграции геофизических данных медиа-контента в бизнес-процете и т.д.

Серверы баз данных компании IBM 

К настоящему времени разработаны линейки продуктов DB3 и Informix, включающая как собственно СУБД так и средства разработки и анализа данных (DB3 UniversalDatabaseDB3 PersonalEdition, DB3 Enterprise9 и др., а также InformixDynamicServer, InformixDynamicServerExpress, InformixExtendedParallelServerи др.

Приведем информацию о части таких систем с сервера (http://www-01.ibm.com/software/ru/data/?pgel=ibmhzn)

Универсальный сервер баз данных DB3 UniversalDatabase - это масштабируемая, обь-ектно-реляционная система управления базами данных с интегрированной поддержкой мультимедиа и Web, работающая на системах от персональных компьютеров и серверов на процессорах Intelдо Unix, от однопроцессорных систем до симметричных многопроцессор­ных систем (SMP) и систем с массовым параллелизмом (MPP), на хостах AS/400 и мейн- фреймах. DB3 UniversalDatabaseобъединяет в себе высокую производительность систем об­работки транзакций в режиме on-line, объектно-реляционные расширения, усовершенство- ванные средства оптимизации с возможностями параллельной обработки и поддержкой очень больших баз данных. DB3 UniversalDatabaseтакже имеет новые встроенные средства для облегчения переноса на свою базу приложений, разработанных на других системах управления базами данных, таких как Oracle, Microsoft, Sybaseи Informix.Помимо этого, DB3 UniversalDatabaseвключает в себя дополнительные средства поддержки систем анали­тической обработки в реальном времени (OLAP) и систем поддержки принятия решений, множество простых в использовании расширений (DB3 extenders). DB3 UniversalDatabaseдоступна на абсолютном большинстве ключевых платформ, что дает заказчикам ту гибкость, которая им необходима.

Кроме вышеуказанных зарубежных систем отметим и отечественную разработку - СУБД НИКА, преемницу широко распространенной в Советском Союзе СУБД ИНЕС для ЕС ЭВМ.

В этой лекции был приведен краткий обзор незначительной части существующих СУБД. При огромном разнообразии СУБД вполне естественны споры (которые возникли с момента появления СУБД и, по-видимому, не утихнут никогда) о том, какая СУБД лучше. Нам представляется, что однозначного ответа на этот вопрос не существует. Каждая СУБД имеет свои границы применимости, у каждой из них существуют свои достоинства и недос­татки, свое соотношение цена-качество. На форумах Интернета идут постоянные дискуссии пользователей и администраторов баз данных о том, какая СУБД лучше, которые, естествен­но, не дают окончательного ответа. Любой читатель может иметь личные пристрастия, кото­рые в его глазах уменьшают недостатки и увеличивают достоинства некоторой конкретной СУБД. Общие рекомендации о том, какой из СУБД воспользоваться в каком-то конкретном случае, придумать сложно. Выбор, прежде всего, зависит от класса задач, который нужно решать с использованием СУБД, от тех критериев, которые для соответствующего класса задач являются предпочтительными (стоимость СУБД, простота разработки информацион­ной системы, быстродействие системы при конкретных объемах данных, устойчивость в ра­боте, возможность восстановления, защита от несанкционированного доступа и т.д.). Реко­мендация может быть только одна: внимательно изучайте обзоры, читайте пресс-релизы, знакомьтесь с отзывами пользователей, сопоставляйте их наблюдения о плюсах и минусах систем с вашими потребностями и возможностями.

Краткие итоги. В лекции рассмотрены различные архитектурные решения, исполь­зуемые при реализации многопользовательских СУБД. Централизованная архитектура. Тех­нология с сетью и файловым сервером (архитектура «файл-сервер»). Архитектура «клиент - сервер» (распределенная модель вычислений). Трехзвенная (многозвенная) архитектура) клиент - сервер. Дан обзор современных СУБД (настольные СУБД, серверные СУБД).

Сайт создан по технологии «Конструктор сайтов e-Publish»