Презентация "Базы данных. Управление данными"


Подписи к слайдам:
Слайд 1

Базы данных Управление данными

База данных (БД) именованная совокупность данных, отображающая состояние объектов и их отношений в рассматриваемой предметной области

Система управления базами данных (СУБД)

совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями

Банк данных (БнД)

система специально организованных данных, программных, языковых, организационных и технических средств, предназначенных для централизованного накопления и коллективного многоцелевого использования данных

Основные требования, предъявляемые к банкам данных

Многократное использование данных

пользователи должны иметь возможность использовать данные различным образом

Простота

пользователи должны иметь возможность легко узнать и понять, какие данные имеются в их распоряжении

Легкость использования

пользователи должны иметь возможность осуществлять (процедурно) простой доступ к данным, при этом все сложности доступа к данным должны быть скрыты в самой системе управления базами данных

Гибкость использования

обращение к данным или их поиск должны осуществляться с помощью различных методов доступа

Основные требования, предъявляемые к банкам данных

Язык взаимодействия конечных пользователей с системой

должен обеспечивать конечным пользователям возможность получения данных без использования прикладных программ

База данных это основа для будущего наращивания прикладных программ

базы данных должны обеспечивать возможность быстрой и дешевой разработки новых приложений

Быстрая обработка запросов на данные

Пользователь должен иметь возможность кратко выразить нетривиальные запросы (в нескольких словах или несколькими нажатиями клавиш мыши)

Основные требования, предъявляемые к банкам данных

Сохранение затрат умственного труда

существующие программы и логические структуры данных (на создание которых обычно затрачивается много человеко-лет) не должны переделываться при внесении изменений в базу данных

Распределенная обработка данных

система должна функционировать в условиях вычислительных сетей и обеспечивать эффективный доступ пользователей к любым данным распределенной БД, размещенным в любой точке сети

Наличие интерфейса прикладного программирования

прикладные программы должны иметь возможность просто и эффективно выполнять запросы на данные; программы должны быть изолированы от расположения файлов и способов адресации данных

Основные требования, предъявляемые к банкам данных

Восстановление данных после сбоев

автоматическое восстановление без потери данных транзакции. В случае аппаратных или программных сбоев система должна возвращаться к некоторому согласованному состоянию данных

Контроль за целостностью данных

система должна осуществлять контроль ошибок в данных и выполнять проверку взаимного логического соответствия данных

Вспомогательные средства

должны позволять разработчику или администратору базы данных предсказать и оптимизировать производительность системы

Основные требования, предъявляемые к банкам данных

Автоматическая реорганизация и перемещение

система должна обеспечивать возможность перемещения данных или автоматическую реорганизацию физической структуры

Адаптивность и расширяемость

база данных должна быть настраиваемой, причем настройка не должна вызывать перезаписи прикладных программ.

Кроме того, поставляемый с СУБД набор предопределенных типов данных должен быть расширяемым — в системе должны иметься средства для определения новых типов и не должно быть различий в использовании системных и определенных пользователем типов

Компоненты банка данных

информационная база

лингвистические средства

программные средства

технические средства

организационно-административные подсистемы и нормативно-методическое обеспечение

Информационная база

Данные, отражающие состояние определенной предметной области и используемые информационной системой

Уровни представления данных

Обобщенный взгляд на данные с позиций предметной области

Не затрагивает физической организации (размещения) данных во внешней памяти

Глобальное представление БД, определяет необходимые условия для организации хранения данных на внешних запоминающих устройствах

Лингвистические средства

в состав СУБД включаются

Этапы работы с базой данных

Языковые средства работы с базой данных

Языковые средства работы с базой данных

Характеристики языков

Свойства языков запросов

Свойства языков запросов

Язык для работы с базами данных SQL (Structured Query Language)

Программные средства

Комплекс программных средств

Централизованное управление данными обеспечивает:

Технические средства

Организационно-административные подсистемы и нормативно-методическое обеспечение

Пользователи баз данных

Пользователи баз данных

Типология баз данных

Типология баз данных

Типология баз данных

Многомерные

Типология баз данных

Типология баз данных

Типология баз данных с точки зрения информационных процессов

Система моделей представления информации

Инфологические модели

Модели представления хорошо структурированной информации

Модели представления плохо структурированной информации

IDEF-модели

