База Даных.ppt
- Количество слайдов: 75
Управление данными Кандидат технических наук, доцент Преображенский Юрий Петрович © ВИВТ, 2012
Банк данных (Бн. Д) — это система специально организованных данных, программных, языковых, организационных и технических средств, предназначенных для централизованного накопления и коллективного многоцелевого использования данных Под базой данных (БД) обычно понимается именованная совокупность данных, отображающая состояние объектов и их отношений в рассматриваемой предметной области Система управления базами данных (СУБД) — это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями
Требования, предъявляемые к банкам данных Многократное использование данных Простота Легкость использования Гибкость использования Быстрая обработка запросов на данные Язык взаимодействия конечных пользователей с системой База данных—это основа для будущего наращивания прикладных программ Сохранение затрат умственного труда Наличие интерфейса прикладного программирования Распределенная обработка данных Адаптивность и расширяемость Контроль за целостностью данных Восстановление данных после сбоев Вспомогательные средства Автоматическая реорганизация и перемещение
Информационная база Коллекция записей данных Описания данных — метаданные
Данные Пользователь Разработчик ИС Концептуальный уровень Прикладной программист Логический (внешний) уровень БД СУБД Физический (внутренний) уровень Уровни представления данных
Этапы работы с базой данных Описание БД Описание частей БД, необходимых для конкретных приложений (задач, групп задач) Программирование задач или описание запросов в соответствии с правилами конкретного языка и использованием языковых конструкций для обращения к БД Загрузка БД
Два класса языков работы с данными Для выражения обобщенного взгляда на данные применяют язык описания данных (ЯОД, DDL Data Definition Language) внутреннего уровня, включаемый в состав СУБД. Описание представляет собой модель данных и их отношений, т. е. структур, из которых образуется БД. Языки манипулирования данными (ЯМД, DML Data Manipulating Language) обычно включает в себя средства запросов к базе данных и поддержания базы данных (добавление, удаление, обновление данных, создание и уничтожение БД, изменение определений БД, обеспечение запросов к справочнику БД).
Качественные характеристики языков запросов Селективная Простота мощность изучения Уровень Модульность построения языка процедурности Наиболее распространенным языком для работы с базами данных является SQL (Structured Query Language), в своих последних реализациях предоставляющий не только средства для спецификации и обработки запросов на выборку данных, но также и функции по созданию, обновлению, управлению доступом и т. д
Генератор форм Генератор отчетов Обработчик Прикладная Клиентская запросов программа СУБД Библиотеки и процессор языка базы данных ЯДРО БАЗЫ ДАННЫХ Язык базы данных Сервисные программы Язык базы данных БД Программные средства СУБД Шлюзы других БД
Централизованное управление данными обеспечивает: 1. сокращение избыточности в хранимых данных; 2. совместное использование хранимых данных; 3. стандартизацию представления данных, упрощающую эксплуатацию БД; 4. разграничение доступа к данным; 5. целостность данных, обеспечиваемую процедурами, предотвращающими включение в БД неверных данных, и ее восстановление после отказов системы.
Классификация по форме представляемой информации Фактографические Документальные Мультимедийные Картографические Видео , аудио , графические Классификация по типу хранимой (не мультимедийной) информации Фактографические Документальные Лексикографические Классификаторы Полнотекстовые Библиографически реферативные Кодификаторы Словари Тезаурусы Рубрикаторы
Классификация по типу используемой модели данных Иерархические Сетевые Постреляционные Реляционные Объектно ориентированные Многомерные Классификация по топологии хранения Локальные БД Распределенные БД Классификация по типологии доступа и характеру использования Специализированные Интегрированные Классификация по типологии доступа и характеру использования Операционные Справочно информационные
Классификация по сфере возможного применения Универсальные Специализированные Классификация по степени доступности Общедоступные С ограниченным доступом
Уровень 2 Контекст Уровень 1 Контекст Значение Величина Соотношение понятий «величина» , «контекст» и «значение»
Система моделей представления информации Инфологические модели Модели представления хорошо структурированной информации Диаграммы потоков данных IDEF-модели Модели представления плохо структурированной информации ER-модели Дескрипторные модели Семантические сети. Тезаурусы Фреймы Даталогические модели Модели представления фактографической информации Объектноориентированные Модели представления документальной ER – Entity-Relationship – Сущность-Связь DFD – Data Flowинформации Diagram IDEF – одно из семейств стандартов ICAM (Integrated Computer-Aided Manufacturing) Теоретико. Инвертирования Теоретико. IDEF – ICAM DEFinition множественные организация графовые Иерархические Сетевые Реляционные Бинарных отношений Схемно-определяемая структура Прямая организация Контекстноопределяемая структура Физические модели Модели, основанные на файловых структурах Модели, имеющие страничную организацию
Схема обработки запроса на выборку данных из БД Клиентское приложение Элементы данных Рабочий буфер 1 СУБД 12 11 Управление данными Системный буфер 8 Управление доступом 3 13 База данных Структуры данных приложения 9 10 Управление вводомвыводом 2 5 4 7 6 Операционная система Внешняя модель Концептуальная модель Физическая модель
Данные и управление их обработкой Структура информационных единиц, обрабатываемых на ЭВМ, определяется следующими понятиями: тип данных, или совокупность соглашений о программно аппаратурной форме представления и обработки, а также ввода, контроля и вывода элементарных данных структуры данных — способы композиции простых данных в агрегаты и операции над ними форматы файлов — представление информации им уровне взаимодействия программами операционной системы с прикладными
Варианты размещения данных и их описания Программа Описание данных Д Д а нн ы е а Программа н н ы В прикладной программе В файле данных Программа Описание данных Д а нн ы е Отдельным набором данных (словарь данных) е Описание данных
Основные задачи обработки данных, решаемые на основе концепций баз данных, сводятся к следующим вопросам: 1. Каким образом сложные нелинейные структуры данных представить в виде линейных — наиболее соответствующих принципу последовательного представления (хранения) в машинной памяти? 2. Каким образом организовать данные, чтобы была возможность эффективного внесения, удаления и редактирования данных? 3. Как организовать данные, чтобы использование пространства памяти (плотность данных) было достаточно рациональным, а скорость доступа к записям данных высокой? 4. Каким образом организовать данные, чтобы поиск был эффективным и позволял отыскивать записи по нескольким ключам?
Создание баз данных как компромисс по сочетаниям следующих параметров: Эффективность Простота Скорость выборки Стоимость (сложность) аппаратных средств Скорость выборки Сложность процедур доступа Плотность данных Время доступа и сложность процедур Независимость данных Производительность Гибкость средств поиска Избыточность данных Гибкость поиска Скорость поиска Сложность процедур доступа Простота обслуживания
Варианты решений трехуровневого представления Внешняя схема Концептуальная схема Внутренняя схема Логическая схема Глобальная внутренняя схема Внутренняя схема Локальная внутренняя схема
Атрибутивный способ идентификации Информация Объект предметной области Свойство Значение Элементы данных Данные Запись
Способы хранения ключа и атрибута Пирожок с повидлом 112 Атрибут 113 Беляш с котенком 113 Пирожок с повидлом 441 Пицца с «колбасой» 441 Беляш с котенком 456 Пирожок с повидлом 456 457 Беляш с котенком 457 678 Чай без сахара 678 789 Сосиска без теста 789 889 Пицца с «колбасой» 889 998 Вчерашняя ватрушка 998 Указатель 112 Пицца с «колбасой» Чай без сахара Сосиска без теста Вчерашняя ватрушка Пирожок с повидлом Инвертированный список 112, 456 Беляш с котенком 113, 457 Пицца с «колбасой» 441, 889 Чай без сахара 678 Сосиска без теста 789 Вчерашняя ватрушка 998
Типология простых (атомарных) запросов: А(Е) = ? Каково значение атрибута А для объекта Е? А(? ) = V Какие объекты имеют значение атрибута, равное V? ? (Е) = V Какие атрибуты объекта Е имеют значение, равное V? ? (Е) = ? Какие значения атрибутов имеет объект I? А(? ) = ? Какие значения имеет атрибут А в наборе? ? (? ) = V Какие атрибуты объектов набора имеют значение, равное V?
Дерево 1 2 6 7 Корень 3 8 4 9 10 11 5 12 13 14 Листья 16 17 18 19 20 21 15
Сбалансированные и несбалансированные деревья
Двоичные деревья
Сетевые структуры 1 3 2 4 1 5 2 3 6 8 7 4 9 10 11 5
Пример простой сетевой структуры Поставщик Расценка Изделие Заказ на закупку Партия товара
Пример сетевой структуры с петлей Руководитель Изделие Служащий руководит Узел Деталь
Основные понятия реляционной модели № ФИО YEAR JOB KAF Год р. Должность Кафедра 1 Отношение Домены Иванов И. И. 1962 Зав. кафедрой 605 2 Сидоров С. С. 1973 Профессор 605 3 Петров П. П. 1971 Профессор 605 4 Козлов К. К. 1972 Доцент 605 5 Пупкин В. В. 1973 Доцент 605 6 Машкина М. М. 1978 Ст. преподаватель 605 Атрибуты Степень Кортежи Первичный ключ FIO Кардинальность PK
Основные понятия реляционной модели Домен Кортеж Кардинальность Атрибут Степень отношения Первичный ключ Совокупность допустимых значений Таблица Количество строк в таблице Поле, столбец таблицы Количество полей (столбцов) Уникальный идентификатор
Реляционная модель предъявляет к таблицам следующие требования: 1) данные в ячейках таблицы должны быть структурно неделимыми ; 2) данные в одном столбце должны быть одного типа; 3) каждый столбец должен быть уникальным (недопустимо дублирование столбцов); 4) столбцы размещаются в произвольном порядке; 5) строки размещаются и таблице также в произвольном порядке; 6) столбцы имеют уникальные наименования.
Объединение FIO Year Job Kaf Пупкина Л. В. 1972 Доцент 605 Иванова И. И. 1974 Доцент 605 Петрова М. И. 1965 Ст. преподаватель 607 Сидорчук В. В. 1971 Ассистент 606 Job Kaf Сидоров В. А. 1975 Профессор 606 Машкина М. М. 1978 Доцент 605 Дыркин Д. А. 1969 Ассистент 607 Петрова М. И. 1965 Ст. преподаватель 607 Сидорчук В. В. 1971 Ассистент 606 Job Kaf Сидоров В. А. 1975 Профессор 606 Машкина М. М. 1978 Доцент 605 1969 Ассистент 607 Петрова М. И. Year Дыркин Д. А. FIO 1965 Ст. преподаватель 607 Сидорчук В. В. 1971 Ассистент 606 Пупкина Л. В. 1972 Доцент 605 Иванова И. И. 1974 Доцент 605
Пересечение FIO Year Job Kaf Пупкина Л. В. 1972 Доцент 605 Иванова И. И. 1974 Доцент 605 Петрова М. И. 1965 Ст. преподаватель 607 Сидорчук В. В. 1971 Ассистент 606 FIO Year Job Kaf Сидоров В. А. 1975 Профессор 606 Машкина М. М. 1978 Доцент 605 Дыркин Д. А. 1969 Ассистент 607 Петрова М. И. 1965 Ст. преподаватель 607 Сидорчук В. В. 1971 Ассистент 606 Job Петрова М. И. FIO Year Kaf 1965 Ст. преподаватель 607 Сидорчук В. В. 1971 Ассистент 606
Разность FIO Year Job Kaf Пупкина Л. В. 1972 Доцент 605 Иванова И. И. 1974 Доцент 605 Петрова М. И. 1965 Ст. преподаватель 607 Сидорчук В. В. 1971 Ассистент 606 FIO Year Job Kaf Пупкина Л. В. FIO Year Job Kaf Сидоров В. А. 1975 Профессор 606 Машкина М. М. 1978 Доцент 605 Дыркин Д. А. 1969 Ассистент 607 Петрова М. И. 1965 Ст. преподаватель 607 Сидорчук В. В. 1971 Ассистент 606 1972 Доцент 605 Иванова И. И. 1974 Доцент 605
Произведение Job Kaf Профессор 605 Доцент Профессор 606 Ст. преподаватель Доцент 605 Ассистент Доцент 606 Ст. преподаватель 605 Ст. преподаватель 606 Ассистент 605 Ассистент 606 Kaf 606 605
Выборка FIO Year Job Kaf Сидоров В. А. 1975 Профессор 606 Машкина М. М. 1978 Доцент 605 Дыркин Д. А. 1969 Ассистент 607 Петрова М. И. 1965 Ст. преподаватель 607 Сидорчук В. В. 1971 Ассистент 606 Пупкина Л. В. 1972 Доцент 605 Иванова И. И. 1974 Доцент 605 FIO Kaf = 605 Year Job Kaf Машкина М. М. 1978 Доцент 605 Пупкина Л. В. 1972 Доцент 605 Иванова И. И. 1974 Доцент 605
Проекция FIO Year Job Kaf Сидоров В. А. 1975 Профессор 606 Машкина М. М. 1978 Доцент 605 Дыркин Д. А. 1969 Ассистент 607 Петрова М. И. 1965 Ст. преподаватель 607 Сидорчук В. В. 1971 Ассистент 606 Пупкина Л. В. 1972 Доцент 605 Иванова И. И. 1974 Доцент 605 FIO Job Сидоров В. А. Профессор Машкина М. М. Доцент Дыркин Д. А. Ассистент Петрова М. И. Ст. преподаватель Сидорчук В. В. Ассистент Пупкина Л. В. Доцент Иванова И. И. Доцент
Соединение FIO Job Сидоров В. А. Профессор Машкина М. М. Доцент Дыркин Д. А. Ассистент Петрова М. И. Ст. преподаватель Сидорчук В. В. Ассистент Сидоров В. А. Профессор 10000 Пупкина Л. В. Доцент Машкина М. М. Доцент 8000 Иванова И. И. Доцент Дыркин Д. А. Ассистент 4000 Петрова М. И. Ст. преподаватель 5000 Сидорчук В. В. Ассистент 4000 Job ZP FIO Job ZP Профессор 10000 Пупкина Л. В. Доцент 8000 Иванова И. И. Доцент 8000 Ст. преподаватель 5000 Ассистент 4000
Деление Делимое Job Профессор Доцент Ст. преподаватель Ассистент Посредник Делитель Job Kaf Профессор 606 Доцент 605 Ассистент 607 Ст. преподаватель 607 Ассистент 606 Доцент 605 Job = Профессор Ассистент Kaf 605 606 = Job Профессор Доцент Ассистент
Физическое представление с разделением данных и связей Ф. И. О. Год Должность Кафедра Иванов И. И. 1948 Зав. кафедрой 22 Сидоров С. С. 1953 Профессор 22 Пупкин В. В. 1945 Профессор 22 Цветкова С. С. 1960 Доцент 22 Козлов К. К. 1959 Доцент 22 Петров П. П. 1960 Ст. преподаватель 22 Лютикова Л. Л. 1977 Ассистент 22 Сидорчук А. В. 1950 Зав. кафедрой 23 Пряников А. К 1944 Профессор 23 Сумкин Ф. Б. 1958 Доцент 23 Соловьев Х. В. 1958 Доцент 23 Воробьева В. В. 1959 Ст. преподаватель 23 Дыркин В. С. 1966 Ассистент 23 Машкина М. М. 1976 Ассистент 23 1 Воробьева В. В. 1 1944 1 Ассистент 2 Дыркин В. С. 2 1945 2 Доцент 3 Иванов И. И. 3 1948 3 Зав. кафедрой 4 Козлов К. К. 4 1950 4 Профессор 5 Лютикова Л. Л. 5 1953 5 Ст. преподаватель 6 Машкина М. М. 6 1958 7 Петров П. П. 7 1959 1 22 8 Пряников А. К 8 1960 2 23 9 Пупкин В. В. 9 1966 10 Сидоров С. С. 10 1976 11 Сидорчук А. В. 11 1977 12 Соловьев Х. В. 13 Сумкин Ф. Б. 14 Цветкова С. С.
Связи Ф. И. О. Год Должность Кафедра Должность Ф. И. О. Год Ф. И. О. Кафедра Ф. И. О. 3 3 3 1 1 5 1 3 10 5 4 1 1 2 2 9 1 10 9 2 4 1 1 6 3 3 1 9 14 8 2 14 4 11 1 14 4 7 2 1 2 4 5 10 1 4 7 8 5 1 2 13 6 12 1 7 5 11 1 1 2 12 6 13 1 5 11 4 3 2 3 3 7 1 2 11 8 1 4 2 3 11 7 4 2 8 13 6 2 2 4 10 8 7 2 13 12 6 2 2 4 9 8 14 2 12 1 7 5 2 4 8 9 2 2 1 2 9 1 2 5 7 10 6 2 2 6 10 1 2 5 1 11 5 2 6
Требования, предъявляемые к базам данных 1. Описания должны быть понятны пользователю, не проектировавшему базу 2. Однажды принятые способы представления данных должны допускать присоединение новых элементов данных без изменения существующих схем данных и прикладных программ 3. СУБД должны позволять эффективно обрабатывать произвольные запросы к базе данных
Стадии и объекты процесса проектирования
Семантическую основу ER-модели составляют следующие предположения: та часть реального мира (совокупность взаимосвязанных объектов), сведения о которых должны быть помещены в базу данных, может быть представлена как совокупность сущностей; каждая сущность обладает характеристическими свойствами (атрибутами), отличающими ее от других сущностей и позволяющими ее идентифицировать; сущности можно классифицировать по типам сущностей: каждый экземпляр сущности (представляющий некоторый объект) может быть отнесен к классу типу сущностей, каждый экземпляр которого обладает общими для них и отличающими их от сущностей других классов свойствами; систематизация представления, основанная на классах, в общем случае предполагает иерархическую зависимость типов: сущность типа А является подтипом сущности В, если каждый экземпляр типа А является экземпляром сущности типа В; взаимосвязи объектов могут быть представлены как связи сущности, которые служат для фиксирования (представления) взаимозависимости двух или нескольких сущностей.
Пример ER диаграммы
Сущности Сущность, с помощью которой моделируется класс однотипных объектов, определяется как «предмет, который может быть четко идентифицирован» . Сущность должна определяться таким набором атрибутов, который позволял бы различать отдельные экземпляры сущности. Сущность имеет имя, уникальное в пределах модели. При этом имя сущности — это имя типа, а не некоторого конкретного экземпляра. Сущности подразделяются на сильные и слабые.
Свойства Cвойство характер связи свойства с сущностью. Свойство может быть множественным или единичным Свойство может быть простым или составным В некоторых случаях полезно различать базовые и производные свойства Если наличие некоторого свойства для всех экземпляров сущности не является обязательным, то такое свойство называется условным Значения свойств могут быть постоянными – статическими или динамическими Свойство может быть неопределенным Свойство может рассматриваться как ключевое
Связи Связь определяется как «ассоциация, объединяющая несколько сущностей» Сущности, объединяемые связью, называются участниками. Степень связи определяется количеством участников связи Если каждый экземпляр сущности участвует, по крайней мере, в одном экземпляре связи, то такое участие этой сущности называется полным (или обязательным); в противном случае — неполным (или необязательным) Количественный характер участия экземпляров сущностей (один или многие) задается типом связи (или мощностью связи). Возможны следующие типы: «один к одному» (1: 1), «один ко многим» (1: M), «многие ко многим» (М: М). Отношение «часть — целое» используются для представления составных объектов.
Супертипы Отношение «род – вид» используется для представления обобщенных объектов. Сущность может быть расщеплена на два или более взаимоисключающих подтипов, каждый из которых включает общие атрибуты и/или связи. Сущность, на основе которой определяются подтипы, называется супертипом. Табельный номер ФИО Язык программирования Сотрудник Программист Прикладной программист Рабочий Системный программист
Пример ER диаграммы
Нотация ER-диаграмм Сущности. Каждый тип сущности в ER диаграммах представляется в виде прямоугольника, содержащего имя сущности. В качестве имени обычно используются существительные (или обороты существительного) в единственном числе. Для отражения сущностей слабых типов используются прямоугольники, стороны которых рисуются двойными линиями.
Нотация ER-диаграмм Свойства служат для уточнения, идентификации, характеристики или выражения состояния сущности или связи. Свойства отображаются в виде эллипсов, содержащих имя свойства. Эллипс соединяется с соответствующей сущностью или связью линией. Имена ключевых свойств подчеркиваются Контур эллипса рисуется двойной линией, если свойство многозначное Контур эллипса рисуется штриховой линией, если свойство производное Эллипс соединяется пунктирной линией, если свойство условное Если свойство составное, то составляющие его свойства отображаются другими эллипсами, соединенными с эллипсом составного
Нотация ER-диаграмм Связь – это графически изображаемая ассоциация, устанавливаемая между сущностями. Каждый тип связи на ER диаграмме отображается в виде ромба с именем связи внутри. И качестве имени обычно используются отглагольные существительные. Стороны ромба рисуют двойными линиями, если это связь сущности слабого типа с сущностью, от которой она зависит. Участники связи соединены со связью линиями. Двойная линия обозначает полное участие сущности в связи с данной стороны. Связь может быть модифицирована указанием роли. Тип связи указывается индексами « 1» или «М» над соответствующей линией
Нормальные формы ER-диаграмм В первой нормальной форме ER диаграммы устраняются повторяющиеся атрибуты или группы атрибутов, т. е. производится выявление неявных сущностей, «замаскированных» под атрибуты. Во второй нормальной форме устраняются атрибуты, зависящие только от части уникального идентификатора. Эта часть уникального идентификатора определяет отдельную сущность. В третьей нормальной форме устраняются атрибуты, зависящие от атрибутов, не входящих в уникальный идентификатор. Эти атрибуты являются основой отдельной сущности.
Пример ER диаграммы в третьей нормальной форме
Получение реляционной схемы из ER диаграммы 1. Каждая простая сущность превращается в таблицу (отношение). Имя сущности становится именем таблицы. 2. Каждый атрибут становится возможным столбцом с тем же именем. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения; столбцы, соответствующие обязательным атрибутам, не могут. Если атрибут является множественным, то для него строится отдельное отношение. 3. Компоненты уникального идентификатора сущности превращаются в первичный ключ. Если имеется несколько возможных уникальных идентификаторов, выбирается наиболее используемый. Если в состав уникального идентификатора входят связи, то к числу столбцов первичного ключа добавляется копия уникального идентификатора сущности, находящейся на дальнем конце связи (этот процесс может продолжаться рекурсивно). Для именования этих столбцов используются имена концов связей и/или имена сущностей.
Получение реляционной схемы из ER диаграммы 4. Связи «многие к одному» и «один к одному» становятся внешними ключами, т. е. создается копия уникального идентификатора с конца связи «один» , и соответствующие столбцы составляют внешний ключ. 5. Индексы создаются для первичною ключа (уникальный индекс), а также внешних ключей и тех атрибутов, которые будут часто использоваться в запросах. 6. Если в концептуальной схеме присутствуют подтипы, то возможны два варианта. а) Все подтипы хранятся в одной таблице, которая создается для самою внешнего супертипа, а для подтипов создаются представления. В таблицу добавляется по крайней мере один столбец, содержащий код ТИПА, и он становится частью первичного ключа. б) Для каждого подтипа создается отдельная таблица (для более нижних — представления) и для каждого подтипа первого уровня супертип воссоздается с помощью представления UNION (из всех таблиц подтипов выбираются общие столбцы — столбцы супертипа).
Получение реляционной схемы из ER диаграммы 7. Если остающиеся внешние ключи все принадлежат одному домену, т. е. имеют общий формат, то создаются два столбца: идентификатор связи и идентификатор сущности. Столбец идентификатора связи используется для различения связей. Столбец идентификатора сущности используется для хранения значений уникального идентификатора сущности на дальнем конце соответствующей связи. Если результирующие внешние ключи не относятся к одному домену, то для каждой связи, покрываемой дугой исключения, создаются явные столбцы внешних ключей.
Физическое проектирование БД Стадия физического проектирования базы данных в общем случае включает: выбор способа организации базы данных, основные из которых были рассмотрены ранее; разработку спецификации внутренней схемы средствами модели данных ее внутреннего уровня; описание отображения концептуальной схемы во внутреннюю.
Транзакции Транзакция – неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными, такая, что: 1) либо результаты всех операторов, входящих в транзакцию, отображаются в БД; 2) либо воздействие всех этих операторов полностью отсутствует. Исходное состояние Нарушение целостности Исходное состояние ROLLBACK COMMIT Измененная БД
Модель автоматического выполнения транзакций Непротиворечивая БД INSERT COMMIT Непротиворечивая БД UPDATE COMMIT ROLLBACK Непротиворечивая БД
Модель управляемого выполнения транзакций Исходное состояние БД BEGIN TRANSACTION Точка сохранения А UPDATE SAVE TRANSACTION A INSERT ROLLBACK TO A DELETE COMMIT TRANSACTION Cостояние БД после транзакции
Журнал транзакций Протокол журнализации (и управления буферизацией) действует по правилу Write Ahead Log (WAL) — «пиши сначала в журнал» , и состоит в том, что если требуется сохранить во внешней памяти измененный объект базы данных, то перед этим нужно гарантировать сохранение во внешней памяти журнала записи о его изменении.
Общие требования к системе восстановления данных в составе СУБД 1. Пользователь не должен осуществлять рестарт транзакций или повторный ввод данных. Восстановление должно проходить на базе транзакции с помощью отмены или изменения отдельных транзакций. 2. Быстрое восстановление данных обеспечивается генерацией данных, используемых для восстановления. 3. При выполнении процедур автоматизированного восстановления пользователь не должен анализировать состав данных и выбирать сами процедуры.
Сервисные программные средства для восстановления Программы ведения системного журнала регистрируют операции над БД: описание соответствующей транзакции, код пользователя, текст входного сообщения, тип изменения БД, адреса изменяемых данных вместе с их значениями до и после изменения. Программы архивации используются для регулярного получения копий БД для последующего ее восстановления. Программы восстановления применяются для возврата БД или некоторых ее частей и состояние, предшествующее возникновению отказа. При этом используют архивную копию БД и системный журнал. Программы отката ликвидируют последствия выполнения оп ределенной транзакции в БД. Программы записи контрольных точек и повторного исполнения позволяют ускорить восстановление.
«Проблема пропавшего изменения» Кладовщик 1 Запрос количества пива на складе для ID_Сорт = 5 Ответ: 30 Кладовщик 2 ID_Сорт … 5 … … … Количество … 30 … Заполнение столбца ID_Сорт таблицы «Пиво» с Количеством 25 Изменение значения столбца Количество и занесение нового значения (5) в строку таблицы Запрос количества пива на складе для ID_Сорт = 5 Ответ: 30 Заполнение столбца ID_Сорт таблицы «Пиво» с Количеством 18 ID_Сорт … 5 … … … Количество … 5 … ID_Сорт … 5 … … … Количество … 12 … Изменение значения столбца Количество и занесение нового значения (12) в строку таблицы
Проблема чтения «грязных данных» (dirty data) Кладовщик 1 Запрос количества пива на складе для ID_Сорт = 5 Ответ: 30 Кладовщик 2 ID_Сорт … 5 … … … Количество … 30 … Заполнение столбца ID_Сорт таблицы «Пиво» с количеством 30 Увеличение значения столбца Количество на 30 и занесение нового значения (60) в строку таблицы ROLLBACK (возврат к исходному состоянию) ID_Сорт … 5 … … … … … Количество … 60 … Количество … 30 … Запрос количества пива на складе с ID_Сорт=5 Ответ: 60 Заполнение столбца ID_Сорт таблицы «Пиво» с количеством 60 !! ОШИБКА !!
Проблема чтения несогласованных данных Кладовщик 1 Запрос количества пива на складе для ID_Сорт = 5 Ответ: 30 Заполнение столбца ID_Сорт таблицы «Пиво» с количеством 30 Увеличение значения столбца Количество на 30 и занесение нового значения (60) в строку таблицы Кладовщик 2 ID_Сорт … 5 … … … Количество … 30 … Запрос количества пива на складе с ID_Сорт=5 Ответ: 30 Запрос количества пива на складе с ID_Сорт=6 Ответ: 50 ID_Сорт … 5 … … … Количество … 60 … Продаем 6 ой сорт, раз его больше! Запрос количества пива на складе с ID_Сорт=5 Ответ: 60 Не то продали! Бестолковые менеджеры!
Проблема «строк призраков» Декан ФИТ Студент Пупкин Выгрузить данные аттестации!!! Ура! Я только что переписал аттестацию! Беги в деканат, расскажи им об этом! Преображенский Ю. П. Студент бежит…, список выгружается…. Декан ФИТ Всё! Пупкин не сдал! Отчислить его! Выгружаем список… Компьютер деканата Бягу!!! Студент Пупкин Аааа! Я ж сдал! Студент Пупкин Список выгружается еще раз…. Пупкин сдал… но его уже отчислили…
Сериализация транзакций Метод сериализации транзакций — это механизм их выполнения по такому плану, когда результат совместного выполнения транзак ций эквивалентен результату некоторого последовательного выпол нения этих же транзакций. Между транзакциями могут существовать следующие виды конфликтов: Транзакция 2 пытается изменять объект, измененный незакончившейся Транзакцией 1 (W-W — конфликт); Транзакция 2 пытается изменять объект, прочитанный незакончившейся Транзакцией 1 (R-W — конфликт); Транзакция 2 пытается читать объект, измененный незакончившейся Транзакцией 1 (W-R — конфликт).
Захват и освобождение объекта Выделяются два основных режима захватов: совместный режим — S (Shared), означающий разделяемый захват объекта и необходимый для выполнения операции чтения объекта; монопольный режим — X (exclusive), означающий монопольный захват объекта и необходимый для выполнения операций записи, удаления и модификации.
Потенциально возможные объекты для захвата В контексте реляционных баз данных возможны следующие варианты: файл физический (с точки зрения базы данных) объект, область хранения нескольких отношений и, возможно, индексов таблица логический объект, соответствующий множеству записей данного отношения; страница данных физический объект, хранящий записи од ного или нескольких отношений, индексную или служебную информацию; запись элементарный физический объект базы данных.
Правила ACID Транзакция — это законченный блок обращений к базе данных и некоторых действий над ней, для которого гарантируется выполнение четырех условий, так называемых свойств ACID (Atomicity, Consistency, Isolation, Durability): атомарность — операции транзакции образуют неразделимый атомарный блок с определенным началом и концом. Этот блок либо выполняется от начала до конца, либо не выполняется вообще. Если в процессе выполнения транзакции произошел сбой, происходит откат к исходному состоянию согласованность — по завершении транзакции все задействованные объекты находятся в согласованном состоянии изолированность — одновременный доступ транзакций различных приложений к разделяемым объектам координируется таким образом, чтобы эти транзакции не влияли друг на друга долговременность — все изменения данных, осуществленные в процессе выполнения транзакции, не могут быть потеряны
База Даных.ppt