Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / Лекция 7 Выбор СУБД.doc
Скачиваний:
47
Добавлен:
11.06.2015
Размер:
413.7 Кб
Скачать

Методика выбора субд Выбор и внедрение субд состоит из следующих шагов [1,5]:

  • описание предметной области;

  • определение модели выбора системы;

  • назначение руководителя проекта по разработке и внедрению БД;

  • четкая формулировка цели создания БД;

  • определение задач создания БД;

  • проведение экспресс-анализа деятельности компании;

  • разработка технологической схемы обработки данных;

  • создание спецификации для каждого этапа обработки данных и определение места СУБД и необходимых структур для хранения данных;

  • определение бюджета проекта;

  • определение критериев выбор СУБД;

  • анализ рынка и выбор поставщика СУБД.

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

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

Назначение руководителя проекта по созданию БД. Иногда проект идет слишком медленно, поскольку руководитель проекта со стороны заказчика отсутствует, или наделен недостаточными полномочиями, или функции руководителя проекта взял на себя один из топ-менеджеров. Во всех этих случаях с большой вероятностью можно утверждать, что проект не будет идти настолько оперативно и успешно, насколько хотелось бы. Требованиями к руководителю проекта являются:

  • выполнение проекта по созданию БД должно быть его основной работой;

  • должен быть профессионалом в деле построения ИТ-инфраструктуры;

  • должен обладать достаточными полномочиями и знаниями.

Если руководитель проекта не обладает необходимыми знаниями относительно происходящего в компании, это может привести к самым серьезным последствиям.

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

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

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

Определение конкретных задач, которые будут решаться с помощью БД. Задачами могут быть:

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

  • получение сведений о количестве продукции на складе;

  • получение отчетов о выполненных заказах, затратах на их выполнение;

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

Определение бюджета проекта. Мировая практика показывает, что компании тратят на ИТ около 5% своего оборота. Оптимизация схемы покупки и лицензирования СУБД позволит избежать излишних затрат.

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

На практике решение об использовании той или иной СУБД часто принимает руководитель предприятия, а он может рассматривать не технические критерии. Здесь свою роль могут сыграть такие факторы как рекламная раскрутка компании-производителя СУБД, опыт использования выбранной СУБД на других предприятиях, стоимость. В зависимости от финансового состояния и политики предприятия может быть принцип – чем дороже, тем лучше или использование только бесплатных продуктов.

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

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

Создание спецификации для каждого этапа обработки данных, определение места СУБД и необходимых структур для хранения данных. На этом шаге проводится определение места СУБД на каждом этапе обработки данных и необходимых структур для хранения данных. В спецификации уместно указать форматы и стандарты возможной передачи данных, определить правила взаимодействия подсистем. Таким образом, каждый этап должен иметь свой детально описанный интерфейс (функции, форматы обрабатываемых данных, форматы передачи входных - выходных данных) и предназначенный для интеграции с другими частями системы.

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

Требования к функциональности и производительности программного обеспечения могут меняться довольно быстро, поэтому требования, предъявляемые к СУБД, должны иметь некий резерв по производительности аппаратно - программных средств. Полезно разработать два документа; один с функциональными и технологическими требованиями к системе, а другой — с требованиями к ее поставщику. Очень важно сравнивать СУБД одного класса.

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

