Ооп бд объектно-ориентированная база данных

Вид материалаДокументы

Содержание


4.Зв'язки в технології ODMG
5. Об'єкти і літеральні типии
6.Мова визначення об‘єктів
Создание объектов
Create database
Create function
Create index
[null | not null]
Изменение объектов
Alter database
Alter procedure
Alter table
Alter trigger
Alter view
Alter table
Изменение столбцов
Удаление объектов
Active Data Guard
Total Recall
In Memory Database Cache
...
Полное содержание
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   17

4.Зв'язки в технології ODMG


Связи

В большинстве объектных систем связи неявно моделируются как свойства, значениями которых являются объекты. Например, если человек работает на некоторую компанию, то у каждого объекта-человека должно иметься свойство, которое можно назвать worksFor и значением которого является соответствующий объект-компания. Возникает проблема, если у объекта-компании имеется свойство, которое затрагивает множество служащих этой компании (например, employees – множество, включающее все объекты служащих данной компании). Эти два свойства являются несвязными, и поддержка их согласованности может вызывать значительную программистскую проблему.

В модели ODMG , подобно ER -модели, различаются два вида свойств – атрибуты и связи, хотя и несколько другим образом. Атрибутами называются свойства объекта, значение которых можно получить по OID объекта, но не наоборот. Значениями атрибутов могут быть и литералы, и объекты, но только тогда, когда не требуется обратная ссылка. Связи – это инверсные свойства. В этом случае значением свойства может быть только объект, поскольку литеральные значения не обладают свойствами. Поэтому возраст служащего обычно моделируется как атрибут, а компания, в которой работает служащий, – как связь.

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


5. Об'єкти і літеральні типии


Объектные и литеральные типы

В модели ODMG база данных представляет собой коллекцию различимых значений (denotable values ) двух видов – объекты и литералы. Объекты обладают свойствами идентифицируемости и индивидуального существования, а литералы являются компонентами объектов. Модель данных содержит конструкции для спецификации объектных и литеральных типов. Объектные типы существуют в иерархии объектных типов; литеральные типы похожи на типы, характерные для обычных языков программирования (например, С или Pascal ). В модели ODMG не используется термин класс. Единственная классификационная конструкция называется типом, и типы описывают как объекты, так и литералы. То, что называлось классом в Первом манифесте, в ODMG называется объектным типом.

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

Объектный тип состоит из интерфейса и одной или нескольких реализаций.25 Интерфейс описывает внешний вид типа: какими свойствами он обладает, какие в нем доступны операции и каковы параметры у этих операций.26 В реализации определяются структуры данных, реализующие свойства, и программный код, реализующий операции. Интерфейс составляет общедоступную (public ) часть типа, а в реализации при необходимости могут вводиться дополнительные частные (private ) свойства и операции. Все объектные типы (системные или определяемые пользователем) образуют решетку (lattice ) типов, в корне которой находится предопределенный объектный тип Object .

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

имя;

набор супертипов;

имя поддерживаемого системой экстента;

один или более ключей для ассоциативного доступа;

набор атрибутов,каждый из которых может быть объектом или литеральным значением;

набор связей, каждая из которых указывает на некоторый другой объект;

набор операций.


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

Точно так же, как имеются атомарные и конструируемые литеральные типы, существуют атомарные и конструируемые объектные типы. В стандарте ODMG 3.0 говорится, что атомарными объектными типа являются только типы, определяемые пользователями (см. ниже).. Конструируемые объектные типы включают структурные типы и набор типов коллекций.


6.Мова визначення об‘єктів

Понятие о DDL


Язык SQL имеет две составляющие: язык обращения с данными Data Manipulation Language (DML) и язык определения данных Data Definition Language (DDL). DML состоит из операторов, используемых для создания и получения данных. DDL состоит из операторов, используемых для создания объектов в базе данных и для установки свойств и значений атрибутов самой базы данных.

DML и DDL

