Московский физико-технический институт
Опубликован: 10.10.2005 | Доступ: свободный | Студентов: 17574 / 2473 | Оценка: 4.14 / 3.91 | Длительность: 14:47:00
ISBN: 978-5-9556-0028-0
Лекция 10:

Проектирование реляционных баз данных с использованием семантических моделей: диаграммы классов языка UML

< Лекция 9 || Лекция 10: 123456
Аннотация: В этой лекции мы обсудим основные понятия диаграмм классов языка UML и возможности применения этой диаграммной модели для проектирования реляционных баз данных. Кроме того, в лекции будет кратко рассмотрен язык объектных ограничений OCL и приведены примеры формулировок на языке OCL ограничений целостности в терминах концептуальной схемы базы данных.
Ключевые слова: язык объектно-ориентиованного моделирования UML (Unified Modeling Language), OMG, object manager, group, CORBA, ODMG, Object, data management, деятельность, БД, диаграмма классов, ER-диаграмма, класс, объектно-ориентированное моделирование, связь в диаграмме классов, язык объектных ограничений OCL (Object Constraints Language), атрибут класса, операция класса, свойство класса, сигнатура операции, связь-зависимость (dependency), связь-обобщение (generalization), связь-ассоциация (association), суперкласс, подкласс, связь "is a", полиморфизм по включению, множественное наследование классов в UML, n-арная ассоциация в UML, бинарная связь, компания oracle, имя ассоциации, кратность (multiplicity) роли ассоциации, имя связи, роль класса в ассоциации, экземпляр ассоциации (соединение - link), концептуальный уровень, агрегатная ассоциация, композитная ассоциация (композиция), поддержка ссылочной целостности, каскадное удаление, навигация по ассоциации, объект, уникальный идентификатор объекта, операция над объектом в OCL, тип коллекции в OCL, Мультимножество, bag, ограничения целостности данных, пред- и постусловия операции классов в OCL, инвариант класса в OCL, проектирование реляционных баз данных, типизированный язык, скалярный тип, точечная нотация, операция над значением коллекционного типа данных в OCL, поддержка, расходы, проектирование баз данных, семантическая модель, предметной области, инфраструктура, вес

Введение

Языку объектно-ориентированного моделирования UML (Unified Modeling Language) посвящено великое множество книг, многие из которых переведены на русский язык (а некоторые и написаны российскими авторами). Язык UML разработан и развивается консорциумом OMG (Object Management Group) и имеет много общего с объектными моделями, на которых основана технология распределенных объектных систем CORBA, и объектной моделью ODMG (Object Data Management Group).

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

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

Основные понятия диаграмм классов UML

Диаграммой классов в терминологии UML называется диаграмма, на которой показан набор классов (и некоторых других сущностей 1В этой лекции мы используем термин сущность настолько же неформально, как в предыдущей лекции использовали термин объект. UML претендует на обеспечение более точного и формального понятия объекта ( UML обычно называют языком объектно-ориентированного моделирования). В спецификации языка UML даже присутствует определение понятия объекта средствами самого UML. Однако, по нашему глубокому убеждению, несмотря на эти попытки, понятие объекта в UML остается таким же нечетким, как и понятие сущности в ER-модели. По-прежнему приходится опираться в основном на интуицию и здравый смысл., не имеющих явного отношения к проектированию БД), а также связей между этими классами. 2В UML, как и в модели ER-диаграмм, для родового обозначения связей используется термин relationship. Во многих переводах книг про UML на русский язык вместо термина связь применяется термин отношение. Как и в предыдущей лекции, мы используем термин связь . Кроме того, диаграмма классов может включать комментарии и ограничения. Ограничения могут неформально задаваться на естественном языке или же могут формулироваться на языке объектных ограничений OCL (Object Constraints Language). 3 Язык OCL является частью общей спецификации UML, но, в отличие от других частей языка, имеет не графическую, а линейную нотацию. Чуть позже мы обсудим эту тему более подробно.

Классы, атрибуты, операции

Классом называется именованное описание совокупности объектов с общими атрибутами, операциями, связями и семантикой. Графически класс изображается в виде прямоугольника. У каждого класса должно быть имя (текстовая строка), уникально отличающее его от всех других классов . При формировании имен классов в UML допускается использование произвольной комбинации букв, цифр и даже знаков препинания. Однако на практике рекомендуется использовать в качестве имен классов короткие и осмысленные прилагательные и существительные, каждое из которых начинается с заглавной буквы. Примеры описания классов показаны на рис. 10.1.

Примеры описания классов

Рис. 10.1. Примеры описания классов

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

Имена атрибутов представляются в разделе класса, расположенном под именем класса. Хотя UML не накладывает ограничений на способы создания имен атрибутов (имя атрибута может быть произвольной текстовой строкой), на практике рекомендуется использовать короткие прилагательные и существительные, отражающие смысл соответствующего свойства класса. Первое слово в имени атрибута рекомендуется писать со строчной буквы, а все остальные слова – с заглавной. Пример описания класса с указанными атрибутами показан на рис. 10.2.

Класс Человек с указанными именами атрибутов

Рис. 10.2. Класс Человек с указанными именами атрибутов

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

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

Класс Человек с операциями

Рис. 10.3. Класс Человек с операциями

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

< Лекция 9 || Лекция 10: 123456
Nikolay Karasev
Nikolay Karasev

Хотелось бы иметь возможность читать текст сносок при использовании режима "Версия для печати"
 

Александра Каева
Александра Каева