Диаграммы потоков данных

ER-модели

Дескрипторные модели

Семантические сети. Тезаурусы

Фреймы

Даталогические модели

Модели представления фактографической информации

Модели представления документальной информации

Объектно-ориентированные

Теоретико-графовые

Теоретико-множественные

Инвертирования организация

Прямая организация

Иерархические

Сетевые

Реляционные

Бинарных отношений

Схемно-определяемая структура

Контекстно-определяемая структура

Физические модели

Модели, основанные на файловых структурах

Модели, имеющие страничную организацию

IDEF – одно из семейств стандартов ICAM (Integrated Computer-Aided Manufacturing)

IDEF – ICAM DEFinition

DFD – Data Flow Diagram

ER – Entity-Relationship – Сущность-Связь

Примерная схема организации ввода-вывода

Линейные файлы данных

Методы доступа к записям

Первые системы управления базами данных

Два уровня независимости данных

Элементы данных

Рабочий буфер

Клиентское приложение

Структуры данных приложения

СУБД

Управление данными

Управление доступом

Внешняя модель

Концептуальная модель

Физическая модель

Системный буфер

База данных

Операционная

система

Управление вводом-выводом

1

3

2

5

4

7

6

8

9

13

12

11

10

Схема обработки запроса на выборку данных из БД

прикладная программа (клиентское приложение) формирует и выдает системе управления базами данных запрос на чтение необходимых данных, содержащихся в базе

СУБД отыскивает описание затребованных данных в структуре описания данных прикладного уровня (внешняя модель)

СУБД по глобальному описанию БД (концептуальная схема) определяет необходимые данные на логическом уровне

СУБД по описанию физической структуры БД (физическая модель) определяет физическую запись (или совокупность записей), которую необходимо считать для выборки данных, затребованных прикладной программой

СУБД через подсистему управления потоками данных выдает операционной системе запрос на чтение хранимой записи

подсистема управления вводом-выводом операционной системы осуществляет физическое чтение записи в системный буфер ОС

СУБД выделяет необходимую логическую запись, осуществляет форматные преобразования, обусловленные различиями описаний на глобальном и прикладном уровнях, и передает для функциональной обработки приложением данные в рабочий буфер, выделяемый прикладной программой или самой СУБД

Типы, форматы, структуры данных

Варианты размещения данных и их описания

Программа

Описание данных

Данные

В прикладной программе

Программа

Описание данных

Д

а

н

н

ы

е

В файле данных

Программа

Данные

Отдельным набором данных (словарь данных)

Описание данных

Основные отличительные особенности обработки данных, характерные для файловых систем и систем управления базами данных

Основные задачи обработки данных, решаемые на основе концепций баз данных, сводятся к следующим вопросам

Эффективность

Простота

Скорость выборки

Стоимость (сложность) аппаратных средств

Скорость выборки

Сложность процедур доступа

Плотность данных

Время доступа и сложность процедур

Независимость данных

Производительность

Гибкость средств поиска

Избыточность данных

Гибкость поиска

Скорость поиска

Сложность процедур доступа

Простота обслуживания

Создание базы данных — это попытка найти компромисс сразу по нескольким направлениям и сочетаниям нескольких взаимообратных факторов (с точки зрения прагматики)

Соотношение понятий концептуальной и внутренней схем

набор объектов, представляющих интерес для актуальных или предполагаемых пользователей

совокупность функциональных характеристик объектов и особенностей представления информации (например, в числовой или текстовой форме)

Абстрагированное описание предметной области с фиксированной (логической) точки зрения

Отображение концептуальной схемы на физический уровень называют внутренней схемой

Отражение взгляда (точки зрения) отдельного пользователя на концептуальную схему (как вариант восприятия предметной области) называют внешней схемой

Варианты решений трехуровневого представления

Трехуровневая архитектура обеспечивает выполнение основных требований, предъявляемых к системам баз данных

Трехуровневая архитектура имеет следующие достоинства с точки зрения пользователей различных категорий

Идентификация объектов и записей Основные понятия

Атрибутивный способ идентификации (используется для хорошо структурированной информации)

Информация

Объект

предметной области

Свойство

Данные

Запись

Элементы данных

Значение

Атрибутивный способ идентификации (используется для хорошо структурированной информации)

Поиск записей

