Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
19
Добавлен:
18.06.2017
Размер:
882.7 Кб
Скачать

Постреляционная СУБД

Caché

Учебный курc

Сиротюк Олег

InterSystems Corporation, 2002

Цель занятий.

Целью занятий является изучение основных принципов объектноориентированного проектирования и разработки информационных систем на базе постреляционной объектно-ориентированной базы данных Caché. Объем занятий ограничивается материалом, необходимым для реализации курсовых, дипломных проектов студентами старших курсов высших учебных заведений технического профиля.

Требования к знаниям и умениям по окончанию курса.

После окончания курса студенты должны владеть следующими навыками:

Освоить основные принципы объектно-ориентированной методологии разработки информационных систем и баз данных.

Уметь разрабатывать проекты на базе основных UML диаграмм.

Разрабатывать объектную модель Caché. Различать основные типы классов, а также типы основных элементов классов.

Уметь разрабатывать программы на COS. Уметь работать со свойствами и методами класса и экземпляра, а также уметь манипулировать данными в БД.

Уметь создавать приложения CSP, обеспечивающие манипулирование данными из БД Caché.

Уметь создавать встроенные запросы SQL.

Получить навыки администрирования БД Caché.

2

Содержание курса.

1.Основные концепции объектно-ориентированной методологии.

Класс и объект. Полиморфизм, инкапсуляция и наследование. Способы представления объектных моделей (UML).

2.Несколько фактов об разработчике Caché InterSystems corporation.

3.Объектная модель Caché.

4.Caché Object. В главе дается описание классов Caché и основных элементов класса. Приводятся примеры создания классов и элементов с помощью инструментальных средств СУБД Caché

5.Изучение Caché Object Script на примерах написания кода методов и работы с объектами. Методы – как основные элементы реализации требуемых функций информационных систем. Изучение Caché Terminal, Explorer. Создание, редактирование, удаление объектов. Использование класса %ResultSet для создания динамических SQL-запросов.

6.CSP. Архитектура CSP, использование предопределенных тегов, разработка собственных тегов.

7.Администрирование Caché. Изучение Configuration Manager.

Экспорт/Импорт данных из/в Caché.

Рекомендуемая литература.

1.Документация, поставляемая с Caché.

2.СУБД Caché Объектно-ориентированная разработка приложений. Учебный курс. В.Кирстен и др. СПб: Питер, 2001г.

3.Постреляционная технология Caché для реализации объектных приложений. Н.Е. Кречетов и др. М: МИФИ, 2001г.

4.Материалы сайта www.intersystems.ru .

С вопросами можно обращаться по адресу: sirotyuk@intersystems.ru.

3

Основные концепции объектно-ориентированной методологии.

Фундаментальным понятием объектно-ориентированного программирования является понятие класса и объекта. При этом под классом понимают некоторую абстракцию совокупности объектов, которые имеют общий набор свойств и обладают одинаковым поведением. Каждый объект в этом случае рассматривается как экземпляр соответствующего класса.

Важной особенностью классов является возможность их организации в виде некоторой иерархической структуры. При этом в качестве наиболее общего понятия или категории берется понятие, имеющее наибольший объем и, соответственно, наименьшее содержание. Это самый высокий уровень абстракции для данной иерархии. Затем данное понятие постепенно некоторым образом конкретизируется до тех пор, пока на самом нижнем уровне не будет получено понятие, дальнейшая конкретизация которого в данном контексте либо невозможна, либо нецелесообразна.

Основными принципами ООП являются наследование, инкапсуляция и полиморфизм.

Наследование – это принцип, в соответствии с которым знание о наиболее общей категории разрешается применять для более узкой категории. При этом, если некоторый более общий или родительский класс (предок) обладает фиксированным набором свойств и определенным поведением, то производный от него класс (потомок) должен иметь этот же набор свойств и такое же поведение, а также дополнительные свойства и поведение, которые будут характеризовать уникальность полученного таким образом класса.

Инкапсуляция – термин, характеризующий сокрытие отдельных деталей внутреннего устройства классов от внешних по отношению к нему объектов или пользователей. Разделяют интерфейсную часть класса и конкретную реализацию. Интерфейсная часть необходима для взаимодействия с любыми другими объектами. Реализация же скрывает особенности реализации класса, т.е. все, что не относиться к интерфейсной части.

Полиморфизм – это принцип, в соответствии с которым действия, выполняемые одноименными методами, могут отличаться в зависимости от того, какому из классов относиться тот или иной метод.

Язык UML представляет собой общецелевой язык визуального моделирования, который разработан для спецификации, визуализации, проектирования и документирования компонентов программного обеспечения, бизнес-процессов и других систем.