У современных СУБД необходимо рассматривать:

  • модель данных;

  • особенности архитектуры и функциональные возможности;

  • возможности контроля работы СУБД;

  • особенности разработки приложений;

  • производительность;

  • доступность БД - постоянная возможность получения ответа на запрос;

  • надежность работы БД, то есть минимальная вероятность сбоев, а также наличие средств восстановления данных после сбоев, технического резервирования и дублирования данных;

  • наличие средств защиты данных от несанкционированного доступа;

  • поддержку стандартных механизмов доступа к данным (ODBC, JDBC, OLE DB);

  • требования к рабочей среде (поддерживаемые аппаратные платформы и ОС, под управлением которых способна работать СУБД, минимальные требования к оборудованию, максимальные размеры адресуемой памяти - какой максимальный объем физической памяти они могут использовать, возможность использования триггеров, хранимых процедур, средств поиска - некоторые современные системы имеют встроенные дополнительные средства контекстного поиска;

  • качество и полноту документации;

  • возможность использования национальных языков;

  • логическую и физическую организацию хранения данных (распределение таблиц, индексов и других объектов БД по файлам, областям, пакетам, владельцам, схемам);

  • аутентификацию, распределение прав доступа и система безопасности (пользователи, группы, роли);

  • структуру БД (типы данных и размеры полей, ограничения на поля, индексы и т.п.);

  • ссылочную целостность (первичные и внешние ключи, ссылки между таблицами);

  • возможности программирования триггеров, хранимых процедур и пользовательских функций (встроенные языки программирования сценариев), SQL-запросы, команды и операторы (поддержка уровня ANSI, конструкции запросов, встроенные функции и т.п.);

  • преобразование данных (обработка пустых полей и значений NULL, конвертирование дат в числа или строк в числа и т.п.);

  • программный интерфейс клиентской части для прямого доступа к программам, составляющим СУБД, например, Oracle Call Interface (поддержка связанных переменных, обработка массивов записей в пакетном режиме, обработка результатов запросов);

  • драйверы верхнего уровня (ODBC, JDBC, OLEDB, ADO, др.);

  • администрирование и сопровождение сервера, резервные копии, оптимизация производительности и масштабируемости, балансировка нагрузки;

  • поддержку ОС Unix (Sun Solaris, HP-UX, IBM AIX, Linux) и Windows, протоколов взаимодействия клиента с сервером и поддержка транспортного уровня (TCP/IP, IPX/SPX, NetBIOS).

Критические факторы для производительности БД представлены в табл.1.

Таблица 1 - Критические факторы для производительности БД

Клиент

Сеть

Сервер

Время ответа

Коммуникационный протокол

Модель данных

Количество пользователей

Сетевой драйвер

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

Запросы

Маршрутизатор

Схема БД

Сложность интерфейсов

Физическая среда

Модель вычислительной системы (ОС, оперативная память, процессор, язык программирования)

Надежность работы инфраструктуры

Наличие дублирующего провайдера

Резервирование серверов, копирование данных

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

Поскольку СУБД работает не сама по себе, а поверх определенной ОС, ее стоимость играет важную роль для заказчика. Поэтому крупные компании предпочитают СУБД для Unix, а средние и малые — для Windows и Linux. Чтобы удовлетворить все запросы, разработчики создают кроссплатформенные СУБД. В последние годы растет спрос на СУБД для Linux. По объему продаж у СУБД Oracle лидируют Unix-системы. Поэтому выбор СУБД часто определяется установленной на предприятии ОС.

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

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

Все современные СУБД совместимы со стандартным языком доступа к данным SQL-92, однако многие из них реализуют не все расширения этого стандарта. Например, СУБД MySQL не поддерживает вложенные запросы на выборку данных.

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

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

Мобильность – это независимость системы от среды, в которой она работает.

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

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

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

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

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

Контроль использования памяти компьютера. СУБД должна иметь возможность управления оперативной памятью и дисковым пространством (сжатие БД, удаление избыточных файлов, др.).

Автонастройка. Современные СУБД включают в себя возможности самоконфигурирования, самодиагностики производительности. Эти возможности позволяют выявить слабые места конфигурации СУБД и автоматически настроить ее на максимальную производительность.

Управляемость - простота администрирования и конфигурирования, наличие средств автоматического конфигурирования (набор средств администрирования включает средства создания объектов БД - таблиц, связей, атрибутов, инструменты репликации данных, утилиты управления пользователями и группами, средства мониторинга событий, средства просмотра планов выполнения запросов, утилиты миграции данных из других СУБД);

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

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

Многие производители СУБД выпускают средства разработки приложений для своих систем. Эти средства позволяют наилучшим образом реализовать все возможности сервера, поэтому при выборе СУБД необходимо анализировать возможности средств разработки приложений. Особенностями разработки приложений являются:

  • средства автоматизированного проектирования БД и прикладных программ, например, в СУБД Oracle есть инструмент Oracle Designer - средство проектирования программных систем, реализующее технологии CASE;

  • возможности разработки Web-приложений;

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

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

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

Резервное копирование. В результате аппаратного сбоя может быть частично поврежден или выведен из строя носитель информации и тогда восстановление данных невозможно, если не было предусмотрено резервное копирование БД или ее части. Резервное копирование спасает и в ситуациях, когда происходит логический сбой системы, например при ошибочном удалении таблиц. Существует множество механизмов резервирования данных (хранение одной или более копий всей БД, хранение копии ее части, копирование логической структуры и т.д.).

Откат изменений. При выполнении транзакции применяется простое правило – либо транзакция выполняется полностью, либо не выполняется вообще.

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

Оценка конфигурации технических средств для выбранной СУБД. Очень трудно с достаточной точностью предсказать рабочую нагрузку БД. Даже если рабочую нагрузку удается описать, обычно скорее можно только выяснить, какая конфигурация не справится с данной нагрузкой, чем с уверенностью сказать, что данная конфигурация системы будет обрабатывать заданную нагрузку, если нет опыта работы с созданными приложениями. Почти всегда при эксплуатации БД имеют место предсказуемые и непредсказуемые пики нагрузки на БД. Например, известно, что нагрузка на систему достигает пиковых значений через 1-1.5 часа после начала рабочего дня или окончания обеденного перерыва, к концу месяца, квартала или года. В то же время возникают пиковые нагрузки и в любое время, как правило, это связано с запуском «тяжелых» приложений или выполнение сложных запросов к БД. А нагрузку к БД, работающим в Интернет, еще труднее предсказать.

На серверах БД наблюдается большое разнообразие выполняемых приложений. Далеко не все приложения интенсивно используют процессорные ресурсы, и не все из них связаны с интенсивным вводом/выводом. Поэтому смесь таких приложений на одной системе может обеспечить достаточно равномерную загрузку всех ресурсов. Естественно неправильно подобранная смесь может дать совсем противоположенный эффект. Реальное использование систем показывает, что имеет место тенденция заполнения всех доступных ресурсов. Как следствие, системы, даже имеющие некоторые избыточные ресурсы, со временем не будут воспринимать дополнительную нагрузку.

Анализ рынка

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

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

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

Выбор поставщика СУБД

Оценивая поставщика СУБД, необходимо учесть следующие факторы:

  • эффективность (персонал, финансовая стабильность, результаты исследовательских работ, активность в разработке новых функций, версий);

  • продажи и ценообразование (различные модели ценообразования – лицензия, аренда программного обеспечения, др.);

  • рыночная активность, достижения (отзывы клиентов, возможности поставщика адаптироваться к изменениям рынка);

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

  • клиентский опыт (поддержка клиента, профессиональные услуги, отзывы пользователей и мера их удовлетворенности).

Соседние файлы в папке Лекции