Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
uch_pos.docx
Скачиваний:
213
Добавлен:
20.03.2016
Размер:
423.96 Кб
Скачать

4. Семантическое моделирование

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

4.1. Объектно-ориентированное проектирование

Для определения структуры БД в объектно-ориентированных терминах многими специалистами используется язык ODL. Главное назначение ODL – обеспечить запись объектно-ориентированных проектов с последующим прямым переводом в выражения объектно-ориентированной СУБД (OODBMS). Как правило, основным языком таких систем является C++ или Object Pascal, поэтому ODL необходимо переводить в выражения этих языков. ODL соответствует им обоим (но больше C++), поэтому указанный перевод достаточно прост. Значительно сложнее осуществлять перевод из ODL или проектов, реализованных в терминах модели "сущность-связь", в выражения, систем управления реляционными базами данных (RDBMS).

4.1.1. Представление объектов

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

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

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

Все объекты одного класса должны иметь одинаковый набор свойств. При программировании на объектно-ориентированном языке можно представить объекты в виде записей, как показано на рис.45.

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

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

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

  1. Атрибуты – свойства, типы которых строятся из исходных типов, например целых чисел или строк. Характерно то, что атрибут имеет тип, не включающий в себя ни одного класса. В ODL типы атрибутов ограничены.

  2. Связи – свойства, типом которых являются ссылка на объект некоторого класса или набор (например, множество) таких ссылок.

  3. Методы – функции, которые можно применить к объектам класса. В данном изложении применение методов не рассматривается.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]