Московский государственный университет печати

Чертовской В.Д.


         

Базы и банки данных

Учебное пособие


Чертовской В.Д.
Базы и банки данных
Начало
Печатный оригинал
Об электронном издании
Оглавление

Введение

Часть 1. ОСНОВНЫЕ ПОЛОЖЕНИЯ

Раздел 1. Основные понятия

1.

Глава 1. Общие сведения

1.1.

Данные, информация, знания

1.2.

Основные понятия и определения

1.3.

Классификация БД и СУБД

1.4.

Состав СУБД и работа БД

2.

Глава 2. Концепция баз данных

2.1.

Требования, предъявляемые к базам данных

2.2.

Концепция построения БД

2.3.

Методология проектирования баз данных

2.4.

Методология использования баз данных

Раздел 2. Теория баз данных

3.

Глава 3. Общая теория

3.1.

Модели представления данных

3.2.

CASE-технология

3.3.

CASE-средства

4.

Глава 4. Теория реляционных баз данных

4.1.

Математические основы теории

4.2.

Построение БД

4.3.

Использование БД

4.3.1.

Запросы к данным

4.3.2.

Синхронизация процессов доступа

Часть 2. Централизованные базы данных

Раздел 3. Реализация бд (модели БД)

5.

Глава 5. Реляционные БД SQL

5.1.

Логическая структура

5.2.

Создание БД

5.3.

Использование БД

5.3.1.

Язык SQL

5.3.2.

Язык QBE

6.

Глава 6. Сетевые БД

6.1.

Логическая структура

6.2.

Программная реализация

6.2.1.

Создание БД (ЯОД)

6.2.2.

Использование БД (ЯМД)

7.

Глава 7. Иерархические БД

7.1.

Логическая структура

7.2.

Программная реализация

7.2.1.

Создание БД (ЯОД)

7.2.2.

Использование БД (ЯМД)

8.

Глава 8. Взаимосвязь МД

8.1.

Сравнительная характеристика моделей данных

8.2.

Преобразование моделей данных

8.3.

Выбор моделей данных

9.

Глава 9. Физическая БД

9.1.

Вопросы программной реализации БД

9.2.

Организация хранения и доступ

9.3.

Доступ к данным и их обновление

Раздел 4. Современные направления развития БД

10.

Глава 10. Автоматизация проектирования

10.1.

Классический подход к проектированию

10.1.1.

Однопользовательский режим

10.1.2.

Многопользовательский режим

10.2.

Современный подход к проектированию

10.3.

Автоматизация проектирования

11.

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

11.1.

Недостатки реляционных баз данных

11.2.

Состояние развития ООБД

11.3.

Сущность ООБД

11.4.

Недостатки и перспективы развития ООБД

Часть 3. Распределенные базы данных (РБД)

Раздел 5. Основы теории РБД

12.

Глава 12. Общая характеристика РБД

12.1.

Новые требования, предъявляемые к БД

12.2.

Состав и работа РБД

12.3.

Система клиент/сервер

Раздел 6. Основы теории РБД

13.

Глава 13. Создание РБД

13.1.

Обеспечение целостности

13.2.

Фрагментация и локализация

13.3.

Процесс интеграции

13.4.

Преобразование структуры и данных

13.5.

Однородные и неоднородные РБД

14.

Глава 14. Использование РБД

14.1.

Одновременный доступ

14.2.

Защита

14.3.

Восстановление РБД

14.4.

Запросы

Заключение

Контрольные вопросы

Литература

Указатели
11  именной указатель
360  предметный указатель
163  указатель иллюстраций
25  указатель компаний

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

11.1.
База данных реляционнаяНедостатки реляционных баз данных

