Смекни!
smekni.com

“Сравнение субд oracle и sqlserver” (стр. 1 из 4)

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

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

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

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

Реферат

“Сравнение СУБД 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 Дата, время

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

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

Select Name, My_date

From Table1

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

2) 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 является, в первую очередь, средством разработки программ, имеющих дело непосредственно с таблицами и другими объектами баз данных. Взаимодействие с операционной системой и внешними программными компонентами осуществляется через составляемые пакеты управления базами данных.