• 5-неделя

    • Цель: рассмотреть методы описания схем баз данных в современных СУБД, изучить структуру данных СУБД 

      План занятия: 

      1. Основная цель СУБД 

      2. Методы описания схем БД в современных СУБД 

      3. Структура данных СУБД

      Основная цель СУБД 

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

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

      Архитектура большинства современных СУБД строится на базе так называемой архитектуры ANSI – SPARC (American National Standard Institute Standards Planning and Requirements Committee). Хотя модель ANSI/SPARC не стала стандартом, тем не менее, она представляет собой основу для понимания некоторых функциональных особенностей СУБД.

      Наиболее важным моментом этой модели является определение трех уровней абстракции, то есть трех различных уровней описания элементов данных. В модели определены три уровня – внешний, концептуальный и внутренний (см. рис.5). Причины, по которым желательно выполнять такое разделение: 

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

       Пользователи не должны иметь дело с подробностями физического хранения данных в базе.

        АБД должен иметь возможность изменять структуру хранения данных в базе, не оказывая влияния на пользовательское представление. 

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


      Каждый пользователь имеет дело с представлением «реального мира», выраженным в наиболее удобной для него форме. 

      Интерес представляют следующие понятия: 

      1. Сущность – объект «реального мира», такой как Работник, Отдел, Договор. 

      2. Атрибуты – свойства или качества каждой сущности (например, Имя, Адрес, Зарплата для сущности Работник). 

      3. Связи – взаимоотношения между сущностями (например, Работник работает в Отделе). 

      Внешнее представление пользователя содержит только те сущности, атрибуты и связи «реального мира», которые интересны этому пользователю. Другие сущности, атрибуты и связи, которые ему не интересны, также могут быть представлены в базе данных, но они важны для другого пользователя. (Адрес – для отдела кадров, а бухгалтерия может им не пользоваться).

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

      На концептуальном уровне представлены следующие компоненты: 

       все сущности, их атрибуты и связи; 

       накладываемые на данные ограничения; 

       семантическая информация о данных; 

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

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

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

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

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

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

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

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

      Структура СУБД 

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

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

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

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

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

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

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

      При журнализации используется стратегия "упреждающей" записи в журнал (протокол Write Ahead Log - WAL). Стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. При соблюдении протокола WAL с помощью журнала можно решить все проблемы восстановления БД после любого сбоя. Ядро СУБД обладает собственным интерфейсом, не доступным пользователям напрямую. Интерфейс используется в программах, формируемых компилятором SQL (или в подсистеме поддержки выполнения таких программ) и утилитах. 

      Компилятор языка БД преобразует операторы языка БД в выполняемую программу. Результат компиляции – выполняемая программа, представляется в машинных кодах или в выполняемом внутреннем машинно-независимом коде. 

      Подсистема поддержки времени выполнения используется для интерпретации внутреннего машинно-независимого кода при выполнении операторов программы. 

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

    • Opened: Monday, 4 November 2024, 12:00 AM
      Due: Monday, 11 November 2024, 12:00 AM