В качестве ключа, обеспечивающего доступ к записи, можно использовать идентификатор — отдельный элемент данных

Поиск записей

Способы хранения ключа и атрибута

Инвертируемый список

Типология простых (атомарных) запросов:

в запросах типов 2, 3, 6 вместо оператора равенства может быть использован другой оператор сравнения (больше, меньше, не­равно или другие)

Запросы типа 1 выполняются поиском по «прямому» массиву: доступ к записи производится по первичному ключу

Запросы типа 2 выполняются поиском по инвертированному списку: доступ к записи(ям) производится по указателю, выбираемому из списка по значению вторичного ключа. Ответом в этих случаях будет значение атрибута или идентификатора

Запросы типа 3 имеют ответом имя атрибута

Запросы типа 2, 5, 6 относятся к нескольким атрибутам, и в этом случае могут быть построены несколько индексов, облегчаю­щих поиск по этим ключам

Составные условия поиска могут использовать несколько простых условий, обычно связанных логическими (булевыми) операторами

Этапы преобразования представлений предметной области

Модели данных и баз данных

Структуры данных

Линейные структуры

Нелинейные структуры

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

21

17

18

19

20

Дерево

Корень

Листья

Деревья

Сбалансированное дерево в каждом узле имеет одинаковое число ветвей, причем процесс включения новых ветвей в узлы дерева идет сверху вниз, а на каждом уровне дерева — слева направо

Двоичные деревья — это особая категория сбалансированных древовидных структур, в которой допускается не более двух ветвей для одного узла

Пример несбалансированного двоичного дерева

1

Сетевые структуры

2

3

4

5

6

7

8

9

10

11

1

2

3

4

5

Поставщик

Изделие

Пример простой сетевой структуры

Расценка

Заказ

на закупку

Партия

товара

Руководитель

Служащий

руководит

Изделие

Узел

Деталь

Пример сетевой структуры с петлей

ФИО

Год р.

Должность

Кафедра

1

Иванов И.И.

1962

Зав.кафедрой

605

2

Сидоров С.С.

1973

Профессор

605

3

Петров П.П.

1971

Профессор

605

4

Козлов К.К.

1972

Доцент

605

5

Пупкин В.В.

1973

Доцент

605

6

Машкина М.М.

1978

Ст.преподаватель

605

Основные понятия реляционной модели

Первичный ключ

PK

FIO

YEAR

JOB

KAF

Домены

Отношение

Кортежи

Кардинальность

Атрибуты

Степень

Реляционная модель предъявляет к таблицам следующие требования:

1) данные в ячейках таблицы должны быть структурно неделимыми ;

2) данные в одном столбце должны быть одного типа;

3) каждый столбец должен быть уникальным (недопустимо дублирование столбцов);

4) столбцы размещаются в произвольном порядке;

5) строки размещаются и таблице также в произвольном порядке;

6) столбцы имеют уникальные наименования.

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

FIO

Year

Job

Kaf

Сидоров В.А.

1975

Профессор

606

Машкина М.М.

1978

Доцент

605

Дыркин Д.А.

1969

Ассистент

607

Петрова М.И.

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

FIO

Year

Job

Kaf

Петрова М.И.

1965

Ст.преподаватель

607

Сидорчук В.В.

1971

Ассистент

606

Пересечение

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

FIO

Year

Job

Kaf

Пупкина Л.В.

1972

Доцент

605

Иванова И.И.

1974

Доцент

605

Разность

Job

Профессор

Доцент

Ст.преподаватель

Ассистент

Kaf

606

605

Job

Kaf

Профессор

605

Профессор

606

Доцент

605

Доцент

606

Ст.преподаватель

605

Ст.преподаватель

606

Ассистент

605

Ассистент

606

Произведение

Выборка

FIO

Year

Job

Kaf

Сидоров В.А.

1975

Профессор

606

Машкина М.М.

1978

Доцент

605

Дыркин Д.А.

1969

Ассистент

607

Петрова М.И.

1965

Ст.преподаватель

607

Сидорчук В.В.

1971

Ассистент

606

Пупкина Л.В.

1972

Доцент

605

Иванова И.И.

1974

Доцент

605

FIO

Year

Job

Kaf

Машкина М.М.

1978

Доцент

605

Пупкина Л.В.

1972

Доцент

605

Иванова И.И.

1974

Доцент

605