В рамках UML все представления о модели сложной системы фиксируются в виде специальных графических конструкций, получивших название диаграмм:

1.Диаграмма вариантов использования. Описывает функциональное назначение системы.

2.Диаграмма классов. Служит для представления статической структуры модели системы в терминологии объектно-ориентированного программирования.

3.Диаграмма состояний. Служит для описания возможных последовательностей состояний и переходов, которые в совокупности характеризуют поведение элемента модели в течение его жизненного цикла.

4.Диаграмма деятельности. Позволяет реализовать особенности процедурного и синхронного управления, обусловленного завершением внутренних деятельностей и действий

5.Диаграмма последовательности.

4

6.Диаграмма кооперации.

7.Диаграмма компонентов.

8.Диаграмма развертывания.

Краткая информация о разработчике постреляционной СУБД Caché InterSystems Сorporation

"Мы ведем разработчиков к успеху!" - так звучит девиз, который в 1978 году выбрал для своей компании InterSystems Corporation выпускник Массачусетского Технологического Института и основатель фирмы Терри Рэйгон. Под этим девизом работают сейчас свыше 360 сотрудников, помогая своим клиентам - профессиональным разработчикам - становиться самыми успешными в мире. Как и прежде, секрет успеха лучших программных решений кроется в том, чтобы оптимально отражать сложные требования реального мира. А так как требования реального мира почти каждый день меняются, то прикладные решения на базе нашей постреляционной СУБД Caché пользуются исключительным успехом. И не только у разработчиков программного обеспечения, но и, прежде всего, у пользователей, чей успех более чем когдалибо зависит от своевременного доступа к информации круглый год, семь дней в неделю, 24 часа в сутки.

Корпорация InterSystems, штаб-квартира которой находится в городе Кембридж, штат Массачусетс, США, является ведущим поставщиком высокопроизводительных систем управления базами данных, оптимизированных для Web, и приложений в архитектуре клиент-сервер, ориентированных на интенсивную обработку транзакций.

Флагманский продукт InterSystems СУБД Caché появилась на рынке в конце 1997 года, став первой в мире СУБД, идеально подходящей для разработки Web-приложений (e-DBMS). Сервер Многомерных Данных и Сервер Приложений обеспечивают высокую производительность и масштабируемость, интегрированный объектный и реляционный доступ к данным и поддержку state-aware Web-приложений. Профессиональные разработчики получают в свое распоряжение мощный инструмент быстрой разработки приложений и гибкость при выборе среды программирования. Клиенты в 88 странах мира используют более чем двадцатилетний опыт InterSystems в разработке СУБД и имеют возможность круглосуточно обращаться в службу поддержки.

Объектная модель Caché.

Представление объектов реального мира в виде плоских реляционных таблиц в большинстве случаев приводит к потере семантики. Однако, множество компаний, имеющих работающие приложения, построенные на базе реляционных таблиц, не желают переходить на объектно-ориентированную технологию, т.к. это приведет к большим затратам на этапе трансляции. Кроме этого, зависимость приложений от структурированного языка запросов (SQL), также является камнем преткновения при принятии решения о переходе на более развитую объектно-ориентированную технологию.

Caché - это высокопроизводительная постреляционная база данных, а также развитая система управления базой данных (СУБД). Основным отличием БД Caché от РБД и ООБД является универсальность представления данных в Caché, реализуемая с помощью т.н. единой архитектуры данных. В рамках этой архитектуры существует единое описание объектов и таблиц, отображаемых непосредственно в многомерные структуры ядра базы данных, ориентированного на обработку транзакций. Имеющиеся серверы Caché Objects

5

иCaché SQL предоставляют в распоряжение разработчика все наиболее популярные интерфейсы, посредством которых и унаследованные реляционные

иновые объектно-ориентированные прикладные системы получают равноправный доступ к данным. Кроме реляционного и объектного доступов к данным, разработчику предлагается прямой доступ к данным (Caché Direct), т.е. доступ непосредственно к многомерным структурам ядра. Архитектура Caché приведена на рис. 1.

Cachè Server Pages

XML

 

 

Единая архитектура данных

 

 

 

ODBC

 

 

 

 

 

 

 

 

 

ActiveX

 

 

Cachè

Cachè

 

Cachè

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Objects

Direct

 

SQL

 

 

Java

 

 

 

 

 

 

 

 

 

 

 

 

 

 

JDBC

 

 

 

 

 

 

 

 

 

С++

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ядро СУБД Cachè

 

Другие

 

 

 

 

 

(TMDMTM)

 

БД

 

 

 

 

 

 

 

 

 

 

 

 

