Программирование >>  Реляционные базы данных 

1 2 3 [ 4 ] 5 6 7 ... 125


1.3 Будущее систем БД

в мастояшсе время СД развиваются в различных направлениях. Некоторые из них - новые ТСХНОЛ0Г1И1. объектно-ориентнровднное программирование, ограничения II триггеры, мультимслийные данные или WWW - изменяют саму природу конвенциональных СУБД. Другие включают и себя новые приложения типа храни-лнша или мнтсгрлиин данных. Ниже дается краткий анализ основных направлений ршнмпт спст-ем Г>Д.

1.3.1 Типы, классы и объекты

Объсктно-ориснтиропаиное программирование часто рассматривается как средспю учучтения орпшизании профамм и п конечном счете как более нааежное средство peiwHjauMn ПО. Впервые популяризованное в языке Sniallialk обьсктио-ориеетированное щюграммированис получило серьезный стимул развития с появлением С++ и переходом иа него большинства разработок ПО. выполнявшихся ранее иа С. Чуть позже интерес к объектно-ориентированному программированию возрос благодаря языку Java, подходящему для распространения программ по WWW. Мир БД тоже стдп привлекателен для объектно-ориентированной парадигмы, и многие компании пХ)длют объектно-ориентированные СУБД. Напомним читателю идеи, положенные и основу объектной ориетаиин.

Систе-ма типов

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

1. Структуры записей. При наличии списка типов Т Ti..... Т и соответствующего списка имен полей (называемого в языке Sinallialk перел/еннылш

экземмяров) /, fi.....f можно построить тип записей, состоящих из

/1 компонентов Компонент / имеет тип 7}, и ссылка на него делается по имеш! его пояя /. Структуры записей совпадают с тем, что в языке С или С++ иазьшается страктами (siructs).

2. Типы множеств При наличии типа Г можно построить новые типы, применяя оператор множества к типу Г. В разных языках используются различные операторы множества, ио есть общие операторы, такие как массивы, списки и множества. Значит, если Г- число базового типа, можно посгроить типы массив ч кел, список чисел или множесгео чисел .

3. Типы ссыгюк. Ссылка на тип Г- это тип, значения которого подходят для локализашт значения типа 7 . В С и С++ ссылка -это указатель значения, т.е. место, в котором находится внесенный в виртуальную память адрес указанного значения. Часто для понимания ссылок используется модель указателей, однако в системах БД, где данные хранятся на многих .тисках, возможно, распределенных на множестве узлов, ссылка по нeoбxoдlllOcтll сложнее указателя. Например, она может включать о себя имя узл.1, номер диска, блок данного лиска и позишш в блоке, занимаемую значением, на которое делается ссылка

Разумеется, структ>ру отчетов и операторы множества .можно применять повторно для построения еще более сложных типов. Можно определить тип, янляю-шийся сгруктуроП отчета, первый компонеет которой поп и,менем customer относится к гииу строк а второй под именем accounts относигся к типу множества чисел. Такой тип иодхиаит для уст,жовления соответствия между к;1ие11тами банка и их счета.ми.



Основания для использования объектов

Объектно-ориентированное программирование обеспечивает для систем БД ряд важных средств.

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

Совместное ilth повторное использование ПО и схем с помощью классов и их иерархии проше. чем в конвениионалы1ых системах.

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

Методы

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

ПУСТЫМ.

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

Класс состоит из типов и. возможно, из нескольких функций или процедур (называемых .методами; см. ниже), которые можно выполнить на объектах этого класса. Объекты класса - это или значения данного типа (называемые неизменяемыми объектами), или переменные, значения которых относятся к этому же гигу (имеияемые объекты). Например, если по определению класс С относится к типу множество чисел , {2,5,7} - это неизменяемый объект класса С, тогда как переменную .1 можно отнести к классу С и приписать ей значение 12,5,7).

Идентичность объектов

Предполагается, что все обтлкты имеют значение, называемое идентичноапыо объекта (OID). Никакие два объекта не могут иметь одно и тоже OID, и ни один объект не может иметь два различных OID. OID -это значение, которое имеет ссылка на конкретный объект. 01D часто рассматривают как ссылку на объект в виртуальной памяти, но, как было сказано при обсуждении типов ссылок, в системе БД OID может быть более сложной конструкцией - последовательностью битов, достаточной для размещения объекта во вторичной памяти или на дополнительных носителях памяти неограниченного числа различных компьютеров. Поскольку данные сохраняются долго, OID должен быть корректным иа протяжении всего времени существования данных.



Абстрактные типы данных

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

Иерархии к.пассов

Можно один класс С объявить подклассом другого класса D. Тогда класс С но-следуап все свойства класса L\ включая тип D м все функции, определенные дня D. Однако С может иметь и дополнительные свойства. Например, для объектов класса С можно опрелелитъ новые методы либо взамен методов класса D, либо в дополнение к ипм. Можно даже расширить тип D различными способами. В частности, если типом D является структура записей, к этому типу можно добавить новые поля, представляющие только объекты типа С.

Пример 1.3. Рассмотрим класс, объектами которого являются банковские счета. Нсформачьное описание типа этого класса:

CLASS Account = {accountNo: integer;

balance: real; owner: REF Customer; }

В этом примере тип класса Account -это структура записи с тремя полями: номером счета, выраженным целым числом, 6Ш1ансом, выраженным действительным числом, н владельцем, являющимся ссылкой на объект класса Customer (этот класс необходим для банковской БД. но его тип здесь не вводится).

Для этого класса можно определить методы, например, метод

deposit(a: Account, m: real)

увеличивающий balance для объекта о класса Account на величину т.

И наконец, класс Account может иметь множество подклассов. Например, у счета временного клада может быть дополнительное поле dueDate, обозначающее дату, когда Ш1В.аслеи может снять баланс со счета. Можно опрсдел11Ть также дополнительный метод для подкласса TimeDeposit:

penalty(a: TimeDeposit)

приписывающий счет а подклассу TimeDeposit и начисляющий штраф за преждевременное снятие денег со счета как функцию от поля dueDate объекта а и теку-ше11 даты, полученной из системы, в которой действует данный метод. D

Объектно-ориентированные методы систем БД буд>т рассматриваться во многих частях этой книги. В разделе 2.1 вводится объектно-ориентированный язык проектирования БД ODL. а глава 8 посвящена объектно-ориентированному языку -эапросоп. Мы рассмотрим и язык запросов OQL, ставший стандартным для объектно-ориентированных СУБД, и объектно-ориентированные свойства SQL, стандартного языка запросов для реляционных СУБД.



1 2 3 [ 4 ] 5 6 7 ... 125

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика