С.Д. Кузнецов - Основы баз данных (1121716), страница 38
Текст из файла (страница 38)
9.14 (с), основана на том наблюдении, что коль скоро типы сущности в и с участвуют в альтернативной связи, то, по всей видимости, у этих сущностей имеется что-то общее. Возможно, их было бы правильнее определять как подтипы некоторого обшего типа сущности. Заметим, что пример с рнс. 9.12 явно демонстрирует, что далеко не всегда типы сущности, участвуюшие в альтернативной связи, обладают обшими чертами.
Создание обшего супертипа для типов сушности пилОт и АВИАВЕМОНТНОе Пведприятие представляется весьма странной идеей. На этом мы заканчиваем краткую экскурсию в семантическое моделирование с использованием ЕК-диаграмм. Заключение Основной целью данной лекции было ознакомление с семантическими моделями данных на примере упрощенного варианта ЕК-модели. Представленный вариант ЕК-модели, с одной стороны, является достаточно развитым, чтобы можно было почувствовать общую специфику семантических моделей данных, а с другой стороны, не перегружен деталями и излишними понятиями, затрудняющими обшее понимание подхода. С практической точки зрения наибольшую пользу могут принести рассмотренные приемы перехода от ЕК-диаграмм к схеме реляционной базы данных.
Особенно могут пригодиться рекомендации по представлению в реляционной схеме связей «многие ко многим», подтипов и супер- типов сущности и взаимно исключающих связей. 181 Лекция 10 диаграммы классов языка ОМЬ Но, помимо прочего, язык ()МЕ активно применяется для проектирования реляционных БД. Для этого используется небольшая часть языка (диаграммы классов), да и то не в полном объеме. С точки зрения проектирования реляционных БД модельные возможности не слишком отличаются от возможностей ЕК-диаграмм.
Но все же мы кратко опишем диаграммы классов ()М(., поскольку их использование при проектировании реляционных БД позволяет оставаться в общем контексте ()М1 и применять другие виды диаграмм для проектирования приложений баз данных. Основные понятия диаграмм классов ЦМЕ Диаграммой классов в терминологии (ЗМЕ называется диаграмма, на которой показан набор классов (и некоторых других сущностей*, не имеющих явного отношения к проектированию БД), а также связей между этими классами.** Кроме того, диаграмма классов может включать комментарии и ограничения. Ограничения могут неформально задаваться на естественном языке или же могут формулироваться на языке объектных ограничений ОСЕ (ОЬ1есг Сопяга!пга Еапяцайе).*** Чуть позже мы обсудим эту тему более подробно.
Классы, атрибуты, операции Кгассом называется именованное описание совокупности объектов с общими атрибутами, операциями, связями и семантикой. Графически класс изображается в виде прямоугольника. У каждого класса должно быть имя (текстовая строка), уникально отличающее его от всех других классов. При формировании имен классов в ()М3 допускается использование произвольной комбинации букв, цифр и даже знаков препинания. Однако на практике рекомендуется использовать в качестве имен классов короткие и осмысленные прилагательные и существительные, кадгдое из которых начинается с заглавной буквы. Примеры описания классов показаны на рис. 10.1.
* В этой лекции мы используем термин сущиасть настолько же неформально, квк в предыдушей лекции использовали термин абьект. $3 М ь претендует нв обеспечение более точного и формального понятия объекта (О МЕ обычно незывают языком обьектиа-ариелтираваииаго иаделиравалия). В спецификации языка ОМь даже присутствзет определение понятия объекта средствами самого ОМЕ.
Однеко, по нашему глубокому убеждению, несмотря нл эти попытки, понятие абьекта в ОМЕ остается таким же нечетким, как и понятие сущласти в ЕК-модели. По-прежнему приходится опираться в основном не интуицию и здравый смысл. ** В ЬМЕ, клк и в модели Ек-диегрвмм, для родового обознвчения связей используется термин т/аг1атйгр. Во многих переводах книг про ОМЕ на русский язык вместо термине свюь применяется термин отношение.
Клк и в предыдушей лекции, мы используем термин связь. "" Язык ОСЕ является частью обшей спецификвцни ОМЕ, ио, в отличие от других частей языка, имеет не графическую, а линейную нотацию. 183 Основы баз данных К рс Лекция 10. Проектирование реляционных баз данных с использованием семантических моделей: диаграммы классов языка ЦМЕ В этой лекции мы обсудим основные понятия диаграмм классов языка ()МЬ н возможности применения этой диаграммной модели для проектирования реляционных баз данных.
Кроме того, в лекции будет кратко рассмотрен язык объектных ограничений ОСЬ и приведены примеры Формулировок на языке ОСЬ ограничений целостности в терминах концептуальной схемы базы данных. Ключевые слова: язык объектно-ориентированного моделирования !.)МЬ (Оп(бег( Мог(е!)пя Ьапяцаяе), диаграмма классов, язык объектных ограничений ОСЬ (ОЬ)есг Сопагаппв Еапяпаяе), класс, атрибут класса, свойство класса, операция класса, сигнатура операции, связь в диаграмме классов, связь-зависимость (г)ерепдепсу), связь-обобщение (йепегайгабоп), связь-ассоциация (аззос)аг(оп), суперкласс, подкласс, связь «В а», полиморфизм по включению, множественное наследование классов в ОМЬ, п-арные ассоциации в БМЬ, имя ассоциации, роль класса в ассоциации, кратность (пш)г(р!(с(гу) роли ассоциации, экземпляр ассоциации (соединение — )(п1), агрегатная ассоциация, композитная ассоциация (композиция), навигация по ассоциации, уникальный идентификатор объекта, типы коллекций в ОС!., пред- и постусловия операций классов в ОС(, инварианты классов в ОСЬ, операции над объектами в ОСЬ, операции над значениями коллекционных типов данных в ОС!..
Введение Языку объектно-ориентированного моделирования ~1МЬ (Шаба Модейпб Ьапяцаяе) посвящено великое множество книг, многие из которых переведены на русский язык (а некоторые и написаны российскими авторами). Язык ОМЬ разработан и развивается консорциумом ОМО (ОЬ)ее! Мапаяешепг Оговор) и имеет много общего с объектными моделями, на которых основана технология распределенных объектных систем СОВВА, и объектной моделью ОТОМО (ОЬ3есг Рага Мапаяетепг Огоцр).
ОМЬ позволяет моделировать разные виды систем: чисто программные, чисто аппаратные, программно-аппаратные, смешанные, явно включающие деятельность людей и т. д. Даже если бы мы ограничились возможностями использования !)М!. для проектирования программных информационных систем, это слишком далеко увело бы нас от основной темы курса. !вг Основы баз данных Курс Рис. 10.1.
Примеры описания классов Атрибутом класса называется именованное свойство класса, описывающее множество значений, которые могут принимать экземпляры этого свойства. Класс может иметь любое число атрибутов (в частности, не иметь ни одного атрибута). Свойство, выражаемое атрибутом, является свойством моделируемой сущности, общим для всех объектов данного класса. Так что атрибут является абстракцией состояния объекта. Любой атрибут любого объекта класса должен иметь некоторое значение. Имена атрибутов представляются в разделе класса, расположенном под именем класса. Хотя ОМ(. не накладывает ограничений на способы создания имен атрибутов (имя атрибута может быть произвольной текстовой строкой), на практике рекомендуется использовать короткие прилагательные и су1цествительные, отражающие смысл соответствующего свойства класса.
Первое слово в имени атрибута рекомендуется писать с прописной буквы, а все остальные слова — с заглавной. Пример описания класса с указанными атрибутами показан на рис. 10.2. Рис. 10.2. Класс человек с указанными именами атрибутов Операцией класса называется именованная услуга, которую можно запросить у любого объекта этого класса. Операция — это абстракция того, что можно делать с объектом. Класс может содержать любое число операций (в частности, не содержать ни одной операции). Набор операций класса является общим для всех объектов данного класса. Операции класса определяются в разделе, расположенном ниже раздела с атрибутами.
При этом можно ограничиться только указанием имен операций, оставив детальную спецификацию выполнения операций на более поздние этапы моделирования. Для именования операций рекомендуется использовать глагольные формы, соответствующие ожидаемому поведению объектов данного класса. Описание операции может также содержать ее сигиатуру, т. е. имена и типы всех параметров, а если опера- Лекция тв Диаграммы классов языка ОМЬ ция является функцией, то и тип ее значения. Класс человек с определенными операциями показан на рис. 10.3.
Рис. 10.3. Класс человек с операциями Для класса Человек мы определили три операции: выдатьВозраст, сохранитьтекущийдеход, выдатьобщийдоход. В операции выдатьвозраст используются значение атрибута датарощденин и значение текущей даты. Операция сохранитьтекушийдоход позволяет зафиксировать в состоянии объекта сумму и дату поступления дохода данного человека. Операция выдатьОбщийДоход вЫДает суммарный доход данного человека за указанное время. Заметим, что состояние объекта меняется при выполнении только второй операции. Результаты первой и третьей операций формируются на основе текущего состояния объекта. Категории связей. Связь-зависимость В диаграмме классов могут участвовать связи трех разных категории: зависимосн1 ь (дерепдепсу), обобщение (йепега1ьзабоп) и ассоццация (аззос1- а1юп).
При проектировании реляционных БД наиболее важны вторая и третья категории связей, поэтому о связях-зависимостях будет сказано только самое основное. Зависимосглью называют связь по применению, когда изменение в спецификации одного класса может повлиять на поведение другого класса, использующего первый класс. Чаще всего зависимости применяют в диаграммах классов, чтобы отразить в сигнатуре операции одного класса тот факт, что параметром этой операции могут быть объекты другого класса. Понятно, что если интерфейс второго класса изменяется, это влияет на поведение объектов первого класса.