Главная » Просмотр файлов » С.Д. Кузнецов - Основы баз данных

С.Д. Кузнецов - Основы баз данных (1121716), страница 41

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

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

"* Слелует заметить, что ни в спецификации гзмь, нн в описании какой-либо другой объектной модели никогда прямо не говорится, что в операциях над множествами обьектов в лействительности участвуют идентификаторы объектов. Но другого понимания не суцзествует. "' Обратите внимание, что хотя в Омь допускаются а-арные связи, в ОСЕ речь идет только об уже привычном для нас бинарном варианте. 194 Лекция 10 Диаграммы классов языка 0МЬ ° мульзпимнозтсеспзво (Ьая), неупорядоченная коллекция, которая может содержать повторяющиеся элементы-дубликаты; ° последоиательноспзь (вес)иепсе), упорядоченная коллекция, которая может содержать элементы-дубликаты.* В ОСЕ элементами каждого из трех типов коллекций могут быть либо объекты, либо значения. Язык ОСЕ предназначен, главным образом„для определения ограничений целостности данных, соответствующих модели, которая представлена в терминах диаграммы классов ЫМ)..

ОСЕ может применяться для определения ограничений, описывающих пред- и постусловия операций классов, и ограничений, представляющих собой инварианты классов. При проектировании реляционных баз данных возможность определения пред- и постусловий операций вряд ли может оказаться существенной*'. С точки зрения определения ограничений целостности баз данных более налсны средства определения инвариантов классов. Инвариант класса Под инвариантом класса в ОС1.

понимается условие, которому должны удовлетворять все объекты данного класса. Если говорить более точно, инвариант класса — это логическое выражение, вычисление которого должно лавать вне при создании любого объекта данного класса и сохранять истинное значение в течение всего времени существования этого объекта. При определении инварианта требуется указать имя класса и выражение, определяющее инвариант указанного класса. Синтаксически это выглядит следующим образом: сопгехг <с1авв паве> 1пц: <ОСЬ-выражение> Здесь <с1авв-пазпе> является именем класса, для которого определяется инвариант, 1пц — ключевое слово, говорящее о том, что определяется именно инвариант, а не ограничение другого вида, и сопьехк — ключевое слово, которое говорит о том, что контекстом следующего после двоеточия ОС).-выражения являются объекты класса <с1авв-пазпе>, т.

е. ОС)=выражение должно принимать значение ггие лля всех объектов этого класса. Заметим, что ОСЕ является типизированным языком, поэтому у каждого выражения имеется некоторый тип. Естественно, что ОСз=выражение в инварианте класса должно быть логического типа. * В контексте проектирования реляционных БД (если не иметь в виду использование объектно-реляционных СУБД) последняя разновидность типа коллекции является бессмысленной, поскольку в реляционных БД упорядоченность нс поппер:кивается. Поэтому мы не будем обсу:кдать детали операция над последовательностями.

'* Если снова не иметь в вилу использование объектно-реляционных СУБД. 195 Основы баэ данных Курс В общем случае ОСЬ-выражение в определении инварианта основывается на композиции операций, которым посвящена большая часть определения языка. В спецификации языка эти операции условно разделены на следующие группы: ° операции над значениями предопределенных в 13МЬ (скалярных) типов данных; ° операции над объектами; ° операции над множествами; ° операции над мультимножествами; ° операции над последовательностями. Последовательно обсудим эти группы операций. Операции нвд эначениями предопределенных типов данных Полагая очевидной семантику предопределенных скалярных типов данных и операций над ними, ограничимся лишь их перечислением.

В ОСЬ поддерживаются следующие заимствованные из определения 0МЬ скалярные типы данных: Воо!еап, 1п1еаег, Веа! и Яппи. Операции над объектами В ОС1. определены три операции над объектами: ° получение значения атрибута; ° переход по соединению, ° вызов операции класса (последняя операция для целей проектирования реляционнь1х БД несущественна).

Для записи этих трех операций используется «точечная нотация». Например, результатом выражения вида <объект>.<имя атрибута> является текущее значение атрибута с именем имя атрибута, если объект имеет такой атрибут. В противном случае использование подобного выражения приводит к возникновению ошибки типа.

Результатом применения к объекту операции перехода по соединению (экземпляру связи-ассоциации) является коллекция, содержащая все объекты, которые ассоциированы с данным объектом через указываемое соединение. Это соединение идентифицируется именем роли, противоположной по отношению к данному объекту. Таким образом, синтаксис выражения перехода по соединению следующий: <объект>.<имя роли, противоположениой по отношению к объекту> 196 Лекция 1О диаграммы классов языка ОМЬ Операции над множествами, мультимножествами и последовательностями В ОСЕ поддерживается обширный набор операций над значениями коллекционных типов данных. Обсудим только те из них, которые являются уместными в контексте данной лекции.