Рис.1. Архитектура Caché. Независимость хранения данных от способа их представления дает разработчику возможность создавать приложения на языках программирования, поддерживающих как реляционную технологию (ODBC, JDBC), так и объектную (Java, С++, XML и т.д.). При этом нет необходимости создавать промежуточную среду для конвертации из одного формата представления данных в другой - Caché произведет необходимую конвертацию автоматически.

Caché Objects.

Объектная модель Caché следует рекомендациям по стандарту ODMG (Object Data Management Group). Caché классы в полном объеме поддерживают все основные концепции объектной технологии:

Наследование. Объектная модель Caché позволяет наследовать классы от произвольного количества родительских классов.

Полиморфизм. Объектная модель Caché позволяет создавать приложения целиком и полностью независимыми от внутренней реализации методов объекта.

Хранимость. Объектная модель Caché позволяет долговременно хранить объекты на физических носителях. Поддерживаются несколько форматов хранения объектов – автоматический, предопределенный в Caché; ручной, определенный клиентом; а также Caché может выступать в роле шлюза для хранения данных в виде реляционных таблиц в других БД.

Класс объектов в Caché хранится в двух формах:

Описательная форма. Поддерживаются 2 языка описания классов объектов –UDL(unified definition language) и CDL (class definition language). Следует заметить, что UDL поддерживается начиная с версии Caché 5. В работах рекомендуется использовать UDL, т.к. CDL поддерживается для совместимости с предыдущими версиями Caché.

Объектная run-time форма. Использование класса возможно только после его компиляции в объектный код.

Для определения классов объектов, а также для решения многих других задач разработки приложений в Caché реализован инструментарий Caché Studio.

6

Caché Studio предоставляет набор интерфейсов для решения следующих задач:

1.Ведение проектов. В Caché 5 введено понятие проекта. Проект объединяет классы, программы и CSP-документы, используемые для решении некоторой прикладной задачи. Caché Studio предлагает набор интерфейсных средств для создания новых проектов, редактирования состава и удаления существующих проектов.

2.Поддержка базы метаданных классов Caché. С помощью Caché Studio возможно создание новых, редактирование и удаление существующих классов, а также добавление и удаление классов в/из проекта. Caché Studio поддерживает два языка описания классов (UDL, CDL) и обеспечивает контекстную и синтаксическую подцветку элементов класса, для удобства работы пользователя.

3.Обеспечение интерфейсами для создания и редактирования программ Caché. Caché Studio поддерживает два языка написания программ Caché – COS и Caché Basic, и обеспечивает контекстную и синтаксическую подцветку составных частей программы. Также Caché Studio предоставляет интерфейсы для добавления программ Caché в проект и их удаления из проекта.

4.Обеспечение интерфейсами для создания и редактирования CSPдокументов. Развитый интерфейс для разработки CSP документов Caché Studio обеспечивает контекстную и синтаксическую подцветку CSP тегов, HTML тегов, COS кода, а также JavaScript.

5.Обеспечение интерфейсами для отладки Caché программ и CSP страниц.

Рассмотрим виды классов, а также типы основных элементов классов, поддерживаемых в Caché, на примере создания небольшого приложения в Caché Studio. Как пример, рассмотрим предметную область «Семья». Обычная семья включает в себя Отца, Мать и детей. Определим основные функции разрабатываемого приложения: создать семью; добавить ребенка; изменить характеристики родителей и т.д.

План работы:

1.Разработка концептуальной и физической моделей предметной области.

2.Создание Caché проекта.

3.Создание необходимых классов Caché. Примеры работы с классами: создание, удаление, редактирование объектов.

4.Реализация требуемой функциональности с помощью методов класса Caché. Использование методов.

Разработка концептуальной и физической моделей предметной области.

Для решения поставленной задачи воспользуемся одной из диаграмм UML

– диаграммой классов. Для этого определим основные объекты предметной области, их свойства, а также взаимоотношения между выбранными объектами.

Основными объектами являются:

1.Отец.

2.Мать.

3.Ребенок.

4.Семья.

7

5. Свидетели.

Определим свойства каждого из объектов:

Объект

Свойства

Отец

Фамилия

 

Имя

 

Отчество

 

Дата рождения

 

Паспортные данные

Мать

Фамилия

 

Имя

 

Отчество

 

Дата рождения

 

Паспортные данные

Ребенок

Родители

 

Усыновлен?

 

Фамилия

 

Имя

 

Отчество

 

Дата рождения

 

Паспортные данные

Свидетель

Фамилия

 

Имя

 

Отчество

 

Дата рождения

 

Паспортные данные

 

