Введение в базы данных (1176852), страница 4
Текст из файла (страница 4)
Packages (пакеты, модули).
Диаграммы классов могут организовываться в модули (packages), в котором они логически собраны. Модули могут включать одну или несколько диаграмм, при этом такое деление – это чисто условное деление для удобства доступа к частям визуального представления модели, а не деление самой системы на части.
Отношения диаграмм
На рисунке, прямоугольники представляют основные диаграммы UML, стрелки - отношения между ними. Указатель стрелки показывает отношение "входные данные для..." Например, диаграмма сценария - входные данные для диаграммы классов.
Рисунок помогает получить понимание одной из основ объектно-ориентированного моделирования. Отношения между различными моделями UML - это отображение итеративной природы объектно-ориентированного моделирования.
Следующий рисунок немного другое представление процесса разработки - последовательное. Линии между прямоугольниками представляют отношение - "документируется с помощью…" На рисунке показано, что диаграммы состояний используются для документирования диаграмм классов. Точнее диаграмма состояний будет использоваться для документирования единственного класса на диаграмме классов.
Аналогично, компоненты на диаграмме компонентов могут документироваться другой диаграммой компонентов, классов или моделью сценария. На рисунке также показано, что исходный код используется для документирования классов на диаграмме классов.
Интересная особенность рисунков в том, что они иллюстрируют то, что процесс объектно-ориентированного моделирования
-
последовательный на всем протяжении
-
итеративный на его стадиях
В начале больших объектно-ориентированных проектов, вы обычно начинаете с процедур сбора требований, таких как сценарии работы, затем передвигаетесь к анализу и проектированию, таких как диаграммы классов и в конце переходите к прикладыванию всех ваших усилий на кодирование. Хотя вы итеративно проходите через все эти методики, и вы можете хорошо писать код, все равно факт остается - сначала вам необходимо в общих чертах идентифицировать требования, затем проанализировать их, затем спроектировать ПО, а затем закодировать его. Другими словами, объектно-ориентированное моделирование последовательное "в большом" и итеративная "в малом".
Зачем нужны все эти диаграммы? Для сокращения затрат, потому что они позволяют сэкономить на переделках
-
Заказчик будет понимать, что получит, а разработчик что должно получиться
-
Повторное использование кода
-
Тестирование
-
Организация управления проектом
-
Rational Rose – прямое и обратное проектирование. UC и БД.
По диаграммам классов вы можете провести генерацию каркасного программного кода (на C++, VB или Java), который не будет содержать кода, реализующего методы. Код правильно представит определения классов и их взаимосвязи, изображенные на диаграммах. Такая генерация программного кода называется прямым проектированием (forward engineering). Взаимозависимости классов, изображенные на “картинке” диаграммы классов, отображается в программный код.
Большой интерес представляет обратное проектирование (reverse engineering), когда по исходному программному коду, написанному в объектах, восстанавливается диаграмма классов, которая позволяет понять структуру программы.
Транзакции
Транзакция – набор операций над базой, который либо выполнится (весь) либо не выполнится целиком (Атомарность). Примером транзакции может служить, например, перевод денежных средств с одного счета на другой.
Для того чтобы уметь откатить все операции, которые проводятся в рамках одной транзакции в том случае, когда она не завершена успешно, используется журнал транзакций.
После того как все операции завершены, для того, чтобы завершить транзакцию используется оператор COMMIT. ROLLBACK – Undo.
Key Object
Ассоциации:
*
1
У ассоциаций бывают имена.
A
B

А знает о В, В не знает о А.
Пример: клиент сервер.
Усиление ассоциации, агрегации:
A
содержит
B
Orders
A
A





B не имеет смысла без A

B
B
Items
Слабая ассоциация:
(зависимость, dependency)
A
B

Изменения в B влияют на A
О бобщение (generalization):
(наконечник стрелки должен быть не закрашен)
-
Восстановление данных в БД. Линейная модель, скользящий контроль.
Задача восстановления пропущенных значений (прогнозирование)
БД
-
OLTP (Online Transaction Processing) – когда часто меняется
-
OLAP (Online Analytical Processing) – когда уже не меняется (в архиве)
Warehouse – один из вариантов OLAP
Рассмотрим реляционную таблицу:
Атрибуты
Целевой атрибут
Объект




Известны
Неизвестны


Вопрос: как найти целевые атрибуты?
-
Получить оценку
-
Проверить ее значимость
Способ 1 (линейная регрессия)
Попробуем найти, чтобы их линейная комбинация приближала целевой атрибут.
Когда строится матрица X, каждый столбец нормируется, чтобы удобнее было считать.
Метод проверки
Cross Validation (скользящий контроль)
Выкидываем одну строчку NN–1 и строим на тех же атрибутах. После этого получаем и смотрим 1-й целевой атрибут, и смотрим его ошибку, и т.д. для каждой строчки.
Бывают случаи:
- прогноз не хороший
Group by:
-
Деревья решений при восстановлении данных. Алгоритмы кластерного анализа.
Метод кластер анализ.
Мы можем рассмотреть в нашем n-мерном пространстве структуры облаков
Выбираем некоторый центр тяжести + попадание в область построения функции
Алгоритмы кластерного анализа
-
Ближайшего k-среднего
Выбираем k строчек из выборки, k – число кластеров, на которые делается разбиение.
И считаем, что это центры кластеров.
Формируем группы, любая точка – к одному центру
По любой группе – новые.
Чтобы алгоритм остановился, нужно число порог, чтобы прекратилось шатание.
-
k-среднее с ядрами
Цент тяжести – ядро
Представитель кластера
Не точка
Несколько точек
Гиперплоскость (линия)
т.е. у нас есть функции, которые:
-
по ядру позволяют сформировать группу
-
по группе – ядро
Вопрос: как сформировать ядро из 3-х точек?
Мы можем считать радиусом кластера
матрица - матрица связанности графа.
Кластер – связанные компоненты графа. Или компонента связанности.
Попадаем в кластер, если точка на расстоянии от точки кластеров.
Недостаток – d
-
алгоритм. Построение минимального покрывающего дерева
-
Эволюционные и генетические алгоритмы при восстановлении данных. Факторный анализ.
Генетические алгоритмы (Genetic Algorithm)
Генетический алгоритм:
Общая схема:
Генетические алгоритмы входят в OLAP пакеты. Одна из фирм делающая их – Cognos.
Нейронные сети
Математический нейрон
Рассмотрим теперь модель математического нейрона. (Математический нейрон - это однотипный элемент, имитирующий работу нейронов головного мозга). В дальнейшем мы будем просто называть ее нейроном. Нейрон - это автомат, который преобразует входные сигналы в выходной сигнал. Сигналы силы
,
,…,
поступают на синапсы и преобразуются линейно. После этого взвешенная сумма (скалярное произведение вектора входного сигнала и вектора весов синапсов) сложенная с некоторой величиной называемой сдвигом подвергается нелинейному преобразованию. Функция, которая осуществляет это преобразование, называется "функцией активации" или "передаточная функция".
Математическая модель выглядит следующим образом:
где
- компонента входного вектора ( i = 1,…N-1 )
- число входов нейрона плюс один
- нелинейное преобразование (функция активации)
Для удобства к нейрону добавляют еще один вход и еще один синапс с весом , считая, что на этот вход всегда подается сигнал 1. Такой прием позволяет нам избавиться от смещения, внеся его в сумму.
Входы
Синапсы
S
y
1
Аксон
Выход