
- •Рецензент
- •Лекция 1. Базы данных и системы управления базами данных
- •Понятие базы данных
- •Понятие системы управления базами данных
- •Обобщенная архитектура субд
- •Трехуровневая архитектура ansi-sparc
- •Достоинства и недостатки субд
- •Архитектура многопользовательских субд
- •Технология «клиент/сервер»
- •Лекция 3. Администрирование баз данных. Системный каталог Понятие независимости данных
- •Общая классификация пользователей бд
- •Администратор базы данных
- •Разделение функций администрирования
- •Лекция 4. Проектирование бд
- •Некоторые термины и определения, используемые при работе с базами данных
- •Принципы проектирования информационных систем
- •Жизненный цикл информационной системы
- •Этапы проектирования баз данных
- •Лекция 5. Семантическое моделирование
- •Лекция 6. Логическое проектирование субд Выбор субд
- •Метод ранжировки
- •Метод непосредственных оценок
- •Метод последовательных предпочтений
- •Оценка результатов экспертного анализа
- •Лекция 7. Даталогические модели данных
- •Иерархическая модель
- •Сетевая модель
- •Реляционная модель
- •Достоинства и недостатки даталогических моделей
- •Лекция 8. Нормализация бд. Часть1 Понятие функциональной зависимости[2]
- •Аксиомы вывода функциональных зависимостей
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
- •Нормализация через декомпозицию
- •Лекция 9. Нормализация бд. Часть 2 Недостатки нормализации посредством декомпозиции
- •Нормальная форма Бойса–Кодда (нфбк)
- •Многозначные зависимости
- •Аксиомы вывода многозначных зависимостей
- •Четвертая нормальная форма
- •Зависимости соединения
- •Пятая нормальная форма
- •Обобщение этапов нормализации
- •Лекция 10. Физическая организация данных в субд Списковые структурых [2]
- •Последовательное распределение памяти
- •Связанное распределение памяти
- •Модель внешней памяти
- •Лекция 11. Методы поиска и индексирования данных Последовательный поиск [2]
- •Бинарный поиск
- •Индекс - «бинарное дерево»
- •Неплотный индекс
- •Плотный индекс
- •Инвертированный файл
- •Лекция 12. Реляционная модель данных Понятие отношениях
- •Формы представления отношений
- •Теоретические языки запросов
- •Определение реляционной полноты
- •Лекция 13. Распределенные базы данных и субд
- •Основные определения, классификация распределенных систем
- •Преимущества и недостатки распределенных субд
- •Функции распределенных субд
- •Архитектура распределенных субд
- •Лекция 15. Общее введение в sql, типы данных и средства определения доменов Часть 1. Введение
- •Краткая история языка sq [12]
- •Структура языка sql
- •Типы данных sql
- •Tочные числовые типы
- •Истинно целые типы
- •Точные типы, допускающие наличие дробной части
- •Приближенные числовые типы
- •Типы символьных строк
- •Типы битовых строк
- •Лекция 16. Общее введение в sql, типы данных и средства определения доменов Часть 2. Типы даты и времени
- •Тип даты
- •Типы времени
- •Типы временной метки
- •Типы времени и временной метки с временной зоной
- •Типы временных интервалов
- •Булевский тип
- •Типы коллекций
- •Типы массивов
- •Типы мультимножеств
- •Анонимные строчные типы
- •Типы, определяемые пользователем
- •Ссылочные типы
- •Средства определения, изменения определения и отмены определения доменов
- •Определение домена
- •Примеры определений доменов
- •Изменение определения домена
- •Примеры изменения определения домена
- •Отмена определения домена
- •Неявные и явные преобразования типа или домена
- •Неявные преобразования типов в sql
- •Явные преобразования типов или доменов и оператор cast
- •Заключение
- •Тезаурус
- •12. Кузнецов с. Д. Базы данных. Вводный курс. Http://citforum.Ru/database/advanced_intro/
Трехуровневая архитектура ansi-sparc
Первая попытка создания стандартной терминологии и общей архитектуры СУБД была предпринята в 1971 году группой DBTG, признавшей необходимость использования двухуровневого подхода, построенного на основе использования системного представления, т.е. схемы , и пользовательских представлений, т.е. подсхем . Сходные терминология и архитектура были предложены в 1975 году Комитетом планирования стандартов и норм SPARC (Standards Planning and Requirements Committee) Национального Института Стандартизации США (American National Standard Institute - ANSI), ANSI/X3/SPARC (ANSI, 1975). Комитет ANSI/SPARC признал необходимость использования трехуровневого подхода. Хотя модель ANSI/SPARC не стала стандартом, тем не менее она все еще представляет собой основу для понимания некоторых функциональных особенностей СУБД [7].
В данном случае для нас наиболее важным моментом в этих и последующих разработках является идентификация трех уровней абстракции, т.е. трех различных уровней описания элементов данных. Эти уровни формируют трехуровневую архитектуру, которая охватывает внешний, концептуальный и внутренний уровни, как показано на рис. 1.2. Цель трехуровневой архитектуры заключается в отделении пользовательского представления базы данных от ее физического представления. Ниже перечислено несколько причин, по которым желательно выполнять такое разделение.
Каждый пользователь должен иметь возможность обращаться к одним и тем же данным, используя свое собственное представление о них. Каждый пользователь должен иметь возможность изменять свое представление о данных, причем это изменение не должно оказывать влияния на других пользователей.
Пользователи не должны непосредственно иметь дело с подробностями физического хранения данных в базе.
Администратор базы данных (АБД) должен иметь возможность изменять структуру хранения данных в базе, не оказывая влияния на пользовательские представления.
Внутренняя структура базы данных не должна зависеть от таких изменений физических аспектов хранения информации, как переход на новое устройство хранения.
АБД должен иметь возможность изменять концептуальную или глобальную структуру базы данных без какого-либо влияния на всех пользователей.
Уровень, на котором воспринимают данные пользователи, называется внешним уровнем (external level), тогда как СУБД и операционная система воспринимают данные на внутреннем уровне (internal level). Именно на внутреннем уровне данные реально сохраняются с использованием всех тех структур и файловой организации. Концептуальный уровень (conceptual level) представления данных предназначен для отображения внешнего уровня на внутренний и обеспечения необходимой независимости друг от друга.
Рис.1.2.
Трехуровневая архитектура ANSI-SPARC
Внешний уровень. Внешний уровень состоит из нескольких различных внешних представлений БД. Каждый пользователь имеет дело с представлением предметной области, выраженным в наиболее удобной для него форме. Внешнее представление содержит только те сущности, атрибуты и связи предметной области, которые интересны пользователю.
Помимо этого, различные представления могут по разному отображать одни и те же данные. Например, один пользователь может просматривать даты в формате (день, месяц, год), а другой - в формате (год, месяц, день). Некоторые представления могут включать производные или вычисляемые данные, которые не хранятся в базе данных как таковые, а создаются по мере надобности. Представления могут также включать комбинированные или производные данные из нескольких объектов.
Концептуальный уровень. Промежуточным уровнем в трехуровневой архитектуре является концептуальный уровень. Этот уровень содержит логическую структуру всей базы данных (с точки зрения АБД). Фактически, это полное представление требований к данным, которое не зависит от любых соображений относительно способа их хранения. На концептуальном уровне представлены следующие компоненты: все сущности, их атрибуты и связи; накладываемые на данные ограничения; семантическая информация о данных; информация о мерах обеспечения безопасности и поддержки целостности данных.
Концептуальный уровень поддерживает каждое внешнее представление, в том смысле, что любые доступные пользователю данные должны содержаться (или могут быть вычислены) на этом уровне. Однако этот уровень не содержит никаких сведений о методах хранения данных.
Внутренний уровень. Внутренний уровень описывает физическую реализацию базы данных и предназначен для достижения оптимальной производительности и обеспечения экономного использования дискового пространства. Он содержит описание структур данных и организации отдельных файлов, используемых для хранения данных в запоминающих устройствах. На этом уровне осуществляется взаимодействие СУБД с методами доступа операционной системы с целью размещения данных на запоминающих устройствах, создания индексов, извлечения данных и т.д. На внутреннем уровне хранится следующая информация: сведения о распределении дискового пространства для хранения данных и индексов; описание подробностей сохранения записей (с указанием реальных размеров сохраняемых элементов данных); сведения о размещении записей; сведения о сжатии данных и выбранных методах их шифрования.
Схемы, отображения и экземпляры. Общее описание базы данных называется схемой базы данных. Существует три различных типа схем базы данных, которые определяются в соответствии с уровнями абстракции трехуровневой архитектуры, показанной на рис. 1.2. На самом высоком уровне имеется несколько внешних схем или подсхем, которые соответствуют разным представлениям данных. На концептуальном уровне описание базы данных называют концептуальной схемой, а на самом низком уровне абстракции - внутренней схемой.
Концептуальная схема описывает все элементы данных и связи между ними, с указанием необходимых ограничений поддержки целостности данных. Для каждой базы данных имеется только одна концептуальная схема. На нижнем уровне находится внутренняя схема, которая является полным описанием внутренней модели данных.
Она содержит определения хранимых записей, методы представления, описания полей данных, сведения об индексах и выбранных схемах хеширования. Для каждой базы данных существует только одна внутренняя схема.
СУБД отвечает за установление соответствия между этими тремя типами схем, а также за проверку их непротиворечивости. Иначе говоря, СУБД должна убедиться в том, что каждую внешнюю схему можно вывести на основе концептуальной схемы. Для установления соответствия между любыми внешней и внутренней схемами СУБД должна использовать информацию из концептуальной схемы. Концептуальная схема связана с внутренней схемой посредством отображения "концептуальный - внутренний". Оно позволяет СУБД найти фактическую запись или набор записей на физическом устройстве хранения, которые образуют логическую запись в концептуальной схеме, с учетом любых ограничений, установленных для выполняемых над данной логической записью операций. Оно также позволяет обнаружить любые различия в именах объектов, именах атрибутов, порядке следования атрибутов, их типах данных и т.д.
Наконец, каждая внешняя схема связана с концептуальной схемой с помощью отображения "внешний - концептуальный". С его помощью СУБД может отображать имена пользовательского представления на соответствующую часть концептуальной схемы.
Важно различать описание базы данных и саму базу данных. Описанием базы данных является схема базы данных. Схема создается в процессе проектирования базы данных, причем предполагается, что она изменяется достаточно редко. Однако содержащаяся в базе данных информация может меняться часто - например, всякий раз при вставке о том или ином объекте. Совокупность информации, хранящейся в базе данных в любой определенный момент времени, называется состоянием базы данных. Следовательно, одной и той же схеме базы данных может соответствовать множество ее различных состояний. Схема базы данных иногда называется содержанием базы данных, а ее состояние - детализацией.
Независимость от данных. Основным назначением трехуровневой архитектуры является обеспечение независимости от данных, которая означает, что изменения на нижних уровнях никак не влияют на верхние уровни. Различают два типа независимости от данных: логическую и физическую.
Логическая независимость от данных означает полную защищенность внешних схем от изменений, вносимых в концептуальную схему. Такие изменения концептуальной схемы, как добавление или удаление новых сущностей, атрибутов или связей, должны осуществляться без внесения изменений в уже существующие внешние схемы или переписывания прикладных программ.
Физическая независимость от данных означает защищенность концептуальной схемы от изменений, вносимых во внутреннюю схему. Такие изменения внутренней схемы, как использование различных файловых систем или структур хранения, разных устройств хранения, модификация индексов или хеширование, должны осуществляться без необходимости внесения изменений в концептуальную или внешнюю схемы. Пользователем могут быть замечены изменения только в общей производительности системы. На рис. 1.3 показано место перечисленных выше типов независимости от данных в трехуровневой архитектуре СУБД.
Принятое в архитектуре ANSI-SPARC двухэтапное отображение может сказываться на эффективности работы, но при этом оно обеспечивает более высокую независимость от данных [7].
Рис. 1.3. Реализация независимости от данных в трехуровневой архитектуре
ANSI-SPARC
ЛЕКЦИЯ 2. Программные компоненты и архитектура СУБД
Программные компоненты СУБД [2]
Основные программные компоненты СУБД представлены на рис. 2.1. [10].
Процессор запросов. Это основной компонент СУБД, который преобразует запросы в последовательность низкоуровневых инструкций для контроллера базы данных.
Контроллер базы данных. Этот компонент взаимодействует с запущенными пользователями прикладными программами и запросами. Контроллер базы данных принимает запросы и проверяет внешние и концептуальные схемы для определения тех концептуальных записей, которые необходимы для удовлетворения требований запроса. Затем контроллер базы данных вызывает контроллер файлов для выполнения поступившего запроса. Компоненты контроллера базы данных показаны на рис.2.2 [10].
Рис. 2.1. Основные компоненты типичной СУБД
Контроллер файлов манипулирует предназначенными для хранения данных файлами и отвечает за распределение доступного дискового пространства. Он создает и поддерживает список структур и индексов, определенных во внутренней схеме. Если используются хешированные файлы, то в его обязанности входит и вызов функций хеширования для генерации адресов записей. Однако контроллер файлов не управляет физическим вводом и выводом данных непосредственно, а лишь передает запросы соответствующим методам доступа, которые считывают данные в системные буферы или записывают их оттуда на диск.
Препроцессор языка DML. Этот модуль преобразует внедренные в прикладные программы DML-операторы в вызовы стандартных функций базового языка. Для генерации соответствующего кода препроцессор языка DML должен взаимодействовать с процессором запросов.
Компилятор языка DDL. Компилятор языка DDL : преобразует DDL-команды в набор таблиц, содержащих метаданные. Затем эти таблицы сохраняются в системном каталоге, а управляющая информация – в заголовках файлов с данными.Контроллер словаря. Контроллер словаря управляет доступом к системному каталогу и обеспечивает работу с ним. Системный каталог доступен большинству компонентов СУБД.
Ниже перечислены основные программные компоненты, входящие в состав контроллера базы данных.
Рис. 2.2.. Компоненты контроллера БД
Контроль прав доступа. Этот модуль проверяет наличие у данного пользователя полномочий для выполнения затребованной операции.
Процессор команд. После проверки полномочий пользователя для выполнения затребованной операции управление передается процессору команд.
Средства контроля целостности. В случае операций, которые изменяют содержимое базы данных, средства контроля целостности выполняют проверку того, удовлетворяет ли затребованная операция всем установленным ограничениям поддержки целостности данных (например, требованиям, установленным для ключей).
Оптимизатор запросов. Этот модуль определяет оптимальную стратегию выполнения запроса.
Контроллер транзакций. Этот модуль осуществляет требуемую обработку операций, поступающих в процессе выполнения транзакций.
Планировщик. Этот модуль отвечает за бесконфликтное выполнение параллельных операций с базой данных. Он управляет относительным порядком выполнения операций, затребованных в отдельных транзакциях.
Контроллер восстановления. Этот модуль гарантирует восстановление базы данных до непротиворечивого состояния при возникновении сбоев. В частности, он отвечает за фиксацию и отмену результатов выполнения транзакций.
Контроллер буферов. Этот модуль отвечает за перенос данных между оперативной памятью и вторичным запоминающим устройством – например, жестким диском или магнитной лентой. Контроллер восстановления и контроллер буферов иногда (в совокупности) называют контроллером данных.
Для воплощения базы данных на физическом уровне помимо перечисленных выше модулей нужны некоторые другие структуры данных. К ним относятся файлы данных и индексов, а также системный каталог.