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

Субд Ingres

СУБД Ingres - интеллектуальная распределенная реляционная система управления БД с открытым кодом, объектно-ориентированная среда разработки приложений в архитектуре клиент/сервер компании Computer Associates International, Inc. (CA). Возможности СУБД включают:

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

  • масштабируемые кластеры СУБД, позволяющие заказчикам использовать Linux и коммерческое аппаратное обеспечение для достижения круглосуточной и ежедневной доступности;

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

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

  • оперативная реорганизация таблиц и индексов, позволяющая обеспечить круглосуточную доступность, допуская проведение обслуживания таблиц СУБД при сохранении БД в состоянии готовности к эксплуатации;

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

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

СУБД Ingres может интегрироваться с другими приложениями и данными в гетерогенной среде. Ingres хорошо подходит для встраиваемых приложений, что достигается благодаря использованию промышленных стандартов подключения к источникам данных, поэтому разработчики могут работать как с платформой J2EE, так и с .NET, или использовать обе платформы одновременно. СУБД Ingres доступна в версиях ОС Windows, UNIX и OpenVMS.

Sql Server

Первая версия СУБД Microsoft SQL Server — совместный продукт компаний Microsoft и Sybase, выпущенный в 1988 году, — была разработана для платформы OS/2. Последующие версии этого сервера БД предназначались для платформы Windows и со временем были тесно интегрированы с этой ОС.

СУБД SQL Server позволяет использовать на одном компьютере несколько одновременно работающих серверов, поддерживает создание кластеров, параллельные вычисления в многопроцессорных системах, распределенные запросы, создание индексов для представлений (Indexed Views), что в ряде случаев существенно повышает скорость выполнения запросов. Этот сервер поддерживает хранение и извлечение XML-данных, представление в виде XML результатов выполнения запросов, представление хранимых процедур в виде Web-сервисов (для реализации этой возможности существует свободно доступный продукт под названием XML for SQL Server, или SQLXML).

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

Из механизмов доступа к данным этот продукт поддерживает драйвера ODBC, OLE DB/ADO, ADO .NET, JDBC. Кроме того, для работы с этим сервером пользователи Borland Delphi 7 могут использовать механизм доступа к данным dbExpress. Средства разработки Microsoft при работе с Microsoft SQL Server обладают рядом дополнительных возможностей, таких как отладка серверного кода, интеграция средств администрирования в среду разработки.

В комплект средств административного управления СУБД Microsoft SQL Server входит целый набор специальных мастеров и средств автоматической настройки параметров конфигурации. Также СУБД оснащена средствами тиражирования, позволяющими синхронизировать данные компьютера с информацией БД и наоборот. Входящий в комплект поставки сервер OLAP дает возможность сохранять и анализировать все имеющиеся у пользователя данные.

Microsoft выпустила новую версию SQL Server, ориентированную исключительно на разработчиков - SQL Express LocalDB. Она полностью поддерживает T-SQL, API и клиентские драйверы, проста в развертывании и сопровождении - сервер, стартующий и останавливающийся автоматически по мере обращений к нему.

Бесплатная редакция SQL Server SQL Express 2008 SP3 CTP корпорация MS рекомендует только для небольших настольных приложений и обучающих целей.

Другие СУБД (PostgreSQL, "Линтер", Caché, "Паллада", eXtremeDB, Progress)

СУБД PostgreSQL компании EnterpriseDB зародилась в 1985 г. в Калифорнийском университете в г. Беркли в результате эволюции проекта Ingres. Будучи полнофункциональной реляционной СУБД с открытым исходным кодом, СУБД PostgreSQL обладает многими качествами, необходимыми для поддержки важнейших приложений с большим числом транзакций. Главное достоинство этой СУБД заключается в надежном и защищенном хранении данных, которыми она управляет. Начиная с того, что подключения к базе данных контролируются с помощью корпоративных механизмов аутентификации, таких как LDAP или Kerberos. После аутентификации весь обмен информацией с СУБД может осуществляться по зашифрованным с помощью Secure Sockets Layer (SSL) подключениям, что обеспечивает надежную защиту данных. При добавлении или модификации данных PostgreSQL налагает ряд ограничений, введенных пользователем для обеспечения качества данных в соответствии с бизнес-правилами. Диапазон этих правил простирается от простых проверок до более сложных, связанных с наличием внешнего ключа. После сохранения данных на диске важнейшим требованием становится возможность резервного копирования и, что еще более важно, восстановления после катастроф. У PostgreSQL имеется простая функция онлайнового резервного копирования, которая работает в сочетании с механизмом восстановления по состоянию на определенный момент (Point-In-Time Recovery, PITR), благодаря чему администраторы могут быстро восстановить утраченные данные.

