Сравнение систем управления базами данных
ГОУ ВПО «Волгоградский государственный университет»
факультет Математики и информационных технологий
кафедра Информационных систем и компьютерного моделирования
Допустить работу к
защите
Лобжанидзе
Нато Зурабовна
Курсовая
работа
Сравнение
Студент Лобжанидзе
Н.З. _________________
Группа ИВТ-091
Научный руководитель Кудина
И.Г. _________________
Нормоконтролер _______________
Волгоград 2010
Оглавление
Введение.
Современный мир информационных технологий трудно представить себе без использования баз данных. Практически все системы в той или иной степени связаны с функциями долговременного хранения и обработки информации. Фактически информация становится фактором, определяющим эффективность любой сферы деятельности. Увеличились информационные потоки и повысились требования к скорости обработки данных, и теперь уже большинство операций не может быть выполнено вручную, они требуют применения наиболее перспективных компьютерных технологий. Любые административные решения требуют четкой и точной оценки текущей ситуации и возможных перспектив ее изменения. И если раньше в оценке ситуации участвовало несколько десятков факторов, которые могли быть вычислены вручную, то теперь таких факторов сотни и сотни тысяч, и ситуация меняется не в течение года, а через несколько минут. А обоснованность принимаемых решений требуется большая, потому что и реакция на неправильные решения более серьезная, более быстрая и более мощная, чем раньше. И конечно, обойтись без информационной модели производства, хранимой в базе данных, в этом случае невозможно.
Одной из основных задач, стоящих перед системами управления базами данных, является задача оптимизации поиска данных, запрашиваемых пользователем. Современным средством доступа к данным является структурированный язык запросов (SQL – Structured Query Language). Это непроцедурный язык, оперирующий данными на логическом уровне. Выполнение запроса пользователя СУБД необходимо реализовать максимально быстро, для этого в современных СУБД применяются оптимизаторы запросов, механизмы кэширования, поддерживается параллельное выполнение запросов и т.д.
Предметом данной работы является сравнение систем управления базами данных.
В первой главе рассматриваются общие понятия о системах управления базами данных, используемые технологии при построении систем управления
Вторая глава посвящена сравнению характеристик и возможностей наиболее распространенных СУБД, таких как Informix, DB2, MS SQL Server и Oracle.
1. Системы управления базами данных
Система управления базами данных (СУБД) — это средство централизованного управления базами данных как социальным ресурсом в интересах всей совокупности пользователей и представляет собой набор программных средств, предназначенных для создания общей базы данных для множества приложений, поддержания её в работоспособном состоянии, предоставления пользователю всех допустимых средств для работы с данными и обеспечения эффективного доступа к данным в рамках предоставленных прав доступа.
1.1. Возможности систем управления базами данных
Возможности, которые должна иметь СУБД, можно представить следующим образом:
- СУБД должна воспринимать и обрабатывать команды пользователей и приложений на выборку, изменение, добавление или удаление данных. Таким образом, в СУБД должен быть компонент, отвечающий за выполнение этих действий, — специальный язык обработки данных. Чаще всего этим языком является язык SQL;
- СУБД должна иметь возможность принимать данные в исходной форме из различных по своей природе источников и преобразовывать их в форму, соответствующую собственным объектам;
- СУБД должна иметь функции по обеспечению безопасности, целостности, а в случае повреждения и по восстановлению хранящейся в базе данных информации;
- В СУБД должен входить компонент, хранящий сведения обо всех объектах, которыми оперирует данная СУБД, и связях между ними, а также сведения о самой СУБД, например, об используемой ею памяти, активных соединениях и т.д.;
- Желательно, чтобы в СУБД были реализованы механизмы оптимизации, обеспечивающие максимальную эффективность выполнения всех функций СУБД.
1.2. Перечень требований к СУБД
Вообще говоря, перечень требований к СУБД, может изменяться в зависимости от поставленных целей. Можно выделить несколько групп критериев:
- моделирование данных;
- особенности архитектуры и функциональные возможности;
- контроль работы системы;
- особенности разработки приложений;
- производительность;
- надежность;
- требования к рабочей среде;
- смешанные критерии;
- стоимость.
Рассмотрим каждую из этих групп в отдельности.
1.2.1. Моделирование данных
Существует множество моделей данных; самые распространенные — иерархическая, сетевая, реляционная, объектно-реляционная и объектная. Системы.
Иерархическая модель данных — логическая модель данных в виде древовидной структуры.
Иерархическая модель данных представляет собой совокупность элементов, расположенных в порядке их подчинения от общего к частному и образующих перевернутое дерево (граф). Данная модель характеризуется такими параметрами, как уровни, узлы, связи. Принцип работы модели таков, что несколько узлов более низкого уровня соединяется при помощи связи с одним узлом более высокого уровня.
Реляционная модель данных — логическая модель данных, прикладная теория построения баз данных, которая является приложением к задачам обработки данных таких разделов математики как теории множеств и логика первого порядка.
На реляционной модели данных строятся реляционные базы данных.
Термин «реляционный» означает, что теория основана на математическом понятии отношение (relation). В качестве неформального синонима термину «отношение» часто встречается слово таблица. Необходимо помнить, что «таблица» есть понятие нестрогое и неформальное и часто означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию. Наиболее частая ошибка состоит в рассуждениях о том, что РМД имеет дело с «плоскими», или «двумерными» таблицами, тогда как таковыми могут быть только визуальные представления таблиц. Отношения же являются абстракциями, и не могут быть ни «плоскими», ни «неплоскими».
Для лучшего понимания РМД следует отметить три важных обстоятельства:
Модель является логической, то есть отношения являются логическими (абстрактными), а не физическими (хранимыми) структурами;
Для реляционных баз данных верен информационный принцип: всё информационное наполнение базы данных представлено одним и только одним способом, а именно — явным заданием значений атрибутов в кортежах отношений; в частности, нет никаких указателей (адресов), связывающих одно значение с другим;
Наличие
реляционной алгебры позволяет
реализовать декларативное
Сетевая модель данных — логическая модель данных, являющаяся расширением иерархического подхода, строгая математическая теория, описывающая структурный аспект, аспект целостности и аспект обработки данных в сетевых базах данных.
Разница между иерархической моделью данных и сетевой состоит в том, что в иерархических структурах запись-потомок должна иметь в точности одного предка, а в сетевой структуре данных у потомка может иметься любое число предков.
Сетевая БД состоит из набора экземпляров определенного типа записи и набора экземпляров определенного типа связей между этими записями.
Тип связи определяется для двух типов записи: предка и потомка. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка. Для данного типа связи L с типом записи предка P и типом записи потомка C должны выполняться следующие два условия:
каждый экземпляр типа записи P является предком только в одном экземпляре типа связи L;
каждый экземпляр типа записи C является потомком не более чем в одном экземпляре типа связи L.
Вопрос об использовании той или иной модели должен решаться на начальном этапе проектирования информационной
Объектная модель представления данных оперирует такими понятиями, как класс и объект. Классы определяют структуру данных и представляют собой набор атрибутов (текстовая строка, целое число, изображение и т.д.). Представители класса (объекты) имеют определенную структуру и могут содержать другие объекты, образуя произвольную иерархическую структуру. Объекты могут наследовать свойства, содержание и поведение объектов, которые в них содержатся [2, 3, 5]. Примерами объектов служат документы, картинки, папки и учетные записи пользователей. Класс контента не хранит в себе реальных данных — такую информацию содержат объекты (экземпляры класса). Определив один класс, можно создать множество его представителей (контент объектов).
На основе Объектно-ориентированной модели данных созданы Объектно-ориентированные база данных (ООБД) — базы данных, в которых данные оформлены в виде моделей объектов, включающих прикладные программы, которые управляются внешними событиями. Результатом совмещения возможностей (особенностей) баз данных и возможностей объектно-ориентированных языков программирования являются Объектно-ориентированные системы управления базами данных (ООСУБД). ООСУБД позволяет работать с объектами баз данных также, как с объектами в программировании в ООЯП. ООСУБД расширяет языки программирования, прозрачно вводя долговременные данные, управление параллелизмом, восстановление данных, ассоциированные запросы и другие возможности.
Некоторые объектно-ориентированные базы данных разработаны для плотного взаимодействия с такими объектно-ориентированными языками программирования как Python, Java, C#, Visual Basic .NET, C++, Objective-C и Smalltalk; другие имеют свои собственные языки программирования. ООСУБД используют точно такую же модель, что и объектно-ориентированные языки программирования.
Объектно-ориентированные базы данных обычно рекомендованы для тех случаев, когда требуется высокопроизводительная обработка данных, имеющих сложную структуру.
- Триггеры и хранимые процедуры. Триггер - программа базы данных, вызываемая всякий раз при вставке, изменении или удалении строки таблицы. Триггеры обеспечивают проверку любых изменений на корректность, прежде чем эти изменения будут приняты. Хранимая процедура – программа, которая хранится на сервере и может вызываться клиентом. Поскольку хранимые процедуры выполняются непосредственно на сервере базы данных, обеспечивается более высокое быстродействие, нежели при выполнении тех же операций средствами клиента БД. В различных программных продуктах для реализации триггеров и хранимых процедур используются различные инструменты.
- Средства поиска. Некоторые современные системы имеют встроенные дополнительные средства контекстного поиска.
- Предусмотренные типы данных. Здесь следует учесть два фактически независимых критерия: базовые или основные типы данных, заложенные в систему, и наличие возможности расширения типов. В то время как отклонения базовых наборов типов данных у современных систем от некоего стандартного, обычно, невелики, механизмы расширения типов данных в системах того или иного производителя существенно различаются.
4.Реализация языка запросов. Все современные системы совместимы со стандартным языком доступа к данным SQL-92, однако многие из них реализуют те или иные расширения данного стандарта.
В настоящее время язык SQL является общепринятым стандартом при работе с реляционными системами управления базами данных. Язык SQL был официально утвержден в качестве промышленного стандарта организациями по стандартизации ANSI (American National Standard Institute) и ISO/IEC (International Standards Organizations / International Electromechanical Commissions). Последний стандарт, опубликованный ANSI и ISO, часто называется SQL92, также называемый SQL2. Официальное название стандарта такое:
1.ANSI X3.135-1992 «Database Language SQL»;
2.ISO/IEC 9075: 1992, «Database Language SQL».
Стандартный язык SQL был задуман как язык запросов и команд, а не как язык программирования. В 1996 году была принята дополнительная часть стандарта, расширяющая возможности стандартного языка SQL и предоставляющая пользователям средства создания сложных программных конструкций. Это дополнение известно как ISO/IEC 9075-5:1996.
В стандарте ANSI команды SQL объединены по группам, которые называются подразделами:
1. Язык определения данных (DDL — Data Definition Language). В эту группу входят команды, предназначенные для создания, модификации и удаления объектов баз данных, таких как таблицы и представления (представления – это виртуальные таблицы, содержимое которых формируется запросом). К командам этой группы также относятся и команды управления доступом пользователей к объектам базы данных;
2.
Язык манипулирования данными
(DML — Data Manipulation Language). Эта группа
содержит команды,
3.
Команды управления
4.
Команды управления
- Команды управления системой (System Control Statement). Команды этой группы позволяют управлять свойствами самой СУБД. Однако не в каждой СУБД для этого используются собственно команды. Например, в Microsoft SQL Server эта задача решается с помощью хранимых процедур, изменяющих значения в системных таблицах.
Любая СУБД поддерживает язык определения данных и язык манипулирования данными.
Одной из целей, стоявших при разработке стандартов языка SQL, было преодоление несовместимости диалектов SQL, используемых различными производителями СУБД. Но, пожалуй, сейчас не найдется ни одной коммерческой СУБД, которая бы не отходила от стандарта языка SQL, хотя реализованные в этих СУБД варианты языка SQL часто полностью соответствуют стандарту ANSI SQL92. Уход от стандарта объясняется тем, что производители СУБД снабжают свои модификации языка SQL множеством различных дополнений, расширяющих возможности пользователя как при работе с данными, так и с объектами баз данных и самой СУБД.
1.2.2. Особенности архитектуры и функциональные возможности
- Мобильность.
Мобильность – это
независимость системы от среды, в которой она работает. Средой в данном случае является как аппаратура, так и программное обеспечение (операционная система). - Масштабируемость. При выборе СУБД необходимо учитывать, сможет ли данная система соответствовать росту информационной системы, причем рост может проявляться в увеличении числа пользователей, объема хранимых данных и объеме обрабатываемой информации.
- Распределенность. Основной причиной применения информационных систем на основе баз данных является стремление объединить взгляды на всю информацию организации. Самый простой и надежный подход - централизация хранения и обработки данных на одном сервере. К сожалению, это не всегда возможно и приходится применять распределенные базы данных. Различные системы имеют разные возможности управления распределенными базами данных.
- Сетевые возможности. Многие системы позволяют использовать широкий диапазон сетевых протоколов и служб для работы и администрирования.
1.2.3. Контроль работы системы
- Контроль
использования памяти компьютера. Система
может иметь возможность
управления использованием, как оперативной памяти, так и дискового пространства. Во втором случае это может выражаться, например, в сжатии баз данных, или удалении избыточных файлов. - Автонастройка. Многие современные системы включают в себя возможности самоконфигурирования, которые, как правило, опираются на результаты работы сервисов самодиагностики производительности. Данная возможность позволяет выявить слабые места конфигурации системы и автоматически настроить ее на максимальную производительность.
1.2.4. Особенности разработки приложений
Многие производители СУБД выпускают также средства разработки приложений для своих систем. Как правило, эти средства позволяют наилучшим образом реализовать все возможности сервера, поэтому при анализе СУБД стоит рассмотреть также и возможности средств разработки приложений.
Средства проектирования. Некоторые системы имеют средства автоматического проектирования, как баз данных, так и прикладных программ. Средства проектирования различных производителей могут существенно различаться.
Многоязыковая поддержка. Поддержка большого количества национальных языков расширяет область применения системы и приложений, построенных на ее основе.
Возможности разработки Web-приложений. При разработке различных приложений зачастую возникает необходимость использовать возможности среды Internet. Средства разработки некоторых производителей имеют большой набор инструментов для построения приложений под Web.
Поддерживаемые языки программирования. Широкий спектр используемых языков программирования повышает доступность системы для разработчиков, а также может существенно повлиять на быстродействие и функциональность создаваемых приложений.
1.2.5. Производительность
- Рейтинг TPC (Transactions per Cent). Для тестирования производительности применяются различные средства, и существует множество тестовых рейтингов. Одним из самых популярных и объективных является TPC-анализ производительности систем. Фактически TPC анализ рассматривает композицию СУБД и аппаратуры, на которой эта СУБД работает. Показатель TPC – это отношение количества запросов обрабатываемых за некий промежуток времени к стоимости всей системы.
- Возможности параллельной архитектуры. Для обеспечения параллельной обработки данных существует, как минимум, два подхода: распараллеливание обработки последовательности запросов на несколько процессоров, либо использование нескольких компьютеров-клиентов, работающих с одной БД, которые объединяют в так называемый параллельный сервер.
- Возможности оптимизирования запросов. При использовании непроцедурных языков запросов их выполнение может быть неоптимальным. Поэтому необходимо произвести процесс оптимизации запросов, т.е. выбрать такой способ выполнения, когда по начальному представлению запроса путем его синтаксических и семантических преобразований вырабатывается процедурный план выполнения запроса, наиболее оптимальный при существующих в базе данных управляющих структурах.
1.2.6. Надежность
Понятие надежности системы имеет много смыслов – это и сохранность информации независящая от любых сбоев, и безотказность работы системы в любых условиях, и обеспечение защиты данных от несанкционированного доступа.
- Восстановление после сбоев. При возникновении программных или аппаратных сбоев целостность, да и работоспособность всей системы может быть нарушена. От того, как эффективно спланирован механизм восстановления после сбоев, зависит жизнеспособность системы.
- Резервное копирование. В результате аппаратного сбоя может быть частично поврежден или выведен из строя носитель информации и тогда восстановление данных невозможно, если не было предусмотрено резервное копирование базы данных, или ее части. Резервное копирование спасает и в ситуациях, когда происходит логический сбой системы, например при ошибочном удалении таблиц. Существует множество механизмов резервирования данных (хранение одной или более копий всей базы данных, хранение копии ее части, копирование логической структуры и т.д.). Зачастую в систему закладывается возможность использования нескольких таких механизмов.
- Откат изменений. При выполнении транзакции применяется простое правило – либо транзакция выполняется полностью, либо не выполняется вообще. Это означает, что в случае сбоев, все результаты недоведеных до конца транзакций должны быть аннулированы. Механизм отката может иметь различное быстродействие и эффективность.
- Многоуровневая система защиты. Информационная система организации почти всегда включает в себя секретную информацию, поэтому для предотвращения несанкционированного доступа используется служба идентификации пользователей. Уровень защиты может быть различным. Кроме непосредственной идентификации пользователей при входе в систему может использоваться также механизм шифрования данных при передаче по линиям связи.
1.2.7. Требования к рабочей среде
Среди требований к рабочей среде выделяют следующие аспекты работы СУБД:
- Поддерживаемые аппаратные платформы.
- Минимальные требования к оборудованию.
- Максимальный размер адресуемой памяти. Поскольку почти все современные системы используют свою файловую систему, немаловажным фактором является то, какой максимальный объем физической памяти они могут использовать.
- Операционные системы, под управлением которых способна работать СУБД.
1.2.8. Смешанные критерии, стоимость СУБД
- Качество и полнота документации. К сожалению, не все системы имеют полную и подробную документацию.
- Локализованность. Возможность использования национальных языков не во всех системах реализована полностью.
- Модель формирования стоимости. Как правило, производители СУБД используют определенные модели формирования стоимости. Например, стоимость одного и того же продукта может существенно изменяться в зависимости от того, сколько пользователей будет с ним работать.
- Стабильность производителя.
- Распространенность СУБД.
2. Сравнение характеристик и возможностей различных СУБД.
2.1 СУБД Oracle
Пакет Oracle наделен самым развитым набором функций для работы с языком Java и доступа к данным через Интернет, системой оптимизации одновременного доступа. Среди основных свойств СУБД Oracle следует отметить такие, как:
- высочайшая надежность;
- возможность разбиения крупных баз данных на разделы (large-database partition), что дает возможность эффективно управлять гигантскими гигабайтными базами;
- наличие универсальных средств защиты информации;
- эффективные методы максимального повышения скорости обработки запросов;
- индексация по битовому отображению;
- свободные таблицы (в других СУБД все таблицы заполняются сразу при создании);
- распараллеливание операций в запросе;
- наличие широкого спектра средств разработки, мониторинга и администрирования;
- ориентация на интернет технологии.
Ориентация на интернет технологии — основной девиз современных продуктов Oracle. В этой связи можно отметить пакеты InterMedia, обеспечивающие обработку данных в мультимедийных форматах, и Jserver, встроенное средство для работы с языком Java, которое объединяет возможности языка Java с возможностями реляционных баз данных (возможность составлять на языке Java не только внутренние программы для баз данных (хранимые процедуры и триггеры), но и разрабатывать компоненты Enterprise JavaBeans и даже запустить их на сервере).