Kaf = 605

Проекция

FIO

Year

Job

Kaf

Сидоров В.А.

1975

Профессор

606

Машкина М.М.

1978

Доцент

605

Дыркин Д.А.

1969

Ассистент

607

Петрова М.И.

1965

Ст.преподаватель

607

Сидорчук В.В.

1971

Ассистент

606

Пупкина Л.В.

1972

Доцент

605

Иванова И.И.

1974

Доцент

605

FIO

Job

Сидоров В.А.

Профессор

Машкина М.М.

Доцент

Дыркин Д.А.

Ассистент

Петрова М.И.

Ст.преподаватель

Сидорчук В.В.

Ассистент

Пупкина Л.В.

Доцент

Иванова И.И.

Доцент

Соединение

FIO

Job

ZP

Сидоров В.А.

Профессор

10000

Машкина М.М.

Доцент

8000

Дыркин Д.А.

Ассистент

4000

Петрова М.И.

Ст.преподаватель

5000

Сидорчук В.В.

Ассистент

4000

Пупкина Л.В.

Доцент

8000

Иванова И.И.

Доцент

8000

Job

ZP

Профессор

10000

Доцент

8000

Ст.преподаватель

5000

Ассистент

4000

FIO

Job

Сидоров В.А.

Профессор

Машкина М.М.

Доцент

Дыркин Д.А.

Ассистент

Петрова М.И.

Ст.преподаватель

Сидорчук В.В.

Ассистент

Пупкина Л.В.

Доцент

Иванова И.И.

Доцент

Деление

Должность

Зав. каф

Профессор

Доцент

Ст. препод.

Ассистент

Должность

Кафедра

Зав. каф

22

Профессор

22

Доцент

22

Зав. каф

23

Доцент

23

Ст. препод.

24

Ассистент

24

Кафедра

22

Кафедра

22

23

Должность

Зав. каф

Профессор

Доцент

Должность

Зав. каф

Профессор

Делимое

Посредник

Делитель

Деление

Физические модели баз данных

Организация данных на машинных носителях

Выбор типа записи — единицы обмена в операциях ввода-вывода

Выбор способа размещения записей в файле и, возможно, метода оптимизации размещения

Выбор способа адресации и метода доступа к записям

Физические модели баз данных

Типы записей

Логическая запись, с которой работает прикладная программа

    • совокупность элементов или агрегатов данных, воспринимаемая и обычно физически отдельно размещаемая в рабочей области памяти прикладной программой как единое целое
    • последовательность записей в логике обработки образует файл

Физическая запись, с которой работает файловая система

    • совокупность данных, которые размещаются в файле обычно на внешнем носителе, и могут быть считаны или записаны как единое целое одной командой ввода-вывода
    • файл — это последовательность физических записей, размещаемых в линейном пространстве носителя, но в общем случае не обязательно в линейном порядке

Способы организации файлов данных

Физическое представление с разделением данных и связей

Ф.И.О.

Год

Должность

Кафедра

Иванов И.И.

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

1944

2

1945

3

1948

4

1950

5

1953

6

1958

7

1959

8

1960

9

1966

10

1976

11

1977

1

Ассистент

2

Доцент

3

Зав.кафедрой

4

Профессор

5

Ст.преподаватель

1

22

2

23

1

Воробьева В.В.

2

Дыркин В.С.

3

Иванов И.И.

4

Козлов К.К.

5

Лютикова Л.Л.

6

Машкина М.М.

7

Петров П.П.

8

Пряников А.К

9

Пупкин В.В.

10

Сидоров С.С.

11

Сидорчук А.В.

12

Соловьев Х.В.

13

Сумкин Ф.Б.

14

Цветкова С.С.

Требования, предъявляемые к базам данных

  • Описания должны быть понятны пользователю, не проектировавшему базу
  • 2. Однажды принятые способы представления данных должны допускать присоединение новых элементов данных без изменения существующих схем данных и прикладных программ

    3. СУБД должны позволять эффективно обрабатывать произвольные запросы к базе данных

Модели и этапы проектирования баз данных

  • Проектирование базы данных — это упорядоченный формализованный процесс создания системы взаимосвязанных описаний, т. е. таких моделей предметной области, которые связывают (фиксируют) хранимые в базе данные с объектами предметной области, описываемыми этими данными
  • Такие описания реализуются, например, в виде схем

