“Сравнение субд oracle и sqlserver”

Министерство общего и профессионального образования  РФ

Удмуртский государственный университет

Физический факультет

Кафедра: Высшей математики















Реферат

“Сравнение СУБД Oracle и SQLServer”







Выполнил

     Студент гр. 38-41:                                                         Чазов А.В. 

Проверил                                                                                            Вотинцев А.А.







Ижевск 2003г.











Выбор платформы

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

•  Тип приложения, т.е. функциональное назначение системы.

•  Количественные характеристики системы - показатели, касающиеся         транзакций, потоков данных и объемов хранимой информации.

•  Текущая среда. Какая операционная среда для вас предпочтительнее в настоящее время?

•  Тенденции. Каковы основные тенденции в развитии операционной среды, которую вы планируете использовать?

•   Временные ограничения. Насколько вы способны поддерживать и развивать систему в заданные временные рамки?

•  Переносимость и взаимоотношения контрагентов. Существует ли какое-либо партнерство или взаимодействие между производителями СУБД, операционной системы и технических средств?

•   Интегрируемость компонентов. Имеется ли положительный опыт совместной работы компонентов, которые планируется включить в систему, помимо сказанного в предыдущем пункте?



 Oracle)

 Oracle работает на более чем 80 операционных системах, от суперкомпьютеров до встроенных систем. 

Новые версии появляются последовательно в течение месяца для Sun Solaris, WindowsNT/2000, Linux. Позже появляются версии для Novell NetWare, клонов UNIX.


 SQL Server)

    Microsoft  на сегодняшний день может прежложить SQL Server для WindowsNT Server, 2000Server и Windows98, 2000 Professional с ограничениями по функциональности.

От операционной системы требуется: 

1) чтение-запись в файлы большого размера в асинхронном режиме, поддержка raw 

partitions, корректная работа виртуальной памяти, обслуживание около 10 базовых процессов и от ~10 до 100 процессов на каждую сотню пользователей.

Большинство операционных систем с этим справляется одинаково. 

Windows NT/2000)

На Windows NT/2000 вместо отдельных процессов используются нити процесса, что производительнее. Поддержка журнализации в файловой системе не важна, так как Oracle не меняет метаданные - редко создает файлы и меняет их размер. А системы с полной журнализацией вообще вредны: они медленнее в случае Oracle. Размеры драйверов файловых систем и контроллеров жеских дисков почти у всех одинаков. На Windows NT/2000 вся работа с файлами идет через кэш операционной системы в самонастраивающемся асинхронном режиме, благодаря чему работа с файлами на этой операционной системе производительнее по сравнению с другими ОС. 



Unix)

В Unix асинхронный ввод-вывод до сих пор опциональный да и не везде работает на файловых системах. Причем, процесс кэширования загнан в жесткие рамки: если блок старше установленного времени лопни, но сбрось его на диск независимо от его загрузки. Отсюда существенное увеличение производительности при использовании RAID контроллеров на Unix, чьи алгоритмы и кэширование более интеллектуальны ("elevator reading", например). Главное, чтобы дисковая подсистема не выдавала ошибок при большом числе обращений. Для виртуальной памяти главное, чтобы система не давала утечек памяти. Oracle выделяет большую область памяти сразу, поэтому фрагментация памяти не особенно страшна. Также существенна тщательность отладки кода самого Oracle под конкретную систему. Она лучше для более популярных систем.


Но все это говорится о его серверной части. Клиентские же части SQL Server могут располагаться отдельно от сервера. Ядро базы данных SQL Server работает под управлением Windows NT или Windows 9x, а клиентские компьютеры по сети обращаются с запросами к серверу для получения необходимых данных. Таким образом, клиентская часть SQL Server выполняется на каждом компьютере пользователя, подключенном к сети, а на компьютере с SQL Server работает только серверная часть.

  SQL Server поддерживает  клиентские   системы на базе:  