Чем же отличаются эти две группы операторов? В то время, как операторы DML достаточно однотипны для различных реализаций SQL (что дает возможность каждому поставщику программной продукции вводить свои расширения), DDL имеет существенные различия для разных продуктов.

Создание объектов


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

Таблица 22.1. Операторы CREATE.

Синтаксис оператора CREATE

Создаваемый объект

CREATE DATABASE <имя>

Создает базу данных

CREATE DEFAULT <имя> AS < выражение_константы >

Создает значение по умолчанию

CREATE FUNCTION <имя> RETURNS <возвращаемое_значение> AS <операторы_tsql>

Создает пользовательскую функцию (См. ссылка скрыта)

CREATE INDEX <имя> ON <таблица_или_представление> (<индексируемые_столбцы>)

Создает индекс в таблице или представление











































Из операторов CREATE, рассмотренных в таблице 22.1, только оператор CREATE TABLE является достаточно сложным. Это вызвано тем, что определение таблицы составляет несколько различных элементов. Вы должны определить столбцы, а каждый столбец должен иметь имя и тип данных. Вы можете задать для столбцов возможность использования нулевых (NULL) значений идентификационной строке или в GUID, значение по умолчанию, любые ограничения, применимые к столбцу, а также несколько других свойств, которые мы не будем здесь рассматривать. Упрощенная версия синтаксиса, для определения столбцов имеет следующий вид:

<имя_столбца> <тип_данных>

[NULL | NOT NULL]

[

[DEFAULT <значение_по_умолчанию>] |

[IDENTITY [(начальное_значение>, <шаг_увеличения>)[NOT FOR REPLLCATION]]]]

[ROWGUIDCOL]

[<ограничение_для_столбца>[, <ограничение_для_столбца>...]]


Изменение объектов

В то время как оператор CREATE создает новый объект, оператор ALTER предоставляет механизм для изменения определения объекта. Не все объекты, созданные с помощью оператора CREATE, имеют соответствующий оператор ALTER. В таблице 22.2 приведен синтаксис для объектов, которые могут быть изменены.

Таблица 22.2. Операторы ALTER

Синтаксис оператора ALTER

Действие

ALTER DATABASE <имя> <спецификация_файла>

Изменяет файлы, используемые для хранения базы данных

ALTER FUNCTION <имя>

RETURNS <возвращаемое_значение>

AS < операторы_tsql>

Изменяет операторы Transact-SQL, содержащие функцию

ALTER PROCEDURE <имя>

AS < операторы_tsql>

Изменяет операторы Transact-SQL, содержащие в себе хранимую процедуру (См. ссылка скрыта)

ALTER TABLE <имя>

<определение_изменения>

Изменяет определение таблицы (В этом уроке мы подробно рассмотрим <определение_изменения>.)

ALTER TRIGGER <имя>

{FOR | AFTER | INSTEAD OF} <действие_dml>

Изменяет операторы Transact-SQL, содержащие в себе триггер (См. ссылка скрыта)

ALTER VIEW <имя>

AS <оператор_выборки>

Изменяет операторы SELECT, которые создают представление

Оператор ALTER TABLE является составным по той же причине, почему и оператор CREATE TABLE: определение таблицы состоит из нескольких различных частей. Упрощенная версия синтаксиса для оператора ALTER TABLE приведена ниже:

ALTER TABLE <имя>

{

[ALTER COLUMN <определение_столбца>] |

[ADD <определение_столбца>] |

[DROP COLUMN <имя_столбца>] |

[ADD [WITH NOCHECK] CONSTRAINT <ограничение_для_таблицы>]

}


Ключевые слова CHECK (подразумевается) и NOCHECK перед ограничением таблицы, предписывают SQL Server тестировать или не тестировать имеющиеся в таблице данные с учетом нового ограничения. WITH NOCHECK используется лишь в крайне редких случаях.

Изменение столбцов

