Смекни!
smekni.com

Разработка программного продукта для автоматизации учета оплаты договоров за обучение (стр. 4 из 10)

Системы управления базами данных (СУБД) – это программные средства, предназначенные для создания, наполнения, обновления и удаления баз данных. [3]

В зависимости от расположения различают локальные и распределенные (удаленные) СУБД.

Все части локальной СУБД размещаются на компьютере пользователя базы данных. Локальный вариант реально может обеспечить лишь однопользовательский режим доступа к данным. Этот вариант на предприятиях практически не встречается, так как в нем чрезвычайно трудно синхронизировать содержимое нескольких копий БД, количество которых (копий) должно равняться количеству одновременно работающих с данными пользователей.

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

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

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

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

Недостаточно развитый аппарат транзакций локальных СУБД служит потенциальным источником ошибок как при одновременном внесении изменений в одну и ту же запись, так и при реализации отката результатов серии объединенных по смыслу в единое целое операций над БД, когда некоторые из них завершились успешно, а некоторые – нет. Это может нарушать ссылочную и смысловую целостность БД.

Перечисленных недостатков во многом лишены СУБД, построенные по архитектуре клиент-сервер.

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

Клиент формирует запрос к серверу на языке запросов SQL (StructuredQueryLanguage – структурированный язык запросов), являющийся промышленным стандартом для реляционных БД. SQL-сервер обеспечивает интерпретацию запроса, его выполнение, формирование результата и выдачу этого результата клиенту. При этом ресурсы клиентского компьютера не участвуют в физическом выполнении запроса: клиентский компьютер лишь отсылает запрос к серверной БД и получает результат, после чего интерпретирует его необходимым образом и предоставляет пользователю. Так как клиентскому компьютеру посылается результат выполнения запроса, по сети передаются только те данные, которые в действительности нужны клиенту. В итоге снижается нагрузка на сеть. Кроме того, SQL-сервер, если это возможно, оптимизирует полученный запрос таким образом, чтобы он был выполнен за минимально возможное время. Все это повышает быстродействие системы и снижает время ожидания результата запроса.

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

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

По вышеназванным причинам при разработке базы данных в дипломном проекте была выбрана архитектура клиент-сервер.

В архитектуре клиент-сервер используются промышленные серверы данных типа Oracle, MSSQLServer, Informix, Sybase, InterBaseи ряд других [5]. Серверы Oracle, Informix, Sybase управляют базами данных объемом десятки и сотни гигабайт. Для управления меньшими корпоративными базами данных MS SQL Server и InterBase. Каждый тип сервера работает на собственном диалекте языка, который более или менее соответствует стандарту ANSI 92. Серверы Oracle и InterBase имеют некоторые дополнения. А диалекты серверов Sybase и MSSQL отличаются от стандарта довольно сильно. [4]

Oracle была первой коммерческой реляционной СУБД, поддерживающей ставший ныне индустриальным стандартом язык SQL; ее первая версия появилась в 1970 году. Ранние версии этой СУБД были предназначены для мэйнфреймов, а в качестве рабочих мест использовались терминалы. Однако со временем появились версии Oracle, предназначенные для использования в архитектуре клиент-сервер (первой такой версией была Oracle 5, выпущенная в 1985 году). Первоначально версии Oracle были предназначены для различных серверных платформ. Первые версии этого сервера для персональных компьютеров появились в середине 90-х годов. Oracle была первой компанией, создавшей СУБД, использовавшую предоставляемыми некоторыми серверными платформами средства параллельных вычислений. На сегодняшний день последней версией этого сервера является версия Oracle 8i, отличительными свойствами которой являются:

- наличие объектных расширений и соответствующих типов данных;

- наличие функций аналитической обработки данных;

- возможность создания таблиц, содержащих агрегатные данные;

- поддержка хранения мультимедиа-данных;

- дополнительные возможности обеспечения безопасности данных, например, шифрование данных;

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

Oracle производит собственные средства разработки клиентских приложений, например, Developer/2000 или OraclePowerObjects, а также предоставляет пользователям возможность создавать клиентские приложения с помощью других средств. [5]

Первая версия MicrosoftSQLServer предназначалась для платформы OS/2, последующие версии этого сервера баз данных предназначались для платформы WindowsNT и со временем были тесно интегрированы с этой операционной системой. На сегодняшний день наиболее широко используемой является выпущенная в 1998 году версия MicrosoftSQLServer 7.0. Эта версия предназначена исключительно для платформы WindowsNT, в ее состав входят удобные утилиты администрирования, сервисы преобразования данных, поддержка распределенных запросов и транзакций, утилиты для создания хранилищ данных. Клиентские приложения для MicrosoftSQLServer можно создавать как с помощью средств разработки Microsoft VisualBasic, VisualC++ и других, так и с помощью средств разработки других производителей. Для этого поставляются специальные драйверы и библиотеки. [5]

Ведущий продукт фирмы InformixInformixDynamicServer, последняя версия которого называется InformixDynamicServer.2000. Данный продукт поддерживает платформы UNIX и MicrosoftSQLServer и обеспечивает эффективную работу как на одно-, так и на многопроцессорных системах. В числе основных характеристик сервера следует отметить следующие:

- использование для управления дисковым пространством как средств ОС, так и собственных функций, что позволяет добиться более высокой производительности;

- управление разделением памяти;

- поддержка фрагментации таблиц и индексов на нескольких дисках;

- распараллеливание запросов;

- зеркалирование данных;

- двухфазное завершение транзакций и др.

Клиентские приложения могут создаваться с использованием C, C++, Java, VisualBasic, Delphi. Помимо этого существует собственное средство разработки Informix 4GL и InformixClientSoftwareDeveloper'sKit. [5]

Одним из серверных продуктов фирмы Sybase является продукт под названием AdaptiveServerEnterprise. Этот продукт существует для WindowsNT и некоторых версий UNIX и предназначен для обслуживания крупных предприятий. Другим продуктом этой фирмы является AdaptiveServerAnywhere. Этот сервер предназначен для обслуживания небольших рабочих групп, для применения в портативных компьютерах в качестве персонального сервера с периодическим копированием информации в общую БД. [5]