Слайд 1Управление данными
Кандидат технических наук, доцент
Преображенский Юрий Петрович
© ВИВТ, 2012
Слайд 2Банк данных (БнД) — это система специально организованных данных, программных,
языковых, организационных и технических средств, предназначенных для централизованного накопления и
коллективного многоцелевого использования данных
Под базой данных (БД) обычно понимается именованная совокупность данных, отображающая состояние объектов и их отношений в рассматриваемой предметной области
Система управления базами данных (СУБД) — это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями
Слайд 3Требования, предъявляемые к банкам данных
Многократное использование данных
Простота
Легкость использования
Гибкость
использования
Быстрая обработка запросов на данные
Язык взаимодействия конечных пользователей
с системой
База данных—это основа для будущего наращивания прикладных программ
Сохранение затрат умственного труда
Наличие интерфейса прикладного программирования
Распределенная обработка данных
Адаптивность и расширяемость
Контроль за целостностью данных
Восстановление данных после сбоев
Вспомогательные средства
Автоматическая реорганизация и перемещение
Слайд 4Информационная база
Коллекция записей данных
Описания данных — метаданные
Слайд 6Этапы работы с базой данных
Описание БД
Описание частей БД, необходимых
для конкретных приложений (задач, групп задач)
Программирование задач или описание
запросов в соответствии с правилами конкретного языка и использованием языковых конструкций для обращения к БД
Загрузка БД
Слайд 7Два класса языков работы с данными
Для выражения обобщенного взгляда на
данные применяют язык описания данных (ЯОД, DDL - Data Definition
Language) внутреннего уровня, включаемый в состав СУБД . Описание представляет собой модель данных и их отношений, т. е. структур, из которых образуется БД.
Языки манипулирования данными (ЯМД, DML - Data Manipulating Language) обычно включает в себя средства запросов к базе данных и поддержания базы данных (добавление, удаление, обновление данных, создание и уничтожение БД, изменение определений БД, обеспечение запросов к справочнику БД).
Слайд 8Качественные характеристики языков запросов
Селективная
мощность
Простота
изучения
Уровень
процедурности
Модульность построения языка
Наиболее распространенным языком для работы с базами
данных является SQL (Structured Query Language), в своих последних реализациях предоставляющий не только средства для спецификации и обработки запросов на выборку данных, но также и функции по созданию, обновлению, управлению доступом и т. д
Слайд 10Централизованное управление данными обеспечивает:
1. сокращение избыточности в хранимых данных;
2. совместное
использование хранимых данных;
3. стандартизацию представления данных, упрощающую
эксплуатацию БД;
4. разграничение доступа к данным;
5. целостность данных, обеспечиваемую процедурами, предотвращающими включение в БД неверных данных, и ее восстановление после отказов системы.
Слайд 11Классификация по форме представляемой информации
Фактографические
Документальные
Мультимедийные
Картографические
Видео-, аудио-, графические
Классификация по типу хранимой
(не мультимедийной) информации
Фактографические
Документальные
Лексикографические
Классификаторы
Кодификаторы
Словари
Тезаурусы
Рубрикаторы
Полнотекстовые
Библиографически-реферативные
Слайд 12Классификация по типу используемой модели данных
Иерархические
Сетевые
Реляционные
Постреляционные
Объектно-ориентированные
Многомерные
Классификация по топологии хранения
Локальные БД
Распределенные
БД
Классификация по типологии доступа и характеру использования
Специализированные
Интегрированные
Классификация по типологии доступа
и характеру использования
Операционные
Справочно-информационные
Слайд 13Классификация по сфере возможного применения
Универсальные
Специализированные
Классификация по степени доступности
Общедоступные
С ограниченным доступом
Слайд 14Соотношение понятий «величина», «контекст» и «значение»
Слайд 15Система моделей представления информации
Инфологические модели
Модели представления хорошо структурированной информации
Модели
представления плохо структурированной информации
IDEF-модели
Диаграммы потоков данных
ER-модели
Дескрипторные модели
Семантические сети. Тезаурусы
Фреймы
Даталогические модели
Модели
представления фактографической информации
Модели представления документальной информации
Объектно-ориентированные
Теоретико-графовые
Теоретико-множественные
Инвертирования организация
Прямая организация
Иерархические
Сетевые
Реляционные
Бинарных отношений
Схемно-определяемая структура
Контекстно-определяемая структура
Физические модели
Модели, основанные на файловых структурах
Модели, имеющие страничную организацию
IDEF – одно из семейств стандартов ICAM (Integrated Computer-Aided Manufacturing)
IDEF – ICAM DEFinition
DFD – Data Flow Diagram
ER – Entity-Relationship – Сущность-Связь
Слайд 16Схема обработки запроса на выборку данных из БД
Слайд 17Данные и управление их обработкой
- тип данных, или совокупность
соглашений о программно-аппаратурной форме представления и обработки, а также ввода,
контроля и вывода элементарных данных
- структуры данных — способы композиции простых данных в агрегаты и операции над ними
- форматы файлов — представление информации им уровне взаимодействия операционной системы с прикладными программами
Структура информационных единиц, обрабатываемых на ЭВМ, определяется следующими понятиями:
Слайд 18Варианты размещения данных и их описания
Программа
Описание данных
Данные
В прикладной программе
Программа
Описание данных
Д
а
н
н
ы
е
В
файле данных
Программа
Данные
Отдельным набором данных (словарь данных)
Описание данных
Слайд 19Основные задачи обработки данных, решаемые на основе концепций баз данных,
сводятся к следующим вопросам:
Каким образом сложные нелинейные структуры данных представить
в виде линейных — наиболее соответствующих принципу последовательного представления (хранения) в машинной памяти?
Каким образом организовать данные, чтобы была возможность эффективного внесения, удаления и редактирования данных?
Как организовать данные, чтобы использование пространства памяти (плотность данных) было достаточно рациональным, а скорость доступа к записям данных высокой?
Каким образом организовать данные, чтобы поиск был эффективным и позволял отыскивать записи по нескольким ключам?
Слайд 20Эффективность
Простота
Скорость выборки
Стоимость (сложность) аппаратных средств
Скорость выборки
Сложность
процедур доступа
Плотность данных
Время доступа и сложность процедур
Независимость
данных
Производительность
Гибкость средств поиска
Избыточность данных
Гибкость поиска
Скорость поиска
Сложность процедур доступа
Простота обслуживания
Создание баз данных как компромисс по сочетаниям следующих параметров:
Слайд 21Варианты решений трехуровневого представления
Концептуальная
схема
Внешняя схема
Внутренняя схема
Внешняя схема
Концептуальная
схема
Логическая
схема
Внутренняя схема
Внешняя схема
Концептуальная
схема
Глобальная
внутренняя схема
Локальная
внутренняя схема
Слайд 22Атрибутивный способ идентификации
Информация
Объект
предметной области
Свойство
Данные
Запись
Элементы данных
Значение
Слайд 23Способы хранения ключа и атрибута
Указатель
Атрибут
Инвертированный список
Слайд 24
А(Е) = ? Каково значение атрибута А для объекта Е?
А(?)
= V Какие объекты имеют значение атрибута, равное V?
?(Е) =
V Какие атрибуты объекта Е имеют значение, равное V?
?(Е) = ? Какие значения атрибутов имеет объект I?
А(?) = ? Какие значения имеет атрибут А в наборе?
?(?) = V Какие атрибуты объектов набора имеют значение,
равное V?
Типология простых (атомарных) запросов:
Слайд 251
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
21
17
18
19
20
Дерево
Корень
Листья
Слайд 26Сбалансированные и несбалансированные деревья
Слайд 281
Сетевые структуры
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
Слайд 29Поставщик
Изделие
Пример простой сетевой структуры
Расценка
Заказ
на закупку
Партия
товара
Слайд 30Руководитель
Служащий
руководит
Изделие
Узел
Деталь
Пример сетевой структуры с петлей
Слайд 31Основные понятия реляционной модели
Первичный ключ
PK
FIO
YEAR
JOB
KAF
Домены
Отношение
Кортежи
Кардинальность
Атрибуты
Степень
Слайд 32Основные понятия реляционной модели
Слайд 33Реляционная модель предъявляет к таблицам следующие требования:
1) данные в ячейках
таблицы должны быть структурно неделимыми ;
2) данные в одном столбце
должны быть одного типа;
3) каждый столбец должен быть уникальным (недопустимо дублирование столбцов);
4) столбцы размещаются в произвольном порядке;
5) строки размещаются и таблице также в произвольном порядке;
6) столбцы имеют уникальные наименования.
Слайд 41Деление
Делимое
Посредник
Делитель
=
=
Слайд 42Физическое представление с разделением данных и связей
Слайд 44Требования, предъявляемые к базам данных
Описания должны быть понятны пользователю,
не проектировавшему базу
2. Однажды принятые способы представления данных должны допускать
присоединение новых элементов данных без изменения
существующих схем данных и прикладных программ
3. СУБД должны позволять эффективно обрабатывать произвольные запросы к базе данных
Слайд 45Стадии и объекты процесса проектирования
Слайд 46Семантическую основу ER-модели составляют следующие предположения:
та часть реального мира (совокупность
взаимосвязанных объектов), сведения о которых должны быть помещены в базу
данных, может быть представлена как совокупность сущностей;
каждая сущность обладает характеристическими свойствами (атрибутами), отличающими ее от других сущностей и позволяющими ее идентифицировать;
сущности можно классифицировать по типам сущностей: каждый экземпляр сущности (представляющий некоторый объект) может быть отнесен к классу - типу сущностей, каждый экземпляр которого обладает общими для них и отличающими их от сущностей других классов свойствами;
систематизация представления, основанная на классах, в общем случае предполагает иерархическую зависимость типов: сущность типа А является подтипом сущности В, если каждый экземпляр типа А является экземпляром сущности типа В;
- взаимосвязи объектов могут быть представлены как связи - сущности, которые служат для фиксирования (представления) взаимозависимости двух или нескольких сущностей.
Слайд 48Сущность, с помощью которой моделируется класс однотипных объектов, определяется как
«предмет, который может быть четко идентифицирован».
Сущность должна определяться таким набором
атрибутов, который позволял бы различать отдельные экземпляры сущности.
Сущность имеет имя, уникальное в пределах модели. При этом имя сущности — это имя типа, а не некоторого конкретного экземпляра.
Сущности подразделяются на сильные и слабые.
Сущности
Слайд 49Свойства
Cвойство - характер связи свойства с сущностью.
Свойство может быть множественным
или единичным
Свойство может быть простым или составным
В некоторых случаях полезно
различать базовые и производные свойства
Если наличие некоторого свойства для всех экземпляров сущности не является обязательным, то такое свойство называется условным
Значения свойств могут быть постоянными – статическими или динамическими
Свойство может быть неопределенным
Свойство может рассматриваться как ключевое
Слайд 50Связь определяется как «ассоциация, объединяющая несколько сущностей»
Сущности, объединяемые связью, называются
участниками. Степень связи определяется количеством участников связи
Если каждый экземпляр сущности
участвует, по крайней мере, в одном экземпляре связи, то такое участие этой сущности называется полным (или обязательным); в противном случае — неполным (или необязательным)
Количественный характер участия экземпляров сущностей (один или многие) задается типом связи (или мощностью связи). Возможны следующие типы: «один к одному» (1:1), «один ко многим» (1:M), «многие ко многим» (М:М).
Отношение «часть — целое» используются для представления составных объектов.
Связи
Слайд 51Сотрудник
Рабочий
Программист
Табельный номер
ФИО
Язык программирования
Прикладной программист
Системный программист
Отношение «род – вид» используется для
представления обобщенных объектов.
Сущность может быть расщеплена на два или более
взаимоисключающих подтипов, каждый из которых включает общие атрибуты и/или связи.
Сущность, на основе которой определяются подтипы, называется супертипом.
Супертипы
Слайд 53Сущности. Каждый тип сущности в ER-диаграммах представляется в виде прямоугольника,
содержащего имя сущности.
В качестве имени обычно используются существительные (или
обороты существительного) в единственном числе.
Для отражения сущностей слабых типов используются прямоугольники, стороны которых рисуются двойными линиями.
Нотация ER-диаграмм
Слайд 54Нотация ER-диаграмм
Свойства. Свойства служат для уточнения, идентификации, характеристики или выражения
состояния сущности или связи. Свойства отображаются в виде эллипсов, содержащих
имя свойства. Эллипс соединяется с соответствующей сущностью или связью линией.
Имена ключевых свойств подчеркиваются
Контур эллипса рисуется двойной линией, если свойство многозначное
Контур эллипса рисуется штриховой линией, если свойство производное
Эллипс соединяется пунктирной линией, если свойство условное
Если свойство составное, то составляющие его свойства отображаются другими эллипсами, соединенными с эллипсом составного
Слайд 55Нотация ER-диаграмм
Связь – это графически изображаемая ассоциация, устанавливаемая между сущностями.
Каждый тип связи на ER-диаграмме отображается в виде ромба с
именем связи внутри. И качестве имени обычно используются отглагольные существительные.
Стороны ромба рисуют двойными линиями, если это связь сущности слабого типа с сущностью, от которой она зависит.
Участники связи соединены со связью линиями. Двойная линия обозначает полное участие сущности в связи с данной стороны.
Связь может быть модифицирована указанием роли.
Тип связи указывается индексами «1» или «М» над соответствующей линией
Слайд 56В первой нормальной форме ER-диаграммы устраняются повторяющиеся атрибуты или группы
атрибутов, т. е. производится выявление неявных сущностей, «замаскированных» под атрибуты.
Во
второй нормальной форме устраняются атрибуты, зависящие только от части уникального идентификатора. Эта часть уникального идентификатора определяет отдельную сущность.
В третьей нормальной форме устраняются атрибуты, зависящие от атрибутов, не входящих в уникальный идентификатор. Эти атрибуты являются основой отдельной сущности.
Нормальные формы ER-диаграмм
Слайд 57Пример ER-диаграммы в третьей нормальной форме
Слайд 58Получение реляционной схемы из ER диаграммы
Каждая простая сущность превращается
в таблицу (отношение). Имя сущности становится именем таблицы.
2. Каждый атрибут
становится возможным столбцом с тем же
именем. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения; столбцы, соответствующие
обязательным атрибутам, - не могут. Если атрибут является множественным, то для него строится отдельное отношение.
3. Компоненты уникального идентификатора сущности превращаются в первичный ключ. Если имеется несколько возможных уникальных идентификаторов, выбирается наиболее используемый. Если в состав уникального идентификатора входят связи, то к числу столбцов первичного ключа добавляется копия уникального идентификатора сущности, находящейся на дальнем конце связи (этот процесс может продолжаться рекурсивно). Для именования этих столбцов используются имена концов связей и/или имена сущностей.
Слайд 59Получение реляционной схемы из ER диаграммы
4. Связи «многие к
одному» и «один к одному» становятся внешними ключами, т.е. создается
копия уникального идентификатора с конца связи «один», и соответствующие столбцы составляют внешний ключ.
5. Индексы создаются для первичною ключа (уникальный индекс), а также внешних ключей и тех атрибутов, которые будут часто использоваться в запросах.
6. Если в концептуальной схеме присутствуют подтипы, то возможны два варианта.
а) Все подтипы хранятся в одной таблице, которая создается для самою внешнего супертипа, а для подтипов создаются представления. В таблицу добавляется по крайней мере один столбец, содержащий код ТИПА, и он становится частью первичного ключа.
б) Для каждого подтипа создается отдельная таблица (для более нижних — представления) и для каждого подтипа первого уровня супертип воссоздается с помощью представления UNION (из всех таблиц подтипов выбираются общие столбцы — столбцы супертипа).
Слайд 60Получение реляционной схемы из ER диаграммы
7. Если остающиеся внешние
ключи все принадлежат одному домену, т. е. имеют общий формат,
то создаются два столбца: идентификатор связи и идентификатор сущности. Столбец идентификатора связи используется для различения связей. Столбец идентификатора сущности используется для хранения значений уникального идентификатора сущности на дальнем конце соответствующей связи.
Если результирующие внешние ключи не относятся к одному домену, то для каждой связи, покрываемой дугой исключения, создаются явные столбцы внешних ключей.
Слайд 61Стадия физического проектирования базы данных в общем случае включает:
выбор способа
организации базы данных, основные из которых были рассмотрены ранее;
разработку спецификации
внутренней схемы средствами модели данных ее внутреннего уровня;
- описание отображения концептуальной схемы во внутреннюю.
Физическое проектирование БД
Слайд 62Транзакции
Исходное состояние
Исходное состояние
Измененная БД
Нарушение целостности
COMMIT
ROLLBACK
Исходное состояние
Транзакция – неделимая с точки
зрения воздействия на БД последовательность операторов манипулирования данными, такая, что:
1)
либо результаты всех операторов, входящих в транзакцию, отображаются в БД;
2) либо воздействие всех этих операторов полностью отсутствует.
Слайд 63Модель автоматического выполнения транзакций
INSERT
COMMIT
UPDATE
COMMIT
INSERT
COMMIT
UPDATE
ROLLBACK
Непротиворечивая БД
Непротиворечивая БД
Непротиворечивая БД
Слайд 64Модель управляемого выполнения транзакций
BEGIN TRANSACTION
Исходное состояние БД
UPDATE
SAVE TRANSACTION A
INSERT
ROLLBACK
TO A
DELETE
COMMIT TRANSACTION
Точка сохранения А
Cостояние БД после транзакции
Слайд 65Протокол журнализации (и управления буферизацией) действует по правилу Write Ahead
Log (WAL) — «пиши сначала в журнал», и состоит в
том, что если требуется сохранить во внешней памяти измененный объект базы данных, то перед этим нужно гарантировать сохранение во внешней памяти журнала записи о его изменении.
Журнал транзакций
Слайд 66Пользователь не должен осуществлять рестарт транзакций или повторный ввод данных.
Восстановление должно проходить на базе транзакции с помощью отмены или
изменения отдельных транзакций.
2. Быстрое восстановление данных обеспечивается генерацией данных, используемых для восстановления.
3. При выполнении процедур автоматизированного восстановления пользователь не должен анализировать состав данных и выбирать сами процедуры.
Общие требования к системе восстановления данных в составе СУБД
Слайд 67Программы ведения системного журнала регистрируют операции над БД: описание соответствующей
транзакции, код пользователя, текст входного сообщения, тип изменения БД, адреса
изменяемых данных вместе с их значениями до и после изменения.
Программы архивации используются для регулярного получения копий БД для последующего ее восстановления.
Программы восстановления применяются для возврата БД или некоторых ее частей и состояние, предшествующее возникновению отказа. При этом используют архивную копию БД и системный журнал.
Программы отката ликвидируют последствия выполнения определенной транзакции в БД.
Программы записи контрольных точек и повторного исполнения позволяют ускорить восстановление.
Сервисные программные средства для восстановления
Слайд 68Кладовщик 1
Кладовщик 2
Запрос количества пива на складе для ID_Сорт =
5
Ответ: 30
Запрос количества пива на складе для ID_Сорт = 5
Ответ:
30
Заполнение столбца ID_Сорт таблицы «Пиво» с Количеством 25
Заполнение столбца ID_Сорт таблицы «Пиво» с Количеством 18
Изменение значения столбца Количество и занесение нового значения (5) в строку таблицы
Изменение значения столбца Количество и занесение нового значения (12) в строку таблицы
ID_Сорт … Количество
… … …
5 … 30
… … …
ID_Сорт … Количество
… … …
5 … 5
… … …
ID_Сорт … Количество
… … …
5 … 12
… … …
«Проблема пропавшего изменения»
Слайд 69Кладовщик 1
Кладовщик 2
Запрос количества пива на складе для ID_Сорт =
5
Ответ: 30
Заполнение столбца ID_Сорт таблицы «Пиво» с количеством 30
Увеличение значения
столбца Количество на 30 и занесение нового значения (60) в строку таблицы
Запрос количества пива на складе с ID_Сорт=5
Ответ: 60
ID_Сорт … Количество
… … …
5 … 30
… … …
ID_Сорт … Количество
… … …
5 … 60
… … …
ID_Сорт … Количество
… … …
5 … 30
… … …
Проблема чтения «грязных данных» (dirty data)
ROLLBACK
(возврат к исходному состоянию)
Заполнение столбца ID_Сорт таблицы «Пиво» с количеством 60
!! ОШИБКА !!
Слайд 70Кладовщик 1
Кладовщик 2
Запрос количества пива на складе для ID_Сорт =
5
Ответ: 30
Заполнение столбца ID_Сорт таблицы «Пиво» с количеством 30
Увеличение значения
столбца Количество на 30 и занесение нового значения (60) в строку таблицы
Запрос количества пива на складе с ID_Сорт=5
Ответ: 30
ID_Сорт … Количество
… … …
5 … 30
… … …
ID_Сорт … Количество
… … …
5 … 60
… … …
Не то продали! Бестолковые менеджеры!
Проблема чтения несогласованных данных
Запрос количества пива на складе с ID_Сорт=6
Ответ: 50
Продаем 6ой сорт, раз его больше!
Запрос количества пива на складе с ID_Сорт=5
Ответ: 60
Слайд 71Проблема «строк-призраков»
Декан ФИТ
Выгрузить данные аттестации!!!
Компьютер деканата
Выгружаем список…
Студент Пупкин
Ура!
Я только что переписал аттестацию!
Преображенский Ю.П.
Беги в деканат, расскажи
им об этом!
Студент Пупкин
Бягу!!!
Студент бежит…, список выгружается….
Декан ФИТ
Всё! Пупкин не сдал! Отчислить его!
Студент Пупкин
Аааа! Я ж сдал!
Список выгружается еще раз…. Пупкин сдал… но его уже отчислили…
Слайд 72Сериализация транзакций
Метод сериализации транзакций — это механизм их выполнения по
такому плану, когда результат совместного выполнения транзакций эквивалентен результату некоторого
последовательного выполнения этих же транзакций.
Между транзакциями могут существовать следующие виды конфликтов:
Транзакция 2 пытается изменять объект, измененный незакончившейся Транзакцией 1 (W-W — конфликт);
Транзакция 2 пытается изменять объект, прочитанный незакончившейся Транзакцией 1 (R-W — конфликт);
Транзакция 2 пытается читать объект, измененный незакончившейся Транзакцией 1 (W-R — конфликт).
Слайд 73Захват и освобождение объекта
Выделяются два основных режима захватов:
совместный режим
— S (Shared), означающий разделяемый захват объекта и необходимый для
выполнения операции чтения объекта;
монопольный режим — X (exclusive), означающий монопольный захват объекта и необходимый для выполнения операций записи, удаления и модификации.
Слайд 74В контексте реляционных баз данных возможны следующие варианты:
файл - физический
(с точки зрения базы данных) объект, область хранения нескольких отношений
и, возможно, индексов
таблица - логический объект, соответствующий множеству записей данного отношения;
страница данных - физический объект, хранящий записи одного или нескольких отношений, индексную или служебную информацию;
запись - элементарный физический объект базы данных.
Потенциально возможные объекты для захвата
Слайд 75Транзакция — это законченный блок обращений к базе данных и
некоторых действий над ней, для которого гарантируется выполнение четырех условий,
так называемых свойств ACID (Atomicity, Consistency, Isolation, Durability):
атомарность — операции транзакции образуют неразделимый атомарный блок с определенным началом и концом. Этот блок либо выполняется от начала до конца, либо не выполняется вообще. Если в процессе выполнения транзакции произошел сбой, происходит откат к исходному состоянию
согласованность — по завершении транзакции все задействованные объекты находятся в согласованном состоянии
изолированность — одновременный доступ транзакций различных приложений к разделяемым объектам координируется таким образом, чтобы эти транзакции не влияли друг на друга
долговременность — все изменения данных, осуществленные в процессе выполнения транзакции, не могут быть потеряны
Правила ACID