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

Рекомендации по использованию субд Access:

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

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

  • использовать скомпилированные (сохраненные) запросы;

  • для повышения эффективности использования СУБД Access, в первую очередь, следует увеличить оперативную память.

MySQL

СУБД MySQL является одной из самых известных, надежных и быстрых из всего семейства существующих СУБД, распространяется вместе с исходными текстами. Исходные коды, скомпилированные модули под множество платформ и разнообразные утилиты для этой СУБД можно найти на сайтах http://www.mysql.com, http://www.nestor.minsk.by/kg/, http://bbd.net.ru/mysql/001d01.shtml, http://protoplex.ru/.

В 2008 г. корпорация Sun купила компанию MySQL AB, в 2010 г. корпорация Sun была поглощена корпорацией Oracle. Распространяется под GNU General Public Licenseи под собственной коммерческой лицензией, на выбор.

Эта СУБД изначально предназначалась для использования индексно-последовательного метода доступа (ISAM) к данным веб-сайтов [1]. Особенность такого типа нагрузки заключается в применении преимущественно операции чтения при наличии множества простых запросов. Это обусловило появление кэша запросов, который еще больше поднял производительность MySQL. Ориентация на высокую производительность привела к созданию MySQL Cluster, что позволило СУБД использовать более одного физического сервера. Одна из наиболее сильных черт MySQL заключается в возможности подключать различные механизмы хранения. По умолчанию используется MyISAM, что обеспечивает высокую производительность, когда преобладают операции чтения. А механизм InnoDB обеспечивает надежность транзакций, которая необходима при большом количестве операций записи. Для таблицы с преобладанием операций чтения можно использовать MyISAM, а для транзакционной — InnoDB.

MySQL является идеальным решением для малых и средних приложений. Обычно MySQL рассматривается как основа для не слишком сложных, проектов, не требующих высокой сохранности данных: форумы, системы ведения статистики посещаемости и т. д. Наиболее полно возможности сервера проявляются на Unix-серверах. MySQL-сервер является бесплатным для некоммерческого использования. MySQL - это компактный многопоточный сервер SQL, широко распространенный в качестве SQL-движка сайтов благодаря удачному сочетанию пользовательских свойств, открытым исходным кодам и хорошей технической поддержке. Исходный язык MySQL - C. СУБД MySQL относится к числу продуктов экономического класса и представляет собой неплохую альтернативу более дорогим продуктам. Последние версии СУБД поддерживают хранимые процедуры и триггеры. В нее также добавлена поддержка иностранных алфавитов и географических данных. Новый модуль установки на базе графического пользовательского интерфейса и программы-эксперты конфигурирования для Linux и Windows делают более простой настройку и оптимизацию БД. Краткий перечень положительных свойств MySQL включает:

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

  • количество строк в таблицах может достигать 50 млн;

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

  • простая и эффективная система безопасности.

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

В MySQL создание View – представлений решается весьма своеобразно: для каждого поставщика заводится отдельная таблица, а общая таблица будет собираться из них путем создания таблицы типа Merge - некоей комбинации View и Union, когда значения из нескольких идентичных таблиц MyISAM объединяются в одну и этому объединению дается свое имя. Принципиальная проблема при таком подходе состоит в отсутствии транзакций, так как Merge поддерживается только для таблиц типа MyISAM.

В СУБД MySQL отсутствуют средства поддержки внешних ключей foreign keys и другие средства поддержания целостности. Эти средства повышают качество проектирования базы, но при создании Web-сайтов ошибки необходимо выявлять на уровне HTML. Максимально возможное количество проверок следует проводить в браузере на стороне клиента. Таким образом, проверки целостности внутри SQL-сервера могут рассматриваться только как дополнительное средство, и рассчитывать на них при проектировании бизнес-логики все равно нельзя.