Windows NT/2000, Windows 9x, Windows for Workgroups; Macintosh, DOS, OS/2, UNIX/Linux.



 SQL Server и  Oracle) 

   Если проектируемая БД не очень велика (менее 10 Гбайт), подумайте о WindowsNT, и здесь, следовательно, можно использовать как SQL Server, так и Oracle.

Oracle)

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

Unix)

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

SQL Server)

     Microsoft SQL Server 2000 - это система управления реляционными базами данных, которая поддерживает масштабируемость, начиная от малых сетей, до сетей уровня предприятия. SQL Server может взаимодействовать с базами данных, которые используются приложениями, написанными на языках Visual Basic или Visual C++, офисными приложениями, такими как Microsoft Word, Excel или Access.

SQL Server - 32-разрядная система, функционирующая под управлением операционной системы Windows. Для баз данных небольших размеров существует версия SQL Server Personal Edition, которая работает под управлением Windows 9x на компьютерах-с объемом основной памяти не менее 32 Мбайт. Ядро базы данных SQL Server используется и в качестве автономного ядра базы данных Microsoft Data Engine (MSDE), входящего в состав Microsoft Office Premium и Microsoft Office Develop как альтернатива ядру базы данных Access. Для баз данных больших объемов применяется версия SQL Server Enterprise Edition, которая позволяет использовать все преимущества симметричной многопроцессорной обработки (SMP) и поддержки кластерных систем в Windows 2000. При работе под управлением операционной системы Windows 2000 Datacenter версия SQL Server 2000 Enterprise Edition позволяет использовать системы с количеством процессоров 32 и объемом оперативной памяти до 64 Гбайт, а также кластеры, содержащие до 4 узлов, обеспечивающие параллельное выполнение приложений. Для более масштабных приложений баз данных рекомендуется 64-разрядная версия SQL Server, которая позволяет управлять основной памятью до 16 Тбайт и работать под управлением 64-разрядной версии Windows 2000, установленной на компьютере с процессором Itanium фирмы Intel. Обладая возможностями масштабирования для поддержки распределенных вычислений, SQL Server 2000 допускает наращиваемость путем кластеризации систем, построенных на основе SQL Server.

 

Типы данных в СУБД Oracle и в SQL Server и возможности языка.

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

Oracle

SQL Server



-----------

Char(n)

Строка постоянной длины

Char(n)

VarChar(n)

Строка переменной длины

Long

Text

Длинный текст

Number(p,s)

TinyInt,SmalInt,Int

Целое число

Number(p,s)

-----------

Масштабируемое целое

Number(p,s)

Money , Smalmoney

Денежная величина 

Number(p,s)

Float , decimal(p,s)

Число с плавающей запятой

-----------

Binary,VarBinary

Булевы значения

Raw,LongRaw

Image

Поток байтов

Date

DateTime, SmalDateTime

Дата, время



 В SQL Server  существует один тип данных для дат и времени DateTime

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

    Select Name, My_date

        From Table1 

   Where My_Date>=DateAdd(Day,15,'05/30/1990')   



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

      Select Name, My_date

         From Table1 

      Where My_Date>='30.05.90'+15



Рассмотрим различные форматы даты и времени в этих СУБД.

SQL Server)

     Константы дат допустимые в SQL Server:

March 15,1990;   Mar 15 1990;   3/15/1990;   3-15-90;  1990 Mar 15

Константы времени

15:30:25;   3:30:25 PM;    3:30:25pm;   

Oracle)   

   В Oracle  существует формат 15-Mar-90,  но существует  встроенная функция  To_Date () для преобразования костант-дат в этот формат, например:

My_date= to_date('8.06.1990','mm,dd,yyyy')

SQL Server)

    К системным данным можно обращаться через встроенные функции

 Получить текущую дату Get Date()  

Oracle)

   существует   константа текущего времени SYSDATE

SQL Server)

Специальные типы:

Bit   хранит одно значение(Да,Нет)  занимает 1 байт

Cursor ссылка на курсор

UniqueIdentifier  глобальный уникальный идентификатор 16 байт

