Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Достоинства и недостатки






 

Сильные места ранних СУБД:

- Развитые средства управления данными во внешней памяти на низком уровне;

- Возможность построения вручную эффективных прикладных систем;

- Возможность экономии памяти за счет разделения подобъектов (в сетевых системах).

Недостатки:

- Слишком сложно пользоваться;

- Фактически необходимы знания о физической организации;

- Прикладные системы зависят от этой организации;

- Их логика перегружена деталями организации доступа к БД.

 

 

***** Объектно-ориентированные БД

 

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

Объектно-ориентированное программирование в СУБД.

 

В наиболее общей и классической постановке объектно-ориентированный подход базируется на концепциях:

· объекта и идентификатора объекта;

· атрибутов и методов;

· классов;

· иерархии и наследования классов.

Любая сущность реального мира в объектно-ориентированных языках и системах моделируется в виде объекта. Каждый объект имеет состояние и поведение. Состояние объекта - набор значений его атрибутов. Поведение объекта - набор методов (программный код), оперирующих над состоянием объекта. Значение атрибута объекта - это тоже некоторый объект или множество объектов. Состояние и поведение объекта инкапсулированы в объекте; взаимодействие между объектами производится на основе передачи сообщений и выполнении соответствующих методов. Множество объектов с одним и тем же набором атрибутов и методов образует класс объектов. Допускается порождение нового класса на основе уже существующего класса - наследование.

Объектно-ориентированное программирование после своего появления начало быстро завоевывать популярность среди программистов. Поэтому создатели СУБД также постарались включить элементы объектно-ориентированного подхода в свои языки программирования.

Например, еще в СУБД Clipper 5.0 существовали следующие классы объектов:

 

Класс Error - представляет объекты, содержащие информацию об ошибках выполнения программ.

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

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

Основу TBrowse-объектов составляют один или несколько TBcolumn объектов. TBcolumn-объекты содержат информацию, необходимую для определения отдельного столбца полноэкранной таблицы

TBColumn-объект содержит всю необходимую информацию для того, чтобы определить один столбец TBrowse-объекта.

Как видно, все эти объекты касались в бОльшей степени интерфейса. Создавать свои классы в Clipper программист не мог.

 

Более широкий набор объектов для разработки экранных форм и отчетов предоставляют библиотеки таких СУБД как Visual FoxPro, MS Access и др. – большинство современных СУБД.

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

В качестве решения этого противоречия возникла идея создания ОБЪЕКТНО-ОРИЕНТИРОВАННЫХ БД.

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

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

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

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

1) предлагается выделить два уровня моделирования объектов: нижний (структурный) и верхний (поведенческий). На структурном уровне поддерживаются сложные объекты, их идентификация и разновидности связи. База данных - это набор элементов данных, связанных отношениями " входит в класс" или " является атрибутом". Таким образом, БД может рассматриваться как ориентированный граф.

2) важным аспектом является четкое разделение схемы БД и самой БД. В качестве первичных концепций схемного уровня ООБД выступают типы и классы.

3) для точного определения ООБД требуется уровень мета-схемы, содержимое которой должно определять виды объектов и связей, допустимых на схемном уровне БД. Мета-схема должна играть для ООБД такую же роль, какую играет структурная часть реляционной модели данных для схем реляционных баз данных.

Еще одной проблемой при разработке ОО СУБД является выбор внутреннего языка программирования для такой системы.

Примерами успешной реализации ОО СУБД могут служить:

О2 – производитель Ardent Software, Inc. (в ней реализован свой собственный функциональный объектно-ориентированный язык программирования, а также используются два объектно-ориентированных расширения языков Бейсик и Си, наибольшее распространение из которых получил основанный на С++ язык CO2 - не является полностью самостоятельным языком и предназначен для программирования методов ранее определенных классов.)

GemStone/S – разрабочик GemStone Systems, Inc (основанный на языке SmallTalk)

проект ORION (наиболее интересный проект, базирующийся на языке Лисп (Common Lisp), являющемся в этой СУБД и инструментальным языком, и базой объектно-ориентированного языка программирования)

система VBASE (наряду со специально разработанным языком TDL, предназначенным для определения типов, используется объектно-ориентированное расширение языка Си - COP (C Object Processor))

кроме того можно упомянуть СУБД Cashe (InterSystems Corporation), ObjectStore (Object Design, Inc), Objectivity/DB (Objectivity, Inc), POET (POET Software, Inc.), VERSANT (Versant Corporation) и т.д.

Однако следует отметить, что крупные софтверные компании, такие как Oracle, Informix, Sybase, Microsoft и IBM, не собираются развивать свою линию продуктов ООСУБД. Вместо этого они предлагают свои подходы к расширению реляционных баз данных объектными свойствами.

 

Реляционные модели данных. Отношения. Ключи.

Реляционное исчисление. Реляционная алгебра.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.