В СУБД MySQL используется четыре типа таблиц: статические, динамические, heap ("куча") и сжатые. Статические таблицы самые быстрые из трех типов таблиц, размещаемых на дисках. Зато они не могут содержать столбцы переменной длины. Если в таблице имеется, хотя бы один такой столбец, СУБД MySQL вынуждена создавать динамическую таблицу вместо статической. Динамические таблицы содержат гораздо больше данных, особенно касающихся размера таблицы, но значительно медленнее статических таблиц.

Таблицы типа heap существуют только в оперативной памяти и поэтому они исключительно быстродействующие. Но таблицы этого типа бывают лишь небольшого или среднего размера. Сжатые таблицы предназначены только для считывания и тоже очень быстродействующие.

Когда данные столбцов переменной длины изменяются и новые данные имеют более короткую длину, в информационных файлах MySQL образуется "мертвое" пространство. Проблема производительности связана с постепенной деградацией используемых индексов. В программном обеспечении MySQL имеется инструментальное средство myisamchk, позволяющее высвободить мертвое пространство и оптимизировать индексы. Эту программу следует периодически запускать.

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

В СУБД MySQL есть средство для администрирования сервера WinMySQLAdmin. Программа отображает сведения о работе сервера, время работы, переменные среды, список доступных БД и таблиц (без возможности редактирования или просмотра), а также позволяет перезапускать сервер. На отдельную вкладку вынесены настройки производительности и редактирования конфигурационного файла my.ini. В дистрибутив входит несколько сборок сервера и можно выбрать наиболее быстродействующую. Программа при закрытии главного окна скрывается в systray, а наиболее частые операции с сервером (перезагрузка/запуск/остановка) можно выполнить через контекстное меню. Иконка в виде светофора показывает текущее состояние сервера – красный (остановлен), зеленый (работает) или желтый (процесс загрузки/остановки).

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

Для администрирования и работы с БД через Web наиболее популярным инструментом стал набор PHP скриптов PHPMyAdmin. Для работы необходим веб-сервер с поддержкой PHP. Не все операции по администрированию сервера можно делать через веб-интерфейс.

Утилита MySQL Administrator предназначена для администрирования сервера, а также может выполнять операции резервного копирования и восстановления информации (как над отдельными, так и над всеми БД, причем есть встроенный планировщик заданий). Главные функции утилиты представлены ниже.

Server Information позволяет посмотреть на какой платформе запущен сервер, хост/порт, текущий аккаунт пользователя, IP, ОС, процессор и размер доступной памяти. Тут же показывается текущий статус сервера – работает или остановлен.