Позволяет нумеровать большое количество объектов

В Oracle)  это псевдостолбец ROWNUM

   Можно создавать свои типы на основе системных 

Для этого используют хранимые процедуры 

Sp_addtype, sp_droptype, systypes  

  EXEC sp_addtype my_type, 'VARCHAR(11)', 'NOT NULL'

Oracle)

   Существует свой встроенный язык PL/SOL.

Процедурный язык запросов PL/SOL представляет собой процедурное расширение ANSI стандарта языка SQL, разработанное фирмой Oracle. Подобно другим стандартным языкам, PL/SQL имеет языковые элементы для объявления переменных, присвоения значений, проверки условий и ветвления, а также для построения: итеративных конструкций. Поскольку язык PL/SQL является процедурной оболочкой языка SQL, он хорошо интегрирован с SQL. Различные возможности языка позволяют ему взаимодействовать с СУБД Oracle, выполняя операции над наборами и отдельными строками таблиц. Язык PL/SQL является, в первую очередь, средством разработки программ, имеющих дело непосредственно с таблицами и другими объектами баз данных. Взаимодействие с операционной системой и внешними программными компонентами осуществляется через составляемые пакеты управления базами данных.

     Язык PL/SQL является легко переносимым; он стандартизован для всех серверов фирм Oracle на различных платформах. Так как его типы данных базируются на типах данных серверов, язык является полностью машинно-независимым. Вам нет необходимости изучать ( версии для UNIX, Windows NT, NetWare и т.д. Программа, написанная на языке PL/SQL,может быть откомпилирована и выполнена на любом сервере фирмы Oracle без модификации.

     Ускорение выполнения сценариев SQL

Одни сценарии SQL*Plus могут генерировать другие сценарии, такие как распечатка количества строк в каждой таблице базы данных. Однако сценарии могут быть переписаны на языке PL/SQL, откомпилированы и сохранены в базе данных, выполняясь гораздо быстрее, без записи промежуточного сценария в файл.

Написание сценариев SQL*PIus является достаточно трудной задачей; программа-сценарий PL/SQL является более легким для документирования и сопровождения средством. Кроме того, откомпилированная программа на языке PL/SQL обычно является разделяемой между администраторами баз данных. Каждый из них знает, где находятся такие программы-сценарии и как их выполнить; продолжительные поиски на жестком диске не требуются.

    Упрощение администрирования баз данных

У администраторов баз данных, вероятно, имеется определенный набор сценариев SQL, предоставляющих информацию о действующей базе данных. Но, изучив язык PL/SQL, можно создать совершенно новый набор программ, дающий дополнительную информацию о производительности базы данных, использовании пространства, загрузке пользователей, блокировках и т.д. Язык PL/SQL отвергает ограничения и препятствия, с которыми обычно сталкиваются разработчики сценариев SQL.

     Пакеты позволяют автоматизировать выполнение многих задач через установленные интервалы времени. Можно передавать данные о системе или приложении внешним мониторам производительности, написанным, возможно, на языках C++ и Delphi, и затем использовать их усовершенствованные средства построения отчетов и графиков для вывода информации в реальном масштабе времени.



SQL Server)

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

 Существует возможность  объявления переменных:

@ имя локальной переменной;

              Declare @ Var1 int.

  кроме этого уже заранее есть глобальные переменные, которые могут быть вызваны:

            @@ Version SQLServer

, присвоения значений, проверки условий и ветвления.



Oracle)  продолжение PL/SQL

Если проектирование объемного и сложного SQL-кода затруднительно, можно разбить его на части и выполнить их вместе в сценарии языка PL/SQL. Такой путь предпочтительнее, чем попытка объединить более семи таблиц, после чего SQL Executor наверняка зависнет. 

Чтобы разработать эффективное приложение, можно использовать язык PL/SQL для создания хранимых процедур и пакетов. 



Последовательности Oracle.

Oracle)