Модели и этапы проектирования баз данных

  • Проектирование начинается c анализа предметной области и выявления функциональных и других требований к проектируемой системе
  • Проектирование обычно выполняется человеком (группой людей) — системным аналитиком (а на практике чаще администратором базы данных), которым может быть как специально выделенным сотрудником, так и будущим пользователем базы данных, достаточно хорошо знакомым с машинной обработкой данных

Модели и этапы проектирования баз данных

  • Объединяя отдельные представлений о содержимом базы данных, полученные в результате опроса пользователей, и свои представления о данных, которые могут потребоваться для решения практических задач, системный аналитик сначала создает обобщенное неформальное описание создаваемой базы данных.
  • 2. Это описание, выполненное с использованием естественного языка, математических выражений, таблиц, графов и других средств, понятных всем людям, работающим над проектированием базы данных, называют инфологической моделью

Модели и этапы проектирования баз данных

  • Инфологическая человеко-ориентированная модель практически полностью независима от физических параметров среды хранения данных, которой может быть как память человека, так и ЭВМ
  • Инфологическая модель не изменяется до тех пор, пока какие-то изменения в реальном мире (той его части, которая отнесена к предметной области) не потребуют изменения в модели соответствующего фрагмента описания, чтобы эта модель продолжала адекватно отражать предметную область.

Модели и этапы проектирования баз данных

  • Все модели, кроме инфологической, являются машинно-ориентированными
  • С их помощью СУБД дает возможность программам и пользователям осуществлять доступ к хранимым данным лишь по их именам, не заботясь о физическом расположении этих данных
  • Так как доступ к данным осуществляется с помощью конкретной СУБД, то модели должны быть представлены на языке описания данных этой СУБД. Такое описание, создаваемое по инфологической модели данных, называют даталогической моделью данных.
  • Для размещения и поиска данных на внешних запоминающих устройствах СУБД использует физическую модель данных.

Стадии и объекты процесса проектирования

Пример ER-диаграммы

Сущность, с помощью которой моделируется класс однотипных объектов, определяется как «предмет, который может быть четко идентифицирован».

Сущность должна определяться таким набором атрибутов, который позволял бы различать отдельные экземпляры сущности.

Сущность имеет имя, уникальное в пределах модели. При этом имя сущности — это имя типа, а не некоторого конкретного экземпляра.

Сущности подразделяются на сильные и слабые.

Сущности

Свойства

Cвойство - характер связи свойства с сущностью.

Свойство может быть множественным или единичным

Свойство может быть простым или составным

В некоторых случаях полезно различать базовые и производные свойства

Если наличие некоторого свойства для всех экземпляров сущности не является обязательным, то такое свойство называется условным

Значения свойств могут быть постоянными – статическими или динамическими

Свойство может быть неопределенным

Свойство может рассматриваться как ключевое

Связь определяется как «ассоциация, объединяющая несколько сущностей»

Сущности, объединяемые связью, называются участниками. Степень связи определяется количеством участников связи

Если каждый экземпляр сущности участвует, по крайней мере, в одном экземпляре связи, то такое участие этой сущности называется полным (или обязательным); в противном случае — неполным (или необязательным)

Количественный характер участия экземпляров сущностей (один или многие) задается типом связи (или мощностью связи). Возможны следующие типы: «один к одному» (1:1), «один ко многим» (1:M), «многие ко многим» (М:М).

Отношение «часть — целое» используются для представления составных объектов.

Связи

Сотрудник

Рабочий

Программист

Табельный номер

ФИО

Язык программирования

Прикладной программист

Системный программист

Отношение «род – вид» используется для представления обобщенных объектов.

Сущность может быть расщеплена на два или более взаимоисключающих подтипов, каждый из которых включает общие атрибуты и/или связи.

Сущность, на основе которой определяются подтипы, называется супертипом.

Супертипы

Сущности. Каждый тип сущности в ER-диаграммах представляется в виде прямоугольника, содержащего имя сущности.

В качестве имени обычно используются существительные (или обороты существительного) в единственном числе.

Для отражения сущностей слабых типов используются прямоугольники, стороны которых рисуются двойными линиями.

Нотация ER-диаграмм

Нотация ER-диаграмм

