Ответы к экзамену по БД (542444), страница 16
Текст из файла (страница 16)
Сейчасможно говорить лишь о неком "объектном" подходе к логическому представлению данных и оразличных объектно-ориентированных способах его реализации.Мы знаем, что любая модель данных должна включать три аспекта: структурный, целостный иманипуляционный. Посмотрим, как они реализуются на основе объектно-ориентированнаяпарадигмы программирования:Структура:Структура объектной модели описываются с помощью трех ключевых понятий:• инкапсуляция - каждый объект обладает некоторым внутренним состянием (хранит внутрисебя запись данных), а также набором методов - процедур, с помощью которых (и толькотаким образом) можно получить доступ к данным, определяющим внутреннее состояниеобъекта, или изменить их.
Таким образом, объекты можно рассматривать каксамостоятельные сущности, отделенные от внешнего мира.• наследование - подразумевает возможность создавать из классов объектов новые классыобъекты, которые наследуют структуру и методы своих предков, добавляя к ним черты,отражающие их собственную индивидуальность. Наследование может быть простым (одинпредок) и множественным (несколько предков).• полиморфизм - различные объекты могут по разному реагировать на одинаковые внешниесобытия в зависимости от того, как реализованы их методы.Целостность данных:Для поддержания целостности объектно-ориентированный подход предлагает использоватьследующие средства:• автоматическое поддержание отношений наследования• возможность объявить некоторые поля данных и методы объекта как "скрытые", не видимыедля других объектов; такие поля и методы используются только методами самого объекта• создание процедур контроля целостности внутри объектаСредства манипулирования данными:К сожалению, в объектно-ориентированном программировании отсутствуют общие средстваманипулирования данными, такие как реляционная алгебра или реляционное счисление.
Работа сданными ведется с помощью одного из объектно-ориентированных языков программированияобщего назначения, обычно это SmallTalk, C++ или Java.Подведем теперь некоторые итоги:В объектно-ориентированных базах данных, в отличие от реляционных, хранятся не записи, аобъекты. ОО-подход представляет более совершенные средства для отображения реального мира,чем реляционная модель:• естественное представление данных.
В реляционной модели все отношения принадлежатодному уровню, именно это осложняет преобразование иерархических связей модели"сущность-связь" в реляционную модель. ОО-модель можно рассматривать послойно, наразных уровнях абстракции.• имеется возможность определения новых типов данных и операций с ними.В то же время, ОО-модели присущ и ряд недостатков:• осутствуют мощные непроцедурные средства извлечения объектов из базы. Все запросыприходится писать на процедурных языках, проблема их оптимизации возлагается напрограммиста.• вместо чисто декларативных ограничений целостности (типа явного объявления первичныхи внешних ключей реляционных таблиц с помощью ключевых слов PRIMARY KEY иREFERENCES) или полудекларативных триггеров для обеспечения внутренней целостностиприходится писать процедурный код.Очевидно, что оба эти недостатка связаны с отсутствием развитых средств манипулированияданными.
Эта задача решается двумя способами - расширение ОО-языков в сторону управленияданными (стандарт ODMG), либо добавление объектных свойств в реляционные СУБД (SQL-3, атакже так называемые объектно-реляционных СУБД).37. Тенденции развития СУБД.
ОРСУБД. Принципы и проблемы реализации . Пример.Объектно-реляционная СУБД (ОРСУБД) — реляционная СУБД (РСУБД), поддерживающаянекоторые технологии, реализующие объектно-ориентированный подход.Разница между объектно-реляционными и объектными СУБД: первые являют собой надстройкунад реляционной схемой, вторые же изначально объектно-ориентированы. Главная особенность иотличие объектно-реляционных, как и объектных, СУБД от реляционных заключается в том, чтоО(Р)СУБД интегрированы с Объектно-Ориентированным (OO) языком программирования,внутренним или внешним как C++, Java. Характерные свойства OРСУБД - 1) комплексныеданные, 2) наследование типа, и 3) объектное поведение.Комплексные данные могут быть реализованы через постоянно-хранимые объекты (persistentobjects).
Создание комплексных данных в большинстве существующих ОРСУБД основано напредварительном определении схемы через определяемый пользователем тип (UDT - user-definedtype). Используются также встроенные конструкторы составных типов, например массив(ARRAY).Иерархия структурных комплексных данных предлагает дополнительное свойство, наследованиетипа. То есть структурный тип может иметь подтипы, которые используют все его атрибуты исодержат дополнительные атрибуты, специфицированные в подтипе.Объектное поведение закладывается через описание программных объектов. Такие объектыдолжны быть сохраняемыми и переносимыми для обработки в базе данных, поэтому ониназываются обычно как постоянные (или долговременные) объекты.
Внутри базы данных всеотношения с постоянным программным объектом есть отношения с его объектнымидентификатором (OID).Объектно-реляционными СУБД являются, к примеру, широко известные Oracle Database,Microsoft SQL Server 2005, PostgreSQL, а также Sav Zigzag, IBM Cloudscape, FirstSQL/J.Общая идея заключается в применении гибких подходов, позволяющих не ограничиватьсобственные возможности догматическими положениями, а, напротив, применяя различныеприемы, адаптироваться к любой возникшей ситуации. Именно эту идею и проповедуютразработчики объектно-реляционных баз данных.
Так, соответствующие базы данных соединяютв себе лучшие качества реляционных и объектно-ориентированных баз данных. Рассмотримкратко основные элементы, осуществляющие объектные расширения в реляционных базахданных, уже используемые на сегодняшний день:- Хранение больших объемов данных. Наряду с теми данными, которые хранились в БДтрадиционно, современные объектно-реляционные базы данных позволяют хранить в столбцахтаблицы картинки, видеоролики и другие большие документы.- Списки в столбцах. Более того, объектно-реляционные базы данных позволяют хранить встолбцах целые списковые структуры.- Пользовательские расширения.
В объектно-реляционных базах данных пользователи имеютвозможность вмешиваться в изначально предоставляемый СУБД инструментарий, создавая, вчастности, новые пользовательские типы данных.- Хранимые процедуры. В определенном смысле хранимые процедуры также являются объектнымрасширением, осуществляя необходимые пользователю воздействия на данные (стандартный дляООП процедурный подход).38. Понятие OLAP и OLTP системы. Принципы и реализации многомерных СУБД.В последнее время все более популярными становятся системы оперативной аналитическойобработки (OLAP - OnLine Analytical Processing).
Системы OLAP позволяют значительноулучшить качество анализа баз данных. Особенно большое значение это имеет в бизнесе, гденеобходимо оперативно принимать решение о наиболее перспективных направлениях развитияпроизводства. Фундаментальное отличие системы OLAP от обычной базы данных заключается вследующем:· система OLAP характеризуется статичностью данных, можно сказать, что база данныхиспользуется только для чтения, что позволяет более компактно располагать данные настраницах базы данных, увеличив плотность записи;· для проведения эффективного анализа в системе OLAP обычно создается множество индексов,ускоряющих проведение анализа и выборки данных;· система OLAP должна выполнять базовые операции численного и статистического анализаданных; кроме того, необходимо реализовать многомерное представление информации, чтопозволяет более наглядно представлять структуру данных;· для более эффективного анализа данных должна поддерживаться возможность созданияматериализованных представлений, что позволяет резко увеличить производительностьвыполнения типичных запросов;· система OLAP объединяет данные из множества источников (например, из разных баз данных,нередко расположенных на разных серверах с различной архитектурой SQL Server и Oracle) ипредоставляет их пользователям в логически завершенной форме;· система OLAP должна обеспечивать сохранность конфиденциальных данных, обеспечиваясовместный доступ к информации множеству пользователей.Корпорация Microsoft предлагает мощный инструмент для поддержки систем принятия решений Microsoft Decision Support Services, являющийся полноценной реализациейсистемы OLAP.
Microsoft DSS поставляется как отдельный компонент в составе SQ:L Server иреализован в виде отдельной службы операционной системы, оптимизирующей исполнениезапросов, не изменяющих данные.OLAP играет ключевую роль при построении хранилищ данных. Использование MS DSS присоздании баз данных позволяет реализовать базовые функции для широкого спектра приложений.Возможность построения больших распределенных баз данных, оперативный анализ ихсодержимого, интеграция множества источников данных с помощью технологии OLE DB делаютпривлекательным построение корпоративных баз данных и хранилищ на основесерверов SQL Server.Другой вариант использования SQL Server -это построение систем управления обработкойтранзакций (OLTP - OnLine Transaction Processing).
В противоположностьсистемам OLAP системы OLTP характеризуются большим количеством изменений в базе данных.Множество пользователей одновременно обращаются к записям в базе данных, выполняя ихчтение, добавление, удаление или изменение. Причем несколько пользователей могутодновременно пытаться изменить одну и ту же запись. База данных должна быть построена каксистема OLTP, если требуется реализация одного из следующих аспектов работы:· одновременный доступ; система OLTP должна гарантировать, что только один пользователь вконкретный момент времени сможет изменять данные;· целостность изменений; все выполняемые в базе данных изменения выполняются в видетранзакций; система OLTP гарантирует, что все включенные в транзакцию шаги будутвыполнены как единое целое.Системы OLTP характеризуются длительным блокированием данных, поэтому необходимореализовать возможность резервного копирования.
Узким местом систем OLTP являются операциидиского ввода-вывода. Большое количество изменений данных требует высокой скорости обменамежду оперативной памятью и жестким диском. Для повышения производительности можноиспользовать дисковые массивы или группы файлов, размещенные на разных физических дисках.Многомерные базы данных (Multi-value Database)Многомерные базы данных — технология, которая длительное время воспринималась какновинка, — сегодня является решением, которое предлагает не только высокуюпроизводительность и простоту использования, но и обеспечивает возможности, необходимые дляразработки, расширения и быстрого развертывания бизнес-приложений при сокращении ИТ-затрат.Системы на основе многомерных баз данных идеально подходят для потребностей как для рынковсреднего и малого бизнеса (SMB), так и крупных предприятий.Многомерные базы данных отличаются от реляционных прежде всего трехмерностью —поддержкой неограниченного числа значений в поле, и находят свое применение там, гденеобходима эффективная и простая работа с большими массивами символьной информации.В многомерных СУБД данные организованы в виде упорядоченных многомерных массивов,удовлетворяющих требованиям защиты от несанкционированного доступа в организации.