Опубликован: 04.06.2009 | Уровень: специалист | Доступ: платный | ВУЗ: Нижегородский государственный университет им. Н.И.Лобачевского
Лекция 14:

Направления развития баз данных

< Лекция 13 || Лекция 14: 1234
Аннотация: В лекции рассматриваются перспективные направления в теории и практике создания баз данных – объектно-ориентированные и распределенные базы данных, а также новое направление в аналитической обработке данных - хранилища данных

Цель лекции: выделить основные черты в новых направлениях развития теории и практики создания баз данных (новые свойства, присущие объектно-ориентированным и распределенным базам данных) и хранилищ данных.

14.1. Объектно-ориентированный подход к организации баз данных

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

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

Рассмотрим термин "объектно-ориентированное программирование". Заметим, что это термин, принятый преимущественно в российской литературе. В западной литературе [ [ 14.2 ] ] под этим понимается сразу три аспекта:

  • Объектно-ориентированный анализ – OOA, object-oriented analysis. Объектно-ориентированный анализ – это методология, при которой требования к системе воспринимаются с точки зрения классов и объектов , выявленных в предметной области.
  • Объектно-ориентированное проектированиеOOD, object-oriented design. Объектно-ориентированное проектирование – это методология проектирования, соединяющая в себе процесс объектной декомпозиции и приемы представления логической и физической, а также статической и динамической моделей проектируемой системы.
  • Объектно-ориентированное программирование – OOP, object-oriented programming. Объектно-ориентированное программирование – это методология программирования, основанная на представлении программы в виде совокупности объектов , каждый из которых является экземпляром определенного класса , а классы образуют иерархию наследования.

Здесь и далее по тексту условимся не отступать от традиций и понимать под объектно-ориентированным программированием (ООП) сразу три указанных выше аспекта.

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

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

Объект ООП – инкапсулированная структура, имеющая атрибуты и методы.

Термин "инкапсулированная структура" означает, что объект является самодостаточным, программы, внешние по отношению к объекту, ничего "не знают" о его структуре и такое "знание" им не требуется. "Внешний" вид объекта называется его интерфейсом.

В таком понимании объект – это черный ящик, нам неизвестно, чтo у него внутри, мы лишь можем вызвать его методы и только через них взаимодействовать с ним. Кроме этого, объекты могут принадлежать иерархии "от общего к частному", которая реализуется путем наследования. Инкапсулированные состояния объекта могут быть как простыми типами данных, так и другими объектами, или даже массивами объектов. Каждый объект содержит определенную совокупность методов, классы взаимодействуют друг с другом посредством механизма сообщений. Объекты идентифицируются с помощью специальных указателей – дескрипторов. Методы объектов ООП представляют собой последовательности инструкций, выполняемых объектом. Например, у объекта может быть метод, отображающий данный объект, создающий данный объект и изменяющий его.

Предметная область моделируется как множество классов взаимодействующих объектов. Объект характеризуется набором свойств, которые являются как бы его пассивными характеристиками, и набором методов работы с этим объектом.Работать с объектом можно только с использованием его методов. Атрибуты объекта могут принимать множество допустимых значений, набор конкретных значений атрибутов определяет состояние объекта. Используя методы работы с объектом можно изменять значение его атрибутов и тем самым как бы изменить состояние самого объекта. Множество объектов с одним и тем же набором атрибутов и методов образует класс объектов. Класс, объекты которого могут служить значениями атрибута объектов другого класса, называется доменом этого атрибута.

К числу основных идей объектно-ориентированной технологии, как правило, относят [ [ 14.1 ] ]: абстрагирование, инкапсуляцию, модульность, иерархичность, типизацию, полиморфизм, наследование.

Инкапсуляция ограничивает область видимости имени атрибута пределами того объекта, в котором оно определено. Смысл этого атрибута будет определяться тем объектом, в котором оно инкапсулировано.

Полиморфизм – способность одного и того же программного кода работать с разнообразными данными. Другими словами, он допускает возможность в объектах разных типов иметь методы (процедуры или функции) с одинаковыми именами. Во время выполнения объектной программы одни и те же методы оперируют с разными объектами в зависимости от типа аргумента.

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

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

К настоящему моменту терминология еще не устоялась, существует много разных определений и трактовок. Представляется, что объектно-ориентированная база данных (ООБД) – база данных, основанная на принципах объектно-ориентированной технологии. К основным описательным моментам, связанным с ООБД, в литературе [ [ 14.2 ] ] относят:

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

Схема представления объекта приводится на рис. 14.1

Схема представления объекта

Рис. 14.1. Схема представления объекта

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

< Лекция 13 || Лекция 14: 1234
Александра Каева
Александра Каева
Карина Максутова
Карина Максутова
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Олег Волков
Олег Волков
Россия, Балаково, МБОУ СОШ 19