Файл: Теория баз данных в экономических системы.doc

Добавлен: 15.11.2018

Просмотров: 2785

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.





































3. Виды корпоративных СУБД.


3.1 СУБД MS SQL Server.


3.1.1 Различие между МА и MS SQL Server.


MS SQL Server - это реляционная СУБД построенная по архитектуре клиент-сервер. MS SQL Server ориентирован на использование в операционных системах (ОС) Windows NT/2000 и использует в своей работе системные функции этих ОС, что значительно упрощает архитектуру MS SQL Server, в отличие от других СУБД вынужденных дублировать некоторые функции ядра операционной системы, для обеспечения межплатформенной переносимости. За счет такой тесной интеграции с Windows NT/2000, СУБД MS SQL Server работает на всех платформах, для которых реализована Windows NT/2000 (Intel, Alpha, PowerPC и др.), поддерживает большое количество сетевых протоколов (TCP/IP, IPX/SPX, Named Pipes (NetВEUI), Вапуап Vines, AppleTalk (ADSP), DECNet), поддерживает многопроцессорность и др.

MS SQL Server является разработкой корпорации Мiсrosоft (последней версией, на середину 2002 г. является MS SQL Server 2000, широко используется также версия MS SQL Server 7.0). Поскольку СУБД MS Access также является разработкой этой корпорации, то очевидно, что между этими двумя продуктами существует некоторая общность. Так интерфейс конструктора таблиц, ввода данных в них, описания схемы данных и т.д. в MS SQL Server, в значительной мере напоминает MS Access. MS Access может также исполь­зоваться и в качестве клиентской части MS SQL Server (Меню Файл/Внешние данные/Связь с таблицами/ Тип файлов: Базы данных ОDВС/Кнопка Nеw/Выбрать драйвер MS SQL Server). Впрочем, MS Access может использоваться и в качестве клиента для доступа к базе данных Oracle и др. базам данных.

Однако SQL Server - это не просто улучшенный Access. Между этими СУБД есть принципиальная разница. Если Access базируется на архитектуре файл-сервер и приемлем для небольших баз данных и небольшого числа пользователей (офисная СУБД), то SQL Server базируется на архитектуре клиeнт-сервер и применяется в базах данных среднего размера и большим числом пользователей (профессиональная СУБД). Даже по тем позициям, где возможности Access и SQL Server схожи, SQL Server значительно превосходит Access. Так, например, и в Access и в SQL Server реализована система разграничения доступа к объектам базы данных (разные пользователи имеют разные права по работе с различными таблицами, запросами и т.д.). Однако в SQL Server ограничения доступа можно выставлять не только на таблицу в целом, но даже и на отдельные ее столбцы. Также в SQL Server поддерживается механизм ролей. Роль - это набор прав доступа к объектам базы данных. Роли для каждой базы данных можно определять самостоя­тельно или пользоваться заранее определенными ролями. Например, роль администраторы безопасности (security admin) - это пользователи которые могут допускать других пользователей к работе с базой данных, роль создатели базы данных (db creators, database creators) - пользователи которые могут создавать и изменять структуру базы данных и т.д. Используя роли можно быстро и удобно разграничить доступ между пользователями, предоставив им только те права, которые действительно необходимы. Причем нарушения прав доступа, также как и сама работа SQL Server будут протоколироваться в специальных lоg-файлах. SQL Server также позволяет пользователям, правильно указавшим свой пароль при входе в сеть (домен Windows NT/2000), повторно не вводить пароль при доступе к базе данных (Windows authenticatio(1 mode).


К другим существенным отличиям относится то, что если в Access хранимые процедуры и функции пишутся на VВА (Visual Basic for Applications), то в SQL Server основным языком написания хранимых процедур является Transact SQL (хотя могут использоваться и внешние хранимые процедуры, написанные на других языках). Transact SQL - это диалект SQL, в котором, помимо стандартных инструкций SQL, предусмотрены возможности организации циклов, условного выполнения операторов и т.д.

Также необходимо упомянуть, что существующие базы данных Access (также как и файлы Excel, базы данных Paradox, Visual FoxPro и др.) легко импортируются в SQL Server, так что переход на SQL Server относительно прост.


3.1.2 Объекты MS SQL Server.


MS SQL Server может содержать несколько баз данных. На одном компьютере может быть установ­лено несколько экземпляров MS SQL Server. Каждая база данных содержит следующие объекты:

1) таблицы

