Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АПИС - Лекции.docx
Скачиваний:
13
Добавлен:
20.04.2015
Размер:
42.22 Кб
Скачать

19.11.11

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

В этой главе мы рассмотрим основные понятия диаграмм классов унифицированного языка моделирования UMLи возможности применения этой диаграммной модели для проектирования БД.

Кроме того будет кратко рассмотрен язык объектных ограничений OCL. Унифицированный язык моделированияUMLбыл создан в 1994 году специалистами по программной инженерии Гради Гучем и Джеймсом Рамбо из команиеRationalRools. ЯзыкуUMLпосвящено множество книг. ЯзыкUMLразработан и развивается консорциумомOMG(ObjectManagementGroup) и имеет много общего с объектными моделями.UMLпозволяет моделировать разные виды систем: чисто программные, чисто аппаратные, смешанные программно-аппаратные, модели, включающие деятельность людей и т.д.

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

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

Язык UMLбазируется на трех фундаментальных понятиях: сущность, отношение, диаграмма.

Сущность – объект проектируемой системы, который целостно представляется в абстрактном виде.

Отношение – описывает способ и форму связи между сущностями.

Диаграмма – визуальное представление набора сущностей с отношениями.

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

Диаграмма классов – один из наиболее важных и распространенных среди программистов и разработчиков БД видов диаграмм UML.

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

Ассоциации, обобщения и зависимости.

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

Связи типа зависимости. Зависимостью называется связь, когда изменение в спецификации одного класса может повлиять на поведение другого класса. Чаще всего зависимости применяют в диаграммах классов, чтобы отразить в сигнатуре операций тот факт, что параметром этой операции могут быть объекты другого класса. Если интерфейс второго класса изменяется – это влияет на поведение первого класса. Связи зависимости существенны для объектно-ориентированной системы, но при проектировании реляционных БД использование этого типа связи ограничено. Для реализации этого типа связи можно воспользоваться триггерами и хранимыми процедурами.

Обобщения и механизм наследования классов в языке UML. Связью обобщения называется связь между сущностью, называемой супер классом или родителем, и более специализированной разновидностью этой сущности, называемой подклассом или потомком. Обобщения называют связью типаIS-A. Класс потомок наследует все атрибуты и операции класса предка, но в нем определяются еще дополнительные и/или атрибуты и операции.

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

С понятием ассоциации связаны 4 важных дополнительных понятия: роль, кратность, агрегация и композиция. Роль и кратность для нас понятия знакомые. Обычная ассоциация между двумя классами характеризует связь между равноправными сущностями, при этом оба класса находятся на одном концептуальном уровне, но иногда в диаграмме классов требуется отразить тот факт, что ассоциация между классами имеет специальный вид – «часть-целое». В этом случае класс «целое» имеет более высокий концептуальный уровень, чем класс «часть». Ассоциации такого вида называются агрегатными. Графически агрегатные ассоциации изображаются в виде простой ассоциации с не закрашенным ромбом на стороне класса «целого».

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

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

В контексте проектирования реляционных БД агрегатные и в особенности композиционные ассоциации влияют на способ поддержки ссылочной целостности.

Ограничения целостности и язык OCL.

Один из самых серьезных и критикуемых недостатков языка UMLэто предоставление только визуальных средств моделирования без реализации. Эти средства абстрактны и поэтому далеко не всегда способны точно и формально отразить тот или иной нюанс функционирования проектируемой системы. В результате зачастую проектировщик не находит достаточно выразительных средств, позволяющих уточнить ограничения на применение создаваемых структур, специфицировать способы и нюансы их функционирования и т.д. Конечно, можно представить эти особенности программным кодом конкретного языка программирования, но главной особенностьюUMLявляется универсальность. Отсюда вывод, текстовый язык, применяемый для описания ограничений должен быть независимым от операционной системы и среды разработки. В начале 90-х годов в корпорацииIBMразрабатывалась методика объектно-ориентированного анализа и называлась эта методикаSyntropy. Эта методика включала математический язык текстовых описаний элементов визуальных моделей. Но этот язык получился слишком сложным для широкого применения. Поэтому со временем на основе этого языка был создан языкOCL, который применялся как язык моделирования. Сильной стороной этого языка оказалась независимость от платформы и легкая адаптация к различным средам программирования. Этот язык сразу получил широкое признание и 1997 году вошел в состав стандартаUML. До появления этого языка для выражения ограничений применялись комментарии на естественном языке.

Общая характеристика языка OCL.

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

Плюсы и минусы использования языка OCLпри проектировании БД.

Плюсы: Этот язык позволяет формально и однозначно определять ограничения для целостности БД в терминах ее концептуальной схемы. Наличие подобной документации будет полезным при сопровождении БД, даже если придется преобразовывать инварианты OCLв ограничения целостностиSQLвручную.

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

3.12.2011

Моделирование данных в формализме специализации данных XSD.

XML – текстовая модель.

В последние годы увеличивается спрос на определение информационных ресурсов, заданных в xmlформате, обеспечивающих независимость данных от платформы. Представление информационных ресурсов вXMLформате определяет декларативную природу моделирования данных, благодаря использованию сведений о структуре документа, представленной в спецификацииXSD.

Стандарт XSDобеспечивает поддержку типов данных и таким образом обеспечивает связь данных, представленных вXMLформате с данными, используемыми в языках программирования и базах данных.