Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
03_Пособие.doc
Скачиваний:
20
Добавлен:
01.05.2025
Размер:
1.78 Mб
Скачать

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

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

Таким образом, СУБД обеспечивает:

  • описание данных;

  • манипулирование данными;

  • физическое размещение данных;

  • защиту от сбоев, поддержку целостности данных и их восстановление.

  • обеспечение безопасности, секретности и разграничение прав доступа к данным.

  • функцию словаря данных

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

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

  • полнофункциональные СУБД;

  • серверы баз данных;

  • клиенты баз данных;

  • средства разработки программ работы с базой данных.

Полнофункциональные СУБД представляют собой традиционные СУБД. Большинство современных СУБД являются полнофункциональными. К ним относятся такие пакеты, как dBaseIV, Microsoft Access, Microsoft FoxPro, Paradox, R:BASE.

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

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

Серверы баз данных предназначены для организации центров обработки данных в сетях ЭВМ. Число таких СУБД постоянно растет.

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

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

Примерами серверов баз данных являются следующие программы: NetWare SQL (Novell), MsSQL Server (Microsoft), InterBase (Borland), SQLBase Server (Gupta), Intelligent Database (Ingress) и т.д.

СУБД MsSQL Server это реляционная СУБД, которая работает в среде операционных систем семейства Windows. Основные параметры: может управлять до 32767 базами данных, а каждая база может включать до 2 млрд таблиц. В одной таблице может быть до 1024 столбцов; количество строк не ограничивается. Для одной таблицы может быть определено до 250 индексов. Имеет архитектуру «клиент-сервер».

Для формирования запросов применяется язык Transact-SQL. Имеет компоненту «координатор распределенных транзакций» (выполняются на нескольких серверах), что позволяет осуществлять более 30 тыс. транзакций в минуту.

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

СУБД Oracle может функционировать в среде 10 тыс. пользователей и базах данных объемом 100 терабайт. Выполняет от 40 до110 тыс. транзакций в минуту.

Поддерживает технологию распределенной обработки данных, совмещенную с функционированием централизованной базы данных, и архитектуру «клиент-сервер», а также обработку данных в WWW (публикация данных в Интернете).

Применяется язык запросов SQL PLUS, который кроме выполнения функций SQL обрабатывает наборы данных связанных объектов. Для программирования задач имеется процедурный язык PL/SQL.

Имеет высокоэффективные генераторы экранных форм и отчетов. Поддерживает совместимость баз данных других систем (Access, DB2 и др.).

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

Используется язык доступа к данным Informix-SQL.

Организовано взаимодействие Web-приложений с базами данных.

DB2. Семейство современных СУБД (DB2MVS, DB2 Common Server и др.) универсального типа. Серверы DB2 работают под управлением Windows NT, Solaris, SCO, SINIX. Обрабатывает мультимедийные данные. Можно создавать приложения на языках С, С++, Basic.

Размер одной таблицы может быть до 1 ТВ (терабайта).

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

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

Например, для сервера баз данных SQL Server (Microsoft) в роли клиентских программ могут выступать многие СУБД, такие как: MS Access, Visual FoxPro, dBaseIV, Blyth Software, Paradox, Focus и др.

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

  • клиентских программ;

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

  • пользовательских приложений.

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

К средствам разработки пользовательских приложений относятся системы программирования, разнообразные библиотеки программ для различных языков программирования, а также пакеты автоматизации разработок (в том числе систем типа клиент-сервер). В числе наиболее распространенных можно назвать следующие инструментальные системы: Delphi и Power Builder (Borland), Visual Basic (Microsoft), SILVERRUN (Computer Advisers Inc.), S-Designor (SDP и Powersofr) и Erwin (Logic Works).

По характеру использования СУБД делят на персональные и многопользовательские.

Персональные СУБД обычно обеспечивают возможность создания персональных баз данных и недорогих приложений, работающих с ними. Персональные СУБД или разработанные с их помощью приложения могут выступать в роли клиентской части многопользовательской СУБД. К персональным СУБД, например, относятся Visual FoxPro, Paradox, Clipper, dBase, Access и др.

Многопользовательские СУБД включают в себя сервер баз данных и клиентскую часть и, как правило, могут работать в неоднородной вычислительной среде (с разными типами ЭВМ и операционными системами). К многопользовательским СУБД относятся, например, СУБД Oracle и Informix.

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

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

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

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

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

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

  • QBE (Query By Example) – язык запросов по образцу:

  • SQL (Structured Query Language) – структурированный язык запросов.

QBE, в основном обладает свойствами языка манипулирования данными, а SQL сочетает в себе свойства языков обоих типов – описания и манипулирования данными.

СУБД также выполняет функции, которые называют низкоуровневыми:

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

  • управление буферами оперативной памяти;

  • управление транзакциями;

  • ведение журнала изменений в базе данных;

  • обеспечение целостности и безопасности базы данных.

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

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

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

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

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

Ограничения целостности – набор условий, определяющие целостность базы данных.

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

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

Кроме основного транзакции присущи следующие свойства:

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

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

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

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

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

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

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

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

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

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

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