2) индексы

3) представления (виды, запросы)

4) диаграммы (схема данных)

5) курсоры (окно накладываемое на набор данных, аналог окна в текстовом редакторе, в котором в каждый момент времени отображается только часть документа)

6) триггеры, хранимые и внешние процедуры, функции пользователя, пользовательские типы данных

7) правила (ограничения на значения столбцов) и умолчания (значения столбцов по умолчанию) ­необходимо для совместимости со старыми версиями, в новых версиях все эти ограничения указываются в инструкции Create языка SQL. .

8)перечень пользователей, допущенных к базе данных и их разрешения, роли пользователей

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

Управление SQL Server 2000 осуществляется через оснастку Enterprise Manager ММС (Мiсrоsоft Management Console), которая по внешнему виду напоминает проводник (рис. 18). Эта оснастка, помимо непосредственной работы с конкретной базой данных (создание таблиц, импорт или ввод данных в таблицы, создание пользователей и определение их прав доступа и т.д.), позволяет выполнять много дополнительных операций: создавать расписание обслуживания базы данных (maintenance plan: проверка целостности БД, реорганизации: свободного места в БД, резервное копирование БД и журналов транзакций и др.), создавать перечень операторов, ответственных за обслуживание БД (имя, адрес электронной почты или номер пейд­жера, время работы) и определять ошибки в базе данных (alerts), при которых данному оператору будет направлено сообщение.

Репликация баз данных также настраивается через Enterprise Manager MMS. Репликация - это распростране­ние копий базы данных на другие компьютеры в сети (например, пользователям других сетей, или пользова­телям мобильных компьютеров). Репликация в MS SQL Server 2000 может быть следующих типов:

.1) Snapshot replication (репликация снимков): копии соответствующих таблиц передаются другим базам данных как снимок (snapshot) их текущего состояния, и не обновляются автоматически. Пользователи других баз данных не могут изменять содержимое снимка.


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

.3) Merge replication (объединяющая репликация): копии соответствующих таблиц передаются другим базам данных. Причем как пользователи основной базы данных, так и пользователи баз данных, на которых находятся копии, могут изменять данные. Все изменения в исходный вариант и копии будут внесены автоматически.



Рис. 18 Управление СУБД SQL Server 2000 при помощи Enterprise Manager ММС.


Помимо Enterprise Manager ММС, существует целый ряд других утилит, позволяющих управлять работой SQL Server. Используя утилиту Ргofiler можно отслеживать работу SQL Server, анализировать и настраивать его производительность. Утилиты Server Network Utility и Client Network Utility позволяют настроить список протоколов, поддерживаемых на сервере и клиентах (например, включить шифрование передаваемых данных). Утилита Analysis Manager ММС (пакет MS SQL Analysis Services устанавливается отдельно) позволяет использовать MS SQL Server 2000 не только как систему оперативной обработки транзакций (OLТР-систему), но и как систему делового анализа (хранилище данных, ОLАР-систему). Помимо утилит с графическим интерфейсом, MS SQL Server может управляться и при помощи утилит командной строки, что позволяет настраивать SQL Server из файлов-сценариев.

Важным моментом является и то, что MS SQL Server 2000 представляет средства интеграции с сервисами сети Internet. В частности, запросы к SQL Server можно направлять непосредственно по протоколу http (используя внешний Web-сервер, например IIS). Кроме того, в MS SQL Server 2000 поддерживается язык XML, наилучшим образом подходящий для представления структурированных данных в Web-броузерах.




3.2 СУБД Oracle.


3.2.1 История развития СУБД Oracle.