Ниже представлено несколько ограничений для фразы ALTER COLUMN. Столбец не может быть изменен, если он:
  • имеет тип данных text, image, ntext или timestamp;
  • определен в таблице как ROWGIDCOL;
  • является вычисляемым столбцом или используется в вычисляемом столбце;
  • является реплицированным;
  • используется в индексе – если только столбец не имеет тип данных varchar, nvarchar или varbinary; тип данных не изменяется и размер столбца не уменьшается;
  • используется в статистике, генерируемой оператором CREATE STATISTIC;
  • используется в ограничении PRIMARY KEY;
  • используется в ограничении FOREIGN KEY REFERENCES;
  • используется в ограничении CHECK;
  • используется в ограничении UNIQUE;
  • указывается как DEFAULT.

Удаление объектов


Оператор DROP удаляет объект базы данных. В отличие от операторов CREATE и ALTER, операторы DROP имеют простой и неизменный синтаксис:

DROP <тип_объекта> <имя>


7. Преимущества и недостатки Oracle
Основные достоинства Oracle:
  • используется для создания специализированных приложений баз данных с высокой интенсивностью запросов;
  • обеспечивает надежность хранения информации, безошибочность работы, защищенность управления данными, отказоустойчивость при работе на операционных системах Microsoft Windows 95, Microsoft Windows NT и UNIX;
  • обеспечивает высокоинтенсивную обработку в режиме online;
  • содержит механизмы поддержания ссылочной целостности и контроля вводимой информации;
  • имеет встроенную систему безопасности, избирательный доступ к объектам базы данных;
  • не содержит ограничений по количеству индексов;
  • обеспечивает резервное копирование on-line;
  • имеет встроенную поддержку русского языка;
  • если объем базы данных будет расти, а "железо" оставаться без изменений, то возможно разделение таблиц на несколько частей, находящихся при желании на нескольких физических дисках.

Основной недостаток Oracle:
  • сравнительно дорогая СУБД

RAC


Технология Real Application Cluster, появившаяся в 9-й версии СУБД Oracle, позволяет объединять сервера, обслуживающие СУБД в одну <большую базу данных>, что позволяет достичь двух ключевых целей:
  1. Повышение производительности системы в целом путем добавления в кластер нового оборудования, без замены оборудования на более мощное. Производительность системы повышается пропорционально мощности подключенного узла. Следствием является сохранение инвестиций в оборудование, часто довольно существенных.
  2. Повышение отказоустойчивости СУБД: при выходе из строя или плановом выключении одного из серверов, входящих в кластер, СУБД полностью сохраняет свою работоспособность.



Похожие технологии реализованы в Microsoft SQL Server 2008, но имеется одно существенное отличие: Microsoft Application Cluster позволяет повысить отказоустойчивость системы в целом, но без влияния на производительность.

Таким образом, использование RAC позволяет значительно повысить производительность системы, которая дошла до своего <физического потолка>, с сохранением средств, потраченных на это оборудование, и повысить отказоустойчивость системы. Как следствие – надежность и экономия.

RAT


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

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


Active Data Guard


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

Можно использовать несколько резервных серверов для одного рабочего сервера.Какие преимущества предоставляет использование этой технологии ?
  • Во-первых, очевидное – надежность. Живучесть и отказоустойчивость базы данных повышается на порядок.
  • Во-вторых, разгрузка рабочего сервера от резервного копирования, которое можно выполнять на standby (резервном) сервере, и разгрузка от отчетов и прочих операций <только на чтение>, которые также можно выполнять на резервном сервере.
  • В-третьих, плановое выключение резервного сервера, например, для обновлений, не затронет работу пользователей.

Похожие технологии реализованы и в DB2 и в MS SQL Server, но Oracle Data Guard выгодно отличается простотой реализации и возможностью использовать резервный сервер в работе и резервном копировании, а также поддержкой различных режимов синхронизации основного и резервного сервера: синхронный, асинхронный, отложенный.

