Тема_7 (1122352), страница 10

Файл №1122352 Тема_7 (Презентации лекций С.Д. Кузнецова PDF) 10 страницаТема_7 (1122352) страница 102019-05-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 10)

Кузнецов. Базы данных.124Проектирование РБДДиаграммы классов языка UML(45)Операция floorвырабатываетОграниченияцелостностии язык OCL (14) Инвариант класса (5)наибольшее значение целого типа,меньшее или равное значениюпараметра операции Операция concat конкатенирует двестроки-аргументы size выдает целое значение, равноедлине строки-аргумента substring выдает подстроку строки-аргумента с заданными начальнойпозицией и длиной29.10.2009С.Д. Кузнецов. Базы данных.125Проектирование РБДДиаграммы классов языка UML(46)ОграниченияцелостностиOCL (15) Инвариант класса (6) Операциинади языкобъектамиВ OCL определены три операции надобъектами:получение значения атрибута;переход по экземпляру ассоциации,вызов операции класса (последняя операциядля целей проектирования «традиционных»реляционных БД несущественна)Для обозначения всех трех этих операцийиспользуется «точечная нотация»29.10.2009С.Д.

Кузнецов. Базы данных.126Проектирование РБДДиаграммы классов языка UML(47)Ограниченияцелостностии языкOCLРезультатомвыражениявида(16) Инвариант класса (7)объект>.<имя атрибута>является текущее значение атрибута с именем имяатрибута, если объект имеет такой атрибутЕсли атрибут типизирован именем некоторого класса, торезультатом вызова операции является некоторый объектэтого класса (объектный идентификатор), к которому такжеприменимы операции над объектами.В противном случае использование подобного выраженияприводит к возникновению ошибки типа29.10.2009С.Д.

Кузнецов. Базы данных.127Проектирование РБДДиаграммы классов языка UML(48)Ограниченияцелостностии язык OCL (17)Инвариант класса(8)Результатомпримененияк объектуоперацииперехода по экземпляру связи-ассоциацииявляется коллекция, содержащая все объекты,которые ассоциированы с данным объектомчерез указываемый экземпляр ассоциацииЭтот экземпляр ассоциации идентифицируетсяименем роли, противоположной по отношению кданному объектуТаким образом, синтаксис выражения переходапо соединению следующий:<объект>.<имя роли, противоположеннойпо отношению к объекту>29.10.2009С.Д. Кузнецов.

Базы данных.128Проектирование РБДДиаграммы классов языка UML(49)Ограниченияцелостностии язык OCLОперациинад множествами,(18) Инвариант класса (9)мультимножествамиипоследовательностямиВ OCL поддерживается обширный набор операций надзначениями коллекционных типов данныхОбсудим только те из них, которые являются уместными вконтексте данного разделаСинтаксически вызовы операций над коллекциямизаписываются в нотации, аналогичной точечной, но вместоточки используется стрелка (→)Общий синтаксис применения операции к коллекциивыглядит следующим образом:<коллекция> → <имя операции> (<списокфактических параметров>)29.10.2009С.Д. Кузнецов. Базы данных.129Проектирование РБДДиаграммы классов языка UML(50)ОграниченияцелостностиОперацияselect и язык OCL (19) Инвариант класса (10)В OCL определены три одноименных операцииselect, которые обрабатывают заданноемножество, мультимножество илипоследовательность на основе заданногологического выражения над элементамиколлекцииРезультатом каждой операции является новоемножество, мультимножество илипоследовательность, соответственно, из техэлементов входной коллекции, для которыхрезультатом вычисления логического выраженияявляется true29.10.2009С.Д.

Кузнецов. Базы данных.130Проектирование РБДДиаграммы классов языка UML(51)ОграниченияОперацияцелостностиcollectи язык OCL (20) Инвариант класса (11)В OCL определены три операции collect, параметрамикоторых являются множество, мультимножество илипоследовательность и некоторое выражение надэлементами соответствующей коллекцииРезультатом является мультимножество для операцийcollect, определенных над множествами имультимножествами, и последовательность для операцииcollect, определенной над последовательностьюПри этом результирующая коллекция соответствующеготипа (коллекция значений или объектов) состоит изрезультатов применения выражения к каждому элементувходной коллекции29.10.2009С.Д.

Кузнецов. Базы данных.131Проектирование РБДДиаграммы классов языка UML(52)Ограниченияцелостностиязык OCL (21) Инварианткласса (12) Операцияcollectииспользуется,главнымобразом, в тех случаях, когда от заданнойколлекции объектов требуется перейти кнекоторой другой коллекции объектов, которыеассоциированы с объектами исходной коллекциичерез некоторый экземпляр ассоциацииВ этом случае выражение над элементомисходной коллекции основывается на операцииперехода по экземпляру ассоциации29.10.2009С.Д.

