- •Введение
- •Глава 1. Проектирование баз данных
- •1.1. История развития баз данных и субд
- •1.2. Введение в субд
- •1.2.1. Основные термины, понятия и определения
- •1.2.2. Классификация субд
- •1) Сетевые, корпоративные, распределенные, клиент-серверные, полнофункциональные, масштабируемые, “большие” субд.
- •2) Локальные, персональные, настольные, файл-серверные, “малые” субд.
- •1.3. Модели данных
- •1.3.1. Типы связей между объектами
- •1.3.2. Формы записи инфологической (концептуальной) модели
- •1.3.3. Уровни представления и независимости данных
- •1.3.4. Порядок взаимодействия пользователя, субд и ос
- •1.3.5. Поддержка целостности базы данных
- •1.3.6. Иерархическая модель
- •1.3.7. Сетевая модель
- •1.3.8. Реляционная модель
- •1.3.8.1. Отношения
- •1.3.8.2. Теоретико-множественные операции с отношениями
- •1.3.8.3. Правила Кодда
- •1.3.8.4. Индексирование таблиц
- •1.3.8.5. Связывание таблиц
- •1.3.9. Постреляционная модель
- •1.3.10. Многомерная модель
- •1.3.11. Объектно‑ориентированная модель
- •1.4. Модели использования баз данных в сети
- •1.4.1. Сеть
- •1.4.2. Модели использования баз данных
- •1.4.2.1. Локальная однопользовательская модель
- •1.4.2.2. Файл-серверная модель
- •1.4.2.3. Клиент-серверная модель
- •В моделях «клиент–сервер»
- •1.4.2.4. Модель удаленного доступа (rda)
- •1.4.2.5. Модель сервера данных
- •1.4.2.6. Трехзвенная распределенная модель
- •1.4.2.7. Модели серверов баз данных
- •1.4.2.8. Клиент-Интернет
- •1.4.2.9. ИнтерфейсOdbc
- •1.4.3. Мониторы обработки транзакций (tpm)
- •1.4.4. Децентрализованное управление базами данных
- •1.4.5. Таблицы в локальных сетях
- •1.5. Проектирование баз данных
- •1.5.1. Принципы и этапы проектирования и создания баз данных
- •1.4.Определение доменов атрибутов.
- •1.5. Определение первичных и вторичных ключей.
- •1.6. Определение суперклассов и подклассов для типов сущностей.
- •1.7. Создание er‑диаграмм для отдельных пользователей.
- •2.6. Создание er‑диаграмм для отдельных пользователей.
- •3.4. Создание er‑диаграммы глобальной логической модели.
- •4. Создание глобальной логической модели в среде целевой субд.
- •6. Разработка механизма защиты.
- •1.5.3. Правила формирования взаимосвязанных таблиц
- •1.5.4. Модели жизненного цикла и проектирование баз данных
- •1.5.4.1. Модели жизненного цикла
- •1.5.4.2. Обследование, системный анализ и постановка задачи
- •1.5.4.3. Инфологическое проектирование
- •1.5.4.4. Датологическое проектирование
- •1.5.4.5. Проектирование физической модели
- •1.5.4.6. Реализация, интеграция и внедрение
- •1.5.5. Выбор субд
- •1.5.5.1. Сравнение Visual FoxPro, Access, sql Server, Oracle и Excel
- •1.5.5.2. Методика балловой оценки программных средств
- •1.5.6. Case‑средства автоматизации проектирования
- •1. Ориентация на этапы жизненного цикла
- •2. Функциональная полнота
- •Пользователя в ms sql Server 7.0
- •1.6.2. Резервирование информации
- •1.6.3. Варианты разработки приложений
- •1.7. Стандартизация баз данных
- •1.8. ЯзыкSql
- •1.8.1. Введение вSql
- •1.8.2. Типы данныхSql
- •1.8.3. Оператор выбора данныхSelect
- •1.8.3.1. Назначение и синтаксис оператора
- •1.8.3.2. Объединение таблиц
- •1.8.3.3. Вложенные и коррелированные запросы
- •1.8.3.4. Запросы, использующиеExist, any, all
- •1.8.3.5. Стандартные функции
- •1.8.3.6. Запрос с группировкой
- •1.8.4. Операторы обновления базы
- •1.8.4.1. Оператор корректировки данныхUpdate
- •1.8.4.2. Оператор удаления записейDelete
- •1.8.4.3. Оператор включения записей insert
- •1.8.5. Представления
- •1.9. Транзакции
- •1.9.1. Определение транзакций
- •1.9.2. Организация транзакций
- •1.9.3. Журнал транзакций
- •1.9.4. Журнализация и буферизация
- •1.9.5. Индивидуальный откат транзакций
- •1.9.6. Восстановление после мягкого сбоя
- •1.9.7. Физическая согласованность базы данных
- •1.9.8. Восстановление после жесткого сбоя
- •1.9.9. Параллельное выполнение транзакций
- •1.9.10. Уровни изолированности пользователей
- •1.9.11. Гранулированные синхронизационные захваты
- •1.9.12. Предикатные синхронизационные захваты
- •1.9.13. Метод временных меток
- •1.10. ВстроенныйSql
- •1.10.1. Особенности встроенногоSql
- •1.10.2. Определение курсора
- •1.10.3. Открытие курсора
- •1.10.4. Чтение очередной строки курсора
- •1.10.5. Закрытие курсора
- •1.10.6. Удаление и обновление данных
- •1.10.7. Хранимые процедуры
- •Хранимой процедуры на сервере
- •1.10.8. Триггеры
- •1.10.9. ДинамическийSql
- •1.11. Архитектура субд и оптимизация запросов
- •1.12. Перспективы развития субд
- •Вопросы для самопроверки и контроля
- •1Оглавление
1.4.3. Мониторы обработки транзакций (tpm)
Мониторы обработки транзакций (Transaction Processing Monitor) являются посредниками, обеспечивающими управление ресурсами в распределенной неоднородной вычислительной системе. Принципы организации обработки информации описываются моделью обработки распределенных транзакций X/Open DTP (Distributed Transaction Processing) (рисунок 1.4.3.1).
SQLATMI
Рисунок 1.4.3.1. Модель обработки транзакций X/Open DTP
Интерфейс ATMI (Application Transaction Monitor Interfase) позволяет вызвать функции TPM на языках программирования. Серверы БД или СУБД выполняют роль менеджеров ресурсов. Транзакции, которые поддерживаются TPM, называются прикладными, или бизнес‑транзакциями.
Прикладные программы становятся независимыми от менеджера ресурсов (СУБД, сервера БД), типа компьютера, операционной системы и интерфейса с пользователем.
Примеры мониторов транзакций: ACMS, CICS, TUXEDO System.
1.4.4. Децентрализованное управление базами данных
Существуют две технологии управления БД: распределенная БД и тиражирование (репликации).
Распределенная базаразмещается на различных узлах сети, но, с точки зрения пользователя, база воспринимается как единая локальная БД. Информация обо всех фрагментах находится в глобальном словаре данных. Для обеспечения корректности доступа к данным используется двухфазная фиксация транзакций: на первом этапе производится фиксация транзакций на каждом узле с возможностью отката назад, и при успешном завершении производится необратимая фиксация всех изменений.
Достоинства:пользователи работают с последней версией БД, экономится дисковая память.Недостатки: большие затраты коммуникационных ресурсов (они связываются на время выполнения транзакций) и жесткие требования к надежности и производительности каналов связи.
Тиражирование данныхпредполагает создание копии (репликаций) фрагментов базы в узлах сети. Эти копии обрабатываются как обычная локальная БД. Синхронизация копий и базы осуществляется специальной программой-репликатором, при этом передаются только изменения.Достоинства:высокая скорость обращения к данным, так как они всегда на узле пользователя; уменьшение объема передаваемой информации за счет передачи только изменений; повышение надежности.Недостаток: возможно расхождение копий БД на некотором интервале времени.
Монопольный и коллективный методы доступа к данным
Монопольный доступиспользуется обычно при массовых операциях с базой (реорганизация или восстановление базы и др.) и блокирует доступ ко всей БД другим пользователям.
Коллективный доступдает возможность одновременной работы с БД многим пользователям. Для корректной работы при одновременной корректировке отдельных записей возможны следующие блокировки в порядке убывания ограничений на доступ к БД: полная блокировка (запрещение всех операций), блокировка от записи (только чтение таблицы), предохраняющая блокировка от записи (возможность завершить корректировку читаемого объекта другим пользователем при совместной корректировке одной таблицы), предохраняющая полная блокировка (обеспечивает максимальный уровень совместного использования БД). Обычно СУБД автоматически выбирает нужный вид блокировки, хотя пользователь может управлять блокировками посредством специальных команд.
Взаимные и односторонние блокировки (тупики, кличи) останавливают работу с базой до их устранения и являются нежелательными. Взаимные блокировки возникают, когда группа пользователей пытается захватить ресурсы, уже захваченные одним из пользователей этой группы. Односторонний тупик возникает при попытке получить монопольный доступ к занятому уже ресурсу. Обычно СУБД предотвращают тупики или дают сигнал пользователю о тупиках.