- •Содержание
- •Глава 1. Введение в объектные субд 15
- •Глава 2. Объектно-ориентированные субд: концепции и проектирование 46
- •Глава 3. Введение в объектно-ориентированную субд cashé 78
- •Глава 4. Объектная модель cache 92
- •Глава 5. Технологии csp 121
- •Предисловие
- •Методические материалы рабочая программа дисциплины Пояснительная записка
- •Содержание дисциплины
- •Рекомендации по самостоятельной работе студента Календарно-тематический план работы
- •Методические указания по отдельным видам самостоятельной работы Указания по самостоятельному изучению теоретического материала
- •Указания по выполнению практических заданий и текущему контролю
- •Указания к промежуточной аттестации с применением балльно-рейтинговой системы оценки знаний.
- •Соответствие оценок
- •Теоретические материалы Глава 1. Введение в объектные субд
- •1.1. Специализированные приложения баз данных
- •Автоматизированное проектирование
- •Автоматизированное производство
- •Автоматизированная разработка программного обеспечения
- •Офисные информационные системы и мультимедийные системы
- •Геоинформационные системы
- •Прочие специализированные приложения
- •1.2. Недостатки реляционных субд
- •Неадекватное представление сущностей реального мира
- •Семантическая перегрузка
- •Слабая поддержка ограничений целостности и корпоративных ограничений
- •Однородная структура данных
- •Ограниченный набор операций
- •Сложности при обработке рекурсивных запросов
- •Упрощенное отношение s
- •Транзитивное замыкание отношения s
- •Проблема рассогласования типов данных
- •1.3. Основные концепции объектно-ориентированного подхода
- •1.3.1. Абстракция, инкапсуляция и сокрытие информации
- •1.3.2. Объекты и атрибуты
- •Атрибуты одного из экземпляров объекта типа Branch
- •1.3.3. Идентификация объектов
- •1.3.4. Методы и сообщения
- •1.3.5. Классы
- •1.3.6. Подклассы, суперклассы и наследование
- •1.3.7. Перекрытие и перегрузка
- •1.3.8. Полиморфизм и динамическое связывание
- •1.4. Способы хранения объектов в реляционной базе данных
- •1.4.1. Преобразование классов в отношения
- •Преобразование каждого класса или подкласса в отношение
- •Преобразование каждого подкласса в отношение
- •Преобразование иерархии в одно отношение
- •1.5. Поколения субд
- •Вопросы для самопроверки
- •Глава 2. Объектно-ориентированные субд: концепции и проектирование
- •2.1. Введение в объектно-ориентированные модели данных и оосубд
- •2.2. Особенности оосубд
- •2.2.1. Доступ к объекту
- •2.3. Перманентность
- •Создание контрольных точек
- •Сериализация
- •Явная подкачка объектов
- •2.4. Прочие аспекты функционирования оосубд
- •2.4.1. Транзакции
- •2.4.2. Поддержка многих версий
- •2.4.3. Эволюция схемы
- •2.5. Документ «Манифест разработчиков объектно-ориентированных систем баз данных»
- •Правило 1. Поддержка сложных объектов
- •Правило 2. Поддержка идентификации объектов
- •Правило 3. Поддержка инкапсуляции
- •Правило 4. Поддержка типов или классов
- •2.6. Преимущества и недостатки оосубд
- •2.6.1 .Преимущества
- •2.6.2. Недостатки объектно-ориентированных субд
- •2.7. Проектирование объектно-ориентированной базы данных
- •2.7.1. Сравнение объектно-ориентированного и логического моделирования данных
- •Сравнение характеристик объектного и логического моделирования данных
- •2.7.2. Связи и ссылочная целостность
- •2.7.3. Проектирование правил поведения
- •Вопросы для самопроверки
- •Глава 3. Введение в объектно-ориентированную субд cashé
- •3.1. Введение
- •3.2. Установка и использование Cache
- •3.3. Первый пример.
- •Создание класса
- •Создание свойств
- •Создание запроса
- •Компиляция
- •3.5. Мастер форм Cache для Web
- •Вопросы для самопроверки
- •Глава 4. Объектная модель cache
- •4.1. Правила идентификации
- •4.2. Элементы классов
- •Пример 1:
- •Пример 2:
- •4.3. Имя класса
- •4.4. Ключевые слова
- •4.5. Свойства
- •Видимость свойств
- •Поведение свойств
- •Ключевые слова
- •Виды свойств
- •Свойства типов данных
- •Параметры
- •4.6. Форматы данных и методы преобразования классов типов данных
- •4.7. Свойства ссылки на объекты
- •Встроенные объекты
- •4.8. Свойства коллекции
- •4.9. Потоки данных
- •4.10. Многомерные свойства
- •4.11. Методы
- •Аргументы метода
- •Определение значений по умолчанию для аргументов метода
- •Передача аргументов по ссылке
- •Возвращаемое значение метода
- •Видимость методов
- •Язык метода
- •Ключевые слова метода
- •Методы класса и экземпляров
- •Вызов метода
- •Виды методов
- •4.12. Запросы
- •4.13. Пакеты
- •Вопросы для самопроверки
- •Глава 5. Технологии csp
- •5.1. Выражения Caché
- •Пример p0. Вывод текущей даты
- •5.2. Скрипты, выполняющие код Caché
- •Пример p1. Счетчик посещений
- •5.3. Подпрограммы, вызываемые на стороне сервера #server(…)# Пример p3.
- •Пример p4. Калькулятор.
- •5.4. Теги csp
- •Основные теги csp
- •Пример p6.1.
- •Связывание объектов с формами: cspbind в формах
- •Пример р7. Использования тега csp:object.
- •Пример p10. Использование курсора в цикле while.
- •Пример p11. Вывести названия всех книг, которые описываются классом Kniga(Id, Name,Avtor,Cat).
- •Пример р13. Посчитать сумму двух чисел.
- •5.4.7. Использование JavaScript-кода и кода html в коде Caché Object Script
- •5.5. Доступ к полям формы. Класс %csp.Request
- •Пример p14.
- •Пример p15.
- •5.6. Объект %session
- •Вопросы для самопроверки
- •Заключение
- •Задания для самоконтроля Тесты для самоконтроля
- •Ключи к тестам для самоконтроля
- •Задания для контрольных работ Указания по выполнению контрольной работы
- •Темы контрольных работ
- •Вопросы для подготовки к экзамену
- •Глоссарий
- •Список источников информации Основная литература
- •Дополнительная литература
- •Приложение 1 пример учебной базы данных «агентство недвижимости»
- •Приложение 2 пример учебной базы данных для главы 3 Класс Person (клиенты библиотеки)
- •Класс Cat (категория книг)
- •Класс Kniga (книги)
- •Класс Vyd (выдачи книг)
2.2.1. Доступ к объекту
Важным аспектом является способ доступа к объекту во внешней памяти, особенности которого могут оказать значительное влияние на производительность ООСУБД. Если вновь обратиться к подходу, используемому в обычных реляционных СУБД, применяющих двухуровневую модель хранения, то можно выделить типичные этапы, показанные на рисунке и описанные ниже.
Рис. 2.1. Двухуровневая модель хранения данных
СУБД определяет страницу во внешнем устройстве хранения, содержащую требуемую запись, используя механизмы индексов или выполняя полный просмотр таблицы, если это необходимо. Затем СУБД считывает эту страницу из внешнего устройства хранения и копирует ее в кэш.
СУБД последовательно переносит требуемые элементы записи из кэша в пространство памяти приложения. При этом может понадобиться выполнить преобразования типов данных SQL в типы данных приложения.
Приложение может обновлять значения полей в своем собственном пространстве памяти.
Модифицированные приложением поля данных средствами языка SQL переносятся назад в кэш СУБД, в процессе чего может опять потребоваться выполнить преобразование типов данных.
Наконец, СУБД сохраняет обновленную страницу на внешнем устройстве хранения, переписывая ее из кэша.
В свою очередь, для извлечения объекта из внешнего устройства хранения при использовании одноуровневой модели хранения ООСУБД выполняет только те этапы, которые показаны на рисунке.
Рис. 2.1. Одноуровневая модель хранения данных в ООСУБД
ООСУБД находит на внешнем устройстве хранения страницу, содержащую требуемый объект, используя его OID или индекс, если это необходимо. Затем ООСУБД считывает из внешнего устройства хранения требуемую страницу и копирует ее в кэш страниц приложения, находящийся в пределах памяти, отведенной приложению.
ООСУБД может затем выполнить несколько различных преобразований:
подстановку ссылок (указателей) одного объекта на другой;
введение в состав данных объекта информации, которая необходима для обеспечения соответствия требованиям, предъявляемым со стороны языка программирования;
изменение формата представления данных, созданных на разных аппаратных платформах или языках программирования.
Приложение осуществляет непосредственный доступ к объекту и обновляет его по мере необходимости.
Когда приложению потребуется сделать внесенные изменения перманентными или просто выгрузить на время страницу из кэша на диск, то перед копированием страницы на внешнее устройство хранения ООСУБД должна выполнить обратные преобразования, аналогичные описанным выше.
2.3. Перманентность
СУБД должна предоставлять поддержку хранения перманентных (persistent) объектов, сохраняющихся даже после завершения пользовательского сеанса или прикладной программы, во время которых они были созданы. Этим они отличаются от временных (transient) объектов, которые присутствуют в памяти только во время работы программы. Перманентные объекты хранятся до тех пор, пока они нужны, после чего они могут уничтожаться.
Ниже представлены три схемы реализации перманентности в ООСУБД: создание контрольных точек (checkpointing), сериализация (serialization) и явнай подкачка объектов (explicit paging).