Свойства. Свойства служат для уточнения, идентификации, характеристики или выражения состояния сущности или связи. Свойства отображаются в виде эллипсов, содержащих имя свойства. Эллипс соединяется с соответствующей сущностью или связью линией.

Имена ключевых свойств подчеркиваются

Контур эллипса рисуется двойной линией, если свойство многозначное

Контур эллипса рисуется штриховой линией, если свойство производное

Эллипс соединяется пунктирной линией, если свойство условное

Если свойство составное, то составляющие его свойства отображаются другими эллипсами, соединенными с эллипсом составного

Нотация ER-диаграмм

Связь – это графически изображаемая ассоциация, устанавливаемая между сущностями. Каждый тип связи на ER-диаграмме отображается в виде ромба с именем связи внутри. И качестве имени обычно используются отглагольные существительные.

Стороны ромба рисуют двойными линиями, если это связь сущности слабого типа с сущностью, от которой она зависит.

Участники связи соединены со связью линиями. Двойная линия обозначает полное участие сущности в связи с данной стороны.

Связь может быть модифицирована указанием роли.

Тип связи указывается индексами «1» или «М» над соответствующей линией

В первой нормальной форме ER-диаграммы устраняются повторяющиеся атрибуты или группы атрибутов, т. е. производится выявление неявных сущностей, «замаскированных» под атрибуты.

Во второй нормальной форме устраняются атрибуты, зависящие только от части уникального идентификатора. Эта часть уникального идентификатора определяет отдельную сущность.

В третьей нормальной форме устраняются атрибуты, зависящие от атрибутов, не входящих в уникальный идентификатор. Эти атрибуты являются основой отдельной сущности.

Нормальные формы ER-диаграмм

Пример ER-диаграммы в третьей нормальной форме

Транзакции

Исходное состояние

Исходное состояние

Измененная БД

Нарушение целостности

COMMIT

ROLLBACK

Исходное состояние

Транзакция – неделимая с точки зрения воздействия на БД последовательность операторов манипулирования данными, такая, что:

1) либо результаты всех операторов, входящих в транзакцию, отображаются в БД;

2) либо воздействие всех этих операторов полностью отсутствует.

Модель автоматического выполнения транзакций

INSERT

COMMIT

UPDATE

COMMIT

INSERT

COMMIT

UPDATE

ROLLBACK

Непротиворечивая БД

Непротиворечивая БД

Непротиворечивая БД

Модель управляемого выполнения транзакций

BEGIN TRANSACTION

Исходное состояние БД

UPDATE

SAVE TRANSACTION A

INSERT

ROLLBACK TO A

DELETE

COMMIT TRANSACTION

Точка сохранения А

Cостояние БД после транзакции

Протокол журнализации (и управления буферизацией) действует по правилу Write Ahead Log (WAL) — «пиши сначала в журнал», и состоит в том, что если требуется сохранить во внешней памяти измененный объект базы данных, то перед этим нужно гарантировать сохранение во внешней памяти журнала записи о его изменении.

Журнал транзакций

  • Пользователь не должен осуществлять рестарт транзакций или повторный ввод данных. Восстановление должно проходить на базе транзакции с помощью отмены или изменения отдельных транзакций.
  • 2. Быстрое восстановление данных обеспечивается генерацией данных, используемых для восстановления.

    3. При выполнении процедур автоматизированного восстановления пользователь не должен анализировать состав данных и выбирать сами процедуры.

Общие требования к системе восстановления данных в составе СУБД

Программы ведения системного журнала регистрируют операции над БД: описание соответствующей транзакции, код пользователя, текст входного сообщения, тип изменения БД, адреса изменяемых данных вместе с их значениями до и после изменения.

Программы архивации используются для регулярного получения копий БД для последующего ее восстановления.

Программы восстановления применяются для возврата БД или некоторых ее частей и состояние, предшествующее возникновению отказа. При этом используют архивную копию БД и системный журнал.

Программы отката ликвидируют последствия выполнения оп­ределенной транзакции в БД.

Программы записи контрольных точек и повторного исполнения позволяют ускорить восстановление.

Сервисные программные средства для восстановления

Кладовщик 1

Кладовщик 2

Запрос количества пива на складе для ID_Сорт = 5

Ответ: 30

Запрос количества пива на складе для ID_Сорт = 5

Ответ: 30

Заполнение столбца ID_Сорт таблицы «Пиво» с Количеством 25