Здесь есть возможность запуска приложений, написанных под Oracle (большинство приложений Oracle либо работают, либо требуют минимальных изменений). Персонал, имеющий опыт в работе с Oracle, может сразу же приступить к своим непосредственным обязанностям в новой БД. PostgreSQL может запускаться на многоузловом кластере со свободным узлом на случай отказа одного из устройств. СУБД PostgreSQL упакована в межплатформенный инсталлятор. Эта версия СУБД рассчитана на разработчиков приложений следующего поколения. PostgreSQL имеет динамическую настройку производительности, а также передовые средства мониторинга и управления. Разрабатываются дополнительные функции обеспечивающие бесперебойность работы, а также функции, основанные на открытой технологии параллельных запросов GridSQL. СУБД PostgreSQL поддерживает хранимые процедуры, ограничения и транзакции. В СУБД PostgreSQL есть две оригинальные встроенные функции vacuum и explain, которые можно использовать для повышения ее производительности. Команда vacuum удаляет устаревшие строки из БД и уплотняет ее. СУБД оснащена функцией анализа explain, которая не выполняет запрос, а лишь анализирует его.

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

В состав Postgres Plus Server входят информационные панели для слежения за загруженностью серверов, использованием хранения, пользовательской активностью и другими показателями; система предупреждений о потенциальных и выявленных проблемах; система планирования емкости и профилировщик для поиска проблем в SQL-коде. Предусмотрен также инструмент Enterprise Manager, анализирующий среду PostgreSQL пользователя и выдающий архитектурные рекомендации.

Облачная версия СУБД PostgreSQL Cloud Server оснащена веб-интерфейсом, с помощью которого можно будет управлять кластерами узлов СУБД. Предусмотрены механизмы автоматической балансировки нагрузки и перераспределения при отказе. Имеются функции резервного копирования и восстановления БД на заданный момент времени. Пакет Postgres Enterprise Manger предназначен для сопровождения, администрирования и оптимизации СУБД. PostgreSQL входит фактически во все ведущие Linux-дистрибутвы, IBM лицензировала ее технологии выгрузки из баз Oracle.

Компания VMware предлагает СУБД PostgreSQL, подготовленную к работе в виртуализованной среде. VFabric Postgres представляет собой копию СУБД с открытым кодом PostgreSQL, упакованную в виртуальную машину VMware. VFabric PostgreSQL будет предлагаться в облаке VMware Cloud Foundry и в виде самостоятельного программного продукта.

PostgreSQL Global Development Group в 2011 г. представила очередную версию сервера баз данных PostgreSQL 9.1.0. Основные изменения в новой версии:

  • синхронная репликация в распределенной БД;

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

  • поддержка предложения COLLATE для выбора символьной сортировки;

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

  • возможность создавать непротоколируемые таблицы с помощью опции UNLOGGED в команде CREATE TABLE;

  • возможность изменения данных (INSERT/UPDATE/DELETE) в предложении WITH;

  • индексы GiST теперь обеспечивают быстрый поиск ближайших соседей;

  • поддержка SELinux и команды SECURITY LABEL;

  • возможность поточного тиражирования;

  • поддержка исполнения на клиентских системах, работающих под управлением 64-разрядного варианта Windows.

СУБД "Линтер" компании "Релэкс" - это SQL-сервер, разработанный в России и сертифицированный по второму классу защиты информации, может функционировать на различных программно-аппаратных платформах. Архитектура и функциональные возможности системы позволяют использовать ее для решения различных задач - от мобильных устройств и систем с ограниченными ресурсами до корпоративных программных комплексов. Особый интерес СУБД "Линтер" представляет для разработчиков прикладных задач, функционирующих в системах реального времени, в программных комплексах с жесткими условиями по отказоустойчивости и при высоких требованиях к защите информации (система позволяет работать с секретной информацией, обеспечивая высокий уровень безопасности данных). СУБД "Линтер" используется в АСУ вооруженных сил. Система поставляется для платформ: WIN32, включая Windows СE, NetWare, различных версий UNIX, OS9/9000, QNX, VxWorks и др. СУБД «Линтер» поддерживает множество аппаратных платформ, таких как Intel, Sparc, MIPS, Alpha, VAX, ARM, SHx.

