Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ(office2007).docx
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
2 Мб
Скачать
☆

2.1.4 Выбор субд

В качестве основных претендентов рассмотрим СУБД Microsoft SQL Server 2008, MySQL 5.1, PostgreSQL 8.4. Все они имеют широкий функционал, высокую скорость работы, поддержку основных типов данных, поддерживают различные ОС .

В таблице 2.1 производится сравнение выбранных СУБД.

Таблица 2.1 – «Сравнение СУБД»

Показатели

Microsoft SQL Server 2008

MySQL 5.1

PostgreSQL 8.4

1

2

3

4

Поддерживаемые операционные системы

Windows Desktop/Server

Windows Desktop/Server, Linux, Unix, Mac

Windows1 Desktop/S22erver, Linux, Unix, Mac

Условия лицензирования

Коммерческий продукт с закрытым исходным кодом

Коммерческая лицензия и GNU GPL

Лицензия BSD Open Source

Процесс установки и поддержки

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

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

Для операционных систем семейств Linux/Unix установка идентична установке MySQL. Однако во время установки под Windows иногда возникают проблемы с инициализацией базы данных

Продолжение таблицы 2.1

1

2

3

4

Наличие драйверов ODBC, JDBC, ADO.NET

Да

Да

Да

Наличие View, доступных только для чтения

Да

Да

Да

Наличие программных продуктов с открытым исходным кодом, основанных на этой СУБД

Несколько

Много

Несколько, но их число растет, особенно в проектах на PHP

Использование в коммерческих проектах

Среднее (продукт новый)

Среднее

Среднее (почти как у MySQL)

Обновляемые View

Да, даже для двухтабличных view

Да, для однотабличных view и некоторых «простых» двухтабличных

Да, но не в автоматическом режиме. Надо писать правила обновления

Наличие графического ПО для конструирования и оптимизации запросов

Да (SQL Management Studio и Studio Express)

Нет

Да (PgAdminIII)

Наличие Computed Columns

Да, но все равно чаще используются view

Нет

Нет — в PostgreSQL это функциональность излишняя

Поддержка функциональных индексов

Нет, но можно обойтись Computed Columns

Нет

Да

Продолжение таблицы 2.1

1

2

3

4

Поддержка частичных индексов

Да (называются “фильтрованные индексы”)

Нет

Да

Поддержка ACID-требований к транзакциям

Да

Да, при использовании некоторых движков хранения данных

Да

Каскадное обновление/удаление внешних ключей

Да

Да, при использовании некоторых движков хранения данных

Да

Внесение данных в несколько строк

Да

Да

Да

Поддержка UPSERT-логики

Да (через MERGE UPDATE)

Да (через INSERT IGNORE, REPLACE INSERT ON DUPLICATE UPDATE)

нет

Поддержка репликации

Да, встроенная и разных типов

Да, включая mater-master репликацию

Да, но с помощью сторонних продуктов с открытым исходным кодом

Возможность писать хранимые функции на разных языках программирования

Да, теоретически на любом языке, поддерживающим CLR, например VisualBasic.NET, C#, IronPython

Нет (кроме C и Pl/SQL)

Да, наиболее полная поддержка из всех рассматриваемых

Возможность создавать пользовательские агрегированные функции

Да — любой .NET язык, кроме TRANSACT SQL

Да, только на С

Да — на PL language и встроенных C, SQL, PLPgSQL

Продолжение таблицы 2.1

1

2

3

4

Поддержка триггеров

Да

Да

Да

Партицирование таблиц

Да (в Enterprise версии)

Да

Да

Возможность создавать функции, возвращающие таблицу или набор таблиц, которые можно использовать в секции FROM

Да

Нет

Да

Поддержка хранимых процедур

Да

Да

Да (с помощью CREATE FUNCTION)

Поддержка динамического SQL в функциях

Нет

Нет

Да

Бесплатное ПО для графического управления БД

Да (SQL Management Studio/Express)

Нет

Да (PgAdmin III)

Наличие встроенного планировщика (не CronTab)

Да (SQL Agent не для Express версии)

Да (только для SQL-запросов)

Да (PgAgent)

Возможность доступа к таблице из другой базы данных, находящейся на том же хосте

Да

Да

Да

Чувствительность к регистру

По умолчанию — не чувствительна

Нет

Да

Продолжение таблицы 2.1

1

2

3

4

Поддержка даты и времени

Да

Да (но без временной зоны)

Да

Аутентификация

Средствами БД и ActiveDirectory

Средствами БД

Много разных методов, включающих предыдущие

Разграничение доступа к столбцам

Да

Да

Да

Поддержка рекурсивных запросов

Да

Нет

Да

Поддержка CROSS APPLY

Да

Нет

Нет, но можно обойтись возвращающей функции в Select

Поддержка LIMIT .. OFFSET

Нет

Да

Да

Поддержка связанных подзапросов

Да

Да

Да

Производительность планировщика запросов для сложных запросов

Средняя (умеет параллельные запросы «из коробки»)

Плохая

Очень хорошая (GridSQL)

Наличие текстового процессора

Да

Да

Да

Возможность откатить CREATE, ALTER

Да

Нет

Да

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