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

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

Содержание


8.Основные объектные структуры данных в ОРАКЛ
[cycle | nocycle]
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   17

8.Основные объектные структуры данных в ОРАКЛ


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

ИМЯ_СХЕМЫ.ИМЯ_ТАБЛИЦЫ

Например:

ALL_ORACLE.ALL_ORACLE_USERS

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

Таблица может быть пустой или состоять из одной или более строк значений атрибутов. Строки значений атрибутов таблицы называются также кортежами. Для однозначной идентификации строки в таблице служит идентификатор (ссылка скрыта) — указатель, имеющий специальный формат. В Oracle 8 появились вложенные таблицы (NESTED TABLES), которые позволяют объявить таблицу как тип значения столбца родительской таблицы. Для  повышения скорости доступа к данным таблица может быть индексно организована (art-ORGANIZED TABLE). Физическое пространство для хранения данных таблицы выделяется частями, называемыми экстентами. Размеры начального и дополнительных экстентов определяются при создании таблицы.


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

Oracle предоставляет несколько типов индексов:
  • Индексы в виде B-дерева (B-tree) – самые распространенные и используются по умолчанию
  • Кластерные индексы в виде B-дерева – определяются специально для кластера
  • Индексы хэш-кластера – определяются специально для хэш-кластера
  • Глобальные и локальные индексы – относятся к секционированным таблицам и индексам
  • Индексы с инвертированным ключом – полезны в среде Oracle Real Application Cluster
  • Битовые индексы – компактные, подходят для столбцов с небольшим набором значений
  • Индексы на базе функций – содержат заранее вычисленные значения функции/выражения
  • Индексы домена – зависят от приложения или картриджа

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


Последовательности (Sequences) – объекты базы данных Oracle, которые используются для генерации целочисленных значений. Наиболее часто используются для генерации значений первичного ключа.

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

CREATE SEQUENCE [schema].sequence_name
[INCREMENT BY number]
[START WITH number]
[MAXVALUE number | NOMAXVALUE]
[MINVALUE number | NOMINVALUE]
[CYCLE | NOCYCLE]
[CACHE number | NOCACHE]
[ORDER | NOORDER] ;


Синоним (Synonym) – это альтернативное имя (псевдоним) для объекта схемы. Если для какого либо объекта базы данных Oracle существует синоним, то к объекту из SQL запроса можно обращаться либо по его настоящему имени, либо по синониму. Так же они обеспечивают некоторый уровень безопасности, поскольку скрывают имя объекта и его владельца, а так же делают прозрачным местоположение удаленных объектов распределенных баз данных.

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

Различают два типа синонимов:
  • Частный (PRIVATE)- синонимы содержаться в схеме конкретного пользователя и доступны только самому пользователю, и тем, кому он предоставил соответствующие права доступа.
  • Общий (PUBLIC)- этими синонимами владеет специальная группа пользователей – PUBLIC, в результате чего эти синонимы доступны всем пользователям базы данных.


Представления (VIEW) - это специализированный способ представления данных, содержащихся в одной или более таблиц, или в одном или нескольких представлениях. Результат запроса представляется в виде обычной таблицы.
Создание представлений

Для создания представлений, необходимо выполненить следующие условия:
  • Чтобы создать представление в своей схеме, пользователю необходимо иметь привилегию CREATE VIEW. Для создания представлений в схемах других пользователей, необходима привилегия CREATE ANY VIEW. Эти привилегии назначаются пользователю или роли.
  • Создателю представления необходимо иметь привелегии доступа ко всем объектам, на которые ссылается определение представления. Функциональные возможности представления ограничены привилегиями владельца.
  • Если владелец представления желает предоставить к нему доступ  другим пользователям, то он должен иметь объектные привилегии к базовым объектам с правом GRANT OPTION или системные с правом ADMIN OPTION.

Для создания представлений используется оператор CRAETE VIEW. Любое представление определяется запросом, который обращается к одной или более таблиц, материализованных представлений или других представлений. Как и все подзапросы, запрос, определяющий представление, не может содержать предложения FOR UPDATE.