Service Control позволяет запустить или перезапустить сервер, просмотреть лог загрузки, настроить основные параметры – пути к файлу конфигурации, директории с бинарными файлами и настроить сервер для поддержки специфических расширений [http://www.mysql.com/products/mysqlcc/index.html].

Startup Variables - этот раздел позволяет настроить множество тонких опций, влияющих на производительность сервера. Кроме базовых настроек (поддержка сетевых соединений, настройка портов, пути к служебным каталогам, настройка работы с памятью), отдельно можно настроить опции для различных типов таблиц (MyISAM, InnoDB). Для увеличения производительности есть настройки кеширования, для работы с несколькими серверами есть настройки репликации. На отдельных вкладках сгруппированы настройки безопасности и сетевые возможности.

Server Connections. С помощью этой функции можно просмотреть все текущие подключения клиентов к серверу и при необходимости завершить любое из них.

Функция User Administration позволяет настроить привилегии для каждого пользователя и оперативно управлять ими. Функция Health отслеживает производительность сервера в реальном времени, расход памяти и сетевой трафик, а также показывает статистику по типам запросов и эффективность задействования ключей. Эти возможности можно использовать, чтобы наблюдать изменения в работе сервера при изменении настроек, тестировать их влияние на производительность и таким образом постепенно оптимизировать работу сервера.

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

С помощью функции Replication Status можно настроить параметры репликации.

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

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

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

Список наиболее важных характеристик программного обеспечения СУБД MySQL.

- доступны API-интерфейсы для С, C++, Eiffel, Java, Perl, PHP, Python, Ruby и Tel;

- полностью многопоточный с использованием потоков ядра, может работать в многопроцессорных системах;

- обеспечивает транзакционный и нетранзакционный механизмы хранения;

- использует очень быстрые дисковые таблицы (MylSAM) со сжатием индексов на основе бинарных деревьев (В-деревьев);

- очень быстрая система распределения памяти, основанная на потоках;

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

- хранимые в памяти хеш-таблицы, которые используются в качестве временных таблиц;

- функции SQL реализованы с использованием высоко оптимизированной библиотеки классов и должны выполняться предельно быстро;

- код MySQL протестирован с помощью инструментов поиска утечки памяти;

- сервер доступен как отдельная программа для использования в клиент-серверной сетевой среде. Кроме того, он также поставляется в виде библиотеки, которая может быть встроена в отдельные автономные приложения. Такие приложения могут применяться в изолированной среде или среде, не имеющей доступа к сети.

Типы столбцов

- множество типов данных для столбцов таблиц: знаковые/беззнаковые целые ДЛИНОЙ в 1, 2, 3, 4 и 8 байт; ТИПЫ FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET, ENUM и пространственные типы OpenGIS;

- записи фиксированной и переменной длины.

Операторы и функции.

- полная поддержка операций и функций в конструкциях SELECT и WHERE запросов, например, mysql> SELECT CONCAT(first_name, ' ', last_name) -> FROM citizen -> WHERE income/dependents > 10000 AND age > 30;

- полная поддержка конструкций GROUP BY и ORDER BY. Поддержка групповых функций (COUNT (), COUNT (DISTINCT . . .), AVG(), STD(), SUM(), MAX(), MIN() И GROUP_CONCAT());

- поддержка LEFT OUTER JOIN и RIGHT OUTER JOIN как с синтаксисом SQL, так и с синтаксисом ODBC;

- поддержка псевдонимов для таблиц и столбцов, как того требует стандарт SQL;

- операторы DELETE, INSERT, REPLACE и UPDATE возвращают количество строк, которые были изменены;

- специфическая для MySQL команда SHOW может быть использована для извлечения информации о базах данных, таблицах и индексах. Команда EXPLAIN позволяет просмотреть, как оптимизатор выполняет запрос;

- имена функций не конфликтуют с именами таблиц и столбцов. Например, ABS — абсолютно корректное имя столбца. Единственное ограничение, которое накладывается на вызов функций, - это то, что между именем функции и следующей за ним открывающей скобкой ' (' не должно быть пробелов;

- можно смешивать таблицы из разных БД в одном запросе.

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

Масштабируемость и ограничения:

- поддерживает работу БД огромных объемов, например, компания MySQL AB применяет сервер MySQL для обслуживания БД, содержащей 50 миллионов записей (известна организация, использующая сервер MySQL для обслуживания базы данных из 60 000 таблиц, которая хранит около 5 миллиардов записей);

- разрешается иметь до 64 индексов на таблицу. Каждый индекс может содержать от 1 до 16 столбцов или частей столбцов, максимальная ширина индекса составляет 1000 байт, для индекса может применяться префикс столбцов с типами CHAR, VARCHAR, BLOB и TEXT.

Сетевая связность:

- клиенты могут подключаться к серверу MySQL, используя сокеты TCP/IP на любой платформе. В Windows-системах семейства 2000 или ХР клиенты могут подключаться с использованием именованных каналов, в системах на базе UNIX клиенты могут подключаться через файлы сокетов UNIX-доменов;

- интерфейс Connector/ODBC позволяет MySQL поддерживать клиентские программы, которые используют ODBC-соединения, например, для подключения к серверу MySQL можно использовать MS Access, клиентское программное обеспечение может выполняться под управлением Windows или UNIX, поддерживаются все функции драйвера ODBC и множество других;

- интерфейс Connector/JDBC позволяет MySQL взаимодействовать с клиентскими программами на Java, в которых используются JDBC-подключения.

Локализация:

- сервер может выдавать клиентам сообщения об ошибках на разных языках;

- полностью поддерживаются несколько кодовых таблиц, включая latinl (ISO- 8859-1), german, big5, ujis и другие, например, в именах таблиц и столбцов разрешается применять скандинавские символы наподобие 'а', 'а' и 'б', начиная с версии MySQL 4.1, также обеспечивается поддержка Unicode;

- все данные сохраняются в выбранной кодировке, все сравнения столбцов с нормальными строками чувствительны к регистру;

- сортировка выполняется в соответствии с выбранной кодировкой (по умолчанию используется шведский набор), сервер MySQL поддерживает множество различных кодировок, причем они могут быть указаны как во время компиляции, так и во время выполнения.

Клиенты и инструменты. Cервер MySQL имеет встроенную поддержку SQL-операторов для проверки, оптимизации и восстановления таблиц. Эти операторы можно выполнять в режиме командной строки, используя клиентское приложение mysqlcheck. MySQL включает также myisamchk - очень быструю утилиту командной строки для реализации тех же операций над таблицами MylSAM.

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

Ключевыми особенностями и характеристиками Navicat MySQL являются:

  • поддержка событий, триггеров, функций хранения изображения, типов данных VARCHAR, BIT, BINARY / VARBINARY, видов и форм, настройки последовательности соединения, синхронизации данных, опций таблицы – просмотр, сохранение, событий, резервного копирования и восстановления данных, параметров запроса, управления пользователями, опций соединения, HTTP туннеля, просмотров в Query Builder, формирования длины строк и ширины столбцов в сетке таблицы;

  • имеет мощные инструменты управления данными, возможности отправления уведомления электронной почтой для задания по расписанию, встроенную SQL консоль;

  • позволяет пользователю в режиме Raw просмотреть фактические значения данных, которые хранятся в базе данных MySQL;

  • обеспечение автоматического переподключения к MySQL серверу;

  • экспорт записей реестра (.reg).

В MySQL 5.5 Enterprise Monitor 2.3 появились новые правила и диаграммы, помогающие дополнительно оптимизировать производительность и готовность MySQL Database и MySQL Cluster. Обновление включает новые диаграммы MySQL и InnoDB, а также диаграммы для каждой конкретной операционной среды, которые улучшают визуальный контроль ключевых систем как для режима мониторинга в реальном времени, так и для статистического анализа тенденций. MySQL Enterprise Backup 3.5 позволяет организациям осуществлять оперативное резервное копирование баз данных MySQL Databases, не прерывая работы прикладных систем, повышает надежность БД благодаря поддержке режимов полного, поэтапного и частичного резервного копирования, а также восстановления состояния базы данных на тот или иной момент времени (Point-in-Time recovery). MySQL Workbench 5.2 включает в себя функции моделирования данных и SQL-разработки, а также полный набор инструментов, с помощью которых можно визуально проектировать, моделировать, генерировать и администрировать базы данных MySQL Databases.

СУБД Sybase

Sybase EAServer эффективный, масштабируемый и надежный сервер приложений для корпоративных, портальных и Интернет-решений, использующих многоуровневые архитектуры, поддерживает стандарт Java 2 Enterprise Edition (J2EE)™ (http://bbd.net.ru/sqlserver/002d01.shtml).

Sybase EAServer обеспечивает следующие технологии J2EE:

  • Enterprise JavaBeans™ - управляемые сообщениями компоненты (JavaBeans) и расширенные возможности обеспечения отказоустойчивости;

  • JSP™ /Servlet - в дополнение к созданию динамических HTML-страниц поддерживается создание XML-документов с использованием встроенных скриптов и Java-поддержкой формирования динамической информации;

  • JAXP - программный интерфейс Java™ API для разборки и обработки XML-документов;

  • JASS - Java-интерфейс для подключаемых модулей безопасности, обеспечивающих функции аутентификации;

  • JMS поддерживает стандартный интерфейс Java для обмена сообщениями в виде промежуточного интерфейса (wrapper) для доступа к встроенным сервисам сервера приложений;

  • коннекторы (JCA) - стандартная технология доступа и интеграции внешних систем;

  • JTS (Java Transaction Service) - служба поддержки распределенных транзакций;

  • программный интерфейс JDMK API - обеспечивает доступ к Java-приложениям через стандартные средства мониторинга SNMP;

  • программный интерфейс JDMK API - доступ к Java-приложениям через стандартные мониторинговые системы SNMP (только в составе Enterprise Edition);

  • модули WebServer (Web-Server Plug-Ins) для Apache, Netscape™, iPlanet™ и сервера Microsoft Internet Information Server, которые обеспечивают эффективную передачу JSP и servlet-запросов для выполнения внутри сервера приложений;

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

  • автоматическое восстановление работоспособности - EAServer использует автоматическую синхронизацию по памяти stateless- и stateful-компонентов для автоматического восстановления экземпляра компонента в случае сбоя на другом сервере;

  • репозиторий контроля версий - работа данного компонента гарантирует то, что все системы имеют одинаковые версии программного обеспечения;

  • межплатформенная кластеризация - Sybase EAServer полностью обеспечивает кластеризацию и синхронизацию компонентов на базе всех поддерживаемых ОС в любой точке сети;

  • настройка производительности может осуществляться также с помощью кэширования объектов и страниц;

  • поддержка Hotspot VM - JDK включает поддержку Hotspot VM, улучшающую управление памятью за счет более эффективного сбора "мусора" в памяти и повышения производительности в случае большого количества CPU-интенсивных приложений.

Sybase EAServer поддерживает широкий спектр совместно используемых компонентных моделей, включая CORBA®/IIOP, ActiveX® /COM, Enterprise JavaBeans™, Java® Servlets и PowerBuilder® NVO; большинство языков программирования и инструментальных средств, включая Java™,C/C++, Visual Basic® и PowerBuilder, и может функционировать на базе подавляющего большинства ОС, включая Microsoft® Windows, Sun® Solaris™, HP-UX® IBM AIX®, а также Red Hat® Linux.

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

Sybase EAServer поддерживает наращиваемую систему безопасности на базе дополнительных модулей (plug-in), которые обеспечивают аутентификацию, авторизацию и определение ролевой принадлежности работающего пользователя. Обеспечивается поддержка встроенных в ОС систем аутентификации и авторизации, цифровых сертификатов x.509, а также других механизмов безопасности. EAServer поддерживает также автоматическое HTTP-туннелирование, и поддержку протокола SSL для шифрования данных. В рамках ролевой модели авторизации доступа обеспечивается присвоение ролевой принадлежности пользовательским учетным записям, и определение прав доступа к отдельным серверным ресурсам.

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

Из универсальных механизмов доступа к данным поддерживаются драйверы ODBC, JDBC, OLE DB/ADO. Пользователи средств разработки Borland для работы с этим сервером могут также использовать механизм доступа к данным dbExpress.

Для создания многомерных хранилищ данных у Sybase существует серверный продукт — Adaptive Server IQ, позволяющий создавать хранилища на основе данных из СУБД не только производства Sybase, но и других производителей.

Существует ряд продуктов под общим названием Sybase Industry Warehouse Studio, ориентированных на обслуживание конкретных предметных областей: торговли (Retail Warehouse Studio), здравоохранения (Healthcare Warehouse Studio), страхования (Life Insurance Warehouse Studio) и др.

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