Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Обзор систем управления базами данных






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

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

Система управления базами данных (СУБД) – совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных [16].

К основным функциям СУБД относят:

– управление данными во внешней памяти;

– управление данными в оперативной памяти с использованием дискового кэша;

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

– поддержка языков БД.

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

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

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

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

СУБД классифицируется по следующим показателям:

– по модели данных:

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

2) сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию;

3) реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив;

4) объектно-ориентированные модели управления базами данных, основанные на объектной модели данных;

– по степени распределённости:

1) локальные СУБД (все части локальной СУБД размещаются на одном компьютере);

2) распределённые СУБД (части СУБД могут размещаться на двух и более компьютерах);

– по способу доступа к БД:

1) файл-серверные;

2) клиент-серверные;

3) встраиваемые.

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

Примеры файл-серверных СУБД: Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro.

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

Примеры клиент-серверных СУБД: Oracle, Firebird, Interbase, IBM DB2, MS SQL Server, Sybase, PostgreSQL, MySQL, ЛИНТЕР, Cache, MDBS.

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

Примеры встраиваемых СУБД: OpenEdge, SQLite, BerkeleyDB, один из вариантов Firebird, MySQL, SavZigzag, Microsoft SQL Server Compact, ЛИНТЕР.

Организация СУБД и состав ее компонентов соответствует рассмотренному выше набору функций.

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

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

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

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

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

MySQL. Разработку и сопровождение СУБД MySQL, самой популярной SQL-базы данных с открытым кодом, осуществляет компания MySQL AB.

Основные характеристики СУБД MySQL:

– внутренние характеристики и переносимость:

1) написана на C и C++. Протестирован на множестве различных компиляторов;

2) работает на различных платформах;

3) полностью многопоточная, с использованием потоков ядра. Это означает, что, если такая возможность обеспечивается, можно легко организовать работу с несколькими процессорами;

4) очень быстрые дисковые таблицы на основе В-деревьев со сжатием индексов;

5) очень быстрая базирующаяся на потоках система распределения памяти;

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

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

8) SQL-функции реализованы при помощи хорошо оптимизированной библиотеки классов, поэтому они выполняются настолько быстро, насколько это возможно. Обычно после инициализации запроса распределения памяти не происходит вообще;

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

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

1) управляет очень большими базами данных. Компания MySQL AB. использует MySQL для работы с несколькими базами данных, которые содержат 50 миллионов записей, кроме того, пользователи, используют MySQL для работы с 60 тысячами таблиц, включающими около 5 миллиардов строк;

2) для каждой таблицы разрешается иметь до 32 индексов. Каждый индекс может содержать от 1 до 16 столбцов или частей столбцов. Максимальная ширина индекса 500 бит (это значение может быть изменено при компиляции MySQL). Для индекса может использоваться префикс поля CHAR или VARCHAR;

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

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

2) полная поддержка нескольких различных кодировок, включая ISO-8859-1 (Latin1), big5, ujis и многие другие. Например, скандинавские символы разрешены в именах таблиц и столбцов;

3) для хранения всех данных используется выбранный набор символов. Все сравнения для столбцов с нормальными строками проводятся с учетом регистра символов;

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

MS SQL Server. MS SQL Server – система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов – Transact-SQL, создан совместно Microsoft и Sybase. Transact-SQL является реализацией стандарта ANSI/ISO по структурированному языку запросов (SQL) с расширениями. Используется для работы с небольшими и средними по размеру базами данных до крупных баз данных масштаба предприятия.

Возможности SQL Server:

– SQL Server позволяет организациям выполнять самые сложные приложения, попутно упрощая отделам ИТ работу с инфраструктурой управления данными. Это надежная, масштабируемая платформа, защищающая информацию в приложениях и повышающая её доступность. Включенная в неё инновационная инфраструктура управления, основанная на политиках, позволяет определять политики для явного и автоматического администрирования серверных сущностей на одном или нескольких серверах;

– SQL Server в сочетании с.NET Framework упрощает разработку новых приложений. Среда ADO.NET Entity Framework повышает эффективность труда разработчиков, поскольку теперь они имеют дело не непосредственно с таблицами и полями, а с логическими информационными сущностями, согласованными с бизнес-требованиями. Более того, они могут создавать приложения, позволяющие пользователям копировать данные на собственные устройства, а позже синхронизовать их с центральными серверами;

– SQL Server позволяет разработчикам управляться с данными любых типов — от традиционных до географических. Это открывает дорогу к созданию приложений нового поколения с учетом информации о расположении и возможностью управления документами;

– инфраструктура SQL Server способна формировать отчеты и выполнять анализ любого объема и сложности, одновременно облегчая пользователям доступ к данным за счет более тесной интеграции с Microsoft Office [17].

Oracle. Oracle – объектно-реляционная система управления базами данных (СУБД). Oracle считается одной из наиболее надежных и популярных систем управления базами данных.

Преимуществом Oracle в области обеспечения высокой надежности и масштабируемости были средства поддержки кластеризации. Компонент RAC позволяет повысить надежность (при выходе из строя одного из узлов система продолжает функционировать), увеличивает масштабируемость (пользователи одной базы данных и одного приложения «размазываются» по всем узлам кластера), позволяет постепенно наращивать мощность системы, не останавливая ее работу.

