- •Введение
- •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.2. Лингвистическое обеспечение субд
Лингвистическим обеспечением (ЛО) СУБД называются языковые средства для общения пользователей различного уровня с БнД. С помощью ЛО описываются различные компоненты БнД, внешние устройства, взаимодействующие с БнД, а также реализуются обращения к информационным ресурсам и отдельным системным устройствам БнД.
ЛО для различных задач общения включает различные языковые средства:
язык описания схем БД (ЯОС БД);
язык описания внешних моделей пользователей (или подсхем) БД (ЯОПС БД);
язык описания схемы хранения БД (ЯОСХ БД) (или описания физического размещения данных на внешних носителях);
язык манипулирования данными (ЯМД);
языки программирования.
Язык описания схем БД (ЯОС БД) предназначен для описания состава и логической организации БД. Он может быть реализован в виде:
a) расширения языка прикладного программирования;
б) самостоятельного языка;
в) набора операторов вызова в самой СУБД.
Эффективность этого языка в том, что при изменениях программного и технического обеспечения БнД можно не перерабатывать схему БД.
Язык описания внешних моделей пользователей (или подсхем) БД (ЯОПС БД) предназначен для описания данных пользователя и их связей. Он может быть реализован способами, указанными для ЯОС.
Язык описания схемы хранения БД (ЯОСХ БД) (или описания физического размещения данных на внешних носителях) должен определять:
а) буферизацию;
б) перемещение страниц памяти;
в) адресацию;
г) поиск;
д) индексирование;
е) цепочки связей полей.
Язык манипулирования данными (ЯМД) - это набор команд, обеспечивающий:
а) передачу команд или запросов от прикладных программ (ПП) пользователей в СУБД;
б) интерпретацию сообщений СУБД о результатах обработки запросов ПП в СУБД.
ЯМД может быть реализован способами, указанными для ЯОС.
Языки программирования. Обеспечивают создание новых прикладных программ (ПП) пользователей. Это могут быть:
языки СУБД;
алгоритмические языки: Pa, C, VBA и т.п.
В БнД в зависимости от способа реализации ЛО возможны 3 вида СУБД:
с включающим языком;
с базовым языком;
комбинированные.
В качестве включающего языка для СУБД выбирается один из стандартных алгоритмических языков: Pa, С, VBA и т.п. Написанная на включающем языке ПП может инициировать команды ЯМД одним из двух способов:
а) вызовом соответствующих специальных подпрограмм СУБД. В этом случае необходимое редактирование ПП выполняется стандартным образом средствами ОС ЭВМ;
б) использованием специальных операторов - команд ЯМД, включенных в состав операторов используемого алгоритмического языка. В этом случае используемый алгоритмический язык называется расширенным включающим языком.
Для СУБД с базовым языком разрабатывается собственный алгоритмический язык, позволяющий выполнять операции:
манипулирования данными;
арифметической обработки данных;
ввода-вывода и др.
Комбинированные СУБД объединяют возможности СУБД с включающим и базовым языками.
3.3. Независимость прикладных программ от данных
В основе обеспечения независимости ПП от данных лежит то, что пользователь должен получать информационное содержание данных, не вникая в детали их представления и расположения в памяти системы. Независимость прикладных программ (или программ пользователей) (ПП) от данных в соответствии с трехуровневым представлением информационных объектов обеспечивается средствами СУБД.
В условиях существенных изменений в БД специальные средства СУБД при написании ПП призваны обеспечить:
возможность исключить отслеживание:
логики методов доступа,
способов хранения данных,
форматов их представления.
Это позволяет избежать необходимости коррекции исходных текстов ПП и их перекомпиляции:
при развитии системы,
при реализациях АБД мероприятий по увеличению эффективности обслуживания пользователей за счет изменения методов хранения данных в БД, путей доступа к данным, структуры и форматов данных, связей между ними.
В результате прикладные программисты освобождаются от необходимости постоянного обновления ПП для поддержания их в рабочем состоянии, что обеспечивает:
сокращение вероятности ошибок,
экономию ресурсов системы,
исключение затрат времени и средств на дополнительные работы по программированию,
повышение мобильности информационных систем.
Существующие СУБД обеспечивают различную степень независимости ПП от данных, хранимых в БД. Поэтому АБД при выполнении работ по изменению БД должен контролировать свои действия, ориентируясь на тот уровень независимости, который обеспечивается используемой СУБД.