Базы Данных, 19 лекция (от 09 ноября)
Материал из eSyr's wiki.
(Сырой исходник) |
(Исправлены опечатки) |
||
(4 промежуточные версии не показаны) | |||
Строка 1: | Строка 1: | ||
<P STYLE="margin-bottom: 0cm">Вводится специальное граф | <P STYLE="margin-bottom: 0cm">Вводится специальное граф | ||
- | представление, И так | + | представление, И так далее. До поры до времени он существовал сам по |
себе, пока над ним не взял контроль консорциум.</P> | себе, пока над ним не взял контроль консорциум.</P> | ||
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
- | <P STYLE="margin-bottom: 0cm">Получилась | + | <P STYLE="margin-bottom: 0cm">Получилась забавная картиночка:</P> |
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
Строка 37: | Строка 37: | ||
<P STYLE="margin-bottom: 0cm">Platform Specific Model | <P STYLE="margin-bottom: 0cm">Platform Specific Model | ||
</P> | </P> | ||
- | <P STYLE="margin-bottom: 0cm"> | + | <P STYLE="margin-bottom: 0cm">Переход делается с помощью прфайлов, и |
идёт к тому, чтобы делалось автоматически.</P> | идёт к тому, чтобы делалось автоматически.</P> | ||
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
- | <P STYLE="margin-bottom: 0cm">Теперь | + | <P STYLE="margin-bottom: 0cm">Теперь лектор сосредотачивается на |
- | + | диаграммах классов. | |
</P> | </P> | ||
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
Строка 60: | Строка 60: | ||
люди, которые считают, что коль скоро мы предлагаем людям формальный | люди, которые считают, что коль скоро мы предлагаем людям формальный | ||
язык, то, значит, у него должна быть формальная семантика, также | язык, то, значит, у него должна быть формальная семантика, также | ||
- | документированная, как и | + | документированная, как и синтаксис</P> |
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
Строка 98: | Строка 98: | ||
</P> | </P> | ||
<P STYLE="margin-bottom: 0cm">Операции класса – именованная | <P STYLE="margin-bottom: 0cm">Операции класса – именованная | ||
- | услуга, | + | услуга, которую можно запросить у любого объекта класса.</P> |
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
Строка 106: | Строка 106: | ||
</P> | </P> | ||
<P STYLE="margin-bottom: 0cm">Самая большая неприятность языка UML – | <P STYLE="margin-bottom: 0cm">Самая большая неприятность языка UML – | ||
- | то, что там | + | то, что там терминология не такая. Например, понятие связи в UML – |
понятие более общее, чем в ER-диаграммах. | понятие более общее, чем в ER-диаграммах. | ||
</P> | </P> | ||
Строка 115: | Строка 115: | ||
<LI><P STYLE="margin-bottom: 0cm">зависимость</P> | <LI><P STYLE="margin-bottom: 0cm">зависимость</P> | ||
<LI><P STYLE="margin-bottom: 0cm">обобщения</P> | <LI><P STYLE="margin-bottom: 0cm">обобщения</P> | ||
- | <LI><P STYLE="margin-bottom: 0cm">ассоциации – то же, | + | <LI><P STYLE="margin-bottom: 0cm">ассоциации – то же, что и |
связь в ER-диаграммах</P> | связь в ER-диаграммах</P> | ||
</OL> | </OL> | ||
Строка 125: | Строка 125: | ||
</P> | </P> | ||
<P STYLE="margin-bottom: 0cm">Зависимость – то, что одна | <P STYLE="margin-bottom: 0cm">Зависимость – то, что одна | ||
- | сущность | + | сущность без другой не имеет смысла.</P> |
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
Строка 134: | Строка 134: | ||
спрашивает, что нужно иметь по минимуму, чтобы было позднее | спрашивает, что нужно иметь по минимуму, чтобы было позднее | ||
связывание, и отвечают, что нужен механизм вирт функций. Это соверш | связывание, и отвечают, что нужен механизм вирт функций. Это соверш | ||
- | + | неправильно. А нужно в рантайме по ссылке на объект узнавать, какого | |
он точно класса. | он точно класса. | ||
</P> | </P> | ||
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
- | <P STYLE="margin-bottom: 0cm">Лектор – первый человек | + | <P STYLE="margin-bottom: 0cm">Лектор – первый человек в |
СССР, который написал статью по С++. (1985)</P> | СССР, который написал статью по С++. (1985)</P> | ||
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
Строка 146: | Строка 146: | ||
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
- | <P STYLE="margin-bottom: 0cm">Обобщение – стрелочка | + | <P STYLE="margin-bottom: 0cm">Обобщение – стрелочка говорит, |
что у аэроплана один базовый класс, и аэроплан является его | что у аэроплана один базовый класс, и аэроплан является его | ||
подклассом.</P> | подклассом.</P> | ||
Строка 155: | Строка 155: | ||
</P> | </P> | ||
<P STYLE="margin-bottom: 0cm">При том, что Дейта и Дарелл (?) | <P STYLE="margin-bottom: 0cm">При том, что Дейта и Дарелл (?) | ||
- | терпеть не может UML, как и полагается | + | терпеть не может UML, как и полагается нормальным людям, тем не |
менее, у них основные свойства наследования такие же, как в UML.</P> | менее, у них основные свойства наследования такие же, как в UML.</P> | ||
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
<P STYLE="margin-bottom: 0cm">Есть класс яблоки, и мы там ввели все | <P STYLE="margin-bottom: 0cm">Есть класс яблоки, и мы там ввели все | ||
- | возможные | + | возможные атрибуты яблок. Лектор знает людей, которые едят |
- | принципиально зелёные | + | принципиально зелёные яблоки... этот пример лектору не нравится</P> |
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
Строка 172: | Строка 172: | ||
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
- | <P STYLE="margin-bottom: 0cm">И у студент, и у | + | <P STYLE="margin-bottom: 0cm">И у студент, и у препода есть комната. |
Препод – комната, где покурить, студент – комната в | Препод – комната, где покурить, студент – комната в | ||
общаге. У препода-студента и то, и другое. Какие решения – | общаге. У препода-студента и то, и другое. Какие решения – | ||
запретить образование класса, пока есть одноимённые атрибуты. Это | запретить образование класса, пока есть одноимённые атрибуты. Это | ||
- | упражнение не годится, | + | упражнение не годится, потому что класс – вещь динамичная. |
- | Втрое – наследовать свойства только от одного | + | Втрое – наследовать свойства только от одного из суперклассов. |
Ещё одна возможность – переименовать автоматом. На самом деле, | Ещё одна возможность – переименовать автоматом. На самом деле, | ||
тоже не очень сдорово, потому что на уровне ЧеловекИзУнивера не | тоже не очень сдорово, потому что на уровне ЧеловекИзУнивера не | ||
- | должны быть атрибуты, которые такие. Кроме того, имена | + | должны быть атрибуты, которые такие. Кроме того, имена получаются |
очень длинные.</P> | очень длинные.</P> | ||
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
<P STYLE="margin-bottom: 0cm">Вывод – ребята, множественное | <P STYLE="margin-bottom: 0cm">Вывод – ребята, множественное | ||
- | наследование – вещь красивая. Но | + | наследование – вещь красивая. Но! Лектор не знает, как её |
реализовать в SQL.</P> | реализовать в SQL.</P> | ||
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
Строка 197: | Строка 197: | ||
</P> | </P> | ||
<P STYLE="margin-bottom: 0cm">Графически на диаграмах сущность-связь | <P STYLE="margin-bottom: 0cm">Графически на диаграмах сущность-связь | ||
- | это линия, которая | + | это линия, которая соединяет класс с самим собой или другим классом.</P> |
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
Строка 221: | Строка 221: | ||
<P STYLE="margin-bottom: 0cm"><BR> | <P STYLE="margin-bottom: 0cm"><BR> | ||
</P> | </P> | ||
+ | {{Базы Данных}} | ||
+ | {{Lection-stub}} |
Текущая версия
Вводится специальное граф представление, И так далее. До поры до времени он существовал сам по себе, пока над ним не взял контроль консорциум.
Получилась забавная картиночка:
Метаметамодель – нотация, с помощью которой определяются остальные. Считается, что она сама определяется, но она определяется с помощью себя самой.
Все порядка 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
Число объектов, которые могут находиться на конце связи
Имя.
Допускается именование ассоциации одним именем, именами ролей, и вообще без имени.
Базы Данных
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
Календарь
пт | чт | пт | чт | пт | чт | пт | чт | пт | чт | |
Сентябрь
| 01 | 07 | 14 | 15 | 21 | 22 | 28 | 29 | ||
Октябрь
| 05 | 06 | 12 | 13 | 19 | 20 | 26 | 27 | ||
Ноябрь
| 02 | 03 | 09 | 16 | 17 | 23 | 24 | 30 | ||
Декабрь
| 07 | 08 | 14 | 15 |
Вопросы к экзамену
1999
2000
2001
2002
2003
2004
2005
2006