Единое окно доступа к образовательным ресурсам

Введение в системы баз данных: Учебное пособие

Голосов: 3

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

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
         минимальные потребности в памяти;
     сочетание этих параметров.

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


                                  12


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

2. Архитектура СУБД

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



                                 13


              Рис. 2.1. Трехуровневая архитектура СУБД

     Описание структуры данных на любом уровне называется схемой.
Существует три различных типа схем базы данных, которые определяются
в соответствии с уровнями абстракции трехуровневой архитектуры. На
самом высоком уровне имеется несколько внешних схем или подсхем,
которые     соответствуют    разным    представлениям   данных.   На
концептуальном уровне описание базы данных называют концептуальной
схемой, а на самом низком уровне абстракции — внутренней схемой.
     Основным назначением трехуровневой архитектуры является
обеспечение независимости от данных. Суть этой независимости
заключается в том, что изменения на нижних уровнях никак не влияют на
верхние уровни. Различают два типа независимости от данных:
логическую и физическую.
     Логическая независимость от данных означает полную
защищенность внешних схем от изменений, вносимых в концептуальную
схему. Такие изменения концептуальной схемы, как добавление или
удаление новых сущностей, атрибутов или связей, должны осуществляться



                                 14


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


                                 15


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

2.2. Функции СУБД

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

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

                                   16


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

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

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


                                  17


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

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

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

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

     Поддержка целостности данных



                                 18


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

2.3. Языки баз данных
      В СУБД поддерживается несколько специализированных по своим
функциям подъязыков. Их можно разбить на две категории:
      язык определения данных БД — ЯОД {DDL — Data Definition
      Language);
      язык манипулирования данными— ЯМД (DML — Data Manipulation
      , Language).

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

2.3.2. Языки манипулирования данными
      Язык манипулирования данными содержит набор операторов
манипулирования данными, т. е. операторов, позволяющих заносить
данные в БД, удалять, модифицировать или выбирать существующие
данные.
      Множество операций над данными можно классифицировать
следующим образом:.
   1. операции селекции;
   2. действия над данными:
           включение — ввод экземпляра записи в БД с установкой его
           связей;



                                  19


           удаление — исключение экземпляра записи из БД с
           установкой новых связей;
           модификация — изменение содержимого экземпляра записи и
           коррекция связей при необходимости.
     Языки манипулирования данными делятся на два типа. Это
разделение обусловлено коренным различием в подходах к работе с
данными, а следовательно, различием в базовых конструкциях в работе с
данными.
     Первый тип — это процедурный ЯМД.
     Второй тип — это декларативный (непроцедурный) ЯМД.
     К процедурным языкам манипулирования данными относятся и
языки, поддерживающие операции реляционной алгебры, которую
основоположник теории реляционных баз данных Э. Ф. Кодд ввел для
управления реляционной базой данных. Реляционная алгебра — это
процедурный язык обработки реляционных таблиц, где в качестве
операндов выступают таблицы в целом.
     Декларативные языки предоставляют пользователю средства,
позволяющие указать лишь то, какие данные требуются. Решение вопроса
о том, как их следует извлекать, берет на себя процессор данного языка,
работающий с целыми наборами записей.
     Реляционные СУБД обычно включают поддержку непроцедурных
языков манипулирования данными — чаще всего это бывает язык
структурированных запросов SQL или язык запросов по образцу QBE.
     В настоящее время нормой является поддержка декларативного
языка SQL, в основе которого лежит реляционное исчисление, также
введенное Э Коддом. Этот язык стал стандартом для языков реляционных
баз данных, что позволяет использовать один и тот же синтаксис и
структуру команд при переходе от одной СУБД к другой
     Следует отметить, что язык SQL имеет сразу два компонента: язык
DDL (ЯОД) для описания структуры базы данных, и язык DML (ЯМД) для
выборки и обновления данных.
     Другим широко используемым языком обработки данных является
язык QBE, который заслужил репутацию одного из самых простых
способов извлечения информации из базы данных. Особенно это ценно для
пользователей, не являющихся профессионалами в этой области Язык
предоставляет графические средства создания запросов на выборку данных
с использованием шаблонов Ответ на запрос также представляет собой
графическую информацию
     Часть непроцедурного языка ЯМД, которая отвечает за извлечение
данных, называется языком запросов Язык запросов можно определить как
высокоуровневый узкоспециализированный язык, предназначенный для
удовлетворения различных требований по выборке информации из базы
данных.


                                  20


2.4. Архитектура многопользовательских СУБД

2.4.1. Модели двухуровневой технологии "клиент — сервер"
      Систему баз данных можно рассматривать как систему, где
осуществлено распределение процесса выполнения по принципу
взаимодействия двух программных процессов, один из которых в этой
модели называется "клиентом", а другой, обслуживающий клиента, —
сервером (машина, хранящая базы данных). Клиентский процесс
запрашивает некоторые услуги, а серверный процесс обеспечивает их
выполнение. При этом предполагается, что один серверный процесс может
обслужить множество клиентских процессов (рис. 2.2).




    Рис. 2.2. Структура системы БД с выделением клиентов и сервера

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


                                  21



    
Яндекс цитирования Яндекс.Метрика