Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по БД(Манило).doc
Скачиваний:
7
Добавлен:
02.08.2019
Размер:
561.15 Кб
Скачать
  • жесткий сбой. Восстановление после поломки основного внешнего носителя базы данных.

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

    В основе избыточное хранение данных.

    2 вида ведения журнала:

    1. для каждой транзакции поддерживается отдельный журнал изменений – локальный журнал

    2. общий журнал изменений. Это приводит к дублированию информации в локальном и общем журнале. Поэтому используют только поддержку общего журнала изменений

    Общая структура журнала может быть представлена в виде последовательного файла. Каждая запись помечается номером транзакции, к которой она относится и значением атрибутов, которые она меняет. Фиксируется команда начала и завершения транзакции. Журнал транзакций дублируется системными средствами СУБД.

    Используют 2 варианта ведения журнала

    1. протокол с отмеченными изменениями

    2. протокол с немедленными изменениями

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

    1. пользователь видит только согласованные данные

    2. СУБД гарантировано поддерживает принцип независимого выполнения транзакций – сериализация транзакций.

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

    В ряде СУБД организована блокировка на уровне страниц.

    Блокировки, называемые синхронизационными захватами объектов, могут быть применимы к разным типам, в том числе и по всей базе данных.

    Для повышения эффективности параллельного использования транзакций, используются комбинирования разных типов синхронизационных захватов.

    Рассматриваются 2 основных типа:

    1. Совместный режим блокировки – нежесткая или разделяемая блокировка (S, Shared). Это означает разделяемый захват объекта. Объекты не изменяются в процессе выполнения транзакций и доступны другим только для чтения.

    2. Монопольный режим – жесткая или эксклюзивная блокировка (X, Exclusive). Требуется для выполнения операций занесения, удаления, модификации и предполагает монопольный захват объекта. Объекты недоступны для других транзакций.

    Правила совместимости захвата одного объекта другим

    Транзакция B

    Разблокирована

    Нежесткая

    Жесткая

    Транзакция А

    Разблокирована

    Да

    Да

    Да

    Нежесткая

    Да

    Да

    Нет

    жесткая

    Да

    Нет

    Нет

    Предполагается, что первой блокирует объект транзакция А, потом пытается получить транзакция B. Нескольким транзакциям допускается читать один и тот же объект. Захват объекта одной транзакцией по чтению не совместим с захватом другой транзакции того же объекта по записи. Захваты одного объекта разными транзакциями по записи несовместимы. Применение разных типов блокировок приводит к проблеме тупиков. Количество взаимно заблокированных транзакций может быть большим. Эту ситуацию каждая из транзакций самостоятельно обнаружить не может. Ее должна разрешить СУБД. Основой обнаружения тупиковых ситуаций является построение графа ожидания транзакции. Разрушение тупика начинается с выбора в цикле транзакций, так называемой транзакции-жертвы, т.е. транзакции, которой разрешено пожертвовать ради обеспечения возможности выполнения другой транзакции.

    Критерий выбора – стоимость транзакции. Жертвой выбирается самая дешевая. Стоимость выбирается многофакторной оценкой, в которую включаются с разными весами время выполнения, приоритет, число накопленных захватов. После выбора жертвы происходит ее откат. Освобождаются захваты, и может быть предложено выполнение других транзакций.

    Основные компоненты субд Cache'

    Основными компонентами СУБД Cache' являются следующие:

    TMDM. Многомерное ядро системы, ориентирование на работу с транзакциями.

    Сервер Cache' Objects. Представление многомерных структур данных ядра системы в виде объектов, инкапсулирующих как данные так и методы их обработки.

    Сервер Cache' SQL. Представление многомерных структур данных в виде реляционных таблиц.

    Сервер прямого доступа. Предоставление прямого доступа к многомерным структурам данных ядра системы.

    Файлы прямого и последовательного доступа

    Файлы прямого доступа – файлы с постоянной длиной записи, расположенные на устройствах прямого доступа. Обеспечивают наиболее быстрый доступ к произвольным записям и их использование – наиболее перспективное в системах баз данных

    Файлы последовательного доступа организованы на устройствах последовательного доступа.

    Файлы последовательного доступа могут быть организованы двумя способами.

    1. конец записи отмечается специальным маркером

    2. в начале каждой записи записывается ее длина

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

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

    NZ=F(k)

    NZ – номер записи

    k – значение ключа

    F - функция

    Функция должна быть линейной, чтобы обеспечивать взаимнооднозначное соответствие.

    Когда это не удается, применяются методы хэширования и создаются специальные хэш-функции.

    Суть: берется значение ключа и используется для начала поиска, то есть вычисляется некоторая хэш-функция, и полученное значение берется в качестве адреса начала поиска. То есть не требуется такого соответствия, но для увеличения скорости ограничивается время этого поиска. Поэтому допускается, что нескольким разным ключам может соответствовать одно значение хэш-функции, то есть один адрес. Это коллизии. Значения ключей, которые имеют одно и то же значение хэш-функции – синонимы. При использовании хэширования как метода доступа необходимо выбрать хэш-функцию и метод разрешения коллизии.

    Существуют разные методы:

    1. использование сгенерированного адреса в качестве начальной точки для последовательного просмотра. С этого адреса начинается поиск свободного места в памяти

    2. сгенерированный адрес считается при этом адресм хранения не одной конкретной записи, а области памяти, в пределах которой размещаются все записи, получившие этот адрес. В пределах страницы записи могут размещаться в последовательном порядке поступления. Если со временем структура окажется заполненной, в памяти выделяется новая страница, связываемая с предыдущей указателем. Хэш-функция может генерировать абсолютный адрес страницы и ее номер.

    Инвертированные списки

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

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

    Инвертированный список по номеру группы для списка студентов

    1-ый уровень 2-ой уровень

    Ключ

    № блока

    100

    1

    200

    3

    300

    5

    Блок 1

    1

    4

    21

    25

    Блок 2

    31

    34

    40

    Блок 3

    5

    7

    № записи

    ФИО

    № группы

    1

    Иванов

    100

    2

    Петров

    300

    3

    Сидоров

    300

    4

    Андреев

    100

    5

    Михайлов

    200

    6

    Николаев

    300

    7

    Борисов

    200


    Многозначная зависимость

    Многозначная зависимость существует, если при заданных значениях атрибута X существует множество, состоящее из 0 или более взаимосвязанных значений атрибута Y, причем множество значений атрибута Y связано со значением атрибута в отношении U-X-Y, где U – все множество атрибутов отношений.

    Обозначение многозначной зависимости X->>Y.

    Аксиомы многозначной зависимости

    1. дополнение для многозначной зависимости: Если X<U, Y<U, X->>Y, то X->>U-X-Y

    2. пополнение для многозначной зависимости: Если X<U, Y<U, V<U, W<U. Причём V<W, X->>Y, то WuX->>VuY

    3. транзитивность для многозначной зависимости: Если X<U, Y<U, X->>Y, Y->>Z, то X->>Z-Y

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

    1. объединение Если X<U, Y<U, Z<U, X->>Z, X->>Y, то X->>YuZ

    2. псевдотранзитивность Если X<U, Y<U, Z<U, W<U, X->>Y, WuY->>Z, то WuX->>Z-(WuY)

    3. смешанное правило транзитивности Если X<U, Y<U, Z<U, X->>Y, XuYZ, то XZ-Y

    4. правило декомпозиции X<U, Y<U, Z<U, X->>Y, X->>Z,то X->>Y^Z, X->>Y-Z, X->>Z-Y

    Модель удаленного доступа к данным

    (Remote Data Access)

    База данных хранится на сервере. Там же находится ядро СУБД. На клиенте располагается Presentation Logic и Business Logic.

    SQL запрос

    Результат запроса

    Стандарт – язык SQL

    Достоинства: унификация интерфейса клиент-сервер. Резко уменьшается загруженность сети. Сервер базы данных загружается целиком операциями обработки данных запросов и транзакций.

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

    Функции управления информационными ресурсами выполняются на клиенте, что усложняет клиентское приложение.

    Запросы на SQL могут существенно загрузить сеть при интенсивной работе.

    Постреляционная модель данных

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

    Достоинства: возможность представления совокупности связанных таблиц одной постреляционной таблицей.

    Недостатки: сложность решения проблемы целостности и непротиворечивости данных.

    Многомерные модели

    Можно выделить 2 направления:

    1. системы оперативной транзакционной обработки.

    2. аналитической обработки или системы поддержки принятия решений

    Реляционные предназначались для информационных систем оперативной обработки информации. В области аналитической обработки информации более эффективны многомерные СУБД.

    Основные понятия:

    Агрегируемость: означает просмотр информации на различных уровнях. Ее обобщение. Степень детальности информации зависит от ее уровня.

    Историчность: обеспечение высокого уровня статичности данных и их взаимосвязи, а также обязательность привязки данных ко времени. Статичность позволяет использовать при обработке данных специальные методы загрузки, хранения, индексации, выборки

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

    Многомерность модели означает многомерное логическое представление структуры информации при описании и при операциях манипулирования данными. Обладает более высокой наглядностью и информативностью по сравнению с реляционной.

    Данные представляют собой срезы из многомерного хранилища

    Измерение: это множество однотипных данных, представляющих одну из граней гиперкуба. Например – временное измерение.

    Ячейка: значение, которое однозначно определяется фиксированным набором измерений. Тип поля обычно цифровой. Поликубическую модель поддерживает Oracle. Операции:

    1. Формирование среза. Срез – подмножество гиперкуба, полученное в результате фиксации одного или нескольких измерений.

    2. Вращение. Применяется при двумерном представлении данных. Суть заключается в изменении порядка измерения при визуальном представлении данных.

    3. Агрегация и детализация. Переход к более общему или более детальному представлению данных.

    Основное достоинство модели – эффективность аналитической обработки данных больших объемов, связанных со временем. В реляционной модели происходит нелинейный рост трудоемкости в зависимости от размера.

    Недостаток: громоздкость модели для простых задач.

    Распределенная обработка данных

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

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

    Такие системы – системы распределенных баз данных.

    Основной принцип технологии «клиент-сервер», применяемой к технологии баз данных – разделение функций стандартного интерактивного приложения на 5 групп.

    1. функция ввода и отображения данных (presentation logic - PL)

    2. прикладные программы, определяющие основные алгоритмы решения задач приложения (business logic - BL)

    3. функция обработки данных внутри приложения (database logic - DL)

    4. функция управления информационными ресурсами (Database Manager System)

    5. служебные функции, играющие роль связок между функциями групп 1..4

    Структура типового приложения

    PL: все интерфейсные экранные формы и все, что выводится на экран, как результат решения либо как справочная информация.

    Основные задачи PL:

    1. формирование экранных изображений

    2. управление экрано

    3. чтение/запись в экранной форме

    4. обработка клавиатуры и мыши

    BL:определяет алгоритм решения

    DL: данными управляет СУБД. Для обеспечения доступа к данным используется SQL.

    В централизованной архитектуре эти части приложений располагаются в единой среде и комбинируются внутри оной исполняемой программы. В децентрализованной архитектуре эти задачи по-разному распределены между сервером и клиентом.

    В зависимости от характера распределения можно выделить следующие модели:

    1. Распределенная презентация (distribution presentation - DP)

    2. Удаленная презентация (remote presentation - RP)

    3. Распределенная бизнес-логика (distribution business logic - DBL)

    4. Распределенное управление данными (distribution data management)

    5. Удалённое управление данными (remote data management)

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

    Плотный, неплотный индекс

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

    Файлы с плотным индексом

    В этих файлах основная область содержит последовательность записей одинаковой длины, расположенных в произвольном порядке, в структура записи в ней имеет следующий вид:

    Значение ключа

    Номер записи

    Значение ключа – значение первичного ключа

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

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

    Схематично это можно представить следующим образом:

    Когда исчезает свободная область, возникает переполнение индексной области. В этом случае возможны 2 решения:

    1. перестроить заново индексную область

    2. организовать область переполнения для индексной области, в которой будут храниться не поместившиеся в основную область записи

    Первый способ требует дополнительного времени на переработку индексной области.

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

    Файлы с неплотным индексом

    Неплотный индекс строится для упорядочения файлов. Структура записей индекса для таких файлов имеет следующий вид

    Значение ключа первой записи блока

    Номер блока с этой записью

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

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

    Модель сервер-приложение

    Application Server

    AS – расширение двухуровневой модели и в ней вводится дополнительный промежуточный уровень между клиентом и сервером. Этот уровень содержит один или несколько серверов-приложений. В этой модели компоненты – приложения делятся между тремя исполнителями.

    Клиент – обеспечение логики представления (графический, пользовательский интерфейс). Клиент исполняет коммуникационную функцию, которая обеспечивает доступ клиенту в локальную или глобальную сеть. Когда клиент также является клиентом менеджера распределенных транзакций, он включает в себя управление распределенными транзакциями. Сервер приложений и использует наиболее общие правила BL, поддерживает каталог с данными. Обеспечивает обмен сообщениями и поддержку запросов (в распределенных транзакциях) – новый промежуточный уровень архитектуры. Сервер базы данных выполняет только функции СУБД. Поддерживает целостность реляционной базы данных, обеспечивает функции хранилищ базы данных, функции создания и ведения баз данных, создает резервные копии баз данных, управляет выполнением транзакций.

    Эта модель обладает большей гибкостью, чем двухуровневая модель

    Достоинства: разделение функций приложения на 3 независимые составляющие

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

    Более сложные схемы взаимодействия:

    Например, схемы, в которых элемент, являющийся сервером для некоторого клиента, в свою очередь выступает в качестве клиента по отношению к другому серверу.

    Возможен также вариант, когда 1 объект по отношению к одним является клиентом, а по отношению к другим – сервером.

    В процессе работы роли объектов могут меняться.

    Наиболее гибкая и универсальная AS модель.

    Организация индексов в виде в-деревьев

    Построение В-деревьев связано с построением индекса над уже построенным индексом. Если построен неплотный индекс, то сама индексная область может быть рассмотрена как основной файл, над которым надо снова построить неплотный индекс, а потом снова над новым индексным полем строится следующий. И так до тех пор, пока не останется всего один индексный блок. В общем случае получают некоторое дерево, каждый родительский блок которого связан с одинаковым количеством подчиненных блоков, число которых равно числу индексных записей, размещаемых в этом блоке. Такие деревья называются сбалансированными. Отсюда и пошло название B (Balanced) деревья.

    Реляционное исчисление с переменными на доменах

    Строится так же, как и исчисление на кортежах (с использованием тех же самых операторов).

    Атомами формул могут быть:

    1. R(x1 … xn), где xi –const или переменная на некотором домене. Этот атом указывает, что значение тех xi, которые являются переменными д.б. выбраны так, чтобы (x1..xk) было кортежем отношения R.

    2. xθy, где x,y-const, или переменные на некотором домене. θ – арифметический оператор сравнения, смысл атома заключается в том, что x и y представляют собой значения, при которых истинно xθy. Формулы в РИ с переменными на доменах также используют A, E, И, ИЛИ, НЕ. Аналогично используются понятия свободной и связанной переменной.

    Формула РИ с переменными на домене имеет вид: {x1..xk|Ψ(x1..xk)}, где Ψ – формула, обладающая тем свойством, что только ее свободные переменные на доменах являются различн. перемен. х1..хk.

    Выражение РИ c переменными на доменах является безопасным, если

    1. Из истинности Ψ(x1..xk) следует, что xi принадлежит D(Ψ).

    2. Если существует и (Eu)(Ψ1(u)) является подформулой Ψ, то из истинности Ψ1(u) следует, что u принадлежит D(Ψ1)

    3. Если для любого u (Au)(Ψ1(u)) является подформулой Ψ1(u) следует, что u не принадлежит D(Ψ1).

    Для каждого безопасного реляционного выражения с переменными на доменах существует эквивалентное ему выражение реляционной алгебры и эквивалентное ему выражение реляционного исчисления с переменными на кортежах.

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

    1. Если t является кортежем арности k, то вводится k новых переменных на доменах t1..tk

    2. Атомы R(t) заменяются атомами R(t1..tk)

    3. Каждое свободное вхождение t[i] заменяется на ti

    4. Для каждого кванта (Eu) и (Au) вводится m новых переменных на доменах u1..um, где u-арность кортежа. В области действия выполняются следующие замены:

    RmR(U1..Um) U[i]Ui EUEU1..EUm AUAU1..AUm

    5. Выполняется построение выражения {t1..tk|Ψ`(t1..tk)}, где Ψ’, это Ψ, в которой выполнены соответствующие замены.

    Реляционное исчисление с переменными кортежами

    Формула реляционного исчисления помимо арифметических операций включает дополнительные логические операции (A и E). Используются также операции И,ИЛИ,НЕ.

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

    {r|Ψ(r)},где r-кортеж, Ψ(r) – некоторая формула исчисления.

    Пример; {r|R1(r)^R2(r)} – необходимо получить множество всех кортежей, таких, что они принадлежат отношениям R1 и R2.

    Атомы формул бывают трех типов:

    1. R(t), где R – имя отношения, t – кортеж в отношении

    2. s[i]θu[j], где s и u – переменные кортежи, θ – арифметический оператор. i,j – номера или имена интересующих столбцов. S[i]- i-й компонент кортежа переменной

    3. s[i]θa, или aθs[i], где a=const.

    При записи выражения используются понятия свободных ли связных переменных. Вхождение переменной x в формулу РИ Ψ(x) связано, если она находится в части формулы, начинающейся квантором A или E, за которым непосредственно следует переменная x. В таких случаях говорят, что квантор ее связывает.

    В реляционном исчислении вводятся и рассматриваются безопасные выражения.

    Выражение в РИ является безопасным, если:

    1. Из истинности Ψ(t) следует, что каждый компонент кортежа t принадлежит D(Ψ).

    2. Для любой подформулы вида (Eu)(Ψ1(u)) входящей в состав Ψ, из истинности Ψ1(u) следует, что u принадлежит D(Ψ1).

    3. Для любой подформулы вида (Au)(Ψ1(u)), входящей в состав Ψ, из истинности Ψ1(u) следует, что u не принадлежит D(Ψ1).

    Множество D(Ψ) определяется как функция фактических отношений, которая указывается в Ψ(t), констант, присутствующих в формуле Ψ(t) и элементов кортежей тех отношений, которые указывают в Ψ (t)

    D(Ψ)={a1Ψ}U{a2Ψ}U…U{a}UП1(R1)U…UПk(Rn), где a – const, встретившиеся в формуле Ψ(t),

    Пi(Rj) – проекции кортежей фактических отношений R1-Rn встретившихся в формуле Ψ(t), то есть, в данном случае, компоненты кортежей.

    Для каждого выражения реляционной алгебры существует эквивалентное ему безопасное выражение в реляционном исчислении с переменными на кортежах.

    Модель активного сервера

    Ее поддерживает большинство современных СУБД.

    Основа этой модели – механизм хранения процедур, как средств программирования SQL сервера.

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

    В этой модели BL разделен между клиентом и сервером. На сервере BL реализована в виде хранимых процедур. Механизм использования триггеров предполагает, что при срабатывании одного триггера могут возникать события, которые вызовут срабатывания других треггеров. В данной модели сервер является активным, так как не только клиент, но и сам сервер может быть инициатором обработки данных в базе данных. И хранимые процедуры и триггеры хранятся в словаре базы данных. Они могут быть использованы несколькими клиентами, что ведет к уменьшению дублирования алгоритмов обработки данных в разных клиентских программах. Для написания хранимых процедур и триггеров используется расширение стандартного языка SQL в так называемый встроенный SQL.

    Достоинства: трафик обмена информацией резко уменьшается.

    К лиент Сервер

    Вызов хр. процедур

    Рез-т для вывода

    Недостатки: очень большая загрузка сервера.

    Сервер выполняет следующие функции.

    1. обеспечение автоматически срабатывающих триггеров при возникновении связанных с ним событий

    2. обеспечение внутренней программой каждого триггера

    3. запуск хранимых процедур

    4. мониторинг событий, связан с триггерами

    5. запуск хранимых процедур из триггеров

    6. обеспечение всех функций СУБД

    Дальнейшее развитие:

    Таким образом, клиенты подключаются не к реальному серверу, а к промежуточному звену – диспетчеру и выполняют функции диспетчеризации запросов к серверу. Подобные системы относят к системам с виртуальным сервером. А их топологию к виду «несколько клиентов, несколько серверов»

    Модель файлового сервера

    или модель DDM

    File Server – FS

    Здесь presentation logic и business-logic располагаются на клиенте. На сервере располагаются файлы с данными и поддерживается доступ к файлам. Функции управления информационными ресурсами находятся на клиенте. В этой модели файлы базы данных хранятся на сервере. Клиент обращается к серверу с файловыми командами, а механизм управляет всеми информационными ресурсами, база мета данных на клиенте.

    Файловые команды

    Блоки данных

    Достоинства: имеет разделение монопольного приложения на 2 взаимодействующих процесса. Сервер может обслуживать множество клиентов.

    Недостатки: высокий сетевой трафик, который связан с передачей по сети множества блоков и файлов. Небольшое количество операций манипуляций с данными, которые определяются только файловыми командами. Отсутствие средств безопасности доступа к данным. Защита только на уровне файловой системы.

    Субд Cache. Виды классов. Элементы классов

    В основе Cache лежит транзакт многомерное модели данных, которая позволяет хранить и представлять данные так, как они чаще всего используются. Сервер Cache предназначен для обработки транзакции в системе с большими и сверхбольшими БД, и с большим числом (10000)пользователей. Сервер Cache позволяет получать большую производительность, так как Cache не хранит избыточные данные и таблицы. В Cache реализована концепция единой архитектуры данных. К одним и тем же данным, хранящимся под управлением сервера есть три способа доступа:

    1. Прямой

    2. Объектный. Использует Java, Visual C++, Организован объектный модуль в соответствии с рекомендациями.

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

    Сервер Cache Object

    Объектная модель поддерживает все основные концепции ООП. Наследование, Полиморфизм, Инкапсуляция. Также используются несколько стратегий хранения объекта в БД.

    1. Автоматическое хранение в многомерной БД, Cache

    2. Хранение в структурах, определенных пользователем.

    3. Хранение в таблицах внешней реляционной БД.

    Дополнительные возможности (характеристики)

    1. классы определяются путем

    2. В основе системы лежат объекты и константы, обладающие типом данных. Объекты имеют однозначные идентификаторы, независимые от их внутреннего состояния. Константы не имеют идентификаторов, но имеют значения.

    3. Классы могут содержать свойства. Значение свойства объекта определяет его состояние.

    4. Свойства могут представлять собой константы ссылки на объекты или встроенные объекты и коллекции их них

    5. Классы могут содержать методы.

    6. Классы могут содержать генераторы методов.

    7. Многие общие характеристики поведения объектов могут автоматически управляться Cache. Также поведение объектов может определяться пользователем.

    Виды классов:

    Классы

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

    Классы объектов

    Зарегистр. Классы

    Незарегистр. Классы

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

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

    Классы типов данных: это специальные классы, определяющие допустимые значения констант, и позволяющие их контролировать. Содержат опред. набор методов проверки. Не могут содержать св-в.

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

    Незарегистрированные классы: все их методы разработчик определяет сам, отвечая за назначение и поддержку уникальных идентификаторов, объектов и объектных ссылок.

    Ограничения:

    1. Система не выделяет память для значений свойств объектов.

    2. Отсутствует автоматическая подкачка объекта, на который делается ссылка.

    3. Полиморфизм не поддерживается.

    4. Переменные, ссылающиеся на незарегистрированные объекты должны декларироваться с указанием соответствующего класса.

    Зарегистрированные классы имеют полный набор методов. Автоматически наследуют методы управления объектов от системного класса. Экземпляры существуют временно в памяти процесса. Их называют временными объектами. Созданием новых объектов, зарегистрированных классов и управлением их размещения в памяти занимается Cache.Наследуются от Library Registered Object. Допускают полиморфизм.

    Встраиваемые классы могут храниться не только временно в памяти, но и продолжительное время в БД. Эти классы наследуют свое поведение от класса Library Serial Object. Главное в их поведении – то, что экземпляры в памяти существуют как независимые объекты и могут быть сохранены в БД лишь будучи встроенными в другие объекты.

    Хранимые классы обеспечивают длительное хранение экземпляра в БД. Наследуются от Library Persistent. Экземпляры обладают однозначными объектными идентификаторами и могут независимо храниться в Cache. Когда хранимый объект используется как свойство класса говорят о ссылке на хранимые объекты.

    Элементы класса:

    1. Название 2. Ключевые слова

    3. Свойства, то есть элементы данных, хранящихся в классе. Могут быть константами, встроенными объектами и ссылками на хранимые объекты. Классы типов данных не содержат свойств. При доступе к свойствам возможно изменение формата и другое преобразование. Объекты, на которые делаются ссылки автоматически загружаются в память. Свойства могут быть public и private.

    4. Методы, то есть код, реализующий те или иные функциональные возможности.

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

    6. Запросы, то есть операции с множеством операций класса.

    7. Индексы – структуры, оптимизирующие доступ к объектам.

    Типы данных реализуются классами.

    Классы могут

    1. Выполнять преобразование данных между форматами, хранимыми в БД, памяти, памяти и отображаемыми. 2. Отвечают за проверку значений

    3. Обеспечивают взаимодействие с SQL, Java, ActiveX.

    Отличия от классов объектов.

    1. Невозможно образование экземпляров 2. не могут содержать свойств

    3. методы предоставляются программисту через интерфейс типов данных

    4. Имеет методы проверки значений.

    Коллекция

    Свойства, обладающие множеством значений могут быть представлены в Cache в виде коллекций. Могут содержать константы, объекты, и ссылки на объекты.

    Коллекция массив: каждый элемент упорядочивается по ключу.

    Коллекция список: в качестве ключа выступает позиция элемента.

    позиция

    Значение

    Методы – операции, которые может выполнять объект. Каждый аргумент имеет имя, параметры и т.д.

    Бывают методы экземпляра и методы класса (static)

    Виды методов:

    Code – содержит код на языке ObjectScript.

    Expression – содержит одно выражение. При компиляции все вызовы метода заменяются этим выражением.

    Запросы – могут быть представлены в виде хранимых процедур SQL или представлений. Результаты доступны через специальный интерфейс.

    Индексы – Используются для оптимизации скорости выполнения запросов. Каждый индекс создается на основе одного или нескольких свойств класса. Может быть определен метод сортировки

    Объектное понятие

    Реляционное

    Классы

    таблицы

    Экземпляр

    Строка

    идентификатор объекта

    Ключ

    свойство константа

    Столбец

    ссылка на хранимый объект

    внешний ключ

    встраиваемый объект

    индивидуальные столбцы

    коллекция список

    столбец с полем-списком

    коллекция массив

    Подтаблица

    поток данных

    Блок

    Индекс

    Индекс

    Запрос

    хранимая процедура

    метод класса

    хранимая процедура

    В реляционной модели нет аналогов для параметров классов, многомерных свойств и методов экземпляров. Компилятор Cache автоматически создает таблицы для всех хранимых классов.