игра брюс 2048
Главная / Базы данных / Введение в реляционные базы данных / Тест 10

Введение в реляционные базы данных - тест 10

Упражнение 1:
Номер 1
Какая из приведенных ниже диаграмм классов правильно моделирует следующую ситуацию: имеется ряд гостиниц, в каждой из которых от 10 до 1000 комнат; зная гостиницу, можно получить данные обо всех ее комнатах, но не наоборот.

Ответ:

 (1) files 

 (2) files 

 (3) files 


Номер 2
Какая из приведенных ниже диаграмм классов со связями обобщения демонстрирует множественное наследование класса ЗлыеРазбойники от базового класса Люди через некоторые промежуточные классы?

Ответ:

 (1) files 

 (2) files 

 (3) files 


Номер 3

Пусть имеется следующая диаграмма классов:

files

Эта диаграмма почти совпадает с диаграммой классов на рисунке, но на ней появился новый класс ПРОЕКТ: каждый служащий теперь может участвовать в проектах (до трех проектов), и в каждом проекте участвует, по крайней мере, один служащий. При наличии представленной диаграммы требуется сформулировать на языке ограничение: ни в одном проекте не должны работать служащие из отделов, образованных после начала проекта. Какие из приведенных формулировок правильны?


Ответ:

 (1) context ПРОЕКТ inv: self.служащий →​ COLLECT (отдел) →​ SELECT (годОснования > self.годОснования) →​ size () = 0  

 (2) context СЛУЖАЩИЙ inv: self.проект →​ SELECT (годОснования < self.отдел.годОснования) →​ size () = 0  

 (3) context ОТДЕЛ inv: self.служащий →​ COLLECT (проект) →​ SELECT (годОснования < self.годОснования) →​ size () = 0  


Упражнение 2:
Номер 1
Какая из приведенных ниже диаграмм классов со связями обобщения демонстрирует множественное наследование класса МоторныеЛодки от базового класса ПлавательныеСредства через некоторые промежуточные классы? 

Ответ:

 (1) files 

 (2) files 

 (3) files 


Номер 2
Какая из приведенных ниже диаграмм классов правильно моделирует следующую ситуацию: имеется несколько военных кораблей, на каждом из которых служит не менее 50 человек; среди моряков каждого корабля имеется пять мичманов и один капитан.

Ответ:

 (1) files 

 (2) files 

 (3) files 


Номер 3

Пусть имеется следующая диаграмма классов:

files

Имеется несколько военных кораблей, на каждом из которых служат матросы, пять мичманов и капитан. При наличии представленной диаграммы требуется сформулировать на языке OCL ограничение: каждый мичман является мичманом на том корабле, на котором он служит моряком. Какие из приведенных формулировок правильны?


Ответ:

 (1) context МОРЯК inv: self.корабль.мичман →​ SELECT (корабль.номер ≠ self.номер) →​ size () = 0  

 (2) context КОРАБЛЬ inv: self.мичман →​ SELECT (корабльМичманов.номер ≠ корабль.номер) →​ size () = 0  

 (3) context МОРЯК inv: self.корабльМичманов.номер = self.корабль.номер  


Упражнение 3:
Номер 1
Какая из приведенных ниже диаграмм классов правильно моделирует следующую ситуацию: имеется несколько библиотек, в каждой из которых имеется от 2000 до 20000 книг. У библиотеки может быть до 100 зарегистрированных читателей, каждый из которых может взять из библиотеки от 2 до 5 книг. Один из читателей библиотеки является ее заведующим.

Ответ:

 (1) files 

 (2) files 

 (3) files 


Номер 2

Пусть имеется следующая диаграмма классов:

files

Имеется несколько библиотек, у которых есть зарегистрированные читатели. При наличии представленной диаграммы требуется сформулировать на языке ограничение: у каждого читателя на руках книги только из той библиотеки, в которой он зарегистрирован. Какие из приведенных формулировок правильны?


Ответ:

 (1) context ЧИТАТЕЛЬ inv: self.читает →​ SELECT (self.зарегистрирован.номер ≠ вБиблиотеке.номер) →​ size () = 0  

 (2) context БИБЛИОТЕКА inv: self.читают →​ COLLECT (читает) →​ SELECT (self.номер ≠ вБиблиотеке.номер) →​ size () = 0  

 (3) context КНИГА inv: self.наРуках →​ COLLECT (зарегистрирован) →​ SELECT (номер ≠ вБиблиотеке.номер) →​ size () = 0  


Номер 3
Какая из приведенных ниже диаграмм классов со связями обобщения демонстрирует множественное наследование класса МолодыеСтроителиКоммунизма от базового класса Люди через некоторые промежуточные классы?

