Базы Данных, 19 лекция (от 09 ноября)
Материал из ESyr's Wiki pages.
Вводится специальное граф представление, И так дпалее .До поры до времени он существовал сам по себе, пока над ним не взял контроль консорциум.
Получилась бзабавная картиночка:
Метаметамодель – нотация, с помощью которой определяются остальные. Считается, что она сама определяется, но она определяется с помощью себя самой.
Все порядка 30 моделей определены в стандарте, и с помощью их опред модели.
Ещё что интересного есть в UML – стереотипы и профайлы.
Каждую метамодель с помощью метеметамодели и других метамоделей можно уточнять.
Model Driven Development (MDD)
Model Driven Architecture (MDA)
Platform-Independed Model
| MS SQL
V Server 2005
Platform Specific Model
Перекход делается с помощью прфайлов, и идёт к тому, чтобы делалось автоматически.
Теперь алектор сосредотачивается на диаграмах классов.
Диаграммы классов – показывают некоторый набор классов или других сущностей и некоторых связей между этими классами.
Object Constrint Language (OCL) - jxtym rhfcbdsq? Vfktymrbq zpsxjr
У UML семантика очень слабая. Есть люди, которые считают, что коль скоро мы предлагаем людям формальный язык, то, значит, у него должна быть формальная семантика, также документированная, как и синтаксисъ
Пока лектор не расскажет OCL, контрольной не будет. Ибо лектор учень любит давать на неё задачки.
Диаграмма классов
Классы – именованные описания объектов
Какой-то ушлый преподаватель недооценил лектора. - лектор таки нашёл мел, который был спрятан за задвинутой доской.
атрибуты
операции
связь
семантика
Формально у класса может не быть атрибутов.
Свойство, выраж атрибутом, является свойством сущности, которая присуща всем объектам класса.
Атрибут – абстракция состояния объекта.
Операции класса – именованная услуга, которужю можно запросить у любого объекта класса.
Сигнатура операции – имя операции, тип значения, список типов параметров
Самая большая неприятность языка UML – то, что там терминологияч не такая. Например, понятие связи в UML – понятие более общее, чем в ER-диаграммах.
Связи:
зависимость
обобщения
ассоциации – то же, чот и связь в ER-диаграммах
Лектор будет расматривать типы связей в порялке возрастания.
Зависимость – то, что одна сущность бкз другой не имеет смысла.
Обобщения (связь «is a»)
Лектор ужасно не любит, когда спрашивает, что нужно иметь по минимуму, чтобы было позднее связывание, и отвечают, что нужен механизм вирт функций. Это соверш непраавильно. А нужно в рантайме по ссылке на объект узнавать, какого он точно класса.
Лектор – первый человек по в СССР, который написал статью по С++. (1985)
Страустрап.
Обобщение – стрелочка новорит, что у аэроплана один базовый класс, и аэроплан является его подклассом.
Показательный пример.
При том, что Дейта и Дарелл (?) терпеть не может UML, как и полагается нормалдьным людям, тем не менее, у них основные свойства наследования такие же, как в UML.
Есть класс яблоки, и мы там ввели все возможные атрбуты яблок. Лектор знает людей, которые едят принципиально зелёные ябдлоки... этот пример лектору не нравится
Всегда можно прийти к картинке с общим корнем.
Новый курс – модельные основы технологий БД и их приложения.
И у студент, и у преполда есть комната. Препод – комната, где покурить, студент – комната в общаге. У препода-студента и то, и другое. Какие решения – запретить образование класса, пока есть одноимённые атрибуты. Это упражнение не годится, потомцу что класс – вещь динамичная. Втрое – наследовать свойства только от одного изх суперклассов. Ещё одна возможность – переименовать автоматом. На самом деле, тоже не очень сдорово, потому что на уровне ЧеловекИзУнивера не должны быть атрибуты, которые такие. Кроме того, имена получапются очень длинные.
Вывод – ребята, множественное наследование – вещь красивая. Но. Лектор не знает, как её реализовать в SQL.
Связи – ассоциации
У каждой 2 конца, хотя в UML допускаются н-арные ассоциации. В OCL они не допускаются.
Графически на диаграмах сущность-связь это линия, которая соед класс с самим собой или другим классом.
Ассоциации:
Имя
Роль
Кратность
Агрегация
Кратность – multiplicity
Число объектов, которые могут находиться на конце связи
Имя.
Допускается именование ассоциации одним именем, именами ролей, и вообще без имени.