Последовательность (Sequence) - это объект БД, создаваемый и принадлежащий пользователю и представляющий собой генератор чисел. 

Типичное применение последовательности - создание значения для первичного ключа. 

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



Пример использования последовательности: 

INSERT INTO КЛИЕНТЫ

    VALUES (КЛИЕНТ_ИД_ПОСЛ. NEXTVAL,'АОЗТ "Россы"', 1500, 101); 

В свободный номер последовательности  вставляется новая запись. Удобно тем что последовательность сама найдет следующий идентификатор. Также возможна работа с текущей записью при помощи   CURVAL.



SQL Server)

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

Курсоры.

Oracle)

Курсоры могут явно объявляться  в процедуре, функции или  пакете

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

ORACLE.  Курсоры могут  также неявно объявляться  (для поддержки

других  действий  манипулирования  данными)  самим   процессором

PL/SQL.



SQL Server)

Для перемещения по записям существует объект курсор

Курсоры бывают нескольких видов:

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

DECLARE клиенты_curs CURSOR 

SCROLL_LOCKS

FOR SELECT ид, наименование

          FROM клиенты

          WHERE кредит> = 40000

ORDER BY ид;

не позиционный (forward only) – не позволяет перемещаться в любом направлении, только вперед, открывается быстро, работает относительно долго.

DECLARE клиенты_cursor CURSOR 

FORWARD_ONLY

FOR SELECT ид, наименование

          FROM клиенты

          WHERE кредит> = 40000

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

DECLARE клиенты_cursor CURSOR 

KEYSET

FOR SELECT ид, ФИО

          FROM продавцы

          ORDER BY ид;

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

различаются по направлениям движения по записям таблиц, по  скорости работы и скорости открывания.

Курсор позволяет изменять данные и отражать изменения данных.

Можно  изменять те данные в таблицах, куда указывает курсор 

Update Table1

Set my_name=’andrew’

Where current of Name Cursor

Аналогичные возможности для вставки и удаления.



Триггеры.

Общее)

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

   Триггер это часть транзакции вызвавшей его срабатывание, поэтому может вызвать откат транзакции.

Триггер связан с таблицей, на которую он наложен - это таблица триггера.

SQL Server)

На время работы триггера создаются две временные таблицы Inserted, Deleted аналогичные по структуре таблице триггера. 

Последовательность  действий при срабатывании триггера: 

 Проверка ограничений если они выполняются то данные меняются  записываются в таблицы Inserted, Deleted  срабатывает триггер.

Структура создания триггера:

Create trigger имя триггера

    On таблица1

    For действие (insert, update, delete)

As

   Блок SQL;



Oracle)

Триггеры делятся по времени срабатывания  BEFORE, AFTER (до или после        события вызвавшего триггер) и так же по событиям (Insert, Update, Delete)

Порядок выполнения триггеров: операторный триггер BEFORE  однострочный триггер BEFORE  СОБЫТИЕ  однострочный триггер AFTER  операторный триггер AFTER. срабатывает триггер  проверка ограничений



Структура создания триггера:

Create trigger имя триггера

Before/After

[Delete] [or Insert] [or delete]

    On таблица1

    [For each row]

    [when(условие )]

Блок PL/SQL;



Примеры создания триггеров.

1) Создать триггера, изменяющие объем продаж (поле результат) для продавца и офиса, при каком-либо изменении таблицы ЗАКАЗЫ.

Oracle)

CREATE TRIGGER Credit BEFORE INSERT

ON Клиенты FOR EACH ROW

BEGIN

   IF :New.кредит IS NULL or :New.кредит=0 THEN

       :New.кредит=1000; 

   END IF;

END;



SQL Server)

CREATE TRIGGER Credit 

ON Клиенты 

FOR INSERT

As

 IF Кредит IS NULL or Кредит=0 THEN

      Кредит=1000;

2) Создать триггера, изменяющие объем продаж (поле результат) для продавца и офиса, при каком-либо изменении таблицы ЗАКАЗЫ.

