
- •Предисловие
- •1. Модели данных
- •1.1. Введение в базы данных
- •1.1. Структура интегрированного производственного комплекса
- •1.2. Трехуровневое представление интегрированной базы данных
- •1.3. Взаимодействия с бд
- •1.2. Концептуальное (семантическое) моделирование баз данных
- •1.1 1. Концептуальная модель бд в нотации п. Чена
- •1.13. Фрагмент концептуальной модели проектной организации (idef1x)
- •1.14. Фрагмент концептуальной модели в нотации Баркера
- •1.3. Логическое моделирование данных
- •1.15. Иерархическая модель данных
- •1.16. Организация иерархической модели
- •1.17. Иерархическая модель, поддерживаемая субд инес
- •1.18. Сетевая модель данных
- •1.19 . Организация сетевой модели
- •1.20. Таблица реляционной базы данных
- •1.21. Концептуальная модель тестовой базы данных
- •1.22. Физическая модель тестовой базы данных
- •2. Системы управления базами данных
- •2.1. Функции субд
- •2.1. Организация индексов
- •2 .2. Схема выполнения запроса
- •2.2. Унифицированный язык для работы с бд sql
- •2.3. Тенденции развития субд
- •3. Автоматизированные информационные системы
- •3.1. Сетевая обработка данных
- •3.1. Варианты организации взаимодействий в архитектуре “клиент-сервер”
- •3.2. Схема с централизованными данными
- •3.3. Иерархическая схема распределения данных
- •3.4. Схема с расщепленными данными
- •3.5. Схема с разделенными данными
- •3.6. Схема с реплицированными данными
- •3.2. Виды автоматизированных информационных систем
- •3.7. Структура документальной ипс
- •3.8. Варианты организации справочников в ипс
- •3.9. Функциональная диаграмма управления движением документов в edms-системе
- •3.10. Структура корпоративной информационной системы
- •3.11. Вариант упрощенного гиперкуба для анализа поставок деталей
- •3.12. Схема типа «звезда» аналитической витрины по поставкам деталей
- •3.13. Фрагмент сформированного отчета по поставкам деталей
- •3.3. МетодЫ анализа и проектирования информационных систем
- •3.14. Изображение блока
- •3 .15. Изображение дуги
- •3.16. Варианты объединения дуг
- •3.17. Функциональный блок и интерфейсные дуги
- •3.18. Декомпозиция диаграмм
- •3.28. Диаграммы потоков данных в нотации Yourdon / De Marco
- •3.29. Диаграммы потоков данных в нотации ssadm
- •3.30. Диаграммы потоков данных в нотации Gane/Sarson
- •3.31. Контекстная dfd- диаграмма
- •3.33. Ошибка, связанная с расщеплением потоков данных
- •3.34. Ошибка, связанная с использованием циклов
- •3.35. Ошибка, связанная активацией процессов входными сигналами
- •3.36. Пример диаграммы классов
- •3.37. Пример диаграммы объектов
- •3.38. Пример диаграммы компонентов
- •3 .39. Пример диаграммы развертывания
- •153003, Г. Иваново, ул. Рабфаковская, 34
2.1. Организация индексов
В индексном методе доступа алгоритм поиска включает следующие шаги:
поиск номера страницы по значению ключа;
прямой доступ к соответствующей странице;
последовательный просмотр записей страницы при поиске искомой.
Для работы с индексами применяется метод половинного деления. Возможно использование бинарных деревьев. Индексы используются как для быстрого доступа к записям, так и для упорядоченной обработки информации по индексируемому полю. Они могут быть составными. При этом поиск осуществляется по любому количеству ключей, входящих в состав индекса. Поддерживается так называемое мультисписковое индексирование, т.е. создается столько индексов, сколько необходимо для эффективной работы с базой данных.
СУБД первого поколения базировались на последовательном, индексном и прямом методах доступа ОС. В системах второго поколения (псевдореляционных) файл базы данных соответствует одной таблице, по которой возможно мультисписковое индексирование посредством отдельных индексных файлов. Поиск в реляционно-полных СУБД также основан на мультисписковом индексировании. В единой БД наряду с таблицами, присоединенными процедурами, ограничениями целостности и другими элементами хранятся индексы.
Следует отметить, что системы управления базами данных, как правило, поддерживают уникальные модели данных. Так модель данных СУБД Informix основана на следующих элементах:
Chank – непрерывная область дисковой памяти, которая отводится серверу для использования; это неструктурированный диск/файл UNIX;
Page – страница размером 2 или 4 Кб; за одно обращение к диску считывается одна страница (физический блок);
Extent – совокупность страниц (Кб), которая выделяется под Dbspace;
Dbspace – логическая единица памяти, обеспечивающая возможность регулирования месторасположения данных; объединяет несколько баз данных;
Database – база данных;
Table – таблица;
Tbspace – объединение страниц одной таблицы для обеспечения эффективной обработки информации.
2.1.2. Управление базой данных
Защита базы данных
БД представляет собой важный корпоративный ресурс, который должен быть надлежащим образом защищен. Защита базы данных – это обеспечение ее охраны против любых предумышленных и непредумышленных угроз с помощью различных компьютерных и некомпьютерных средств. К угрозам относятся: похищение и фальсификация данных; утрата конфиденциальности; нарушение неприкосновенности любых данных; утрата целостности; потеря доступности.
Перечислим основные мероприятия, связанные с защитой БД.
Авторизация пользователей – это предоставление прав (или привилегий), позволяющих владельцу иметь законный доступ к системе. Каждому пользователю системный администратор присваивает уникальный идентификатор, с которым связан пароль. Некоторые СУБД поддерживают списки идентификаторов, отличные от ОС. Привилегии на доступ к отдельным объектам БД задают на языке SQL (команды REVOKE, GRANT).
Представление (подсхема) – динамический результат одной или нескольких реляционных операций с базовыми отношениями в целях создания некоторого иного отношения. Это виртуальное отношение, которое реально в базе не существует и которое позволяет скрыть от пользователя часть БД.
Резервное копирование и восстановление – это периодически выполняемая процедура получения копии БД и ее файла журнала (логического журнала) на носителе, сохраняемом отдельно от системы. Ведение журнала – это процедура создания и обслуживания файла журнала, содержащего сведения обо всех изменениях, внесенных в БД с момента создания последней резервной копии, и предназначенного для обеспечения эффективного восстановления системы в случае ее отказа.
Шифрование – это кодирование данных с использованием специального алгоритма, в результате чего данные становятся недоступными для чтения любой программой, не имеющей кода дешифрования.
Управление транзакциями
Транзакция – это действие или серия действий, выполняемых пользователем или прикладной программой, которые осуществляют доступ к БД или изменяют содержимое БД. Это логическая единица работы, выполняемая над БД. Она переводит БД из одного согласованного состояния в другое. В случае успешного завершения результаты транзакции фиксируются в БД (COMMIT) или отменяются (ROLLBACK). Следует отметить, что СУБД не обладает возможностью определять, какие изменения должны быть восприняты как единое целое. Если это необходимо, то транзакция оформляется с помощью соответствующих команд SQL.
Для фиксации хода выполнения транзакций в базе данных СУБД использует специальный журнал, который называют логическим журналом. Он содержит сведения о всех обновлениях, выполненных в базе данных. Записи о транзакциях в журнале содержат:
идентификатор транзакции;
тип записи журнала (начало транзакции, операции вставки, обновления, удаления, отмена или фиксация транзакции);
идентификатор элемента данных, вовлеченного в операцию обработки;
копию элемента до операции; копию после операции;
служебную информацию (указатели на предыдущую и следующую запись);
записи контрольных точек.
Помещаемая в файл журнала информация предназначена для использования в процессе восстановления системы после отказа. Одно из основных затруднений в этой схеме состоит в том, что, когда происходит отказ, может отсутствовать какая-либо информация о том, насколько далеко назад следует “откатиться” в файле журнала, чтобы начать повторный прогон уже завершенных транзакций. В результате может оказаться, что повторный прогон будет выполнен для тех транзакций, которые уже были окончательно зафиксированы в базе данных. Для ограничения объема поиска и последовательной обработки информации в файле журнала используется технология контрольных точек.
Контрольная точка – момент синхронизации между базой данных и журналом регистрации транзакций. В этот момент все буфера принудительно записываются во вторичную память системы. Контрольные точки организуются через установленный интервал времени и включают выполнение следующих действий: запись всех имеющихся в оперативной памяти записей журнала во вторичную память; запись всех модифицированных блоков в буферах базы данных во вторичную память; помещение в файл журнала записи контрольной точки.
В журнале запись контрольной точки содержит идентификаторы всех транзакций, которые были активны в момент создания этой контрольной точки. После возникновения отказа файл журнала просматривается в целях обнаружения последней из транзакций, начавших свою работу до момента создания последней контрольной точки. Любая более ранняя транзакция будет зафиксирована в базе данных, это значит, что ее изменения были перенесены на диск в момент создания последней контрольной точки.
Управление параллельностью – это процесс организации одновременного выполнения в БД различных операций, гарантирующих исключение их взаимного влияния друг на друга. Блокировка – это процедура, используемая для управления параллельным доступом к данным. Когда некоторая транзакция получает доступ к данным, механизм блокировки позволяет отклонить попытки получения доступа к этим же данным со стороны других транзакций.
Обработка запросов
За оптимальное выполнение запросов, поступающих на сервер, отвечает оптимизатор запросов (рис. 2.2). Он выбирает из нескольких вариантов оптимальный план выполнения запроса, в котором в виде дерева определены порядок перебора индексов и тип соединения таблиц на каждом шаге выполнения запроса.