- •Лекція 8. Основи баз даних
- •1 Базы данных и файловые системы Основи баз даних
- •Файловые системы и информационные системы
- •Потребности и задачи информационных систем
- •Пример Простая ис, которая предназначена для учета сотрудников некоторой организации. Она должна:
- •2 Функции субд
- •Типовая организация субд
- •Субд различных информационных моделей
- •1 Субд на инвертированных (преобразованных) списках
- •2Субд иерархического типа
- •3Сетевые субд
- •Реляционные базы данных
- •Фундаментальные свойства отношений
- •Реляционная модель данных
- •Манипуляционная часть рмд
- •Реляционная алгебра
- •Теоретико-множественные операции ра
- •Специальные реляционные операции
- •Реляционное исчисление
- •Исчисление кортежей
- •Проектирование реляционных бд
- •Функциональная зависимость
- •Полная функциональная зависимость
- •Транзитивная функциональная зависимость
- •Семантическое моделирование данных
- •Моделирование по схеме сущности – связи
- •Нормализация er-диаграмм
- •Внутренняя организация реляционных субд
- •1 Хранение отношений
- •2 Индексы
- •3 Хеширование
- •4 Журнальная информация
- •5 Служебная информация
- •Обработка с помощью транзакций
- •Сериализация транзакций
- •Синхронизационные захваты
- •Гранулированные синхронизационные захваты
- •Временные метки
- •Журнализация и откаты
- •Индивидуальный откат транзакций
- •Восстановление при мягком сбое
- •Теневой механизм
- •Журнализация постраничных изменений
- •Обзор языка рбд sql
2 Функции субд
Управление данными во внешней памяти;
управление буферами во внешней памяти:
буферизация состоит в том, чтобы сгладить разно скоростную работу между внешней и внутренней памятью.
При работе с БД СУБД может установить большую или меньшую актуальность каких-то данных. Наиболее актуальные данные могут всё время храниться в буфере. Эта функция повышает эффективность обработки данных.
3. управление транзакциями(transactions):
транзакция – последовательность операций над данными из БД, которая рассматривается СУБД как логическое единое целое. Под логическим единым целым понимается то, что СУБД фиксирует начало набора операций и его конец. Эта функция необходима, чтобы поддерживать целостность и логическую непротиворечивость данных, а также безопасное управление данными. Транзакция должна закончиться либо фиксацией нового состояния(commit), либо восстановлением предыдущего состояния(rollback). Существует возможность параллельного выполнения нескольких транзакций (но иногда это невозможно).
Сериальное выполнение транзакций – выполнение в соответствии с так называемым сериальным планом. Сериальный план – план выполнения транзакций, при котором эффект смеси транзакций эквивалентен их последовательному выполнению. Алгоритмы сериализации основаны на сериальных (синхронизационных) захватах. Цель таких захватов: построение сериального плана.
4. журнализация – ведение каких-то журналов:
существует два вида сбоев:
мягкий, связанный с пропаданием питания, аварийной остановкой работы машины, сбоем ОС;
жёсткий – характеризуется потерей информации на внешних носителях (авария HD).
При любом виде сбоев необходимо предусматривать восстановление информации. Это подразумевает хранение избыточной дополнительной информации. Такая информация, необходимая для восстановления, хранится в журналах. Журнал – это часть СУБД, которая недоступна пользователю, и которая поддерживается с особой тщательностью. Журнал хранится либо в нескольких копиях, либо на нескольких носителях. Журнал используется, чтобы фиксировать к нём все изменения, которые производятся над данными. С этой точки зрения можно рассмотреть две версии журнала:
журнал локальных изменений – фиксирует отдельные операции, связанные с изменением страниц внешней памяти;
журнал глобальных изменений – фиксирует результаты транзакций или транзакционных наборов.
При пользовании журналом используется стратегия упреждающей записи WAL(Write Ahead Log). Смысл этой стратегии состоит в том, чтобы сделать запись об изменениях прежде самих изменений.
При жёстком сбое нужна копия журнала и архивная копия БД, при этом архивная копия и журнал должны быть согласованы – это важная задача БД.
5. поддержка языков данных(Data Language)
существует две задачи информационных систем:
описание структуры данных;
манипулирование этими данными.
Раньше эти задачи решались с помощью языковых средств. Т.е. поддерживался язык описания данных SDL(Schema Definition Language) и язык манипулирования данными DML(Data Manipulation Language). В задачу SDL входило предоставление средств для именования объектов БД, типизации отдельных элементов и описания связей между элементами данных. DML поддерживает описание действий по изменению тех объектов, которые описаны на SDL.
В современных СУБД функции этих языков объединяются в структурированный язык запросов SQL(Structured Queried Language). Компилятор SQL производит преобразование описаний и запросов во внутреннее представление данных. Благодаря этому центральная управляющая часть СУБД работает только с внутренними представлениями, что обеспечивает эффективную работу.
SQL содержит:
средства для описания ограничений целостности;
средства для авторизации доступа к разным объектам:
суть состоит в том, что с каждым объектом связывается набор допустимых действий и круг пользователей, обладающих разными полномочиями. Полномочия и действия описываются в разных таблицах. Языковое средство позволяет контролировать это.
