Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Финальный дип..doc
Скачиваний:
10
Добавлен:
27.09.2019
Размер:
878.59 Кб
Скачать

5. Обоснование выбора субд.

5.1 Современные субд.

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

5.1.1 DB2

DB2 – реляционная СУБД, разрабатываемую и выпускаемую компанией IBM.

В настоящее время СУБД DB2 представлена версиями на следующих платформах:

  • Linux

  • Unix

  • Windows

  • Solaris

  • Mac OS X

  • IBM i (встроена в систему на аппаратно-программном уровне)

  • Palm OS

  • Symbian

  • Neutrino

В настоящее время, помимо коммерческих продуктов семейства, IBM распространяет также бесплатный дистрибутив DB2 Express-C для платформ Linux (x86-64), Windows (x86-64), Solaris (x86-64), Mac OS X (x86-64 beta). Бесплатная версия имеет ограничения на использование для работы СУБД не более одного двухъядерного процессора и 2 Гбайт оперативной памяти.

К отличительным особенностям DB2 относится эффективный план выполнения запросов. В SQL DB2 практически отсутствуют подсказки оптимизатору, мало развит язык хранимых процедур, и, таким образом, всё направлено на поддержание декларативного стиля написания запросов. Благодаря приоритету IBM в развитии реляционной теории и позициям фирмы в компьютерной отрасли, диалект DB2 SQL оказывает значительное влияние на стандарты SQL ANSI/ISO. Поскольку исторически DB2 развивалась с многопользовательских систем на мейнфреймах, то большое внимание в архитектуре DB2 уделяется вопросам безопасности и распределения ролей обслуживающих DB2 специалистов. В частности, в отличие от многих других СУБД, в DB2 имеются отдельные роли для администратора СУБД и администратора базы данных. DB2 является единственной реляционной СУБД общего назначения, имеющей реализации на аппаратно-программном уровне (система IBM i; также в оборудовании мэйнфреймов IBM System z реализуются средства поддержки DB2). Современные версии DB2 обеспечивают расширенную поддержку использования данных в формате XML, в том числе операции с отдельными элементами документов XML.

5.1.2 Firebird

Firebird (FirebirdSQL) — компактная, кроссплатформенная, свободная система управления базами данных. В качестве преимуществ Firebird можно отметить: многоверсионную архитектуру, обеспечивающую параллельную обработку оперативных и аналитических запросов, компактность, высокую эффективность и мощную языковую поддержку для хранимых процедур и триггеров. Firebird используется в различных промышленных системах (складские и хозяйственные, финансовый и государственный сектора). Это коммерчески независимый проект C и C++ программистов, технических советников и разработчиков мультиплатформенных систем управления базами данных, основанный на исходном коде, выпущенном корпорацией Borland в виде свободной версии Interbase 6.0. Среди недостатков: отсутствие кеша результатов запросов. Firebird полностью поддерживает SQL 92 и реализует большую часть стандарта SQL-99 c некоторыми дополнениями.

Firebird работаент на следующих операционных системах:

  • Windows (x86 - 64)

  • Linux (x86 - 64)

  • Mac OS X

  • FreeBSD

  • PowerPC

Переход от одной ОС к другой весьма прост — достаточно сделать резервную копию базы в переносимом формате в одной системе и восстановить на другой. Firebird поддерживает множество способов доступа, включая: собственные наборы компонент для C/C++, Delphi, классы для Ada, ODBC, JDBC, драйверы для Python, PHP, драйвер OLE DB, dbExpress, провайдер данных .NET и прямой доступ с использованием клиентской библиотеки сервера (fbclient.dll или GDS32.dll).

5.1.3 PostgreSQL

PostgreSQL — свободная объектно-реляционная система управления базами данных. Является свободной альтернативой коммерческим СУБД (таким как Oracle Database, Microsoft SQL Server, IBM DB2, Informix и СУБД производства Sybase) вместе с другими свободными СУБД (такими как MySQL и Firebird).

Реализована для операционных систем:

  • Windows (x86 - 64)

  • Solaris

  • Open Solaris

  • Mac OS X

  • FreeBSD

PostgreSQL базируется на языке SQL и поддерживает многие из возможностей стандарта SQL 2003 (ISO/IEC 9075). Соответствует стандартам ANSI SQL-92 и SQL-99. Сильными сторонами PostgreSQL считаются: поддержка БД практически неограниченного размера; надёжные механизмы транзакций и репликации; наследование; легкая расширяемость. Реализация дополнительной логики, например, условных переходов и циклов, выходит за рамки SQL и требует использования некоторых языковых расширений. Функции могут писаться с использованием одного из следующих языков:

  • Встроенный процедурный язык PL/pgSQL, во многом аналогичный языку PL/SQL, используемому в СУБД Oracle;

  • Скриптовые языки — PL/Lua, PL/LOLCODE, PL/Perl, plPHP, PL/Python, PL/Ruby, PL/sh, PL/Tcl и PL/Scheme;

  • Классические языки — C, C++, Java (через модуль PL/Java);

  • Статистический язык R (через модуль PL/R).

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

5.1.4 Microsoft SQL Server 

