Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
- | <P STYLE="margin-bottom: 0cm">БД 16.11.06</P>
| + | == From Ebaums Inc to MurkLoar. == |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | We at EbaumsWorld consider you as disgrace of human race. |
- | </P>
| + | Your faggotry level exceeded any imaginable levels, and therefore we have to inform you that your pitiful resourse should be annihilated. |
- | <P STYLE="margin-bottom: 0cm">Лектор решил контрольную не проводить.
| + | Dig yourself a grave - you will need it. |
- | Бугага. Но цели он достиг – народу стало побольше</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Связи-ассоциации</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Язык ОЦЛ</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Связи-ассоциации</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Есть уровень вовлечения в связь.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <OL>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Простые ассоциации: Объекты не
| + | |
- | зависимы, то есть могут существовать сами по себе. То есть
| + | |
- | обязательного наличия партнёров явно не требуется.</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Агрегатные связи</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Композитные ассоциации</P>
| + | |
- | </OL>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Пример: есть класс Аудитория. У неё
| + | |
- | есть атрибуты число квадратных метров, граф положение, и так далее.
| + | |
- | В ней есть парты. Здесь есть некоторая ассоциация – в аудитории
| + | |
- | есть от 0 до любого числа парт. Но она может обладать таким свойством
| + | |
- | – если аудитория на ремонт закрывается, то парты из неё
| + | |
- | выносятся. Это есть агрегатная композиция. Она показывает, что парты
| + | |
- | являются составной части аудитории. Если для парты связь обязательна,
| + | |
- | но если аудитория закрывается на ремонт, то это должно подействовать
| + | |
- | на все парты в аудитории. Это действие не запросов, а обновление БД.
| + | |
- | Если это состояние такое, которое не допускает наличия парт, то с
| + | |
- | ними надо что-то сделать.
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Другой пример:</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Унверситет. Есть факультеты. Если
| + | |
- | уничтожается универ, то уничтожаются факультеты. В терминах РБД это
| + | |
- | каскадное удаление. Вопрос: мы можем воткнуть факультеты внутрь
| + | |
- | универсиетта, то есть денормализовали. Декан принадлежность
| + | |
- | факультета, он конечно сотрудник университета, но он в первую очередь
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">//Убивать студентов при закрытии
| + | |
- | факультета...</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Если мы хотим запретить по книгам
| + | |
- | искать библиотеки, то в современных БД можно определить
| + | |
- | представление.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Диаграмы классов в общем-то и всё.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Разницы между диаграммами классов и
| + | |
- | ER-диаграммами нет.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><B>Object Constraint Language</B></P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">7 ноября был в Москве Билл Гейтс, и,
| + | |
- | как выяснилось, он – умный мужик.
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Вопрос – имеют ли OCL и SQL
| + | |
- | одинаковую мощность.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Он дал четверокурснику задачу –
| + | |
- | придумать ограничение в OCL, которое нельзя написать в SQL, или
| + | |
- | наоборот, Он ничего не придумал.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Лектору что-то подсказывает, что по
| + | |
- | этому поводу можно сделать 3-4-5 статей.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Свойства OCL, заимствованные из UML
| + | |
- | (метаметамодель)</P>
| + | |
- | <OL>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Класс, атрибут, операции</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Объект – экземпляр класса
| + | |
- | (instance)</P>
| + | |
- | </OL>
| + | |
- | <P STYLE="margin-bottom: 0cm">До и во время экзамена лектор сказал
| + | |
- | придерживаться его точки зрения относительно instance, но не потому
| + | |
- | что она абсолютно правильная, а потому, что она по крайней мере
| + | |
- | понятна.</P>
| + | |
- | <OL START=3>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Ассоциации – бинарная</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Тип данных (Boolean, Integer,
| + | |
- | Real, String – размытые понятия)</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Значение – экземпляр типа
| + | |
- | данных</P>
| + | |
- | </OL>
| + | |
- | <P STYLE="margin-bottom: 0cm">Пятёрка, она одна пятёрка, и в африке
| + | |
- | пятёрка, она только пятёрка, и нельзя её сделать шестёркой, и она
| + | |
- | пятёрка и она всегда будет пятёркой.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <OL>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Идентификатор объекта. Два объекта
| + | |
- | называются идентичными, когда у них одинаковые идентификаторы. На
| + | |
- | самом деле, что в UML, что в ODMG очень сильно затуманивается
| + | |
- | операция сравнения. Есть операция мелкого сравнения (когда объект
| + | |
- | равен, если это он же), и есть операция глубокого сравнения (когда
| + | |
- | равны внутренности).
| + | |
- | </P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Объект м. б. ассоциирован с
| + | |
- | другими объектами</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Значения, сравнение значений</P>
| + | |
- | </OL>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Структурные ТД</P>
| + | |
- | <OL>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Множество (set)</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Мультимножество (bag)</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Последовательность (sequence)</P>
| + | |
- | </OL>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Лектора глубоко потрясает операция
| + | |
- | UNION над двумя списками.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">context <class_name> inv;</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"> <ocl_выражение –
| + | |
- | логическое></P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <OL>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Операции над значениями скалярных
| + | |
- | типов – скалярные выражения</P>
| + | |
- | </OL>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Этот язык – это язык, который
| + | |
- | ориентирован на то, чтобы писать ограничения целостности. От языка
| + | |
- | ограничений до языка запросов один маленький шажочек.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <OL START=2>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Операции над объектами</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Операции над мн-вами, мультимн-вами,
| + | |
- | последовательностями</P>
| + | |
- | </OL>
| + | |
- | <P STYLE="margin-bottom: 0cm"><BR>
| + | |
- | </P>
| + | |
- | <OL>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Логические, ариф, строковые
| + | |
- | (конкатенация, сравнение, взятие подстроки, ...)</P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Операции над атрибутами.
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm">Получение значения атрибута</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">переход по экземпляру ассоциации</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">вызов операции объекта</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><объект>.<имя атрибута></P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><объект>.<имя операции>()</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><объект>.<имя роли,
| + | |
- | противополож></P>
| + | |
- | <LI><P STYLE="margin-bottom: 0cm">Коллекции</P>
| + | |
- | <P STYLE="margin-bottom: 0cm"><коллекция> -> <имя_операции>
| + | |
- | (<список_параметров> - логвыр)</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">select</P>
| + | |
- | <P STYLE="margin-bottom: 0cm">collect – выраж, генерир
| + | |
- | значения или объекты</P>
| + | |
- | </OL>
| + | |
- | <P STYLE="margin-bottom: 0cm">Внезапно осталось чуть-чуть времени</P>
| + | |
- | <P STYLE="margin-bottom: 0cm; text-decoration: none">OCL – язык
| + | |
- | не простой, а очень простой.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm; text-decoration: none">Вопрос, который
| + | |
- | любит задавать лектор: чем отличается OCL от языка исчисления
| + | |
- | кортежей. Разница одна. Здесь (в ОЦЛ) есть фактически одна
| + | |
- | переменная. Что мы не можем сделать с помощью этого языка – мы
| + | |
- | не можем сделать соединение, можем сделать только полусоединение.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm; text-decoration: none"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm; text-decoration: none">Рисунок.</P>
| + | |
- | <P STYLE="margin-bottom: 0cm; text-decoration: none"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm; text-decoration: none">Ограничение:</P>
| + | |
- | <P STYLE="margin-bottom: 0cm; text-decoration: none">Возраст
| + | |
- | служащего от 18 до 100 лет</P>
| + | |
- | <P STYLE="margin-bottom: 0cm; text-decoration: none">context Служащие
| + | |
- | self.возраст>18 and self.возраст<100</P>
| + | |
- | <P STYLE="margin-bottom: 0cm; text-decoration: none"><BR>
| + | |
- | </P>
| + | |
- | <P STYLE="margin-bottom: 0cm; text-decoration: none">Подумать, какие
| + | |
- | можно придумать ограничения</P>
| + | |
- | | + | |
- | {{Базы Данных}}
| + | |
- | {{Lection-stub}}
| + | |