Лекция №1: БД и СУБД

 

Немного теории

В современном мире роль информации возрастает с каждым днем. Исходя из этого большое развитие получила концепция интеграции данных - их централизованного хранения и использования. Сложность организации и структуры данных обусловила появление баз данных и систем управления базами данных (СУБД). Первые СУБД появились в конце 60-х годов, а в настоящее время на рынке информационных технологий насчитывается большое множество таких программ для разных типов компьютеров и операционных систем. Одна из идей современных информационных технологий носит название “концепция баз данных” и формулируется следующим образом: данные должны быть организованы в базы данных с целью адекватного отражения реального объекта и обеспечения информационных нужд пользователей. Само понятие база данных (database) формулируется как "поименованная и организованная (структурированная) совокупность взаимосвязанных данных, которые отражают состояние объектов конкретной предметной области и находятся под центральным программным управлением". База данных удерживает такой минимальный излишек информации, который позволяет удовлетворить запросы каждого из многочисленных пользователей. Данные представлены совокупностью файлов (таблиц). В широком же смысле база данных есть любая упорядоченная совокупность данных. Сам термин “база данных” был введен неизвестным автором в 1963 г. в англоязычной литературе (data base), в 70- х годах этот термин стали писать через дефис (data-base), а потом ( одним словом (database). Свойства базы данных позже были сформулированы Дж. Мартином:

1. Многоразовое использование: одни и те же данные могут использоваться многими пользователями.

2. Простота обновления ( возможность внесения изменений в базу с минимальными затратами.

3. Быстрый поиск и получение необходимой информации по запросу.

4. Уменьшение избыточности ( новые задачи должны получать данные из существующей базы, а не путем их повторного ввода.

5. Защита от несанкционированного доступа к данным.

6. Максимальная независимость от прикладных программ: изменения в структуре базы данных не должны по возможности приводить к перезаписи пакета программ.

7. Защита от уничтожения и искажения информации (некомпетентного пользователя, злоумышленных действий, сбоев и конфликтных ситуаций). Им же были сформулированы требования к базе данных:

1. Адекватность отражения предметной области:

а) полнота данных;

б) динамичность информационной модели;

в) актуальность информации в данный момент времени.

2. Возможность взаимодействия с пользователями различных категорий и в разных режимах.

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

4. Обеспечение взаимной независимости программ и данных.

5. Технологичность обработки данных.

6. Совместимость компонентов базы данных.

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

8. Способность к расширению и модификации.

Модели данных

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

Различают иерархическую, сетевую и реляционную логические модели данных в зависимости от способа представления взаимосвязей между объектами. В 60-х годах, когда еще не было персональных компьютеров, применяли иерархическую и сетевую модели данных, а в начале 70-х годов появилась реляционная модель. Не зарываясь глубоко под землю с определениями, попробую объяснить в двух словах, что представляет собой каждая из моделей данных. В иерархической модели взаимосвязи между объектами отражаются по принципу иерархии типов объекта в виде связанного графа, вершины которого размещены на разных иерархических уровнях. Самая высокая вершина называется корнем, а остальные, находящиеся на нижних уровнях - подчиненными (см. рис. 1). Корень не подчиняется ни одной вершине. Все остальные вершины связаны с одной, и только одной вершиной, которая размещена на более высоком уровне.

[pic 1.]

 

В сетевой модели понятие главного и подчиненных объектов иное, чем в иерархической модели: любой объект здесь может быть и главным, и подчиненным; каждый объект может участвовать в любом количестве взаимосвязей. Данные этой модели представляются при помощи записей и связей. Реляционная модель представляет данные в виде двухмерной таблицы. Табличная структура данных отражает отношения между реальными объектами и их характеристиками. Поиск и обработка записей не зависят от организации хранения данных в памяти компьютера. Основной принцип, на котором основана реляционная структура - получение из таблицы необходимых отношений и формирование новых. На основе первичной таблицы при помощи логических операций формируется новая таблица соответствующей структуры. В реляционных моделях выделяют следующие типы объектов: таблицы (отношения), атрибуты (столбцы) и домены (допустимые значения атрибутов). Объекты и взаимосвязи между ними представлены при помощи таблиц. Одна таблица представляет один объект и состоит из столбцов и строк. Каждая строка таблицы представляет собой одну запись, а каждый столбец - одно поле записей. Информация в реляционных базах данных сохраняется в таблицах, связь между которыми осуществляется путем совладения значений одного или нескольких полей. Понятие “файл” в обработке данных можно ассоциировать с одной таблицей, а базу данных можно рассматривать как набор таблиц. Файлы (т.е. таблицы) подвергаются классической обработке - обновлению основного файла.

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

 

CИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ

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

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

Системой управления базами данных называют программную систему, предназначенную для создания на ЭВМ общей базы данных для множества приложений, поддержания её в актуальном состоянии и обеспечения эффективного доступа пользователей к содержащимся в ней данным в рамках предоставленных им полномочий.

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

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

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

 

4.2. Основные функции СУБД

В качестве основных функций СУБД можно выделить следующие:

1. Хранение, извлечение и обработка данных.

Это основная функция системы, ради которой она создаётся.

 

2. Наличие языка обработки данных.

Язык обработки данных должен включать все необходимые для управления данными операции.

 

3. Наличие доступного пользовательского каталога данных.

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

 

4. Поддержка многопользовательского режима доступа.

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

 

5. Обеспечение логической независимости данных.

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

 

6. Обеспечение физической независимости данных.

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

Свойства (5–6) обеспечиваются с помощью одних и тех же механизмов СУБД.

 

7. Обеспечение логической целостности БД.

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

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

 

8. Обеспечение физической целостности данных.

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

Восстановление данных основано на периодическом создании резервных копий БД и ведении журнала регистрации изменений.

 

9. Управление доступом.

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

 

10. Настройка СУБД.

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

модификация параметров организации среды хранения данных с целью повышения эффективности системы;

подключение внешних приложений к БД;

изменение структуры хранимых данных или их размещения в среде хранения (реорганизацию БД) для повышения производительности системы или повторного использования освободившейся памяти;

модификацию концептуальной схемы данных (реструктуризацию БД) при изменении ПО и/или потребностей пользователей.

 

4.3. Логическая и физическая целостность БД

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

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

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

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

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

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

 

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

 

4.4. Администрирование БД

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

Администрирование БД возлагается на администратора (или персонал администрирования, если система БД велика). В задачи администратора входит выполнение нескольких групп функций:

1. Администрирование предметной области: поддержка представления БД на концептуальном уровне архитектуры СУБД (общем для всех приложений); адекватное отображение в БД изменений, происходящих в ПО. Последнее требование может подразумевать реструктуризацию (изменение схемы) БД и последующее приведение содержимого БД в соответствие с новой схемой.

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

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

изменения способов размещения данных в пространстве памяти, например:

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

построение кластеров;

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

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

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

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

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

 

4.5. Словари-справочники данных

Словарь-справочник данных (ССД) - это программная система, предназначенная для централизованного хранения и использования описания объектов БД (метаданных). Эта система содержит сведения:

о составе и структуре базы данных;

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

об ограничениях целостности;

о вспомогательных объектах и компонентах ИС.

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

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

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

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

Сайт создан по технологии «Конструктор сайтов e-Publish»