Ответ:

 (1) files 

 (2) files 

 (3) files 


Упражнение 4:
Номер 1

Пусть имеется следующая диаграмма классов:

files

Требуется сформулировать ограничение: среди моряков любого корабля имеется не меньше пяти матросов. Какие из приведенных формулировок правильны?


Ответ:

 (1) context КОРАБЛЬ inv: self.экипаж →​ size () ≥ 10  

 (2) context КОРАБЛЬ inv: (self.экипаж symmetricDifference (self.капитан UNION self.мичман)) →​ size () ≥ 5  

 (3) context МОРЯК inv: (self.корабль.экипаж symmetricDifference (self.корабль.капитан UNION self.корабль.мичман)) →​ size () ≥ 5  


Номер 2

Пусть имеется следующая диаграмма классов:

files

Требуется сформулировать ограничение: у любого читателя на руках может находиться не более одной книги категории “редкая”. Какие из приведенных формулировок правильны?


Ответ:

 (1) context ЧИТАТЕЛЬ inv: self.читает →​ SELECT (категория = ‘редкая’) →​ size () ≤ 1  

 (2) context БИБЛИОТЕКА inv: ((self.книги →​ SELECT (категория = ‘редкая’) →​ size ()) - (self.читают →​ COLLECT (читает) →​ SELECT (категория = ‘редкая’) →​ size ())) ≤ self.читают →​ size ()  

 (3) context КНИГА inv: (self →​ SELECT (категория = ‘редкая’) →​ size ()) ≥ (self.наРуках →​ COLLECT (читает) →​ size ())  


Номер 3

Пусть имеется следующая диаграмма классов:

files

Требуется сформулировать ограничение: ни один из участников какого-либо проекта не должен работать в отделе, число работников в котором превышает число участников данного проекта. Какие из приведенных формулировок правильны?


Ответ:

 (1) context ПРОЕКТ inv: (self.служащий →​ COLLECT (отдел) →​ COLLECT (служащий) →​ size ()) ≤ (self.служащий →​ size ())  

 (2) context СЛУЖАЩИЙ inv: (self.ПРОЕКТ →​ COLLECT (служащие) →​ size ()) ≥ (self.отдел →​ COLLECT (служащие) →​ size ())  

 (3) context ОТДЕЛ inv: (self.служащий →​ COLLECT (проект) →​ COLLECT (служащий) →​ size ()) ≥ (self.служащий →​ size ())  


Упражнение 5:
Номер 1

Пусть имеется следующая диаграмма классов:

files

Требуется сформулировать на языке OCL ограничение: на каждом корабле число матросов должно превышать капитанов и мичманов, служащих на том же корабле. Какие из приведенных формулировок правильны?


Ответ:

 (1) context КОРАБЛЬ inv: (self.мичман →​ size () + 1)*2 < self.экипаж →​ size ()  

 (2) context КОРАБЛЬ inv: self.штатноеЧислоМатросов > (self.мичман →​ size () + self.капитан →​ size ())  

 (3) context МОРЯК inv: self.корабль. штатноеЧислоМатросов > (self.мичман →​ size () + self.капитан →​ size ())  


Номер 2
 files
Пусть имеется следующая диаграмма классов:
       Требуется сформулировать на языке OCL ограничение: служащие отдела с номером 35 не должны участвовать в проекте с номером 355. Какие из приведенных формулировок правильны?

Ответ:

 (1) context СЛУЖАЩИЙ inv: self.отдел.номер ≠ 35 OR self.проект.номер ≠ 355  

 (2) context ОТДЕЛ inv: self.номер ≠ 35 OR self.служащий →​ COLLECT (проект) →​ SELECT (номер = 355) →​ size () = 0  

 (3) context СЛУЖАЩИЙ inv: self.отдел.номер ≠ 35 OR self →​ COLLECT (проект) →​ SELECT (номер = 355) →​ size () = 0  


Номер 3

Пусть имеется следующая диаграмма классов:

files

Задано следующее ограничение целостности на языке OCL:

context СЛУЖАЩИЙ inv: self →​ COLLECT (проект) →​ COLLECT (менеджер) SELECT (self.номер = номер) →​ size () = 0

Какая из следующих формулировок этого ограничения на русском языке является правильной?


Ответ:

 (1) ни один служащий не может быть менеджером проекта 

 (2) ни один служащий не может быть менеджером проекта, в котором сам участвует 

 (3) менеджеры проектов не могут участвовать в проектах 




Главная / Базы данных / Введение в реляционные базы данных / Тест 10