- •Введение
- •1. Концепция информационных систем
- •1.1. Информация и данные предметных областей
- •1.2. Структура банка данных
- •1.2.1. База данных
- •1.2.2. Система управления базами данных
- •1.2.3. Словарь данных
- •1.2.4. Администратор базы данных и его функции
- •1.3. Контрольные вопросы
- •2. Инфомационное моделирование предметных областей для баз данных
- •2.1. Отображение явлений реального мира данными
- •2.2. Инфологическое моделирование по
- •2.3. Трехуровневое представление информационных объектов
- •2.4. Структурные элементы для моделирования данных
- •2.5. Ключи бд
- •2.6. Интеграция полей бд в отношения
- •2.7. Требования интеграции полей в отношения
- •2.8. Обобщенная структура модели данных в бнд
- •2.9. Er-модель бд
- •2.10. Формирование связей сущностей
- •Способ 1. Определение связи сущностей введением дополнительной сущности
- •Способ 2. Определение связей сущностей добавлением в тип сущности общих атрибутов
- •2.11. Бинарные отношения сущностей
- •2.12. Формы представления структур данных
- •2.13. Организация систем бд
- •2.14. Средства поддержки бд
- •2.15. Виды моделей данных для бд
- •Иерархическая модель данных
- •Сетевая модель данных
- •Реляционная модель данных
- •Контрольные вопросы
- •3. Системы управления базами данных
- •3.1. Функции и состав универсальной субд
- •3.2. Лингвистическое обеспечение субд
- •3.3. Независимость прикладных программ от данных
- •3.4. Операции над данными
- •Селекция данных
- •Обработка данных
- •Запросы к бд
- •3.5. Схема реализации запроса в БнД
- •Распределенная обработка данных
- •Комбинированная обработка данных
- •3.7. Целостность и ограничения целостности данных
- •3.8. Защита данных в бд
- •Контрольные вопросы
- •4.2.2. Вторичный ключ
- •4.3. Функциональные и многозначные зависимости
- •4.3.1. Функциональные зависимости
- •X y (X влечет y).
- •4.3.2. Аксиомы функциональных зависимостей
- •Контрольные вопросы
- •5. Реляционная алгебра
- •5.1. Операции над отношениями
- •5.2. Оператор "объединение" (union)
- •5.3. Оператор "вычитание" (difference)
- •5.4. Оператор "пересечение" (intersection)
- •5.5. Оператор "проектирование" (proj)
- •5.6. Оператор "выбор" (sel)
- •Комбинированный запрос с операторами proj и sel
- •5.7 Оператор "соединение" (join)
- •Запрос с соединением по одному полю
- •Алгоритм реализации
- •Запрос с соединением по нескольким полям
- •Алгоритм реализации
- •Оператор "соединение по условию"
- •5.8. Оператор "умножение" (product)
- •Запрос с оператором умножения
- •Алгоритм реализации
- •5.9. Оператор "деление" (division)
- •5.10. Оптимизация алгоритмов реализации запросов
- •Контрольные вопросы
- •6. Нормализация реляционных бд
- •6.1. Задачи нормализации Бд
- •6.2. Первая нормальная форма
- •6.3. Декомпозиция реляционных таблиц
- •Проблема дублирования, операторы реляционной алгебры для декомпозиции и объединения таблиц
- •Присоединенные записи
- •Теорема Хита
- •Критерий полной декомпозиции с исключением дублирования
- •6.4. Вторая нормальная форма
- •6.5. Третья нормальная форма
- •6.6. Экстранормализационные формы
- •Нормальная форма Бокса-Кодда
- •Четвертая нормальная форма
- •Пятая нормальная форма
- •6.7. Методические аспекты реализации нормализации
- •Контрольные вопросы
3.4. Операции над данными
Главная задача БнД – это формирование информации из БД по запросам пользователей.
Запросомк БД называется обращение к БД с посредством языка запросов, являющегося подмножеством ЯМД выбранной СУБД, с целью получения в требуемой форме конкретной совокупности данных о состоянии предметной области на определенный момент времени.
Для решения этой задачи БнД наделяется определенными динамическими свойствами. Динамические свойства моделей данных определяются множеством операций, т.е. допустимых действий над некоторой реализацией БД с целью перевода ее из одного состояния в другое. Операции реализуются на основе языка манипулирования данными (ЯМД СУБД).
В БнД предусмотрены следующие виды операций, поддерживаемые средствами СУБД:
идентификация данных и определение его позиции в БД;
выборка (чтение) данных из БД;
включение (запись) данных в БД;
удаление данных из БД;
модификация данных в БД.
С помощью команд ЯМД реализуется навигация в БД, т.е. передвижение от одного данного к другому по соответствующим связям между ними, реализованным в БД. Эти связи определяются датологической моделью БД.
Реализация любой операции над данными включает два этапа:
селекция данных;
обработка данных, т.е. действие над данными, определяемое характером задания.
Селекция данных
Для селекции, т.е. выбора данных из БД возможно использование различных критериев:
по логической позиции данных;
по значениям данных;
по взаимосвязям данных.
Первый способ базируется на упорядочении данных в памяти системы. Это позволяет селектировать данное, находящееся на первой, следующей, предыдущей, n-й или последней позиции. Этот тип селекции называется еще селекцией посредством “текущей”. В качестве текущих используются специальные дополнительные объекты - “индикаторы текущего состояния”. СУБД при выполнении каждой ПП автоматически контролирует индикаторы текущего состояния. Количество и состав индикаторов определяется подсхемой, используемой ПП. Таким образом, функция индикатора - указание некоторого экземпляра записи в БД.
При селекции по значениям данных критерий селекции может формироваться на основе условий отбора или на основе операторов алгебры логики.
Если в МД имеются взаимосвязи данных, то возможна реализация селекции данных по этим связям. Например, в БД “Отдел” с записями:
(3.1) Отдел(№Отдела, Корпус, НачальникОтдела)
(3.2) Служащий(№Таб, ФИО, ГодРождения, Образование)
РаботаетВ(№Таб, №Отдела)
между сущностями Отдел и Служащий реализована связь РаботаетВ. Тогда допускается селекция с использованием этой связи. В результате можно, например, селектировать места расположения тех отделов, в которых работают служащие, возраст которых не более 27 лет. При этом, естественно, используются имеющиеся в структурах записей соответствующие атрибуты.
Обработка данных
Обработка данных осуществляется на основе процедур БД. Процедурой БД называется последовательность операций, позволяющая реализовать определенный алгоритм обработки данных для получения искомого результата.
Процедура является единой, т.е. неделимой, макрооперацией. Возможность применения процедур существенно расширяет динамические свойства моделей данных.
Пример.
В БД (3.1)-(3.3) определить количество служащих в возрасте не более 27 лет.
Для решения этой задачи необходимо сначала выбрать требуемый контингент, а затем выполнить операцию сравнения.
Во многих процедурах алгоритмы обработки данных зависят от значений данных и управляются этими значениями.