- •Лекция 1. Данные.
- •Понятие Данных, Типы Данных.
- •Модели данных.
- •1.2. Модели данных. Понятие и классификация.
- •Лекция 2. Файлы.
- •2.3. Файлы.
- •Режим многопользовательского доступа
- •2.4. Файловые системы.
- •Лекция 3. Реляционная модель. Часть 1.
- •3.2. Типы данных.
- •3.3. Домены.
- •3.4. Отношения, атрибуты, кортежи отношения.
- •Лекция 4. Реляционная модель. Часть 2.
- •4.2. Свойства отношений.
- •4.3. Первая нормальная форма.
- •Лекция 5. Реляционная модель. Часть 3.
- •5.2. Манипуляционная часть реляционной модели.
- •5.3. Выводы.
- •Лекция 6. Реляционная алгебра. Часть 1.
- •Обзор реляционной алгебры.
- •Теоретико-множественные операторы.
- •6.1. Обзор реляционной алгебры
- •6.2. Теоретико-множественные операторы
- •6.2.1. Объединение
- •6.2.2. Пересечение
- •6.2.3. Вычитание
- •6.2.4. Декартово произведение
- •Лекция 7. Реляционная алгебра. Часть 2.
- •7.1.2. Проекция
- •7.1.3. Соединение
- •7.1.3.1.Общая операция соединения
- •7.1.3.2. Тэта-соединение
- •7.1.3.3. Экви-соединение
- •7.1.3.4. Естественное соединение
- •7.1.4. Деление
- •7.2. Реляционные операторы
- •7.2.1. Зависимые реляционные операторы
- •7.2.2. Примитивные реляционные операторы
- •7.3. Выводы
- •Лекция 8. Реляционное исчисление.
- •Лекция 9. Язык sql. Часть 1.
- •9.2. Стуктура sql
- •9.2.1. Язык определения данных (ddl)
- •9.2.2. Язык манипулирования данными (dml)
- •9.2.3. Язык запросов (dql)
- •9.2.4. Средства управления транзакциями
- •9.2.5. Средства администрирования данных
- •9.2.6. Программный sql
- •9.3. Типы данных в sql
- •9.4. Агрегатные функции
- •10.3. Вложенные запросы
- •Лекция 11. Модель бинарных ассоциаций.
- •11.2. Бинарная ассоциация
- •11.2.1. Ненаправленная бинарная ассоциация
- •11.2.2. Направленная бинарная ассоциация
- •11.3. Исключающая ассоциация
- •Лекция 12. Системы управления базами данных.
- •12.1.1. Непосредственное управление данными во внешней памяти
- •12.1.2. Управление буферами оперативной памяти
- •12.1.3. Управление транзакциями
- •12.1.4. Журнализация
- •12.1.5. Поддержка языков бд
- •12.2. Типовая организация современной субд
- •12.3. System r – пример субд
- •Лекция 13. Архитектура «Клиент-Сервер».
- •13.2. Клиенты и серверы локальных сетей
- •13.3. Системная архитектура "клиент-сервер"
- •13.4. Серверы баз данных
- •13.4.1. Принципы взаимодействия между клиентскими и серверными частями
- •13.4.2. Преимущества протоколов удаленного вызова процедур
- •13.4.3. Типичное разделение функций между клиентами и серверами
- •13.4.4. Требования к аппаратным возможностям и базовому программному обеспечению клиентов и серверов
- •Лекция 14. Некоторые другие бд.
- •14.1.2. Манипулирование данными
- •14.1.3. Ограничения целостности
- •14.2. Распределённые бд
- •14.2.1. Разновидности распределённых систем
- •14.2.3. Интегрированные или федеративные системы и мультибазы данных
- •14.3. Системы баз данных, основанные на правилах
- •14.3.1. Экстенсиональная и интенсиональная части базы данных
- •14.3.2. Активные базы данных
- •15.1. Связь объектно-ориентированных субд с общими понятиями объектно-ориентированного подхода
- •15.2. Объектно-ориентированные модели данных
- •15.3. Пример ообд - субд о2
- •Лекция 16. Объектно-ориентированные субд. Часть 2.
- •16.1.2. Языки программирования ообд как объектно-ориентированные языки с поддержкой стабильных (persistent) объектов
- •16.1.3. Примеры языков программирования ообд
- •16.2. Языки запросов объектно-ориентированных баз данных
- •16.2.1. Явная навигация как следствие преодоления потери соответствия
- •16.2.2. Ненавигационные языки запросов
- •Лекция 17. Транзакции и целостность бд.
- •17.1. Понятие транзакции.
- •17.2. Ограничения целостности.
- •17.3. Классификация ограничений целостности.
- •17.3.1. Классификация ограничений целостности по способам реализации
- •17.3.2. Классификация ограничений целостности по времени проверки.
- •17.3.3. Классификация ограничений целостности по области действия.
- •17.3.3.1. Ограничения домена.
- •17.3.3.2. Ограничения атрибута.
- •17.3.3.3. Ограничения кортежа.
- •17.3.3.4. Ограничения отношения.
- •17.3.3.5. Ограничения базы данных.
- •17.4. Реализация декларативных ограничений целостности средствами sql.
- •17.4.1. Общие принципы реализации ограничений средствами sql.
- •17.4.3. Примеры ограничений.
12.1.2. Управление буферами оперативной памяти
СУБД обычно работают с БД значительного размера; по крайней мере, этот размер обычно существенно больше доступного объема оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью устройства внешней памяти. Практически единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти. При этом даже если операционная система производит общесистемную буферизацию (как в случае ОС UNIX), этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части БД. Поэтому в развитых СУБД поддерживается собственный набор буферов оперативной памяти с собственной дисциплиной замены буферов.
Существует отдельное направление СУБД, которое ориентировано на постоянное присутствие в оперативной памяти всей БД.
12.1.3. Управление транзакциями
Транзакция - это последовательность операций над БД, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует изменения БД, произведенные этой транзакцией во внешней памяти, либо ни одно из этих изменений никак не отражается на состоянии БД. Понятие транзакции необходимо для поддержания логической целостности БД. Таким образом, поддержание механизма транзакций является обязательным условием даже однопользовательских СУБД. Но понятие транзакции гораздо более важно в многопользовательских СУБД.
С управлением транзакциями в многопользовательской СУБД связаны важные понятия сериализации транзакцийисериального плана выполнения смеси транзакций. Под сериализацией параллельно выполняющихся транзакций понимается такой порядок планирования их работы, при котором суммарный эффект смеси транзакций эквивалентен эффекту их некоторого последовательного выполнения. Сериальный план выполнения смеси транзакций - это такой план, который приводит к сериализации транзакций.
12.1.4. Журнализация
Одним из основных требований к СУБД является надежность хранения данных во внешней памяти. Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние БД после любого аппаратного или программного сбоя. Обычно рассматриваются два возможных видааппаратных сбоев: так называемыемягкие сбои, которые можно трактовать как внезапную остановку работы компьютера (например, аварийное выключение питания), ижёсткие сбои, характеризуемые потерей информации на носителях внешней памяти. Примерамипрограммных сбоевмогут быть:аварийное завершение работы СУБД(по причине ошибки в программе или в результате некоторого аппаратного сбоя) илиаварийное завершение пользовательской программы, в результате чего некоторая транзакция остается незавершённой. Первую ситуацию можно рассматривать как особый вид мягкого аппаратного сбоя; при возникновении последней требуется ликвидировать последствия только одной транзакции.
Понятно, что в любом случае для восстановления БД нужно располагать некоторой дополнительной информацией. Другими словами, поддержание надежности хранения данных в БД требует избыточности хранения данных, причем та часть данных, которая используется для восстановления, должна храниться особо надежно. Наиболее распространенным методом поддержания такой избыточной информации является ведение журнала изменений БД.
Журнал- это особая часть БД, недоступная пользователям СУБД и поддерживаемая с особой тщательностью (иногда поддерживаются две копии журнала, располагаемые на разных физических дисках), в которую поступают записи обо всех изменениях основной части БД. В разных СУБД изменения БД журнализуются на разных уровнях: иногда запись в журнале соответствует некоторой логической операции изменения БД (например, операции удаления строки из таблицы реляционной БД), иногда - минимальной внутренней операции модификации страницы внешней памяти; в некоторых системах одновременно используются оба подхода.
Во всех случаях придерживаются стратегии "упреждающей" записи в журнал (так называемого протокола Write Ahead Log - WAL). Грубо говоря, эта стратегия заключается в том, что запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадёт во внешнюю память основной части БД. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.