Oracle поддерживает не только реляционную, объектную, многомерную модель данных, но и XML.

В СУБД Oracle существует много различных вариантов передачи данных и сообщений о событиях между разными серверами баз данных:

– в случае репликации захватываются и передаются изменения данных и вызовы удаленных процедур;

– в случае работы с очередями сообщений передается информация о появлении сообщений и сами сообщения;

– в случае резервирования базы данных передаются и применяются к резервной базе архивированные журнальные файлы или их элементы;

– в случае загрузки данных в хранилища данных передаются загружаемые данные.

Все эти механизмы хорошо работают и конфигурируются в отдельности, но при одновременном использовании нескольких из них конфигурирование усложняется, производительность падает и растет нагрузка на эксплуатационную систему. С целью снижения нагрузки на сервер и облегчения конфигурации перечисленных механизмов существует единый унифицированный механизм Oracle Streams, передающий данные и сообщения о событиях и объединяющий перечисленные механизмы [18].

PostgreSQL. PostgreSQL – свободно распространяемая объектно-реляционная система управления базами данных.

Основные возможности и функциональность:

– надежность:

1) полное соответствие принципам ACID - атомарность, непротиворечивость, изолированность, сохранность данных;

2) многоверсионность используется для поддержания согласованности данных в конкурентных условиях;

3) наличие общепринятого механизма протоколирования всех транзакций, что позволяет восстановить систему после возможных сбоев;

4) возможность восстановления базы данных на любой момент в прошлом;

5) открытость кодов;

– производительность PostgreSQL основывается на использовании индексов, интеллектуальном планировщике запросов, тонкой системы блокировок, системе управления буферами памяти и кэширования, превосходной масштабируемости при конкурентной работе;

– расширяемость PostgreSQL означает, что пользователь может настраивать систему путем определения новых функций, агрегатов, типов, языков, индексов и операторов;

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

1) PostgreSQL нельзя запустить под привилегированным пользователем - системный контекст;

2) SSL, SSH шифрование трафика между клиентом и сервером - сетевой контекст;

3) сложная система аутентификации на уровне хоста или IP адреса/подсети;

4) детализированная система прав доступа ко всем объектам базы данных, которая обеспечивает изоляцию названий объектов для каждого пользователя, PostgreSQL предоставляет богатую и гибкую инфраструктуру [19].

Сравнительный анализ систем управления базами данных. Популярные коммерческие базы данных, такие как Oracle, Microsoft SQL Server включают многие дополнительные функции, в частности, расширенную систему хранения данных, средства управления данными и инструменты восстановления. Однако за последние десять лет сообщество с открытыми исходными кодами улучшило качество своих программ. Как следствие, в последние годы всё больший интерес начинает проявляться к программному обеспечению с открытыми исходными кодами. Например, предприятия по всему миру широко используют веб-сервер Apache, а также две ведущие базы данных с открытыми исходными кодами, PostgreSQL и MySQL.

СУБД MySQL обладает следующими преимуществами перед PostgreSQL:

– MySQL обычно намного превосходит PostgreSQL по скорости работы;

– MySQL превосходит PostgreSQL по количеству пользователей, использующих СУБД при обращении к сайту;

– оснащен большим количеством API (Application Programming Interface) для других языков и поддерживается большим количеством существующих программ;

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

– в MySQL реализован полнотекстовый поиск;

– имеется возможность работы с несколькими базами через одно соединение;

– система MySQL с самого начала разрабатывалась в расчете на многопоточность, а PostgreSQL использует процессы;

– значительно более мощная система привилегий;

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

– при модернизации MySQL нет необходимости в копировании и восстановлении данных, что приходится делать при установке большинства обновлений PostgreSQL.

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

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

PhpMyAdmin – веб-приложение с открытым исходным кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. PhpMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных. Приложение пользуется большой популярностью у веб-разработчиков, так как позволяет управлять СУБД MySQL без непосредственного ввода SQL-команд, предоставляя дружественный интерфейс [20].

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

 

Рисунок 1.9 – Графический интерфейс программы phpMyAdmin

 

Sypex Dumper (ранее Site Keeper Dumper LE) – бесплатное php-приложение, которое создано специально для сохранения и восстановления БД MySQL. Из особенностей можно отметить большую скорость работы (в несколько раз быстрее, чем phpMyAdmin, особенно при восстановлении базы), простоту использования, запоминание настроек, создание файлов сохранения на сервере для дальнейшего скачивания, корректная работа с архивами, отображение прогресса выполнения задачи, работа с базами данных любого размера [21].

Графический интерфейс программы «Sypex Dumper» представлен на рисунке 1.10.

 

Рисунок 1.10 – Графический интерфейс программы Sypex Dumper

 

Таким образом, для управления БД MySQL следует выбрать приложение phpMyAdmin, т.к. оно предоставляет более широкие возможности по администрированию БД MySQL, в сравнении с приложением Sypex Dumper, которое предназначено только для сохранения и восстановления БД MySQL.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.