СУБД Oracle является на сегодняшний день самой мощной, многофункциональной и легко масштабируе­мой СУБД, построенной по архитектуре "клиент-сервер", поддерживающей практически все существующие платформы. Это прекрасный выбор для крупной организации: первоначальные затраты на установку (лицен­зия, приобретение высокопроизводительных серверов) в будущем обернутся значительной экономией средств при необходимости расширения базы данных. Для небольшой организации мощь Oracle может оказаться чрезмерной, в таком случае можно рекомендовать использование Мiсrоsоft SQL Server (Windows NT/2000) или PostgreSQL (Linux/Unix). Для фирм малого бизнеса стандартом остается СУБД MS Access. Тем не менее, Oracle продолжает занимать значительную долю рынка, являясь пожалуй самой передовой СУБД.

Первая коммерческая версия СУБД Oracle 2.0 (версия 1.0 не поставлялась заказчикам) была создана фирмой Relational Software Incorporated (позднее переименована в Oracle Corporation) на миникомпьютере РDР-ll фирмы Digital Equipment Corporation в операционной среде RSX-II. Отличительные черты этой и последующих версий представлены в таблице 14.



3.2.2 Инструменты и технологии, реализованные в СУБД Oracle.


Поддержка языка PL/SQL


Язык PL/SQL является диалектом SPL-SQL (Stored Procedure Language - SQL) - модифицированным вариантом языка SQL, использующимся в СУБД для описания триггеров, хранимых процедур и функций. Если в традиционном SQL отсутствуют циклы, операторы IF..THEN..ELSE и т.д., то в языках SPL-SQL все эти возможности имеются, что позволяет писать на них "полноценные" программы, хранимые в самой СУБД. Другим широко известным диалектом SPL-SQL является язык Transact-SQL, реализованный в СУБД MS SQL Server и СУБД Sybase.


Программа SOL *NET


Программа SQL *Net позволяет пользователю взаимодействовать с удаленной базой данных (или несколь­кими базами данных) через сеть так, как будто бы это была локальная база данных, находящаяся на компью­тере пользователя. SQL *Net устанавливается и на сервере и на клиенте. Задача администратора – настроить ее, создать именованный канал связи между локальной и удаленной базой данной. Именованный канал свя­зи определяет: местоположение удаленного сервера БД в сети, используемый коммуникационный протокол, имя удаленной базы данных, имя и пароль пользователя для подключения к БД. После создания именован­ного канала связи доступ к удаленной базе данных из инструкций SQL осуществляется в виде:

ИМЯ _ ТАБЛИЦЫ @ имя_канала.

SQL*Net поддерживает практически все сетевые протоколы: TCP/IP, SPXlIPX, DECnet, АРРС, ISO!OSI, Named Pipes, NetBIOS, AppleTalk, Banyan Vines,. XODIAC, Wang Systems Network и др. Механизм многопротокольного обмена - MPI (Multiple Protocol Interchange) осуществляет преобразование данных из одного протокола в другой и позволяет





Таблица 14. История развития СУБД Oracle


Версия

Отличительные черты

Orac1e 2.0

1979 г

Большая часть СУБД написана на ассемблере РDР-ll, а отдельные компоненты - на языке Си. Реализована межплатформенная переносимость (например, помимо "родной" ОС RSX- 11, работала в ОС UNIX). Полная реализация нового (на то время) языка запросов SQL (по стандарту IВM). Отсутствие поддержки транзакций

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

Orac1e 3.0

1983 г.

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

Orac1e 4.0

1984 г.

Существенно повышена надежность и проработан механизм блокировок, для обеспечения непротиворечивости данных, при одновременной работе с СУБД нескольких пользователей Выполнен перенос Oracle 4.0 на большие компьютеры в ОС VМ и MVS, а также на персональный компьютер с 640 Кбайтами оперативной памяти.

Orac1e 5.0

1985 г.

Впервые введена архитектура "клиент/сервер" и реализована программа SQL *Net, поддерживающая неоднородные среды.