К недостаткам реляционных БД ссылка на источники литературы относятся: сложность структуры, вызванная процессом нормализации; низкая производительность из-за поиска по ключу, что в 3 - 5 раз увеличивает количество операций доступа; ограниченный набор типов данных (например, отсутствуют формы мультимедиа, геоинформации и т,д.); недостаточное естественное представление данных (в виде плоских двумерных таблиц, а не таблиц со сложной структурой, как в сетевой МД); невозможность рассмотрения данных послойно, на разных уровнях абстракции (например, РАБОТАЮЩИЕ: научные сотрудники; преподаватели); нестыковка с принципами перспективного объектно-ориентированного подхода: чаще всего - только приложения, значительно преже - интерфейс пользователя строятся с учетом этого подхода; невозможность определить набор операторов (методов), связанных с определенным типом данных: приходится задавать операции в конкретном приложении; возникновение эффекта конфузии: утраты при определенных сочетаниях данных третьей и даже второй нормальных форм.

Одним из способов устранения указанных недостатков является построение объектно-ориентированной БД (ООБД).

Ее появление связано и с другой серьезной причиной: требованиями большой памяти (свыше 3 Гбайт) систем автоматизированного конструирования/производства CAD/CAM.

11.2.
Состояние развития ООБД

В соответствии с «Манифестом ООБД», опубликованном в 1989 году, используется формула

ООСУБД = СУБД + ООЯП,

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

В 1993 году предложен своеобразный стандарт ООБД, названный ODMG-3, который включал ссылка на источники литературы: объектную модель данных Object Data Model; язык определения объектов Object Definition Languageп(ODL); объектный язык запроса Object Query Language - OQL; интерфейсы языков программирования (C++ и других).

В настоящее время насчитывается около 300 объектно-ориентированных СУБД (ООСУБД), данные ряда из которых приведены в табл. 11.1.

Таблица 11.1.

Характеристики некоторых ООСУБД

Поставщик Название СУБД Платформа Встроенные средства разработки
Object Design ObjectStore Unix, Windows NT, Novell С, С++, средства администрирования и разработки
Objectivity Objectivity / DB Unix, Windows NT С, С++, SCL
Poet Softwar POET Unix, Windows NT, MS Windows C, C++, интегрированная среда разработки, ODBC-драйверы

Выбор ООСУБД определяется наличием поддержки реляционных БД; интерфейса с языком C и расширениями SQL; встроенного языка высокого уровня; средств разработки и администрирования; доступа кпданным из существующих систем (с помощью ODBC и SQL-запросов); возможности работы с различными платформами.

Следует добавить, что ООСУБД все чаще применяют как составную часть другого приложения. Так, компания ComputervisionComputervision, производящая программное CAD-обеспечение, интегрировала в свой продукт СУБД ObjectStory. Компания Enterprise Integration TechnologyEnterprise Integration Technology предлагает продукт MKS со следующими возможностями: разработка технологических процессов; разработка оборудования; управление предприятием; проектирование производственных помещений; диагностика; мониторинг (отслеживание); моделирование и планирование.

Американские фирмы Aoto-trol TechnologyAoto-trol Technology, Step ToolsStep Tools, DECDEC используют ООСУБД ObjectStore (разработчик - фирма Object DesignObject Design) для работы со слабо структурированными данными в стандарте STEP (STandard of Exchange of Product Model Data - стандарт обмена данными данных модели).

11.3.
Сущность ООБД

Суть База данных объектно-ориентированнаяобъектно-ориентированной БД (ООБД) определяется объектно-ориентированным подходом (рис. 11.1.).Рис. 11.01. Схема объектно-ориентированного подхода В нем выделяют ссылка на источники литературы инкапсуляцию, наследование и полиморфизм.

ИнкапсуляцияИнкапсуляция - объединение данных и программы (кода) в «капсуле», модуле.

НаследованиеНаследование - передача определенных свойств от класса к егоппроизводному.

ПолиморфизмПолиморфизм - возможность переопределения процедуры в производном классе.

В «капсулу» заключен объект как реализация класса.

КлассКласс - объединяющая концепция набора объектов, имеющих общие характеристики (атрибуты).

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

В объекте выделяют метод и данные (рис. 11.2).Рис. 11.02. Код, построенный с помощью объектно-ориентированного подхода