Здесь для каждого вида изменений можно написать по триггеру, т.е.  on Update,       on Insert, on delete с некоторыми малыми отличиями для каждой СУБД, как это было уже показано выше. Но в СУБД Oracle можно все это объединить в один триггер.

Oracle)

Create trigger SaleWeight before insert or update or delete

ON Заказы FOR EACH ROW

begin

  IF updating then

     update продавцы

        set результат:=результат+:new.сумма-:old.сумма

     where :old.прод_ид=ид;

     update офисы

        set результат:=результат+:new.сумма-:old.сумма

     where :old.прод_ид=прод_ид;

  end if;

  IF deleting then

     update продавцы

        set результат:=результат-:old.сумма

     where :old.прод_ид=ид;

     update офисы

        set результат:=результат-:old.сумма

     where :old.прод_ид=прод_ид;

  end if;

  IF inserting then

     update продавцы

        set результат:=результат+:new.сумма

     where :old.прод_ид=ид;

     update офисы

        set результат:=результат+:new.сумма

     where :old.прод_ид=прод_ид;

  end if;

end;

 

Oracle позволяет более гибко распределиться временем срабатывания триггера в отличие от SQL Server. 

В SQL Server нет надобности смотреть, когда срабатывает триггер “до или после”, изменения записываются сразу же, а триггер после всех изменений и только в недопустимых случаях происходит откат транзакции.

Oracle позволяет давать более сложное описание триггера.

Поддержка национальных языков

Средство поддержки национальных языков Oracle (National Language Support - NLS) позволяет пользователям использовать базу данных на их собственных языках. Это средство обеспечивает следующие функции: 

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

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

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

Можно добавлять поддержку для новых языков, используя программный продукт NLS*WorkBench, который, по существу, поддерживает таблицы перевода для интерпретации ввода от пользователя и для вывода на экран результатов. 

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



Иные сравнительные характеристики SQL СУБД.

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



максимальное число пользователей одновременно обращающихся к базе; 

характеристики клиентского ПО; 

аппаратные компоненты сервера; 

серверную операционную систему; 

уровень квалификации персонала. 

На сегодня известно большое число различных серверов баз данных SQL. Остановимся более подробнее на следующих четырех ведущих серверных СУБД - Oracle8i, IBM DB2, Microsoft SQL Server и Informix - и сравним их в работе на каждом из основных этапов функционирования: 

конфигурирование системы, 

мониторинг, 

настройка, 

обработка запросов, 

разработка серверных и клиентских модулей. 

Данный анализ проведем с учетом того, что число клиентских мест составляет от 50 до 500, а управление СУБД должно быть максимально эффективно. Исследования проводились на серверной платформе на базе Pentium II с 128 Мбайт ОЗУ, укомплектованном 13-Гбайт диском с интерфейсом EIDE в конфигурации RAID уровня 0 (конечно лучше было бы использовать HDD с интерфейсом SCSI). Управление системами было возложено на ОС Windows NT Server 4.0. и Linux. 



Oracle8i)

Пакет Oracle8i, наделенный самым развитым набором функций для работы с языком Java и доступа к данным через Интернет, системой оптимизации одновременного доступа. Единственным недостатком данной СУБД является сложность администрирования, однако все затраты на ее внедрение и освоение в последствии окупятся эффективной и надежной работой. В нашей стране на протяжении уже многих лет целым рядом специалистов культивируется негативное отношение к СУБД Oracle, как к дорогой и сложной СУБД. Оба эти тезиса являются спорными. Во-первых, уровень сложности понятие относительное. При использовании СУБД Oracle на платформе NT, она потребует практически тех же усилий, что и при использовании MS SQL. В случае же работы на UNIX-платформе, можно с уверенностью отметить, что для профессиональных юниксоидов среда Oracle является простой, понятной и доступной. Что касается дороговизны, то и тут наметились положительные сдвиги. Кроме того, что компания Oracle предлагает ряд различных масштабируемых решений в зависимости от числа обслуживаемых клиентов, она также следуя общемировым тенденциям разработала версию своей популярнейшей СУБД под LINUX и выложила ее на своем WEB сервере (www.oracle.com) для свободного использования. Среди основных свойств СУБД Oracle следует отметить такие, как: 