Microsoft SQL Server — система управления реляционными базами данных, разработанная корпорацией Microsoft. Основной используемый язык запросов — Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией SQL-92 с множественными расширениями. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций. Microsoft SQL Server и Sybase ASE для взаимодействия с сетью используют протокол уровня приложения - Tabular Data Stream. Протокол TDS также был реализован в проекте FreeTDS с целью обеспечить различным приложениям возможность взаимодействия с базами данных Microsoft SQL Server и Sybase. В SQL Server встроена поддержка .NET Framework. Благодаря этому, хранимые процедуры БД могут быть написаны на любом языке платформы .NET, используя полный набор библиотек, доступных для .NET Framework, включая Common Type System. Выпускается только для операционных систем семейства Windows.

5.1.5 MySQL

MySQL — свободная система управления базами данных. Распространяется под GNU General Public License и под собственной коммерческой лицензией. MySQL является решением для малых и средних приложений. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы. Гибкость обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

Платформы поддерживающие MySQL:

  • Windows

  • Linux

  • Unix

  • BSDi

  • FreeBSD

  • NetBSD

  • OpenBSD

  • Mac OS X

  • OS/2

  • Solaris

  • SunOS

  • AIX

  • OpenVMS

MySQL имеет API для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk и Tcl, библиотеки для языков платформы .NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC. Реализует стандарт SQL 92, почти полностью SQL 99 и частично SQL 2003.

5.1.6 Oracle

Oracle Database или Oracle RDBMS — объектно-реляционная система управления базами данных. С технической точки зрения важно то, что Oracle функционирует практически на всех существующих компьютерных платформах, в том числе и на больших ЭВМ (OS/390) и на охраняющих популярность системах Vax VMS, разновидностях Unix, в точ числе Solaris, HP-UX, AIX, Linux, SCO Unix и т.д.

Другой важной характеристикой является поддержка Oracle всех возможных вариантов архитектур, в том числе симметричных многопроцессорных систем, кластеров, систем с массовым параллелизмом и т.д. Очевидна значимость этих характеристик для систем масштаба корпорации, где эксплуатируется множество компьютеров различных моделей и производителей. В таких условиях фактором успеха является максимально возможная типизация предлагаемых решений, ставящая своей целью существенное снижение стоимости владения программным обеспечением. Унификация систем управления базами данных – один из наиболее значимых шагов на пути достижения этой цели. Ядром СУБД Oracle является сервер базы данных, который поставляется в одном из четырех вариантов в зависимости от масштаба информационной системы, в рамках которой предполагается его применение. Приблизительно 80% программного кода Oracle – это программы на языке программирования C, который является платформо-независимым. Примерно 20% кода, представляющее собой ядро сервера реализовано на машинно-зависимых языках и эта часть кода, разумеется, переписывается для различных платформ. Жесткая технологическая схема разработки Oracle, опирающаяся на принципы идентичности исходного программного кода для различных версий и платформ, контрастирует со схемами других компаний. Итак, СУБД Oracle скрывает детали реализации механизмов управления данным на каждой из платформ, что дает основание говорить о практически полной унификации базового программного обеспечения. Дополнительно к этому, архитектура Oracle позволяет переносить прикладные системы, реализованные на одной платформе, на другие платформы без изменений как в структурах баз данных, так и кодов приложений. При этом основным критерием, определяющим возможность переноса тех или иных программных компонентов между платформами является полное исключение их них машинно-зависимого кода.

5.1.7 SQLite

SQLite — лёгкая встраиваемая реляционная база данных. SQLite не использует парадигму клиент-сервер, т.е. движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а предоставляет библиотеку, с которой программа компонуется и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа. Простота реализации достигается за счёт того, что перед началом исполнения транзакции весь файл, хранящий базу данных, блокируется; ACID-функции достигаются в том числе за счёт создания файла журнала. Сама библиотека SQLite написана на C; существует большое количество привязок к другим языкам программирования, в том числе C++, Java, C#, Python, Perl, PHP, Tcl (средства для работы с Tcl включены в комплект поставки SQLite), Ruby, Haskell, Scheme, Smalltalk, Lua и Parser, а также ко многим другим. Несколько процессов или потоков могут одновременно без каких-либо проблем читать данные из одной базы. Запись в базу можно осуществить только в том случае, если никаких других запросов в данный момент не обслуживается; в противном случае попытка записи оканчивается неудачей, и в программу возвращается код ошибки. Другим вариантом развития событий является автоматическое повторение попыток записи в течение заданного интервала времени.

Также SQLite поддерживают:

  • Среда для запуска приложений Adobe Integrated Runtime;

  • Gears;

  • Фреймворк Qt;

  • Платформа XUL на движке Gecko 1.9, XULRunner 1.9 и, потенциально, все приложения, основанные на этой платформе, в том числе Mozilla Firefox (начиная с версии 3.0) и Mozilla Thunderbird (начиная с версии 3.0). В качестве примеров XUL-приложений можно привести Songbird и SQLite Manager.

  • Skype

Многие программы поддерживают SQLite в качестве формата хранения данных (особенно в Mac OS и iPhone OS), в том числе:

  • 1С:Предприятие;

  • Banshee;

  • F-Spot;

  • Gajim;

  • Miranda IM;

  • Safari;

  • Opera.

SQLite соответсвует стандарту SQL 92 и частично SQL 99. Поддерживается самыми распространёнными операционными системами, такими как: Windows, Linux, FreeBSD, MacOS X.