Заполнение столбца ID_Сорт таблицы «Пиво» с Количеством 18

Изменение значения столбца Количество и занесение нового значения (5) в строку таблицы

Изменение значения столбца Количество и занесение нового значения (12) в строку таблицы

ID_Сорт … Количество

… … …

5 … 30

… … …

ID_Сорт … Количество

… … …

5 … 5

… … …

ID_Сорт … Количество

… … …

5 … 12

… … …

«Проблема пропавшего изменения»

Кладовщик 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

!! ОШИБКА !!

Кладовщик 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

Проблема «строк-призраков»

Декан ФИТ

Выгрузить данные аттестации!!!

Компьютер деканата

Выгружаем список…

Студент Пупкин

Ура! Я только что переписал аттестацию!

Преображенский Ю.П.

Беги в деканат, расскажи им об этом!

Студент Пупкин

Бягу!!!

Студент бежит…, список выгружается….

Декан ФИТ

Всё! Пупкин не сдал! Отчислить его!

Студент Пупкин

Аааа! Я ж сдал!

Список выгружается еще раз…. Пупкин сдал… но его уже отчислили…

Сериализация транзакций

Метод сериализации транзакций — это механизм их выполнения по такому плану, когда результат совместного выполнения транзак­ций эквивалентен результату некоторого последовательного выпол­нения этих же транзакций.

Между транзакциями могут существовать следующие виды конфликтов:

Транзакция 2 пытается изменять объект, измененный незакончившейся Транзакцией 1 (W-W — конфликт);

Транзакция 2 пытается изменять объект, прочитанный незакончившейся Транзакцией 1 (R-W — конфликт);

Транзакция 2 пытается читать объект, измененный незакончившейся Транзакцией 1 (W-R — конфликт).

Захват и освобождение объекта

Выделяются два основных режима захватов:

совместный режим — S (Shared), означающий разделяемый захват объекта и необходимый для выполнения операции чтения объекта;

монопольный режим — X (exclusive), означающий монопольный захват объекта и необходимый для выполнения операций записи, удаления и модификации.

В контексте реляционных баз данных возможны следующие варианты:

файл - физический (с точки зрения базы данных) объект, область хранения нескольких отношений и, возможно, индексов

таблица - логический объект, соответствующий множеству записей данного отношения;

страница данных - физический объект, хранящий записи од­ного или нескольких отношений, индексную или служебную информацию;

запись - элементарный физический объект базы данных.

Потенциально возможные объекты для захвата

Транзакция — это законченный блок обращений к базе данных и некоторых действий над ней, для которого гарантируется выполнение четырех условий, так называемых свойств ACID (Atomicity, Consistency, Isolation, Durability):

атомарность — операции транзакции образуют неразделимый атомарный блок с определенным началом и концом. Этот блок либо выполняется от начала до конца, либо не выполняется вообще. Если в процессе выполнения транзакции произошел сбой, происходит откат к исходному состоянию

согласованность — по завершении транзакции все задействованные объекты находятся в согласованном состоянии

изолированность — одновременный доступ транзакций различных приложений к разделяемым объектам координируется таким образом, чтобы эти транзакции не влияли друг на друга

долговременностьвсе изменения данных, осуществленные в процессе выполнения транзакции, не могут быть потеряны

Правила ACID

Распределенные базы данных

Основные особенности распределенных баз данных

  • Репликация
  • Удаленные транзакции
  • Распределенные запросы

OLTP (Online Transaction Processing) транзакционная система

обработка транзакций в реальном времени

Способ организации БД, при котором система работает с небольшими по размерам транзакциями, но идущими большим потоком, и при этом клиенту требуется от системы минимальное время отклика.

Типовой запрос к OLTP-системе:

«Каков был уровень импорта товара в январе 2012 года?»

Невозможны аналитические запросы вида:

«Будет ли получена от этого прибыль?»

«Какие клиенты наиболее выгодны с позиции таможенных платежей и почему?»

Использование OLTP

  • OLTP-системы оперативной обработки транзакций, характеризуются большим количеством изменений, одновременным обращением множества пользователей к одним и тем же данным для выполнения разнообразных операций - чтения,  записи, удаления или  модификации данных. Для нормальной работы множества пользователей применяются блокировки и транзакции. Эффективная обработка транзакций и поддержка блокировок входят в число важнейших требований к системам оперативной обработки транзакций.
  • OLTP-системы предназначены для ввода, структурированного хранения и обработки информации (операций, документов) в режиме реального времени.