Высочайшая надежность. 

Возможность разбиения крупных баз данных на разделы (large-database partition), что дает возможность эффективно управлять гигантскими гигабайтными базами; 

Наличие универсальных средств защиты информации; 

Эффективные методы максимального повышения скорости обработки запросов; 

Индексация по битовому отображению; 

Свободные таблицы (в других СУБД все таблицы заполняются сразу при создании); 

Распараллеливание операций в запросе. 

Наличие широкого спектра средств разработки, мониторинга и администрирования. 

Ориентация на интернет технологии.

Решения, не уступающие разработкам Oracle можно найти только в DB2 фирмы IBM. Ориентация на интернет технологии - основной девиз современных продуктов Oracle. В этой связи можно отметить пакеты interMedia, обеспечивающее обработку данных в мультимедийных форматах, и Jserver, встроенное средство для работы с языком Java, которое объединяет возможности языка Java с возможностями реляционных баз данных (возможность составлять на языке Java не только внутренние программы для баз данных (хранимые процедуры и триггеры), но и разрабатывать компоненты Enterprise JavaBeans и даже запустить их на сервере). Компоненты Enterprise JavaBeans представляют собой базовые модули из которых складываются Интернет-приложения на языке Java. 

   Фирма Oracle придерживается принципа, что всеми важными функциями необходимо управлять из единого центра, поэтому предлагаемый модуль interMedia предоставляет в распоряжение пользователей самые передовые возможности для работы с мультимедийными объектами: 

   Очень развитые средства для обработки аудио клипов; 

Неподвижных изображений; 

Видеофрагментов; 

Географических данных (с целым набором функций связанных с определением местонахождения входящих в состав модуля Locator ). 

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



Также необходимо отметить, что разработанная фирмой Oracle система оптимизации одновременного доступа (multiversioning concurrency) является одной из важнейших характеристик архитектуры Oracle (подобная функция есть лишь в СУБД InterBase компании InterBase компании Inprise). Данная функция позволяет исключить ситуацию, когда одному пользователю приходится ждать, пока другой завершит изменения в содержимое баз данных (т.е. в Oracle отсутствуют блокировки на чтение). Эта функция позволяет СУБД Oracle8i выполнять за секунду больше транзакций в расчете на одного пользователя, чем любая другая база данных. По уровню производительности при работе в WEB среде под LINUX Oracle занимает почетное второе место после СУБД MySQL, при этом значительно превосходя все другие СУБД по надежности и безопасности. 



Microsoft SQL Server )

Важнейшие характеристики данной СУБД - это: 

простота администрирования, 

возможность подключения к Web, 

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

наличие средств удаленного доступа, 

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

!) Необходимо заметить, что SQL Server уступает другим рассматриваемым СУБД по двум важным показателям: программируемость и средства работы. При разработке клиентских БД приложений на основе языков Java, HTML часто возникает проблема недостаточности программных средств SQL Server и пользоваться этой СУБД будет труднее, чем Oracle или Sybase. Общемировой тенденцией в XXI веке стал практически повсеместный переход на платформу LINUX, а SQL Server функционирует только в среде Windows. Поэтому использование SQL Server целесообразно, по нашему мнению, только если для доступа к содержимому БД используется исключительно стандарт ODBC, в противном случае лучше использовать другие СУБД. 



Резюмируем.

ORACLE и SQL SERVER позволяют оперировать огромными данными  (выраженных в Тбайтах), но при этом ORACLE с большими данными работает гораздо производительнее SQL SERVER, а с другой стороны не существует еще таких потребностей при работе с большим объемом данных с которыми  бы не справился SQL SERVER.