Кем Приходиться

Семья

Отец

 

Мать

 

Дети

 

Дата создания

 

Адрес дворца бракосочетания

 

Свидетели

 

Адрес жительства

Как можно заметить, некоторые свойства объектов Отец, Мать, Свидетель и Ребенок повторяются. Для исключения хранения избыточной информации введем вспомогательный объект Человек, который будет иметь следующие свойства:

Объект

Свойства

Человек

Фамилия

 

Имя

 

Отчество

 

Дата рождения

 

Паспортные данные

 

Пол

Для определения связей между выбранными объектами необходимо знать, какие виды классов поддерживаются Caché. Объектная модель Caché поддерживает несколько видов классов (рис.2).

8

Классы типов данных

 

 

Незарегистрирова

Классы

 

нные классы

 

 

 

Встраиваем Классы ые классы объектов

Зарегистрирова нные классы

Хранимые

классы

Рис.2. Объектная модель Caché Caché классы подразделяются на два типа – классы типов данных и классы объектов. Классы типов данных определяют допустимые значения констант (литералов) и позволяют их контролировать. Классы типов данных могут выступать как системные или предопределенные константы (%Integer, %String и т.д.), так и константы, определенные пользователем. Классы типов данных не могут содержать свойств. Невозможно создать экземпляр класса типов данных,

что является главным отличием от классов объектов.

Зарегистрированные классы обладают предопределенным поведением, т.е. набором встроенных функций, наследуемых из системного класса %RegisteredObject (следует также заметить, что знак процента определяет принадлежность класса или метода к системному классу) и отвечающих за создание новых объектов и за управление размещением объектов в памяти. Незарегистрированные классы не обладают предопределенным поведением и разработка функций класса целиком и полностью возлагается на разработчика.

Встраиваемые и хранимые классы обычно наиболее часто используются в проектах, поэтому рассмотрим их подробнее.

Встраиваемые классы.

Встраиваемые классы наследуют свое поведение от класса %SerialObject. Основной особенностью хранения встраиваемого класса является то, что в памяти объекты встраиваемых классов существуют как независимые экземпляры, однако могут быть сохранены в базе данных, только будучи встроены в другой класс.

Основным преимуществом использования встроенных классов является минимум издержек, связанных с возможным в будущем изменением набора одинаковых свойств классов, представленного в виде встраиваемого объекта.

Вернемся к нашему примеру. Нет необходимости хранить экземпляры класса Человек независимо в БД, свойства этого класса нам нужны только как составная часть объектов классов Отец, Мать и Ребенок. Поэтому, класс Человек является встраиваемым классом в вышеперечисленные классы.

Хранимые классы.

Хранимые классы наследуют свое поведение от класса %Persistent. Класс %Persistent предоставляет обширный набор функций своим наследникам, включающий создание объекта, подкачку объекта из БД в память, удаление объекта и т.д. Определимся с уникальной идентификацией объектов хранимых

9

классов в памяти и в БД. Каждый экземпляр (объект) класса имеет 2 уникальных идентификатора – OID и OREF. OID (object ID) уникально идентифицирует объект, в таблице размещения объектов БД, т.е. на физическом носителе, а OREF (object reference) уникально идентифицирует объект, который был подкачен из БД и находится в памяти компьютера.

В нашем примере класс Семья является хранимым – нам необходимо хранить экземпляры класса Семья в БД независимо от других классов.

На рис.3. приведена концептуальная модель предметной области разрабатываемой системы.

«uses»

Ребенок

+Усыновлен +ОбщиеДанные : Человек

+Печатать()

*-Дети

-Родители

1

Человек

+ФИО +Паспорт +ДатаРождения +Пол

+РасчитатьВозраст()

«uses»

Семья

+ДатаСоздания +РегистрацияВ +АдресЖительства +Свидетели : Свидетели +Отец : Человек +Мать : Человек

+ДобавитьРебенка() +УдалитьРебенка() +ВывестиСписокДетей() +ДобавитьСвидетеля() +УдалитьСвидетеля() +ВывестиСписокСвидетелей()

«uses»

Свидетели

+Адрес +ОбщиеДанные : Человек +КемПриходится

+Печатать()

«uses»

Рис.3. Диаграмма классов

2. Создание Caché проекта.

Для создания проекта необходимо запустить утилиту Caché Studio, которую не трудно найти в меню Caché-куба.

Для разграничения доступа к данным в БД Caché предусмотрена процедура авторизации пользователя. Выберите требуемое соединение (Local), область (User), введите имя пользователя(_system) и пароль(SYS) для начала работы.

10

Соседние файлы в папке Инфа