Содержание
- 2. Цели лекции © Бессарабов Н.В.2016 Существует два основных варианта реализации объектной парадигмы в базах данных –
- 3. Зачем нужны объекты в базах данных? Реально существующие объекты характеризуются состояниями, которые могут изменяться после наступления
- 4. Особенности архитектуры Caché Объектная система Caché построена на объектном расширении персистентного языка ObjectScript. Уникальная особенность системы
- 5. Универсальная архитектура Caché © Бессарабов Н.В.2016
- 6. Система классов Caché (1/3) Как всегда, класс задаёт шаблон, по которому создаются объекты определённого им типа.
- 7. Система классов Caché (2/3) В Cache принята следующая нестандартная терминология. Классы вообще подразделяются на классы типов
- 8. Система классов Caché (3/3) Зарегистрированные классы обладают предопределенным поведением, задаваемым набором встроенных функций, наследуемых из системного
- 9. Структура класса Caché Имя класса понимается в обычном для ООП смысле. Параметры. Изменяют возможности класса во
- 10. Форматы данных и их преобразования © Бессарабов Н.В.2016 Все шесть методов генерируются автоматически при создании класса
- 11. Методы преобразования типов © Бессарабов Н.В.2016
- 12. Предопределенные типы данных © Бессарабов Н.В.2016
- 13. Свойства Свойства представляют собой константы предопределенных типов, ссылки на объекты, встроенные объекты, потоки данных (BLOB, CLOB),
- 14. Пять способов создания класса в Cache Создание таблицы (нельзя определить методы ) Использование мастера Studio Написание
- 15. Способ 1: Задание таблицы Предварительно проверяем в портале, не существует ли глобал ^QQD и класс ^User.QQ.cls
- 16. Способ 2. Использование мастера (1/10) Шаг 1. Проверяем в портале, не существует ли глобал ^HumanD, класс
- 17. Способ 2. Использование мастера (2/10) Шаг 2. Выбор вида класса © Бессарабов Н.В.2016 Множественное наследование !!
- 18. Способ 2. Использование мастера (3/10) Шаг 3. Выбор владельца, имени таблицы, отличного от имени класса, поддержки
- 19. Способ 2. Использование мастера (4/10) Шаг 4. Смотрим полученный результат в Studio /// Это класс первого
- 20. Способ 2. Использование мастера (5/10) Шаг 5. В Studio выбираем «Новое свойство» (Правая кнопка мыши –
- 21. Способ 2. Использование мастера (6/10) Шаг 6. Добавляем атрибуты используя появившийся мастер © Бессарабов Н.В.2016
- 22. Способ 2. Использование мастера (7/10) Шаг 7. Выбираем тип данных © Бессарабов Н.В.2016 Большие типы данных
- 23. Способ 2. Использование мастера (8/109) Шаг 8. Задаем свойства и переходим к параметрам типа © Бессарабов
- 24. Способ 2. Использование мастера (9/10) Шаг 9. Оставляем параметры типа по умолчанию © Бессарабов Н.В.2016
- 25. Способ 2. Использование мастера (10/10) Шаг 10. В Studio обнаруживаем текст, определяющий новое свойство: { ///
- 26. Методы унаследованые от класса %Persistent Прежде, чем мы рассмотрим 5-й способ создания класса – из COS
- 27. Работа с объектами в COS (1/3) Создадим простейший класс с единственным атрибутом Name. Class User.A Extends
- 28. Работа с объектами в COS (2/3) OID представляет собой список, состоящий из OID объекта и имени
- 29. Работа с объектами в COS (3/3) © Бессарабов Н.В.2016
- 30. Классы, таблицы, объекты, строки и деревья Теперь понятны связи между иерархической, табличной и объектными моделями в
- 31. Таблиц в Caché не бывает В Studio создаём класс T, не смущаясь незнанием языка CDL (Class
- 32. Виртуальная таблица SQLUser.T Портал сообщает об этой таблице следующее: Обратите внимание на два “непрошенных” столбца ID
- 33. Сравниваем таблицу SQLUser.T и породивший её класс User.T Понятно, что в первой строке записано имя класса
- 34. Созданный глобал ^User.TD Интересно, как выглядит вновь созданный глобал. Щёлкаем левой кнопкой мыши по позиции “Просмотр”
- 35. Представление таблицы деревом T: © Бессарабов Н.В.2016
- 36. Наследование (1/2) Классы могут быть наследниками других классов. Для примера создадим класс человек (human) следующей структуры
- 37. Наследование (2/2) В классе Human создадим объект Пётр (”0305 855637”, “Петр”), а в классе Student –
- 38. Сериализуемые классы (1/2) Создадим встроенный класс Addres: Class User.Address Extends %SerialObject { Property City As %String;
- 39. Сериализуемые классы (2/2) Образовался глобал: ^User.PersonD=1 ^User.PersonD(1)=$LB("","Nick","1984",$LB("NewYork","NY")) Объект сериализуемого класса в нём представляется списком: $LB("NewYork","NY"). В
- 40. Отношения Пусть имеются два класса – Юрист и Клиент: Class User.Lawyer Extends %Persistent { Property LawyerName
- 41. Отношения Class User.Lawyer Extends %Persistent { Property LawyerName As %String [ Required ]; Relationship MyClients As
- 42. Метаданные в Caché (1/3) Метаданные в Caché хранятся в метаклассах двух видов: Defined --представляют определения классов;
- 43. Метаданные в Caché (2/3) Рассмотрим структуру двух классов из перечисленных в таблице на предыдущем слайде. Полное
- 44. Метаданные в Caché (3/3) Класс PropertyDefinition, хранящий сведения об атрибутах. Минимальный набор из двух полей, обеспечивающий
- 46. Скачать презентацию