Данные характеризуются атрибутами (свойствами).

МетодМетод - набор подпрограмм, оперирующих с данными.

Метод может начать работать после внешнего сигнала - Событиесобытияссылка на источники литературы.

В настоящее время объектно-ориентированный подход используется не только в программах (кодах), но и в интерфейсах пользователя (FoxPro), базах данных (Delphi, PowerBuilder), однако имеется отличия в терминологии. Это в ряде случаев вызывает затруднения, для преодоления которых приведем таблицу соответствий терминов (табл. 11.2).

Таблица 11.2.

Соотношение терминов реляционной (РБД) и объектно-ориентированной (ООБД) баз данных

РБД ООБД
Отношение Класс
Кортеж Экземпляр класса (объект)
Столбец Атрибут класса
Иерархия отношений Иерархия классов
Отношения "потомок" Подкласс
Отношения "предок" Суперкласс
Правила преобразования данных Методы

Сформулируем основные положения ООБД.

  1. В качестве значения столбца отношения разрешается указывать кортеж произвольного пользовательского отношения.

  2. Инкапсуляция: данные и процедуры манипуляции данными позволяют пользователю присоединять к отношению процедуры, определяемые значениями столбцов.

  3. Наследование (данных, столбцов).

  4. Элементами отношений являются множества, а не только одиночные элементы.

  5. Домен атрибута может иметь произвольный тип.

  6. Свойства отношений расширяются: к атрибутам и ограничениям добавляются методы.

  7. Любое отношение расширяется системным атрибутом, уникальным идентификатором объекта. Идентификатор сохраняется как значение атрибута класса, домен которого - произвольный класс.

  8. Классы организуются в иерархию.

  9. Разрешается рекурсивно наследовать свойства класса всем его подклассам. Унаследованные свойства можно модифицировать в подклассах.

  10. Допускается доступ к атрибутам и методам класса посредством сообщений, использующих явно определенный набор интерфейсов класса.

  11. Связи между файлами могут храниться непосредственно в БД - записи могут указывать на записи.

ООБД находятся в стадии развития. Чтобы уяснить ее степень, полезно сравнить ООБД с реляционными БД (табл. 11.3).

Таблица 11.3.

Уровень развития ООБД

  РБД ООБД
Теория
Стандарт
Переносимость
Язык запросов
есть
есть
есть
SQL2
формируется
завершается
непереносиомсть
формируется SQL3

В развитии ООБД наблюдаются три тенденции ссылка на источники литературы.

  1. Собственно ООСУБД (табл. 11.1).

  2. Таблица 11.1.

    Характеристики некоторых ООСУБД

    Поставщик Название СУБД Платформа Встроенные средства разработки
    Object Design ObjectStore Unix, Windows NT, Novell С, С++, средства администрирования и разработки
    Objectivity Objectivity / DB Unix, Windows NT С, С++, SCL
    Poet Softwar POET Unix, Windows NT, MS Windows C, C++, интегрированная среда разработки, ODBC-драйверы
  3. Эволюционная - ООБД вводятся в реляционную модель данных и используется язык SQL3.

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

Вторую тенденцию обсудим в следующем параграфе, третью - в последующих главах.

В данном параграфе рассмотрим первую тенденцию, представив краткую характеристику ООСУБД POET ссылка на источники литературы.

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

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

  • supertype (ациклический граф, супертип, операции супертипа наследуются подтипами);

  • extent (множество экземпляров данного типа БД);

  • key (ключ - набор свойств).

Имеется два подкласса (иерархия) типов: изменчивые, неизменчивые. В каждой Иерархияиерархии имеется два подкласса: атомарные; структурированные. Важнейшим атомарным типом является тип объекта Type (мегатип, экземплярами которого могут быть любые типы). Литерал атомарныйАтомарными литералами могут быть целые, вещественные числа, символьные, логические данные.

Встроенными структурными типами являются типы: структур (Structure); коллекций (Set); мультимножеств (Bag); списка (List); массива (Array).

