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

1 ... 4 5 6 [ 7 ] 8 9 10 ... 125


2.1 Введение в ODL

ODL - стандартный язык для определения структуры БД л объектно-ориентированных терминах таких языков, как С++ и Smalltalk. Это расширение языка описания интерфейса IDL, являющегося компонентом CORBA - формирующегося стандарта распределенных объектно-ориентированных вычислений.

Абстрактный ODL


Погружение ODL OODBMS,

в С++ основанная на С++

Погружение ODL OODBMS,

в Smalltalk основанная на Smalltalk

pMt. 2.2. Конвертуровоние проектов ODL в выражения для OODBMS

Главное назначение ODL - обеспечить запись объектно-ориентированных проектов и ее последующий прямой перевод в выражения объектно-ориентированной СУБД (OODBMS). Поскольку основным языком таких систем является С++ или Smalltalk, ODL необходимо переводить и выражения этих языков. ODL соответствует им обоим (но больше С++), поэтому предложенный на рис. 2.2 переюд достаточно прост. Гораздо сложнее перевод из ODL или проектов, реализованных в терминах модели сущности-связи, в выражения, под.ходящие для более общих систем управления реляционными базами данных (RDBMS).

Схемы и данные

ODL - язык для определения схемы или структуры данных, не имеющий средств для определения реального содержания БД, запросов или операций с данными. Как упоминалось в разделе 1.1. языки определения схемы типа ODL часто называются языками определения данных, в то время как языки, поз1Юляюшне определять содержание БД или запрашивать и изменять данные, языками манипулирования данными. Мы ие будем обсуждать последние, пока в главе 4 не рассмотрим БД с точки зрения пользовате-пя. Основу изучения БД с точки зрения проектировщика составляют языки определении дат ы\.

2.1.1 Объектно-Ориентированное проектирование

Как счишется в объ€ктно-ориент1грованном проектировании, мир состоит из 05tfA.-;ff(ie -определенных наблюдаемых сущностей. Например, люди, бп и<овские счета, авиарейсы, курсы в колледже, здания и т.д. могуг мыслиться как объекты Как бьшо сказано в разделе 1.3.1, предполагается, что каждый объект можно уникальным образом идентифицировать, чтобы отличить его от любого другого объекта.

абстрактный проект конвертируется п конкретную реализацию реляционной БД. Мы рассмотрим и альтернативный путь: когда проект ODL становмгся вводом в систему управления объектно-ориентированной БД. В этом случае перевод является автоматическим и может состоять из простой трансляции выражений ODL в соответствующее выражение объекчно-ориситироваиного языка программирования типа С++ или Smalltalk.



1 Природа OID

Как говорилось в разделе 1.3.1, объектно-ориентированные БД бывают настолько большими, что число необ.чоаимы.х OID намного превосходит число аяресов в !шресно.м пространстве. Поэтому системы объектно ориентиропаины.х i БД обычно имеют схему создания уникачьных строк. связ;нных с каждым объектом: часто это довольно длинные строки-до 1б байт Например, объек! может получить в качестве 01D время своего создания (измеряемое в достаточно малых единицах, чтобы один компьютер не мог создать два обтлктл в одно и то же В)емя) вместе с идентификатором хост-компьютера, со.здавшсго его (если БД распределена на множестве хост-узлов).

Для организации информации обычно нужно сгруппировать объекты в классы объектов, обладаюших сходными свойствами. Понятя объект и класс в БД по сутк дела совпадают с этими понятиями в языках С++ и Smallialk (вспомните обсуждение объектно-ориентированных понятий в разделе 1.3.1). Однако, говоря об объектно-ориентированных проектах в языке ODL, следует учитывать два понимания сходных свойств объектов в классе.

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

Свойства объектов в классе должны быть одними и теми же. Программируя на объектно-ориентированном языке, мы часто представляем себе объекты в виде записей, как показано на рис. 2.3. Объекты имеют поля, или слоты, н которых размешены значения. 1акимн значениями могут быть целые числа, строки или массивы, ссылки иа другие об1.екты, а также методы, т.е. функции, применяемые к объектам. Однако при изучении ODL мы не будем углубляться в применение методов: оно одинаково во всех объектно-ориентированных языках программирования (о методах ODL см. раздел 8.1).

acctNo balance toOxvner

-♦ к объекту Customer

Объект Account

Рис. 2.3, Объект, представляющий счет

Иногда бывает удобно считать, что объекты лмеют структуру записи, тем не .менее данная глава посвящена проектированию на абстрактном уровне. Мы сосредоточимся на более абстрактных понятиях класса и его свойств, не вдаваясь в дeтaJll реализации типа упорядочивания полей записи и даже п реальное пред-cTaiuieiiMC объекта с помощью структуры записи.



1 Техннескн п ODL класс -это интерфейс П-Пюс реализация сrpjKT)p данных н методов. спязани1.г>. с иитср(])сйсом. В этом разделе реализация интерфейсов ODL не рассматривается но в дальнейшем будем считать, что описания интерфейса определяют класс.> .

Определяя проект классов ODL, будем описывать свойства следующих видов:

1. Атрибуты - свойства, типы которых строятся из исходных типов, например целых чисел иди строк. Характерно то. что атрибут имеет тип, не включающий в себя ни одного класса. В ODL типы атрибутов ограничены. Более подробно этот вопрос будет рассмотрен в разделе 2.1.7.

2. Связи - свойства, типом которых являются ссылка на объект некоторого класса или набор (например, множество) таких ссылок.

3. .Л/йпд(?ы - функции, которые можно применить к объектам класса. Как уже бьо сказано, здесь применение методов не рассматривается,

2.1.2 Описания интерфейса

Описания класса в ODL в их простейшей форме состоят из следующих элементов;

1 Ключевого слова interface

2 Имени интерфейса (т.е. класса).

3- Списка свойств класса, заключенного в скобки. Напоминаем, что свойства - это атрибуты, связи и методы.

Простая форма описания интерфейса: interface <имп>{

<СПИС0К СВ014СТВ>

2.1.3 Атрибуты в ODL

Свойства в их простейшем виде называются атрибутами. Эти свойства описывают определенные аспекты объекта, связывая с ним значение некоторого простого типа. Например, все объекты person могут иметь атрибут name, типом которого яв.ляегся строка, а значением - имя данного человека. Эти объекты могут иметь также атрибут birthdale, являющийся тройкой целы,\- чисел (т.е. структурой записи), выражающей год, месяц и день рождения человека.

Пример 2.1. На рис. 2.4, приведено ООЬ-описание класса фильмов. Здесь оно относительно простое: позже мы расширим его.

1) interface Movie {

2) attribute strng title;

3) attribute integer year;

4) attribute integer length;

5) attribute enum Film (color, blackAndWhite} filmType;

Рис. 2.4. ODL-onncoHMe клосса Movie

Строка I описывает Movie как класс. Ключевое слово interface используется в ODL для выражения класса. За строкой 1 следуют описания четырех атрибутов, которые имеют объекты класса Movie. Первый из них на строке 2 называется



1 ... 4 5 6 [ 7 ] 8 9 10 ... 125

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