Существуют различия при выборе платформы. Обе системы могут работать на Windows NT, но при этом, так как для SQL SERVER это родная платформа, то для него существует ряд плюсов. ORACLE  же может  работать на платформе UNIX и использовать её возможности.

 SQL SERVER      1)Систему безопасности можно настроить согласно системе безопасности Windows NT. 2) Тесная интеграция, как с современными средствами разработки приложений, так и с настольными приложениями типа Microsoft Word, Access, и Excel. 3) доступ к базам данных SQL Server возможен с помощью Microsoft Jet Engine и Data Access Objects (DAO), Remote Data Objects (RDO), ActiveX Data Objects (ADO), OLE DB, ODBC, встроенной библиотеки SQL Server (DB-Library) и других технологий, разработанных сторонними производителями (это может оказаться большим минусом).

 У этих систем по-разному реализованы типы данных, но это лишь вопрос удобств и привычки, а вот разработанный ORACLE по мимо стандарта ANSI язык PL/SQL упрощает выполнение многих задач.

У обеих  систем разработаны способы перемещения по записям и работы с ними. У SQL SERVER это сделано более гибко, т.е. перемещение по любым записям и работа сними. У ORACLE лишь возможность рабаты с текущей записью и назначение следующей.

Выводы. 

Рассмотрев основные характеристики архитектур построения АИС, серверных операционных систем и СУБД в дальнейшем в качестве архитектуры АИС мы выберем архитектуру интернет/интранет, в качестве серверной ОС Linux, в качестве СУБД Oracle 8i. В сводной таблице представлены сравнительные характеристики двух наиболее распространенных на сегодня решений на базе Microsoft SQL Server 7.0 (на NT) и Oracle8i (на Unix, Linux). 

1)  SQL Server 

2)  Oracle8i  

Административное управление

 Хорошо

 Отлично

Графические инструменты

 Отлично

 Хорошо

 Простота обслуживания

 Хорошо

 Отлично

Механизм данных

 Хорошо

 Отлично

Работа с несколькими ЦП

 Приемлемо

 Отлично

Функция соединения и выбор индексов

 Отлично

 Отлично

Одновременный доступ нескольких пользователей

 Хорошо

 Отлично

 Обработка мультимедиа-даных

 Плохо

 Отлично

Подключение к Web

 Плохо

 Отлично

Обработка аудио, видео, изображений

 Плохо

 Отлично

Поиск по всему тексту

 Хорошо

 Отлично

Функциональная совместимость

 Хорошо

 Приемлемо

Сопряжение с другими БД

 Хорошо

 Плохо

Единая регистрация

 Хорошо

 Хорошо

Работа под управлением различных ОС

 Приемлемо

 Хорошо

Возможности программирования

 Приемлемо

 Отлично

Хранимые процедуры и триггеры

 Хорошо

 Отлично

Внутренний язык программирования

 Плохо

 Отлично

Построение баз данных

 Хорошо

 Отлично

Язык SQL

 Отлично

 Отлично

Объектно-ориентированные системы

 Плохо

 Отлично

Работа с филиалами

 Отлично

 Отлично

Тиражирование

 Отлично

 Отлично

Распределенная обработка транзакций

 Отлично

 Отлично

Дистанционное администрирование

 Хорошо

 Отлично

Организация хранилищ данных и подготовка отчетов

 Отлично

 Хорошо

Средства загрузки

 Отлично

 Отлично

Средства анализа

 Отлично

 Хорошо

Итог

   Задачи предназначенные для этих СУБД:

Oracle)

Задачи рассчитанные на работу с большим объемом данных,

Задачи рассчитанные на разграничение прав пользователям.

Задачи рассчитанные на оперативную работу с данными.

Задачи рассчитанные на работу с WEB.



SQL SERVER)

    Выполнение локальных задач в пределах одного предприятия.

Возможность оперативной работы с небольшим объемом информации.

Простота администрирования.




Замечания:

Недостаточно хорошо структурировано содержание с точки зрения сравнения СУБД.

Описаны старые версии СУБД.

Неплохо привести отличия в SQL.