Total Recall


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

Использование Total Recall позволяет разгрузить таблицы базы данных от накопленной и редко использующейся информации. Но сохраняется возможность выполнить обычный SQL запрос и получить такую информацию на любой момент в прошлом, т.е. не требуется вносить какие-то изменения в существующее приложение, работающее с базой. Помимо этого, Total Recall обеспечивает неизменность исторической информации и защиту от ее подделки.


Похожих или аналогичных технологий в других СУБД пока не реализовано.

In Memory Database Cache


Уникальная технология In Memory Database Cache реализована на базе существующей базы данных Oracle TimesTen in memory database. Эта СУБД за счет ряда применяемых уникальных решений позволяет увеличить скорость обработки транзакций и выдачи запросов более чем на порядок (т.е. в 10 раз), чем обычная СУБД Oracle Database. Эта СУБД ориентирована на хранение и обработку данных только в оперативной памяти сервера.


Начиная с 10-й версии Oracle Database, СУБД Oracle TimesTen может выступать в качестве промежуточного звена между клиентским приложением и Oracle Database. В этом случае TimesTen реализует функции сверхбыстрого кэша данных, принимая и обрабатывая транзакции и передавая обработанные данные на хранение в Oracle Database. Такая архитектура позволяет значительно повысить потенциал и расширить сферу применения Oracle Database. Фактически, в такой архитектуре Oracle Database способна справиться с любой транзакционной нагрузкой.

Automatic Storage Management


Технология ASM приносит принципиально новые концепции в управление дисковой подсистемой сервера базы данных. Суть этой технологии заключается в абстрагировании дисковой подсистемы СУБД от файлов на жестком диске в файловой системе и абстрагировании собственно сервера базы данных от расположения файлов на дисках. В ASM управление осуществляется не файлами на дисках, а разделом диска, не форматированным в файловой системе. Причем, если используется не один жесткий диск, а набор дисков или RAID-массивов, эти диски объединяются в группу ASM и выглядят для СУБД как один жесткий диск.


Решением задачи по распараллеливанию данных по жестким дискам для достижения оптимальной производительности занимается теперь не системный администратор, а экземпляр ASM в автоматическом режиме и эффективней, чем это мог бы сделать администратор БД. Также решается задача по обеспечению надежности за счет избыточности хранимых данных. Уровень избыточности задается системным администратором. Теперь возможно извлекать и добавлять жесткие диски для базы данных <налету>, путем выполнения простых команд ASM. Поскольку ASM – это отдельный экземпляр, т.е. отдельнаый программный комплекс, не связанный с СУБД, один экземпляр ASM может обслуживать несколько экземпляров СУБД.

Аналогичных решений в других СУБД пока не предложено. Вместе с тем, трудно оспаривать выгоды по производительности и упрощению (а значит повышению надежности) администрирования СУБД, использующей ASM.

На сегодняшний день существуют как проприетарные, так свободно используемые системы управления базами данных, например, такие как:
  • IBM DB2 UDB
  • Microsoft SQL Server
  • MySQL
  • PostgreeDB
  • FireBird

Каждая система имеет свои особенности, преимущества и недостатки и свою цену.

СУБД Oracle является старейшей СУБД, первая версия появилась в 1979 году. С тех пор Oracle  развивался, становился быстрее, надежней и удобней для разработчика и пользователя. Фактически, конкурирующие СУБД повторяют тот путь, который прошел в своем развитии Oracle, и реализуют у себя технологии, реализованные в Oracle Database с годичным и более отставанием и с различным успехом. Как уже было отмечено, на сегодняшний день Oracle обладает как минимум 4-мя уникальными технологиями, обеспечивающими конкурентное преимущество этой СУБД. О том, что Oracle Database является признанным лидером в этой отрасли производства ПО, свидетельствует тот факт, что по итогам 2007 года Oracle  Database принадлежит 47% мирового рынка систем управления базами данных.