Orac1e 5.1

1986 г.

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

Oracle 6.0

Ориентирована на построение крупномасштабных информационных систем, позволяющих обрабатывать транзакций в режиме реального времени. Существенно улучшен механизм блокировок (введена блокировка на уровне записи, введено несколько уровней блокировки, что позволило процессам чтения и записи больше не блокировать друг друга). Частично реализован механизм описания ограничений ссылочной целостности на уровне схемы базы данных. Введена возможность совместного использования языка SQL с процедурным язы ком PL/SQL (получающиеся в результате утверждения могли посылаться для выполнения на сервер, как анонимные процедуры). В язык PL/SQL введен язык четвертого поколения на системы OS/2, Xenix, Вапуап Vines и Macintosh.

Orac1e 7.0

Повышение эффективности ввода/вывода, использования центрального процессора и работы с памятью, оптимизатор запросов, разделяемый SQL-кэш на сервере (SQL-инструкции, ко торые ранее уже были получены от клиентов, проанализированы и скомпилированы, хранят ся некоторое время в кэш-памяти, экономя время и память при обработке последующих аналогичных SQL-инструкций). Полностью реализован механизм описания ограничений ссылочной целостности на уровне схемы базы данных (каскадные удаления и обновления записей). При помощи PL/SQL реализованы хранимые процедуры и триггеры. В области администрирования введены: зеркальный журнал транзакций, динамическое создание журналов данных, команда ANALYZE, позволяющая собирать статистику об использовании таблиц, индексов и других физических объектах (используется оптимизатором запросов), профили пользователей на использование системных ресурсов (процессора, ввода/вывода и т.д.), роли пользователей. Роль - это совокупность прав доступа к объектам базы данных (1NSERT, UPDATE, SELECT и др.) и системных прав (CREATE TABLE, ALTER SYSTEM и т.д.). Определив роль, администратор базы данных может с помощью одной команды GRANT дать пользователю привилегии для работы с некоторым приложением.

Oracle 7.1

Полностью поддерживает стандарт ANSl SQL 89 и входной уровень ANSl SQL 92. Достигнута полная интеграция PL/SQL и SQL. Если ранее можно было использовать конструкции SQL в текстах PL/SQL (но не наоборот), то теперь функции PL/SQL могут вызываться из SQL как обычные встроенные функции в любых SQL-инструкциях (SELECT, WHERE, GROUP ВУ, CREATE TABLE, ALTER TABLE и др.). Реализована возможность динамически формировать и выполнять инструкции SQL в программах PL/SQL, т.е. реализо ван динамический SQL (благодаря встроенному пакету DBMS_SQL). Реализована возмож ность параллельной обработки запросов (опция paralle1 query), параллельного создания ин дексов и параллельной загрузки данных (параллельная работа сразу нескольких серверных процессов, под управлением процесса-координатора). В области распределенной обработки данных введена асинхронная симметричная репликация данных и асинхронный вызов vдаленных процедvр.

Oracle 8.0

1997 г.

Первая объектно-ориентированная версия СУБД Oracle (использование объектной модели для доступа к данным, вызова внешних процедур на языках С, С++, Java, как методов объек тов и т.д.). Поддержка языка Java: встроенная в СУБД виртуальная Jаvа-машина и техноло гия SQLJ дЛЯ возможности внедрения инструкций SQL в Jаvа-код. Как следствие - хранимые процедуры и триггеры на языке Java, взаимодействие Java - SQL - PL/SQL. Драйвер JDBC - набор стандартных АРI-функций, позволяющих внешним программам на языке Java взаимодействовать с базой данных при помощи SQL-инструкций. Упрощены процедуры резервного копирования, восстановления и репликации базы данных. Введена возможность разделять большие таблицы и индексы на несколько небольших самостоятельных частей (partitioning). В результате появляется возможность обслужива ния/восстановления крупных таблиц "по частям", в случае утраты одной части (из-за физи ческих проблем диска) остальные части таблицы продолжают оставаться корректными - данные всей таблицы не теряются. Улучшена параллельная обработка данных, возможность оперативной обработки транзакций (OL ТР, Online Transaction Processing), улучшена работа с данными типа мультимедиа.

