Файл: Применение объектно-ориентированного подхода при проектировании информационной системы (Фундаментальные свойства отношений).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 13.03.2024

Просмотров: 33

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Легко показать, что в общем случае в отношении R (A, B, C) существует многозначная зависимость R.A -> -> R.B в том и только в том случае, когда существует многозначная зависимость R.A -> -> R.C.

И дальнейшая нормализация отношения использует теорему Фейджина: Отношение R (A, B, C) можно спроецировать без потерь в отношения R1(A, B) и R2(A, C) в том и только в том случае, когда существует A->->B|C [8].

Способ декомпозиции отношения, при котором первоначальное отношение полностью и восстанавливается путем простого соединения полученных отношений, является проецированием без потерь.

Четвертая нормальная форма. Отношение R находится в четвертой нормальной форме лишь в том случае, если в многозначной зависимости A -> -> B все остальные атрибуты R функционально зависят от A [16].

Разобъем отношение ПРОЕКТЫ на два отношения ПРОЕКТЫ-СОТРУДНИКИ и ПРОЕКТЫ-ЗАДАНИЯ:

ПРОЕКТЫ-СОТРУДНИКИ (НОМЕР_ПРОЕКТА, СОТР_ПРОЕКТА)

ПРОЕКТЫ-ЗАДАНИЯ (НОМЕР_ПРОЕКТА, ЗАДАН_ПРОЕКТА)

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

Пятая нормальная форма является последней нормальной формой, которую можно получить путем декомпозиции. Ее условия достаточно нетривиальны, и на практике пятая нормальная форма не используется [9].

ГЛАВА 3. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЙ ПОДХОД ПРИ ПРОЕКТИРОВАНИИ ИНФОРМАЦИОННОЙ СИСТЕМЫ

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

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

При этом наиболее сильное влияние на работы в области этих баз данных оказали наработки реляционных БД. Достаточное влияние оказывают и параллельно развивающиеся дедуктивные и активные базы данных.

Как отмечается в Манифесте группы ведущих ученых, которые занимаются наработками объектно-ориентированных баз данных, современная ситуация в этой области напоминает ситуацию с реляционными БД в середине 1970-х [1].


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

Постараемся раскрыть наиболее важные аспекты этих баз данных.

3.1 Общие понятия объектно-ориентированного подхода

В основе объектно-ориентированного подхода лежат следующие концептуальные составляющие [11]:

  • объектов;
  • классов;
  • методов;
  • атрибутов;
  • наследования классов;
  • иерархии классов.

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

Под состоянием объекта понимается набор значений его атрибутов. В свою очередь значение атрибута объекта это также объект или даже некоторое множество объектов. Под поведением объекта понимается набор его методов, которыми можно изменить его состояние. Взаимодействие объектов происходит на основе передачи сообщений и выполнении соответствующих методов [2].

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

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

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


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

Проектирование, разработка и сопровождение объектно-ориентированных баз данных является процессом, объединяющим структурную и поведенческую части проектирования [10].

В объектно-ориентированных базах данных имеется три аспекта, которых нет в традиционном понятии базы данных [12]:

  1. потребность в средствах спецификации знаний при определении класса;
  2. потребность в механизме определения семантических связей между объектами;
  3. пересмотр понятия класса. В контексте объектно-ориентированных баз данных класс рассматривается как множество объектов данного типа.

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

Трудности объектно-ориентированного моделирования данных возникают в связи с тем, что достаточный математический аппарат, на основе которого можно было бы построить необходимую нам модель, пока не придуман. В связи с этим объектно-ориентированная модель и не создана. При этом имеются авторы, уверенные в том, что данная модель и не появится по причине неприменимости классического подхода к объектно-ориентированным базам данных [11].

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

Основываясь на практике многих объектно-ориентированных баз данных, Беери выделяет два уровня в моделировании объектов: нижний и верхний.

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


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

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

Рассмотрим особенности используемой в объектно-ориентированной системе управления базами данных O2 модели данных [11].

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

В О2 организовать данные можно двумя способами: используя классы и типы. Каждому классу сопоставляется тип, на основе которого описывается структура класса. Все типы создаются рекурсивно, используя атомарные типы и ранее определенные типы и классы, с использованием конструкторов.

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

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

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

Создание любого метода в O2 проходит в два этапа:


  • объявляется сигнатура метода (имя, класс, типы или классы аргументов, тип или класс результата);
  • происходит реализация или написание класса на языке программирования используемом в O2.

В O2 поддерживается множественное наследование классов. В подклассе допускается добавление и переопределение атрибутов и методов. Неоднозначности такого наследования исправляются путем переименования или путем явного указания источника наследования.

Из всего выше сказанного можно понять, что в О2 также поддерживается и такой стандартный класс как "Оbject", который является корнем всей решетки классов в данной системе. Таким образом, любой создаваемый класс неявно наследуется от класса "Object" и обладает всеми его методами (например: "is_same", "is_value_equal" и т.д.).

ЗАКЛЮЧЕНИЕ

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

Наиболее распространенной на сегодняшний день считается реляционная модель, она еще продержится несколько лет. Она также является наиболее строгой структурой, это можно записать как в ее достоинства, так и в недостатки. Те функции, которые возложены на системы управления базами данных, приводят к большому однообразию стиля, который, конечно же, легко поддерживать. Но в то же время, данные, которые невозможно представить в табличной схеме очень сложно если вообще возможно записать в такой базе данных. Все реляционные базы данных определяются в основном своей структурой, что упрощает ведение документации базы данных и уменьшает “внутреннее” программирование. Хотя в то же время, если база данных только развивается, то необходимо будет производить изменения словарей данных, а это обычно сопровождается временной недоступностью данных и пересмотром структуры базы.

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

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