nsutextbook (1037554), страница 3
Текст из файла (страница 3)
Работа со свойствами списками .........................................................................77Пример 3. Работа со встроенными классами ......................................................................77Пример 4. Создание метода экземпляра..............................................................................79Пример 5. Создание метода класса ......................................................................................79Пример 6.
Использование запросов для вывода информации об экземплярах класса ..80Пример 7. Распечатка объектов класса, имя которого вводит пользователь...................81Пример 8. Использование запросов для вывода информации о свойствах списках.......81ГЛАВА 7. ПРЯМОЙ ДОСТУП И ГЛОБАЛЫ .............................................................837.1. Индексированные переменные ......................................................................................837.2. Массивы со строковыми индексами.............................................................................837.3. Сортировка индексированных переменных ...............................................................837.4. Глобалы ..............................................................................................................................847.5.
Работа с глобалами ...........................................................................................................857.6. Функции для работы с многомерными массивами ...................................................857.6.1. Функция $Data..............................................................................................................857.6.2. Функция $Get ...............................................................................................................8767.6.3.
Функция $Order............................................................................................................877.6.4. Функция $Query ...........................................................................................................897.6.5. Функции $QLength, $QSubscript.................................................................................907.6.6. Команда Merge .............................................................................................................907.7.
Использование многомерных структур для хранения данных ...............................907.7.1. Механизм IDKEY.........................................................................................................917.7.2. Подклассы.....................................................................................................................927.7.3. Индексы ........................................................................................................................937.7.4. Структуры хранения стандартных индексов ............................................................93ГЛАВА 8.
ОСНОВЫ ТЕХНОЛОГИИ CSP .................................................................958.1. Выражения Caché .............................................................................................................958.2. Скрипты, выполняющие код Caché..............................................................................958.3. Подпрограммы, вызываемые на стороне сервера #server(…)# ...............................968.4. Теги CSP .............................................................................................................................998.4.1.
Тег <CSP:Object> .........................................................................................................998.4.2. Тег <CSP:Query> ........................................................................................................1018.4.3. Тег <CSP:While > .......................................................................................................1028.4.4. Тег <CSP:Loop> .........................................................................................................1038.4.5.
Тег <CSP:If> ...............................................................................................................1038.4.6. Тег <CSP:Method> .....................................................................................................1048.4.7. Использование JavaScript-кода и кода HTML в коде Caché Object Script (COS) 1058.5. Доступ к полям формы. Класс %CSP.Request ..........................................................1058.6. Объект %session ..............................................................................................................1108.7.
Пример разработки форм ввода и просмотра объектов класса ............................1128.8. Пример организации поиска экземпляра класса с использованием индексногоглобала .....................................................................................................................................117СПИСОК ЛИТЕРАТУРЫ ..........................................................................................1207Глава 1.
Объектный и реляционный подход1.1. Сравнение объектного и реляционного подходаРеляционная модель элегантна, проста, имеет прочное математическое обоснование,простой и ясный язык запросов. Но эта простота имеет и свою оборотную сторону.При разработке современных информационных систем требуется обеспечить:- хранение и манипулирование объектами сложной структуры;- наличие сложных взаимосвязей между объектами;- хранение и манипулирование разнородными объектами;- высокую производительность.Для выполнения вышеперечисленного реляционная модель не всегда является удобной, по следующим причинам:1.реляционная модель работает с нормализованными отношениями, т.е. отношениями,уже находящимися в первой нормальной форме, а это означает, что реляционная модельструктуру значения атрибута не рассматривает.
При описании многих предметных областей, напротив, требуется наличие вложенных структур, когда значение атрибута можетбыть списком или другим объектом сложной структуры. При этом должен поставлятьсяинструмент для обработки таких структур. Это приводит к возникновению проблем приразработке структур данных, т.к. плоские таблицы плохо подходят для описания сложныхпредметных областей.2.современные информационные системы требуют использования разнородных данных, например, фотографий, видеоизображений, звука.
Но язык запросов SQL обеспечивает возможность только их хранения, но не обработки.3.процесс нормализации требует разнесения данных по нескольким таблицам для исключения избыточности. Выполнение запросов часто требует, напротив, соединения (join)нескольких таблиц, что порождает две проблемы. Во-первых, усложнение запросов присоединении нескольких таблиц. Во-вторых, в случае объемных таблиц данная операциятребует больших ресурсов и снижает производительность системы.Альтернативой реляционному подходу является объектный подход.Объектная технология и объектные базы данных являются практическим результатом работы по моделированию деятельности мозга.
Замечено, что мозг может хранитьочень сложную и разнородную информацию и манипулировать ею, используя единыйпринцип. Сложное поведение объектов реального мира также должно быть реализовано впрограммных продуктах по единому принципу, чтобы скрыть эту сложность.Объектный подход к проектированию систем позволяет наиболее естественным образом записать объекты в базу данных «как есть», обеспечить хранение объектов и манипулирование ими.Объектно-ориентированные базы данных (ООБД) по сравнению с традиционнымиреляционными базами данных дают следующие преимущества:• ООБД хранят не только данные, но и методы их обработки, инкапсулированные водном объекте;• ООБД позволяют обрабатывать мультимедийные данные;• ООБД допускают работу на высоком уровне абстракции;• ООБД позволяют пользователям создавать структуры данных любой сложности.При всех достоинствах ООБД, переход на такие СУБД затруднен из-за значительного объема разработок, опирающихся на реляционные СУБД.
Кроме того, объектнаятехнология, поддерживаемая в ряде постреляционных СУБД, не имеет развитого и стандартизированного языка генерации отчетов и анализа данных, каким является структурированный язык запросов SQL. Данные проблемы были решены при создании постреляционной СУБД Caché от InterSystems (www.intersystems.ru). СУБД Caché не только реализу8ет основные возможности объектно-ориентированной технологии, но и позволяет во многом облегчить переход с реляционной технологии на объектную, а также может выступатьв роли шлюза к реляционным базам данных.Несмотря на наличие многих теоретических проблем, ключевой из которых является,безусловно, сложность строгой формализации объектной модели данных, многие эксперты полагают, что за этими системами будущее.1.2.
Основные положения стандарта ODMGОбъектно-ориентированные СУБД (ООСУБД) отличает ряд обязательных свойств.Эти свойства продекларированы в «Манифесте систем объектно-ориентированных базданных», а впоследствии закреплены в документах ODMG (Object Data ManagementGroup), организации, объединяющей ведущих производителей объектно-ориентированныхСУБД. Основной целью эта организация ставит задачу выработки единых стандартовООСУБД, соблюдение которых обеспечило бы переносимость приложений.Рассмотрим основные положения стандарта ODMG.1.2.1.
Модель данныхВ соответствии со стандартом ODMG 2.0 объектная модель данных характеризуетсяследующими свойствами.• Базовыми примитивами являются объекты и литералы. Каждый объект имеет уникальный идентификатор, литерал не имеет идентификатора.• Объекты и литералы различаются по типу. Состояние объекта характеризуется егосвойствами, поведение объекта характеризуется его методами (операциями). Всеобъекты одного типа имеют одинаковое поведение (набор операций) и одинаковыйдиапазон изменения свойств.• Свойствами могут быть атрибуты объекта или связи между объектом и одним илинесколькими другими объектами.• Поведение объекта определяется набором операций, которые могут быть выполнены над объектом или самим объектом.
Операции могут иметь список входных ивыходных параметров строго определенного типа. Каждая операция может такжевозвращать типизированный результат.• База данных хранит объекты, позволяя совместно использовать их различнымпользователям и приложениям. База данных основана на схеме данных, определяемой языком определения данных, и содержит экземпляры типов, определенныхсхемой.Тип также является объектом. Поддерживается иерархия супертипов и подтипов, реализуя тем самым стандартный механизм объектно-ориентированного программирования— наследование. Тип имеет набор свойств, а объект характеризуется состоянием в зависимости от значения каждого свойства.