- •Содержание
- •Глава 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 (выдачи книг)
Вопросы для самопроверки
1. Какие классы поддерживаются Caché?
2. Назовите особенности незарегистрированных классов Caché.
3. Какие основные концепции объектно-ориентированного подхода реализованы в Caché?
4. Назовите основные свойства класса.
5. Что такое «многомерные свойства» в Caché?
6. Как определяются методы в Caché?
7. Что такое запрсы в Caché?
Глава 5. Технологии csp
Технология CSP (Caché Server Pages) основной инструмент создания Web-интерфейса для информационных приложений, написанных на Caché. Технология CSP предлагает изящные средства создания быстродействующих, хорошо масштабируемых Web-приложений за короткое время.
CSP-страницы хранятся в CSP-файлах. При обращении к CSP-файлу происходит его трансляция в класс CSP, который затем компилируется с помощью компилятора Caché Server Pages. Этот процесс прозрачен для разработчика и пользователя.
Когда броузер, используя HTTP, запрашивает CSP-страницу на Web-сервере, последний, в свою очередь, запрашивает содержание страницы из базы данных Caché. Caché обрабатывает запрос, динамически генерируя HTML-страницу и передавая ее Web-серверу, который в свою очередь передает ее броузеру.
Рис. 4.1. Схема работы технологии CSP
При создании CSP-файла используются:
• Выражения;
• Скрипты, выполняющие код Caché или код JavaScript;
• Серверные методы;
• CSP-теги;
• Стандартные теги HTML.
Приведенные ниже примеры CSP-страниц приведены для классов, приведенных в Приложении 2.
5.1. Выражения Caché
Выражения Caché это заключенные в #(…)# выражения, которые заменяются вычисленными значениями в процессе генерации страниц.
Пример p0. Вывод текущей даты
Добро пожаловать на наш сайт!
Сегодня #($Zdate($Horolog,4," январь февраль март апрель май июнь июль август сентябрь октябрь ноябрь декабрь")# года!
Конструкция #(…)# - фундаментальная часть технологии CSP. Обработка содержимого внутри круглых скобок выполняется Caché.
5.2. Скрипты, выполняющие код Caché
<script language="Cache" runat={"server"|"compiler"}> …
</script>
Тег <script> - стандартный тег HTML, который вызывает скрипт. Он имеет два параметра:
Language = "Cache" – определяет язык скрипта, другими значениями могут быть JavaScript, VBScript, SQL.
Runat = "Server" – определяет, что скрипт выполняется на сервере, когда страница загружена в броузер.
Runat = "Сompiler" - заставляет выполнить код скрипта во время компиляции страницы.
Кроме того, может не быть никакого значения для этого параметра, что предполагает выполнение кода скрипта на клиенте, когда страница загружена в обозреватель.
Содержанием скрипта является текст программы на Caché Object Script, JavaScript или VBScript. Программный код выполняется каждый раз при загрузке страницы.
Пример p1. Счетчик посещений
<Body>
<script language=Cache runat=server> Set ^Visit=$Get(^Visit)+1
</script> <br>
<BODY>
Вы наш #(^Visit)# посетитель
</BODY>
Каждый раз при загрузке страницы на сервере при генерации страницы будет выполняться сценарий(скрипт), который увеличивает текущее значение глобальной переменной ^Visit на 1.
Пример P2. Вывести на Web-странице свойства объекта с id=2 класса Human:
<script language=Cache runat=server> set obj=##class(MPK.Person).%OpenId(2) write obj.FIO, "......" write $ZDate(obj.DR,2),"<br>"
</script>
Каждый раз при загрузке страницы будет открываться объект класса Person с ID равным 2. На страницу будут выводиться свойства объекта: FIO и DR.