Системы OLTP характеризуются:

  • поддержкой большого числа пользователей;
  • малым временем отклика на запрос;
  • относительно короткими запросами;
  • короткими транзакциями;
  • участие в запросах небольшого числа таблиц.
  • Критическим для OLTP-приложений является скорость и надежность выполнения коротких операций обновления данных.

Требования к OLTP

  • Сильно нормализованные модели данных;
  • При возникновении ошибки транзакция должна целиком откатиться и вернуть систему к состоянию, которое было до начала транзакции;
  • Обработка данных в реальном времени.

Хранилища данных

SQL

Каково среднее значение промежутка времени между выставлением счета и оплатой его участником ВЭД в текущем и прошедшем году для разных групп участников ВЭД ?».

Данные практически не обновляются, а лишь накапливаются.

Необходима хронологическая упорядоченность данных

При запросах импорта нет нужды учитывать «каждый контейнер», достаточно иметь агрегированную информацию за прошлый сезон/прошлый год/несколько лет

Хранилища данных

OLAP-технология: быстрый многомерный анализ больших объемов информации для использования в широком контексте управления бизнесом

Измерения:

    • Время
    • Продукт
    • География
    • Мера:

    • Объём реализации

Измерения – факторы, влияющие на деятельность предприятия

Меры – количественные показатели деятельности предприятия

Гиперкуб – совокупность измерений и мер

Время

Продукт

Объём реализации

География

Хранилища данных

Основные операции над кубами данных:

  • Сечение
  • Вращение
  • Свертка
  • Детализация

1

2

3

4

5

6

7

8

9

1

4

7

2

5

8

3

6

9

Январь

Февраль

Июнь

Июль

Ноябрь

Декабрь

Год

OLAP (Online Analytical Processing) аналитическая обработка в реальном времени

технология обработки данных, заключающаяся в подготовке суммарной (агрегированной) информации на основе больших массивов данных, структурированных по многомерному принципу

это совокупность концепций, принципов и требований, лежащих в основе программных продуктов, облегчающих аналитикам доступ к данным

Отчеты по запросам

Анализ

Извлечение данных

OLAP Сервер

OLAP Сервер

Вывод

Мониторинг

Администрирование

Хранилище данных

Словарь мета-данных

Витрины данных

Операционные БД

Выделение

Очистка

Преобразование

Загрузка

Обновление

Внешние источники

Инструменты пользователя

OLAP-Механизмы

Хранилище данных

Интеграция и обработка

данных

Источник данных

Промежуточная база данных

Витрины данных

OLAP Витрины данных

OLAP Витрины данных

OLAP-отчёт

Источник данных

Источник данных

Критерии OLAP (FASMI)

  • Fast (Быстрый). Приложение OLAP должно обеспечивать минимальное время доступа к аналитическим данным - в среднем порядка 5 секунд;
  • Analysis (Анализ). Приложение OLAP должно давать пользователю возможность осуществлять числовой и статистический анализ;
  • Shared (Разделяемый доступ). Приложение OLAP должно предоставлять возможность работы с информацией многим пользователям одновременно;
  • Multidimensional (Многомерность);
  • Information (Информация). Приложение OLAP должно давать пользователю возможность получать нужную информацию, в каком бы электронном хранилище данных она не находилась.

Методы аналитической обработки данных в хранилище

Традиционные статистические методы регрессионного, факторного, дисперсионного анализа, анализа временных рядов, а также методы, основанные на искусственном интеллекте (нейронные сети, нечеткую логику, генетические алгоритмы, методы извлечения знаний)

Средства анализа данных в СППР на основе хранилищ данных используются для решения следующих задач:

  • выделение в данных групп сходных по некоторым признакам записей (кластерный анализ);
  • 2) нахождение и аппроксимация зависимостей, связывающих анализируемые параметры или события, а также поиск параметров, наиболее значимых в терминах конкретной задачи;

    3) поиск данных, существенно отклоняющихся от выявленных закономерностей (анализ аномалий);

    4) прогнозирование развития объектов различной природы на основе хранящейся ретроспективной информации об их состоянии в прошлом.