Oracle 8.1

1999 г.

Версия, ориентированная на более тесную интеграцию в сеть Intemet. Интегрированный в СУБД Web-серВер (на основе Apache) -СУБД может сама принимать НТТР-запросы и обрабатывать их без помощи внешнего Web-серВера. Акселератор (JIТ-компилятор) для Jаvа-машины - байт-код Java компилируется в выполнимый код для конкретной платформы, что значительно увеличивает быстродействие. Поддержка JavaServer Pages, сервлетов Java и компонентов Java Beans. Поддержка языка XML. PL/SQL шлюз для протокола НТТР. Защита информации при помощи криптографических алгоритмов RC4 (256-бит) и TripleDes, поддержка протокола SSL, значительно повышена защищенность и стабильность самой СУБД.

Oracle 9

2002 г

Было сделано более 400 изменений, по сравнению с предыдущей версией, обеспечивающих улучшение работы СУБД.




существенно снизить число, используемых протоколов в сети.

SQL *Net поддерживает также множественные сетевые интерфейсы для одного узла.

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


Программа SQL *PLUS


Программа SQL *Plus позволяет интерактивно, из командной строки, взаимодействовать с БД Oracle при помощи инструкций SQL (рис. 19). Программа позволяет:

1) выполнять в построчном режиме большинство SQL-операторов и блоки PL/SQL;

2)создавать или изменять таблицы и представления, а также просматривать их содержимое в окне SQL *Plus в форме отчета;

3) просматривать определения столбцов для любой таблицы;

4) выполнять отладку SQL-операторов, хранимых процедур и функций, блоков PL/SQL перед их использованием в разрабатываемых приложениях;

5) получать доступ и копировать данные между различными SQL-базами данных;

выполнять встроенные команды SQL *Plus.




Рис. 19 Пример запроса в окне SQL *Plus.


ORACLE Developer


ORACLE Developer - это мощная интегрированная среда разработки приложений, взаимодействующих с БД Oracle по архитектуре клиент/сервер. Причем поддерживается создание приложений, как по архитектуре клиент - сервер, так и по трехуровневой архитектуре (клиент- сервер приложений - сервер БД). Пример трехуровневой архитектуры, с использованием Oracle Fonns Server приведен на рис. 20. Наличие интегрированного в Oracle Web-сервера позволяет реализовать трехуровневую архитектуру и без использования Forms Server, однако это потребует больших затрат времени программистов.



Рис. 20 Трехзвенная архитектура, с использованием Oracle Fonns Server.


В состав среды ORACLE Oeveloper входят следующие программы:

- Form Builder

- Report Bu]der

- Graphics Builder

- Procedure Builder

- Project Builder


Form Builder - это интегрированная среда для разработки программ, которые позволяют получить доступ к БД Oracle, при помощи удобных форм пользователя. Такой подход чем-то напоминает формы MS Access, с той разницей, что Form Builder позволяет создавать самостоятельные программы-клиенты, выполняющиеся на компьютере пользователя. Эти программы содержат собственное меню, окна, элементы управления, триггеры, срабатывающие при определенных действиях пользователя, и процедуры, написанные на PL/SQL. Процедуры могут определяться и быть доступными как внутри одной формы, так и группироваться в библиотеки процедур, используемые несколькими формами.

Report Builder - это интегрированная среда разработки отчетов, позволяющая при помощи удобных мастеров строить практически любые отчеты (табличные, главный-подчиненный и др.), с использованием различных текстовых и графических объектов и процедур PL/SQL. С помощью шлюзов можно строить отчеты из данных, находящихся в базах данных других производителей (например, ОВ2).

Graphics Builder - средство визуализации данных БД Oracle, поддерживает языки SQL и PL/SQL, импорт и экспорт данных и графики из различных источников.