
- •Информационное обеспечение систем управления
- •1. Информационные системы и базы данных (лекция 1)
- •1.1. Понятие информационной системы, информационное обеспечение
- •1.2. Понятие базы данных
- •1.3. Понятие системы управления базами данных
- •1.3.1. Обобщенная архитектура субд
- •Предметная область
- •1.3.2. Достоинства и недостатки субд
- •1.4. Категории пользователей базой данных
- •1.4.1. Общая классификация пользователей бд
- •1.4.2. Администратор базы данных
- •1.4.3. Разделение функций администрирования
- •2. Проектирование баз данных (лекция 2)
- •2.1. Жизненный цикл информационной системы
- •2.2. Подходы и этапы проектирования баз данных
- •2.2.1. Цели и подходы к проектированию баз данных
- •«Описание предметной области» ↔ «схема внутренней модели базы данных».
- •2.2.2. Этапы проектирования баз данных
- •3. Архитектуры субд (лекции 3-4)
- •3.1. Телеобработка
- •3.2. Файловый сервер
- •3.3. Технология «клиент/сервер»
- •3.4. Понятие независимости данных
- •4. Инфологическое проектирование базы данных (лекции 5-6)
- •4.1. Модель «сущность-связь»
- •4.2. Классификация сущностей, расширение er-модели
- •4.3. Проблемы er-моделирования
- •5. Выбор субд (лекция 7)
- •5.1. Метод ранжировки
- •5.2. Метод непосредственных оценок
- •5.3. Метод последовательных предпочтений
- •5.4. Оценка результатов экспертного анализа
- •6. Даталогические модели данных (лекции 8-9)
- •6.1. Иерархическая модель
- •6.2. Сетевая модель
- •6.3. Реляционная модель
- •6.4. Достоинства и недостатки даталогических моделей
- •7. Физическая организация данных в субд (лекции 10-11)
- •7.1. Списковые структуры
- •7.1.1. Последовательное распределение памяти
- •7.1.2. Связанное распределение памяти
- •7.2. Модель внешней памяти
- •7.3. Методы поиска и индексирования данных
- •7.3.1. Последовательный поиск
- •7.3.2. Бинарный поиск
- •7.3.3. Индекс - «бинарное дерево»
- •7.3.4. Неплотный индекс
- •7.3.5. Плотный индекс
- •3.3.6. Инвертированный файл
- •8. Внутренний язык субд (лекции 12-13)
- •8.1. Теоретические языки запросов
- •8.1.1. Реляционная алгебра
- •8.1.2. Реляционное исчисление кортежей
- •8.1.3. Реляционное исчисление доменов
- •8.1.4. Сравнение теоретических языков
- •8.2. Определение реляционной полноты
- •8.3. Введение в язык sql
- •8.3.1. Краткая история языка sql
- •8.3.2. Структура языка sql
- •8.3.3. Типы данных sql
- •9. Распределенные базы данных и субд (лекция 14)
- •9.1. Основные определения, классификация распределенных систем
- •9.2. Преимущества и недостатки распределенных субд
- •9.3. Функции распределенных субд
- •9.4. Архитектура распределенных субд
- •9.5. Разработка распределенных реляционных баз данных
- •9.5.1. Распределение данных
- •9.5.2. Фрагментация
- •9.5.3. Репликация
- •9.5.3.1. Виды репликации
- •9.5.3.2. Функции службы репликации
- •9.5.3.3. Схемы владения данными
- •9.5.3.4. Сохранение целостности транзакций
- •9.5.3.5. Моментальные снимки таблиц
- •9.5.3.6. Триггеры базы данных
- •9.5.3.7. Выявление и разрешение конфликтов
- •9.6. Обеспечение прозрачности
- •9.6.1. Прозрачность распределенности
- •9.6.2. Прозрачность транзакций
- •9.6.3. Прозрачность выполнения
- •9.6.4. Прозрачность использования
- •10. Защита и секретность данных. (лекции 15-16)
- •10.1. Понятие информационной безопасности. Основные составляющие
- •10.1.1. Понятие информационной безопасности
- •10.1.2. Основные составляющие информационной безопасности
- •10.2. Распространение объектно-ориентированного подхода на информационную безопасность
- •10.2.1. Основные понятия объектно-ориентированного подхода
- •10.2.2. Применение объектно-ориентированного подхода к рассмотрению защищаемых систем
- •10.3. Наиболее распространенные угрозы
- •10.3.1. Основные определения и критерии классификации угроз
- •10.3.2. Наиболее распространенные угрозы доступности
- •10.3.3. Некоторые примеры угроз доступности
- •10.3.4. Основные угрозы целостности
- •10.3.5. Основные угрозы конфиденциальности
- •10.4. Административный уровень информационной безопасности
- •10.4.1. Основные понятия
- •10.4.2. Политика безопасности
- •10.4.3. Программа безопасности
- •10.5. Управление рисками
- •10.5.1. Основные понятия
- •10.5.2. Подготовительные этапы управления рисками
- •10.5.3. Основные этапы управления рисками
- •10.6. Процедурный уровень информационной безопасности
- •10.6.1.Основные классы мер процедурного уровня
- •10.6.2. Управление персоналом
- •10.6.3. Физическая защита
- •10.6.4. Поддержание работоспособности
- •10.6.5. Реагирование на нарушения режима безопасности
- •10.6.6. Планирование восстановительных работ
- •10.7. Основные программно-технические меры
- •10.7.1. Основные понятия программно-технического уровня информационной безопасности
- •10.7.2. Особенности современных информационных систем, существенные с точки зрения безопасности
- •10.7.3. Архитектурная безопасность
7.3.5. Плотный индекс
Пусть по каким-либо причинам невозможно упорядочить основной файл F по ключу К. Построим дополнительный файл FD по правилу [17]:
1) записи файла FD имеют формат FD(K, Р), где К – поле, принимающее значение ключа записи основного файла F; Р – указатель на эту запись;
2) записи файла FD упорядочены по полю К.
Полученный файл называется плотным индексом. Он строится почти так же, как и неплотный индекс. Различие заключается в том, что для каждого значения ключа К в файле FD имеется отдельная запись, а в неполном индексе - только для значения ключа первой записи блока.
Пример плотного индекса представлен на рис. 3.11. Над плотным индексом можно также построить В-дерево.
Рис. 3.11. Пример плотного индекса
3.3.6. Инвертированный файл
В рассмотренных выше способах индексирования данных расчет делался на поиск по значению ключевого поля. Но часто требуется осуществить выборку данных по значениям неключевых полей. В этом случае неключевые поля также должны быть проиндексированы (т.е. для каждого из них строится особый индекс). Индексы, построенные для неключевых полей используются при организации многоаспектного поиска. Широко распространены на практике методы многоаспектного поиска по инвертированным файлам. Пусть имеется основной файл F, упорядоченный либо неупорядоченный по значениям вторичного ключа Кi. Строится дополнительный файл FDi по правилу [17]:
1) записи файла FDi имеют формат FDi(Ki, P) где Ki – поле, принимающее значение вторичного ключа Кi записи основного файла; Р – указатели на записи основного файла F, имеющие данное значение вторичного ключа Кi;
2) записи файла FDi упорядочены по полю Ki.
Построенный дополнительный файл FD. Называется инвертированным. В этом случае об основном файле F говорят, что он инвертирован по полю Кi. Количество записей в инвертированном файле FDi определяется количеством значений вторичного ключа Кi в записях основного файла F. Пример инвертированного файла по полю К2 для основного файла F приведен на рис. 3.12. Рассмотренный способ организации инвертированного файла предполагает использование записей переменной длины. Инвертированный файл можно организовать и с помощью записей фиксированной длины, если в каждой записи инвертированного файла выделять фиксированное число полей для указателей Р. Если фиксированного числа поле для некоторых записей окажется недостаточно, то организуется еще дополнительный служебный файл для хранения неуместившихся цепочек указателей.
Рис. 3.12. Пример инвертированного файла
Поскольку записи инвертированного файла упорядочены по значению ключа Ki, то для поиска записей можно использовать любой из рассмотренных выше методов поиска в упорядоченном файле (например, бинарный поиск или В-дерево). Чтобы выполнить многоаспектный поиск по n ключам, необходимо построить п инвертированных файлов [17].
8. Внутренний язык субд (лекции 12-13)
Для работы с данными в СУБД предусмотрен внутренний язык, состоящий из двух частей: языка определения данных (Data Definition Language – DDL) и языка манипулирования данными (Data Manipulation Language – DML).
Эти языки еще называются подъязыками данных, т.к. в них отсутствуют конструкции для выполнения всех вычислительных операций, обычно используемых в языках программирования высокого уровня. Во многих СУБД предусмотрена возможность внедрения операторов подъязыка данных в программы на языках высокого уровня. В этом случае язык высокого уровня принято называть базовым или включающим языком.
Язык определения данных (ЯОД, DDL) - формальный закон, используемый в некоторой модели данных для определения структуры, баз данных [12].
Результат компиляции операторов ЯОД – набор таблиц» хранимых в особых файлах, называемых словарями данных или системными каталогами.
Посредством ЯОД обычно определяются подразделения данных, типовые структуры и правила их композиции, присваиваются имена данным, определяются типы элементов данных посредством задания присущих им свойств, учреждаются ключи базы данных, а также определяются отношения между данными, упорядоченность данных внутри их совокупностей, правила проверки достоверности данных и замки защиты от неправомочного использования их.
Обычно в ЯОД не определяются техника запоминания или поиска данных на физических носителях и другие особенности их физической организации, что обусловлено одной из основных концепций базы данных – независимостью логической структуры данных от физических особенностей их хранения.
ЯОД обычно полностью независим от языка манипулирования данными. Следовательно, определение данных в базах данных независимо от программ обработки, что является второй важной концепцией использования баз данных.
Язык манипулирования данными (ЯМД, DML) – совокупность языковых средств для организации доступа к данным в некоторой модели данных и в соответствующих ей СУБД [12].
Может выступать в роли языка запросов, прямо обеспечивающего информационное обслуживание пользователей баз данных, или быть расширением некоторого языка программирования, называемого базовым (включающим) языком, с конструкциями и понятиями которого ЯМД должен быть согласован. Операторы ЯМД позволяют извлекать данные из баз данных, создавать или модифицировать последние.
К основным операциям манипулирования данными относятся:
вставка в БД новых сведений;
модификация сведений, хранимых в БД;
извлечение сведений, содержащихся в БД;
удаление сведений на БД.
ЯМД отличаются базовыми конструкциями манипулирования данными. Отличают два их типа:
а) процедурные ЯМД;
б) непроцедурные (декларативные) ЯМД.
С помощью, процедурного языка пользователь (программист) указывает на то, кол; можно получить необходимые данные из определенного набора данных. Т.е. пользователь должен определить все операции доступа К данным, чтобы получить результат. При этом предполагается знание пользователем деталей внутренней , организации структур данных в БД.
С помощью непроцедурных языков пользователь указывает какие данные ему нужны, без определения способа их получения. Данный подход освобождает пользователя от необходимости знать подробности внутренней организации БД. Работа пользователя обретает некоторую независимость от данных.
В общем случае язык запросов – часть ЯМД, высокоуровневый узкоспециализированный язык, предназначенный для удовлетворения различных требований по выборке данных из БД.