- •Введение
- •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. Методические аспекты реализации нормализации
- •Контрольные вопросы
Запросы к бд
Запросы бывают двух видов:
простые;
комбинированные (или сложные).
Простые запросы определяются формулой:
А(Е) qi V,
где А - атрибут; Е - объект предметной области; V - значение атрибута, qi – оператор отношения между А и V. Оператор отношения qi может принимать значения из множества:
Q = {=, <>, <=, >=, <, >}.
В соответствии с формулой (3.4) возможны шесть типов простых запросов. Рассмотрим их на примере для БД из предметной области “Поставки комплектующих изделий ( КИ )”. Формулировки запросов приведены на . БД “Поставки комплектующих изделий (КИ)” содержит объемы поставок на автопредпрятие по каждому КИ за каждый месяц года, т.е. ее атрибутами являются месячные поставки различных КИ.
№ |
Тип |
Формулировка запроса |
Пример |
1 |
A(E)=? |
Каково значение атрибута А объекта Е? |
Каков объем поставок карбюраторов за май? |
2 |
A(?)qi V |
Какой объект (или объекты) имеет значение атрибута А в отношении qi к значению V? |
Поставки каких КИ за март превысили 1000 штук? |
3 |
?(E) qi V |
Какой атрибут (или атрибуты) объекта Е имеет значение в отношении qi к значению V? |
За какие месяцы поставки поршней превысили 850 штук? |
4 |
?(E)=? |
Каковы значения всех атрибутов объекта E? |
Сообщить все атрибуты и их значения по поставкам радиаторов. |
5 |
A(?)=? |
Каковы значения атрибута А всех объектов. |
Сообщить объемы поставок всех КИ за июль. |
6 |
?(?) qi V |
Перечислить все атрибуты всех объектов, имеющих значение в отношении qi к значению V? |
Сообщить месяцы поставки и виды КИ, объемы поставок которых были более 800 штук. |
Рис. 0.18
Комбинированные или сложные запросы - это запросы, в которых используется несколько различных условий, сформированных из совокупностей простых запросов, соединенных логическими операторами из множества LO:
LO = {OR (или); AND (и); NOT (нет)}.
Пример.
ZS = (Z1) LO1 (Z2) LO2 (Z3) LO3 …,
где ZS – сложный запрос; Z1, Z2, Z3,… - простые запросы, определяемые формулой (3.4), LO1, LO2, LO3… - логические операторы из множества (3.5)
При реализации сложных запросов порядок выполнения операторов можно изменять круглыми скобками.
В заключение отметим, что сложные запросы могут формулироваться и по нескольким объектам.
3.5. Схема реализации запроса в БнД
В БнД посредством СУБД несколько пользователей могут одновременно обращаться с запросами к БД в соответствии со своими ПП. Допустим, некоторая ПП1 () посредством ЯМД делает, например, запрос (1) к СУБД на чтение записи. При этом одновременно сообщается имя программиста, затребовавшего эту запись, а также значение ключа записи.
Для реализации этого запроса СУБД вызывает в свое распоряжение (2) подсхему ПП1 из БД подсхем (БД ПС) и ищет в ней описания данных, на которые выдан запрос. Затем СУБД вызывает (3) из БД схем (БД С) в свое распоряжение схему БД и определяет по ней типы необходимых логических данных. После этого СУБД просматривает (6) описание физического размещения - схему хранения данных (БД СХ), определяет, какую физическую запись считать. В результате СУБД дополняет запрос от ПП1 соответствующей информацией из БД ПС, БД С и БД СХ.
Далее СУБД выдает ОС ПК команду чтения (5) требуемой записи. ОС обеспечивает (6) чтение записи из физической памяти ПК (БД) и передачу (7) искомых данных (8) в системный буфер (СБ) блока данных пользователей (БлДП). СБ используется одновременно несколькими ПП, обслуживаемыми СУБД, причем размер СБ определяет АБД. После этого СУБД сравнивает (9) подсхему ПП1 и схему БД, выделяя ту логическую запись, которая запрошена ПП1. При необходимости реализуется преобразование данных.
Затем инициируется (9) пересылка данных (10) из СБ в рабочую область ПП1 (РОПП1). Здесь СУБД формирует (11) данные результата выполнения запроса ПП1 (ДРВЗПП1). При этом полученные из БД данные обрабатываются средствами включающего или базового языка и используются (12) ПП1. Под управлением (13) СУБД информация о результатах выполнения запроса (ИРВЗ) вместе с сообщениями об ошибках через ячейку связи (ЯС) передается (14) в ПП1.
Данные, наряду с извлечением из БД, могут также и помещаться в нее. Этот процесс аналогичен рассмотренному, но информационные потоки (8) и (10) будут иметь обратные направления.
При необходимости реализовать операцию модификации записи СУБД считывает и модифицирует ее в рабочей области РО, а затем модифицированные данные записывает обратно в БД.
ПП1 ППn БД
ПС БД
С БД
СХ РОПП1 ДРВЗПП1 СБ БлДП
ЯС ИРВЗ ОС
ПК
БД 14 1 2 3 4 5 6 7 8 9 10 11 12 13
Рис. 0.19
3.6. Способы обработки данных
В информационных системах используется три варианта обработки данных:
Централизованная
распределенная
комбинированная.
Рассмотрим их особенности.
Централизованная обработка данных
Централизованная обработка реализует операции по манипулированию данными на базе одного центра, называемого файл-сервером. Централизация обработки данных устраняет ряд проблем информационных систем, к которым относятся:
избыточность данных;
противоречивость данных;
несвязность данных.
При централизации комплексно стандартизируется представление данных, эффективно решается паролирование доступа и т.п.
Важными факторами централизации являются:
данные могут эффективно использоваться централизованными приложениями: например, в системе снабжения, производственном управлении, бухгалтерском учете и т.п.;
пользователям во всех подразделениях необходимы одни и те же данные, причем они часто обновляются;
система обрабатывает запросы, для которых данные, возникающие в различных подразделениях, рассматриваются в логическом плане как единое целое;
большой объем данных общего назначения;
защита данных.