В 1997 году появилась постреляционная СУБД Caché (компания InterSystems)– высокопроизводительная объектная СУБД, отличительной особенностью которой стала возможность равноправной и эффективной поддержки сразу трех моделей работы с данными: объектной, реляционной и многомерной. Caché обеспечиваает поддержку механизма транзакций при работе с данными и гибкую масштабируемость приложений, предъявляя при этом достаточно скромные требования к аппаратным ресурсам. СУБД Cache может использоваться на компьютерах, работающих под управлением ОС Windows, Linux, Mac OS, Unix и OpenVMS. СУБД Cache представляет собой интегрированную систему и среду быстрой разработки современных приложений, ориентированных на обработку транзакций. СУБД Cache позволяет создавать приложения с использованием технологии AJAX. Веб-сервисы, построенные на AJAX, работают гораздо быстрее обычных. СУБД включает большое количество готовых компонентов и обеспечивает возможность разработки на их основе дополнительных модулей. В СУБД Cache 2007 имеется инструментарий Jalapeno, ускоряющий разработку Java-приложений. СУБД Cache обеспечивает быстрый доступ к большим объемам данных различных типов - фотографиям, заметкам и цифровой информации. С созданными на основе СУБД Cache БД могут одновременно взаимодействовать до 50 тысяч пользователей.

СУБД "Паллада" (компания "ВНИИНС") представляет из себя защищенную объектно-ориентированную СУБД, предназначенную для АСУ вооруженных сил мобильного базирования. "Паллада" функционирует в среде ОС МСВС и ОЛИВИЯ.

СУБД HyTech разработана в МИФИ в конце 80-х годов. СУБД HyTech предназначена для создания, ведения и использования реляционных БД сверхбольшого объема. Эта СУБД реализована для архитектуры клиент-сервер и функционирует на нескольких платформах (Windows, Novell, Solaris).

СУБД eXtremeDB имеет средства координации одновременной работы множества процессов, обращающихся к БД, и технологию индексации, которая особо эффективна в задачах обработки геопространственных данных и поиска шаблонов в больших объемах информации. Новый, более удобный и простой программный интерфейс Uniform Data Access позволяет организовывать запросы к БД как с помощью SQL, так и напрямую из кода Си/С++. СУБД eXtremeDB обрабатывает данные в оперативной памяти и ориентирована на использование во встраиваемых приложениях реального времени.

СУБД Progress имеет развитые средства повышения производительности, всевозможного мониторинга, отладки и оптимизации. Практически сняты ограничения на объемы БД. Известны проекты, где одна таблица занимает 1,2 Тбайта, а БД — 4 Тбайта (максимально ее размер теперь может увеличиваться до 32 экзабайтов). Это достигнуто за счет всесторонней поддержки 64-разрядных архитектур, а оптимизация работы с большими БД выполняется с применением параллельных технологий — например, формировать дамп базы и перестраивать индексы можно в многопоточном режиме. В решениях Progress Software поддерживаются технологии SOA, создания приложений с графическим и “насыщенным” веб-интерфейсом.

Вышла первая версия нереляционной СУБД CouchDB (проект Apache Foundation). CouchDB может работать под ОС Windows и Linux, как на серверах, так и на настольных компьютерах. Ведется разработка варианта CouchDB для ОС Google Android. СУБД хранит данные в виде простых пар «ключ-значение (формат Javascript Object Notation - JSON), а опрашивать ее можно с помощью HTTP-запросов. Такого типа СУБД, называемые документо-ориентированными, не требуют описания схемы данных и рассчитаны на работу с полуструктурированной информацией. CouchDB позволяет строить веб-приложения без промежуточного слоя. Вместо сервера баз данных, полного Java-стека нужен только браузер. Это может быть удобным при создании веб-приложений для устройств, не имеющих постоянного соединения с Интернет. Копии БД в различных организациях можно синхронизировать с помощью этой СУБД. Она не требует знания языка запросов SQL. Для запросов к CouchDB используется реализация Google MapReduce. Есть возможность составлять достаточно сложные запросы. Практически все, что можно сделать с SQL, вы можете и в CouchDB; правда, придется привыкнуть к тому, что у запросов иная структура.