Синтаксически операции над коллекциями записываются в нотации, аналогичной точечной, но вместо точки используется стрелка ( ). Таким образом, общий синтаксис применения операции к коллекции следующий: <коллекция> <имя операцгя.> ~<список фактических параметроя>~ Операция ве1есс В ОС) определены три одноименных операции яе1ясс, КОторЫе обрабатывают заданное множество, мультимножество или последовательность на основе заданного логического выражения над элементами коллекции. Результатом каждой операции является новое множество, мультимножество или последовательность соответственно из тех элементов входной коллекции, для которых результатом вычисления логического выражения является!«ие. ОпеРация со11есе Аналогично набору операций яе1есг, в ОС1. определены три операции сс11есс, параметрами которых являются множество, мультимножество или последовательность и некоторое выражение над элементами соответствующей коллекции.

Результатом является мультимножество для операций со11есг, определенных над множествами и мультимножествами, и последовательность для операции со11есс, определенной над последовательностью. При этом результирующая коллекция соответствующего типа (коллекция значений или объектов) состоит из результатов применения выражения к каждому элементу входной коллекции. Операция со11ясс используется, главным образом, в тех случаях, когда от заданной коллекции объектов требуется перейти к некоторой другой коллекции обьектов, которые ассоциированы с объектами исходной коллекции через некоторое соединение. В этом случае выражение над элементом исходной коллекции основывается на операции перехода по соединению. ОпеРации еххвев, гохд22, в1яе В ОС1.

определены три одноименных операции ехгягя над множеством, мультимножеством и последовательностью, дополнительным параметром которых является логическое выражение. В результате каждой из этих операций выдается 1«ие в том и только в том случае, когда хотя бы 197 Основы баз данных Курс для одного элемента входной коллекции значением логического выражения является 1гие. В противном случае результатом операции является ги1ле. Операции йогй1 1 отличаются от операций ехте:з тем, что в результате каждой из них выдается грие в том и только в том случае, когда для всех элементов входной коллекции результатом вычисления логического выражения является ггие.

В противном случае результатом операции будет майе. Операция пузе применяется к коллекции и выдает число содержа- шихся в ней элементов.* Операции зшйсп, 1дсеквесе, вутвйессйсРШегепсе Параметрами двуместных операций цгусп, 1псегеес-, еутщаес гзсрт'1е кейсе являются две коллекции, причем в ОСБ операции определены почти для всех возможных комбинаций типов коллекции. Не будем рассматривать все определения этих операций и кратко упомянем только две из них. Результатом операции цпюп, определенной над множеством и мульти- множеством, является мультимножество, т. е. из результата объединения таких двух коллекций дубликаты не исключаются. Результатом же операции цвоп, определенной над двумя множествами, является множество, т.

е. в этом случае возможные дубликаты должны быть исключены. Примеры инввриантов В заключение обзора языка ОСЬ приведем примеры четырех инвариантов, выраженных на этом языке. Будем основываться на диаграмме классов, показанной на рис. 10.14. Пример 10.1 Определить ограничение «возраст служащих должен быть больше 18 и меньше 100 лета.

соп ех, Служащий 1гл: зе11.возраст >18 апа зе11.возраст < 100 Условие инварианта накладывает требуемое ограничение на значения атрибута возраст, определенного в классе сдувающий. В условном выражении инварианта ключевое слово ее' 1 обозначает текущий объект кчассакоитекста инварианта. Можно считать, что при проверке данного условия будут перебираться существуюшие объекты кчасса служащий, и для каждого объекта будет проверяться, что значения атрибута возраст находятся в пределах заданного диапазона. Ограничение удовлетворяется, если условное выражение принимает значение иие для каждого объекта класса-контекста.

* Для коллекций значений возможно также применение операций мгп, мах и ачд, выдающих минимальное, максимальное и среднее значение элементов коллекции соответственно. 198 Лекция 10 Диаграммы классов языка Г)МС Рис. 10.14. Диаграмма классов, используемая для примеров на языке ОС1. Пример 10.2 Выразить на языке ОС1. ограничение, в соответствии с которым в отделах с номерами больше 5 должны работать служащие старше 30 лет.

сопсехг. Отдел 1щг: яе11.номер < 5 ог яе11.служащий яе1есс )возраст < 30) ягяе () = 0 В этом случае условное выражение инварианта будет вычисляться для каждого объекта класса Отдел. Подвыражение справа от операции аг вычисляется слева направо. Сначала вычисляется подвыражение яе1 г. служащий, значением которого является множество объектов, соответствующих служащим, которые работают в текущем отделе. Далее к этому множеству применяется операция яе1есг )возраст 30), в результате которой вырабатывается множество объектов, соответствующих служащим текущего отдела, возраст которых не превышает 30 лет. Значением операции яьяе ) ) является число объектов в этом множестве. Все выражение принимает значение ггце, если последняя операция сравнения «=О» вырабатывает значение гжяе, т. е, если в текущем отделе нет служащих младше 31 года.

Ограничение в целом удовлетворяется только в том случае, если значением условия инварианта является 1гце для каждого отдела. Тот же инвариант можно сформулировать в контексте класса Служащий: сопсехс Служащий 1пч: яе1г.возраст > 30 ог яе11.отдел. номер к 5 199 Основы Оая данных Курс Здесь следует обратить внимание на подвыражение яе1г .

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

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

Список файлов книги

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