Академический Документы
Профессиональный Документы
Культура Документы
БАЗАМИ ДАННЫХ»
Список СУБД второго эшелона довольно велик, сюда относят такие СУБД, как
Sybase, Informix, Ingress, Adabas, Interbase, Progress, Postgres, Cache, Linter,
Firebird, Teradata и т.д.
3) Непрерывность функционирования
Репликаты- это мн-во различных физических копий некоторого объекта БД, для
кот-х поддерживается синхронизация(идентичность) с некоторой главной копией.
данных.
4.1.Постреляционная модель
Стройность и мощность реляционных моделей сделали их
доминирующими в среде баз данных. Но постоянное усложнение данных
позволило выявить ряд неудобств, возникающих при работе с
реляционными базами:
∙ Реляционные системы ограничены в структурах представления
данных, так как все данные хранятся в них в виде отношений,
состоящих из простых атрибутов. Классическая реляционная модель
предполагает неделимость данных, хранящихся в полях таблицы, то
есть информация в таблице должна быть представлена в первой
нормальной форме. Однако на практике иногда возникают ситуации,
когда такое ограничение снижает эффективность работы с базой.
∙Данные в реляционной системе пассивны, и для описания их
поведения требуется создавать прикладные программы.
∙Возможности реляционных баз данных недостаточны в тех
случаях, когда объекты данных сложны, например: географические
информационные системы, мультимедийные базы, базы с проектной
документацией и др.
Все эти требования можно реализовать с помощью реляционных
методов, но в результате получается не очень естественное
представление требований пользователя.
Постреляционная модель является расширением реляционной
модели. Она снимает ограничение неделимости данных, допуская
многозначные поля, значения которых состоят из подзначений, и
набор значений воспринимается как самостоятельная таблица,
встроенная в главную таблицу.
4.2. Многомерная модель
Одновременно с реляционной моделью данных появилась
многомерная модель. Однако хоть идеи многомерной модели возникли
одновременно с реляционной, но
ним стал проявляться интерес. Это было вызвано появлением статьи Э.
Кодда, в которой
он сформулировал 12 требований к системам класса OLAP (Online
Analytical Processing – оперативная аналитическая обработка),
связанных с возможностью представления и обработки многомерных
массивов.
Информация в многомерной модели представляется в виде
многомерных массивов,
называемых гиперкубами. В одной базе данных, построенной на
многомерной модели, может храниться множество таких кубов, на
основе которых можно проводить совместный анализ показателей.
Конечный пользователь в качестве внешней модели данных получает
для анализа определенные срезы или проекции кубов, представляемые
в виде обычных двумерных таблиц или графиков.
Развитию многомерных моделей способствовало и то, что широко
распространенные реляционные модели и соответствующим образом
организованные базы данных хорошо подходили для оперативной, то
есть транзакционной обработки данных. В случае же аналитической
обработки, то есть поддержки принятия решений реляционные системы
не давали желаемого результата. А многомерные базы данных хорошо
обслуживают именно аналитическую обработку данных и обычно
являются узко специализированными. Они обеспечивают более быстрый
поиск и чтение данных по сравнению с реляционными моделями, а также
избавляют от необходимости многократного связывания таблиц.
Среднее время ответа у них на сложный вопрос в десятки раз меньше,
чем при использовании реляционной модели.
Основными понятиями для многомерной модели являются:
агрегируемость, историчность, прогнозируемость.
Агрегируемость данных означает рассмотрение и возможность
анализа данных на разных уровнях обобщения: для пользователя,
аналитика, руководителя. Историчность данных обозначает привязку их
ко времени и высокий уровень неизменности (статичности) данных и их
взаимосвязей. Временная привязка позволяет выполнять запросы,
имеющие значения даты и времени. А статичность – использовать
специализированные методы загрузки, хранения,
выборки. Прогнозируемость данных предполагает задание функций
прогнозирования и применение их к различным временным интервалам.
Многомерность модели данных – это, прежде всего, многомерное
логическое представление структуры данных при их описании и в
операциях манипулирования ими, а не многомерность их визуализации.
По сравнению с реляционной моделью многомерная организация
данных обладает более высокой информативностью.
4.3. Объектно-ориентированная модель данных
Объектно-ориентированная модель представляет структуру,
которую можно изобразить графически в виде дерева, узлами
которого являются объекты (рис. 16).
Между записями базы данных и функциями их обработки
устанавливаются связи с помощью механизмов, подобных тем, которые
имеются в объектно-ориентированных языках программирования. Такая
модель позволяет идентифицировать отдельные записи базы.
Определяемый пользователем объект называют объектом-целью. Поиск
в объектно-ориентированной базе состоит в выяснении сходства между
объектом, задаваемым пользователем, и объектами, хранящимися в
базе.
Базовыми понятиями этой модели являются следующие: объекты,
классы, методы, инкапсуляция, наследование, полиморфизм.
3Диаграммы
o 3.1Диаграмма классов
o 3.2Диаграмма компонентов
o 3.3Диаграмма композитной/составной структуры
o 3.4Диаграмма развёртывания
o 3.5Диаграмма объектов
o 3.6Диаграмма пакетов
o 3.7Диаграмма деятельности
o 3.8Диаграмма автомата
o 3.9Диаграмма прецедентов (Диаграмма вариантов использования)
o 3.10Диаграммы коммуникации и последовательности
o 3.11Диаграмма обзора взаимодействия
o 3.12Диаграмма синхронизации
Компиляция классов.
7. Определение классов.
Виды классов:
Элементы класса:
Caché поддерживает классы на уровне СУБД. Существует два основных типа классов:
Persistent, которые могут хранится в базе данных, и Registered, которые не хранятся в БД,
а выполняют роль программ и обработчиков. Так же есть ряд особых типов: Serial
(классы, которые могут быть встроены в Persistent классы для создания сложных типов
данных, таких как, например, адреса), DataType (создают пользовательский тип данных),
Index, View и Stream
Можно определять классы напрямую с помощью языка CDL — Class Definition Language.
Файл в формате CDL можно создать в любом текстовом редакторе. Импортировать такие
файлы определения классов можно либо с помощью Проводника Cache, либо загрузить файл
в Cache Object Architect, либо c использованием служебных API — вызовов Cache Objects из
командной строки.
команда DO;
команда SET;
команда WRITE;
команда READ;
команда QUIT;
команда NEW;
команда IF;
команда ELSE;
команда FOR.
Основные операторы:
Set f = CreateObject("VISM.VisMCtrl.1")
f.Server="CN_IPTCP:localhost[1972]:_system:@ SYS"
f.NameSpace="SAMPLES"
f.Execute("=$zv") 'получение версии СУБД
WScript.Echo f.VALUE
Set cn=Createobject("ADODB.Connection")
cn.ConnectionString="DRIVER={InterSystems ODBC35}; SERVER=127.0.0.1; PORT=1972; DATAB
ASE=SAMPLES; UID=_system; PWD=SYS"
cn.open
WScript.Echo "Succesfully!"
Set f = CreateObject("CacheActiveX.Factory")
Set rs = CreateObject("CacheActiveX.ResultSet")
If Not f.IsConnected() Then
f.Connect("cn_iptcp:127.0.0.1[1972]:SAMPLES:_SYSTEM:SYS")
rs.Close()
Set person = f.Static("Sample.Person")
age=person.CurrentAge(45678) 'вызываем метод класса Sample.Person
WScript.Echo age
End If
Тип
Окончание Пояснение
программы
.MAC Макрокод Макрокод может содержать код Cache
ObjectScript, макродирективы, макросы,
встроенный SQL и встроенный HTML. Он
компилируется в промежуточный код, а тот уже в
объектный код.
Включаемые макропрограммы могут содержать
любой код, разрешенный в .МАС-программах.
Включаемая Они применяются для построения
.INC
макропрограмма макробиблиотек и могут быть включены в
макропрограмму с помощью директивы Include -
отсюда и их название.
Промежуточный код - это рабочий код Cache
Промежуточный
.INT ObjectScript. Макросы и встроенный SQL сначала
код
преобразуются в промежуточный код.
Прежде чем выполнить промежуточный код,
необходимо откомпилировать его во внутренний
объектный код. Это происходит автоматически
при сохранении отредактированной программы.
.OBJ Объектный код Во время выполнения используется только
объектный код; Фирмы-разработчики
программного обеспечения тиражируют свои
приложения, большей частью, только в
объектном коде.
Процедурное структурированное
программирование
Для управления последовательностью выполнения программы
разработчик в Cache ObjectScript может выбирать между двумя
методами:
объектами.
Глобалы это структуры данных, как правило, многомерные, которые хранятся в базе
данных и могут обрабатываться в многопользовательской среде различными процессами.
Обработка глобалов в Caché весьма проста.
С помощью команды Set глобалу присваивается значение. Например: Set
^Univer(“математический”)=$ListBuild(“Волков Ю.Н.”, “22-33-45”)
Работа с глобалами
SQL – это не полноценный компьютерный язык типа PASCAL, C++, JAVA. Еще раз
отметим, что SQL, также как и QBE, является непроцедурным языком. С помощью
SQL описываются свойства и взаимосвязи сущностей (объектов, переменных и т.
п. ), но не алгоритмы решения задачи. Он не содержит условных операторов,
операторов цикла, организации подпрограмм, ввода-вывода и т. п. В связи с этим
SQL автономно не используется. Инструкции SQL встраиваются в программу,
написанную на традиционном языке программирования и дают возможность
получить доступ к базам данных (встроенный SQL). Кроме того, из таких языков,
С, C++, JAVA инструкции SQL можно посылать
Инструкции языка SQL
Таблицы
Представления
Программы (у меня показывает только список)
Классы
Кэшированные запросы
Хранимые процедуры
Индексы
Веб сервер позволяет подключиться к локальному хосту и работать с панелью управления субд
удаленно.
программирование клиентов.
class Person{
22.Запросы и ResultSet.
Запросы
Предоставляют в распоряжение разработчика операции с множествами экземпляров
классов. Можно считать, что запросы образуют для объектов класса некий фильтр.
Запросы можно формулировать либо на языке Caché Object Script, либо на SQL.
Результат запроса становится доступен через ResultSet – специальный интерфейс для
обработки результатов запроса в прикладных программах, написанных на языке Caché
Object Script, или на любом другом с использованием ActiveX, либо на языке Java. Кроме
того, запросы могут быть представлены в виде хранимых процедур SQL или же
представлений(View), а значит, далее обрабатываться средствами SQL.
23.Web-программирование в Caché. Особенности технологии CSP.
Объект %CSP.Request.
1. Выражения;
2. Скрипты, выполняющие код Caché или код JavaScript;
3. Методы стороны сервера;
4. CSP-теги;
5. Стандартные теги HTML.
Теги CSP
<CSP:XXX …>
Где ХХХ – это имя тега. Как встроенные, так и заказываемые теги обеспечивают
разнообразные функциональные возможности.
Возвращаемое
Имя Функция Аргументы
значение
Число значений для
Count %Library.Integer Имя поля ввода (%Library.String)
заданного имени поля
Имя поля ввода (%Library.String),
Соответствует Извлекает данные, необязательный второй
Get
аргументу посланные в запросе параметр задает значение по
умолчанию для поля
Kill Нет Удаляет поле ввода Имя поля (%Library.String)
из объекта %request
Перебрать все поля
формы, вернуть имя Имя предыдущего поля или «»
Next %Library.String
следующего поля (%Library.String)
формы
26.Использование JavaScript-кода и кода HTML в коде Caché Object
Script.
Язык Caché Object Script В СУБД Caché реализован собственный язык программирования Caché
Object Script (COS). COS — это расширенная и переработанная версия языка программирования M
(ANSI MUMPS). В первую очередь, COS предназначен для написания исходного кода методов
класса. Кроме этого, в Caché вводится понятие Caché-программы. Caché-программа не является
составной частью классов и предназначена для написания прикладного программного
обеспечения для текстовых терминальных систем. Особенности языка Object Script: • Язык не
имеет зарезервированных слов: вы свободны в выборе имен идентификаторов, также как и имен
переменных. Например: set set=12, где первый set – это команда, второй – это имя переменной. •
Не является языком строгой типизации. Используемые переменные не требуют предварительного
объявления. • Имеется большой набор встроенных функций, которые отличаются наличием знака
$ перед именем функции. Например: $Piece, $Select и т.д. • Существует довольно много
встроенных команд языка. Например: write, read и т.д. • Поддержка работы с классами и
объектами. • Поддержка работы с многомерными массивами. • Широкий набор функций для
прямого управления потоками внутри приложений. • Набор команд ввода/вывода. • Поддержка
встроенного SQL.