Задачи, недоступные обеим моделям 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Задачи, недоступные обеим моделям



Пример реальных потребностей моделирования, с которыми не справляется ни реляционный подход, ни нынешний объектный. Пусть мы собираем информацию о лицах в течение длительного периода времени. База проектировалась 10 лет назад, и в ней имелся атрибут личности «партийность». Для него был определен вполне достаточный логический тип. Через несколько лет вдруг выяснилось, что логического типа уже недостаточно, и для «партийности» требуется указывать значение из списка. Еще через несколько лет графа «партийность» в организации, ведущей базу данных, оказалась упразднена. Таким образом, для данных об одном и том же лице, относящихся к одному периоду времени, должен использоваться булев атрибут «партийности», для данных, относящихся к другому периоду, – символьный атрибут (внешний ключ?), а для данных, относящихся к третьему периоду, атрибут должен отсутствовать. Другими примерами структурных изменений во времени могут служить упразднение атрибута «национальность» или добавление атрибута «государственный пенсионный страховой номер».

Сегодняшние подходы к моделированию данных (что реляционный, что объектный) сориентированы в первую очередь на статическое моделирование прикладной области и мало рассчитаны на динамику (историю). В лучшем случае можно долго и тщательно разрабатывать схему данных, а уж потом фиксировать ее и реализовывать в ИС, но никогда не эксплуатируется тезис о том, что «структура данных может изменяться (а не только пополняться)».

 

16. СУБД ORACLE (технологии и возможности ORACLE 8i, ORACLE 9i, ORACLE 10g)

Начиная с версии 8 в СУБД ORACLE, появилась возможность хранения в таблицах неатомарных значений, а именно объектов в смысле объектного подхода. Существует два способа хранения объектов: в одном или нескольких полях реляционной таблицы или в специальной объектной таблице.

Oracle8

Направления развития типов и структур данных:

- расширение набора встроенных типов данных;

- расширение спектра стандартных структур данных;

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

Средства для работы с большими объектами

В Oracle8 размер большого объекта может достигать 4 ГБ, а сами объекты полноценно участвуют в транзакциях. Большие объекты представлены как бинарные (BLOB) и символьные (CLOB для текстов типа CHAR и NCLOB — для NCHAR) и могут храниться внешним по отношению к СУБД образом, в файлах операционной системы. Этот вид хранения обслуживается типом данных BFILE и представлены в столбцах реляционных таблиц LOB-локаторами, содержащими ссылку на реальное место хранения значений. Операции с большими объектами выполняются средствами пакета DBMS_LOB.

Идентификаторы реляционных строк

Каждая строка реляционной таблицы в СУБД Oracle8 имеет уникальный идентификатор. Этот идентификатор имеет тип ROWID. С каждой реляционной таблицей связан столбец типа ROWID и с именем ROWID, хранящий адреса строк. Столбец ROWID, доступный только на чтение, может использоваться наравне с другими столбцами таблицы в операторе SELECT и конструкции WHERE.

Для работы с типом ROWID служит пакет DBMS_ROWID.

Записи

Записи трактуются в языке PL/SQL Oracle8 как совокупность разнотипных (быть может, структурных) компонентов, их можно хранить в столбцах реляционных таблиц, передавать в качестве параметров и т.п.

Коллекции

Коллекции в Oracle8 представляют собой одномерные массивы с подвижными верхними границами и подразделяются на два вида:

· вложенные таблицы (таблицы могут являться атрибутами реляционных таблиц);

· массивы переменного размера.

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

 

Вложенная таблица как одномерный массив.

 

 

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

К коллекциям применимы следующие методы:

· EXISTS (проверяет, существует ли элемент коллекции с заданным номером);

· COUNT (выдает текущее число элементов коллекции);

· LIMIT (выдает NULL для вложенных таблиц и максимальный размер для массивов);

· FIRST/LAST (выдают номер первого/последнего элемента коллекции);

· PRIOR/NEXT (выдают номер предыдущего/следующего элемента коллекции или NULL, если таковой отсутствует);

· EXTEND (добавляет к коллекции заданное число элементов);

· TRIM (удаляет из конца коллекции заданное число элементов);

· DELETE (удаляет заданные элементы вложенной таблицы).

Вызов этих методов оформлен по-объектному: за именем коллекции через точку следует имя метода, затем— аргументы в скобках.

Объектные типы данных

Объектный тип данных — это тип, определяемый пользователем, и задающий как структуру (атрибуты), так и поведение (методы) объектов.

Разделение интерфейса и реализации относится к числу общих мест объектного подхода. Описание объектного типа состоит из двух частей. В интерфейсной декларируются атрибуты объектов и заголовки методов (процедур и функций). В теле типа приводится реализация методов.

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 120; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.129.100 (0.008 с.)