Структурированные типы объектов - изменчивые, структурированные литеральные типы - неизменчивые (например, Immutable_Set).

Типы объектов могут быть объявлены как подтипы других объектов. Типы связей напоминают сетевые МД.

Язык OQLЯзык OQL (фактически язык SQL3) разрабатывался относительно независимо от SQL и обладает более богатой семантикой. Затем (для преемственности) взяли за основу SQL2. Стандарт ODMG используется для систем управления неоднородными мультибазами в качестве канонической объектной модели (IRODB в рамках концепции ESPRIT III). Он обеспечивает интероперабельность ООБД и реляционных БД.

В технологии разработки имеется конкуренция двух направлений.

  1. OLE (Object Linking and Embedding), точнее Distributed OLE, поддерживаемый фирмой MicrosoftMicrosoft.

  2. CORBA (Common Object Request Broker Architecture ссылка на источники литературы) группы ODBMG, поддерживаемая фирмами IBMIBM, NovellNovell, DECDEC, с ориентацией на все платформы, в том числе DOS. В рамках этого направления выделены и сформированы требования к языку определения объектов (Object Ddefinition Language), языку объектных запросов (ObjectпQuery Language), языку определения интерфейсов (Interface Definition Language).

В ООБД предполагается использовать язык SQL3 (ANSI SQL в рамках Oracle). Ядром языка является схема типов или классов. Тип реляционного кортежа в 1НФ является частным случаем объектного типа. SQL3 содержит реляционную модель внутри себя как частный случай (надреляционная модель, circumrelational).

SQL2 определяет семь способов связывания со стандартными языками программирования, в SQL3 это количество предполагается увеличить.

Класс (тип) объекта или строка неявно присутствует в реляционной таблице. Тогда удобно предоставление SQL3 возможности определять поименованный тип отдельно от таблицы. Эта процедура может быть представлена так:

Create type Addressп

(

number char(6),

street char(30),

city char(30),

state char(2),

zip integer

);

Create table Addresses of Address.

Или таблица

Create table Home Addresses of Address,

или

Create table Addresses of new type Address.

Введем тип Person.

Create type People of new type Person

(

name char(30),

address Address,

function age

(

:p ref Person)) return interval day;

return;

function set_age (:p ref (Person)),

...

:d interval day) returns (Person);

begin

:p birthdate:=current_date_:d

return:p

end;

private birthdate date

);

Может быть программно проведена авторизация (доступ) к БД:

C++   class   SQL3    type.

Возможно поддержать наследование, ссылочные типы и идентификаторы объектов.

Ссылочный тип использует ключевое слово ref (например, ref(Person)). Идентификатор обозначают oid, значение - value.

Имеются шаблоны типов, коллекции и выделенные типы (строго типизированные синонимы, например км, кг).

Более простая реализация ООБД может быть достигнута с использованием приложения Delphi, состав компонентов которого приведен на рис. 11.3.Рис. 11.03. а) Состав страниц компонентов DelphiРис. 11.03. б) Некоторые свойства и события формы Компонентная реализация интерфейса пользователя показана на рис. 11.4.Рис. 11.04. Объектно-ориентированный интерфейс пользователя (приложение Delphi)

11.4.
Недостатки и перспективы развития ООБД

Вместе с тем ООБД имеют меньшее распространение, чем реляционные БД. Это объясняется и их особенностями, и стадией развития.

Богатство унифицированной схемы оборачивается большими трудностями.

ООБД на современном уровне развития имеют пока много недостатков. Среди них: сложность структуры; отсутствие отработанного языка; недостаточная отработка сложной системы блокировок; отсутствие поддержки авторизации: разрешения/запрещения доступа пользователя к данным; сложность добавления атрибута или метода, хотя легко добавить новый класс данных.

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

Вместе с тем за ООБД будущее. Хотя сложившаяся теория таких БД отсутствует, в качестве основы может быть взята теория реляционных баз данных.

© Центр дистанционного образования МГУП