Vertica – специализированная реляционная аналитическая СУБД, предназначенная для использования в аналитических системах и хранилищах данных с объемами данных от сотен Гбайт до сотен Тбайт. Благодаря специальным архитектурным решениям (поколоночное хранение данных, компрессия данных без потери производительности, массивный параллелизм и др.) Vertica обеспечивает прекрасную производительность BI/DWH систем, превышающую в некоторых случаях в 50-200 раз решения, основанные на традиционных многоцелевых реляционных СУБД, таких как Oracle, MS SQL Server, DB2, MySQL и др. Благодаря поддержке стандартных интерфейсов Vertica без особых сложностей может быть использована совместно с SQL-ориентированными BI-средствами (например, BusinessObjects, Cognos, Microstrategy, Pentaho или аналогичные), а также с различными ETL-инструментами, такими как Informatica, IBM Information Server, Oracle Data Integrator, Syncsort и подобными им.

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

В отличие от традиционных реляционных СУБД, чья архитектура была заложена еще в 70-х годах в расчете на использование в транзакционных (OLTP) системах, Vertica изначально разработана для аналитических (OLAP) систем, получивших распространение в 90-х годах, и содержит ряд архитектурных решений, отличающих ее от традиционных СУБД:

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

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

Поскольку все данные в СУБД Vertica хранятся по колонкам, то это позволяет сжимать их значительно эффективнее, как правило данные в одной колонке значительно больше похожи друг на друга, чем данные в одной строчке. При этом можно использовать разные алгоритмы сжатия в зависимости от типа данных в колонке. Например, если у нас есть таблица с 100 млн. записей, сделанных в течение одного года, то в колонке «Дата» у нас будет храниться не более 366 возможных значений. Поэтому мы можем 100 млн. отсортированных значений в этом поле заменить на 366 пар вида "дата, количество раз" и хранить их на диске в таком виде. При этом они будут занимать приблизительно в 100`000 раз меньше места, что снова позволит повысить скорость выполнения запросов.

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

Vertica построена по так называемой MPP-архитектуре (Massive Parallel Processing), которая не требует выделенных дорогостоящих дисков SAN. Выполнение запросов в Vertica происходит не непосредственно на таблицах, а на так называемых проекциях (projections), которые, по сути, являются материализованными представлениями (materialized view). Так как проекции часто содержат повторяющиеся данные, то разнесение дублирующихся полей разных проекций по разным серверам одного кластера позволяет достичь сразу двух целей — распараллеливания запросов и отказоустойчивости. Это позволяет Vertica не использовать ни индексы, ни лог-файлы, и показывать практически линейную масштабируемость от сотен Гбайт до сотен Тбайт данных.

Vertica поддерживает стандартный SQL (ANSI-99) и имеет ODBC и JDBC драйверы (под Windows и Linux) для работы со сторонними BI и ETL средствами. В качестве платформы для серверной части СУБД Vertica используется Linux на x86-серверах.

Выводы

Краткий анализ имеющихся на рынке СУБД позволяет сделать следующие выводы:

  • выбор СУБД достаточно широк;

  • имеется несколько достаточно эффективных свободно распространяемых СУБД (Ingres, MySQL, PostgresQL);

  • только крупные фирмы сохраняют преемственность своих разработок на нескольких поколениях ЭВМ;

  • за годы существенно увеличилась функциональность СУБД;

  • язык SQL развился от командного языка до практически настоящего языка программирования (PL/SQL Oracle).

Список литературы

  1. MySQL и mSQL. БД для небольших предприятий и Интернета. Издательство: Символ-Плюс, 2000. - 560 с.

  2. Винтер Рик. MicrosoftAccess97: справочник. – СПб: Питер.1998. – 416 с.

Перечень вопросов для самопроверки

  1. Чем отличается организация файла от БД?

  2. Почему БД улучшает обмен данными между приложениями?

  3. Каковы Важнейшие характеристики СУБД?

  4. Назовите характеристика современных систем управления БД

  5. Дайте понятия схемы и подсхемы, логический и физический уровни представления данных

  6. Какие модели данных наиболее распространены?

  7. Что такое язык манипулирования данными?

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