Кузнецов. Базы данных.132Проектирование РБДДиаграммы классов языка UML(53)Операции целостностиexists, forAll,иcountОграниченияязык OCL (22) Инвариант класса (13)В OCL определены три одноименных операции exists надмножеством, мультимножеством и последовательностью;дополнительным параметром этих операций является логическоевыражениеВ результате каждой из этих операций выдается true в том и только втом случае, когда хотя бы для одного элемента входной коллекциизначением логического выражения является trueВ противном случае результатом операции является falseОперации forAll отличаются от операций exist тем, что в результатекаждой из них выдается true в том и только в том случае, когда длявсех элементов входной коллекции результатом вычислениялогического выражения является trueВ противном случае результатом операции будет falseОперация count применяется к коллекции и выдает числосодержащихся в ней элементов29.10.2009С.Д.

Кузнецов. Базы данных.133Проектирование РБДДиаграммы классов языка UML(54)Операциицелостностиunion, intersect, symmetricDifferenceОграниченияи языкOCL (23) Инвариант класса (14)Параметрами двуместных операций union (объединение),intersect (пересечение), symmetricDifference (симметричноевычитание) являются две коллекции, причем в OCLоперации определены почти для всех возможныхкомбинаций типов коллекцииНе будем рассматривать все определения этих операций икратко упомянем только две из нихРезультатом операции union, определенной над множествоми мультимножеством, является мультимножество, т. е.

изрезультата объединения таких двух коллекций дубликаты неисключаютсяРезультатом же операции union, определенной над двумямножествами, является множество, т. е. в этом случаевозможные дубликаты должны быть исключены29.10.2009С.Д. Кузнецов. Базы данных.134Проектирование РБДДиаграммы классов языка UML(55) Примеры инвариантовОграниченияцелостностии язык OCL (24) Инвариант класса (15)Определитьограничение«возрастслужащих должен быть больше 18 именьше 100 лет»context Служащий inv:self.возраст >18 andself.возраст < 100 Условие инварианта накладывает ограничение на значения атрибутавозраст класса Служащий self обозначает текущий объект класса-контекста инварианта При проверке данного условия будут перебираться существующие объектыкласса Служащий, и для каждого объекта будет проверяться, что значенияатрибута возраст находятся в пределах заданного диапазона Ограничение удовлетворяется, если условное выражение принимаетзначение true для каждого объекта класса-контекста29.10.2009С.Д.

Кузнецов. Базы данных.135Проектирование РБДДиаграммы классов языка UML(56)Выразить на языке OCL ограничение, вОграниченияцелостностии языксоответствиис которымв отделахс OCL (25) Инвариант класса (16)номерами больше 5 должны работатьсотрудники старше 30 летcontext Отдел inv:self.номер > 5 orself.служащий → select (возраст≤ 30) → count () = 0 Условное выражение инварианта будет вычисляться для каждого объекта классаОтдел Подвыражение справа от операции or вычисляется слева направо Сначала вычисляется подвыражение self.служащий, значением которогоявляется множество объектов, соответствующих служащим, которые работают втекущем отделе Далее к этому множеству применяется операция select (возраст > 30), врезультате которой вырабатывается множество объектов, соответствующихслужащим текущего отдела, возраст которых превышает 30 лет29.10.2009С.Д.

Кузнецов. Базы данных.136Проектирование РБДДиаграммы классов языка UML(57)Выразить на языке OCL ограничение, вОграниченияцелостностии языксоответствиис которымв отделахс OCL (26) Инвариант класса (17)номерами больше 5 должны работатьсотрудники старше 30 летcontext Отдел inv:self.номер ≤ 5 orself.служащий → select (возраст≤ 30) → count () = 0 Значением операции count () является число объектов в этоммножестве Все выражение принимает значение true, если последняя операциясравнения «=0» вырабатывает значение true, т.

е. если в текущем отделенет сотрудников младше 31 года Ограничение в целом удовлетворяется только в том случае, еслизначением условия инварианта является true для каждого отдела29.10.2009С.Д. Кузнецов. Базы данных.137Проектирование РБДДиаграммы классов языка UML(58)Тот же инвариант можноОграничения целостностиязык OCL (27) Инвариант класса (18)сформулироватьв контекстеиклассаСлужащий:context Служащий inv:self.возраст > 30 orself.отдел.номер ≤ 5 Здесь следует обратить внимание на подвыражение self.отдел.номер ≤ 5 Поскольку отдел – это имя роли ассоциации, значением подвыраженияself.отдел является коллекция (множество) Но кратность роли отдел равна единице, т.

е. каждому объекту служащегосоответствует в точности один объект отдела Поэтому в OCL допускается сокращенная запись операции self.отдел.номер,значением которой является номер отдела текущего служащего29.10.2009С.Д. Кузнецов. Базы данных.138Проектирование РБДДиаграммы классов языка UML(59) Определить ограничение, что у каждогоотделадолжен иметьсяменеджер,иОграниченияцелостностии языкOCLлюбой отдел должен быть основан нераньше соответствующей компании(28) Инвариант класса (19)context Отдел inv:self.служащий → exists (должность= “manager”) andself.компания.годОснования ≥self.годОснования Здесь должность – атрибут класса Служащий, а атрибуты с именемгодОснования имеются и у класса Отдел, и у класса Компания В условном выражении этого инварианта подвыражение self.служащий→ exists (должность = “manager”) эквивалентно выражению self.служащий→ select (должность = “manager”) → count () > 129.10.2009С.Д.

Характеристики

Тип файла
PDF-файл
Размер
625,64 Kb
Тип материала
Предмет
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее