Читайте также: |
|
Как вы можете видеть, есть множество различных способов моделирования конкретной ситуации в деловом мире, и это множество становится все обширнее по мере того, как моделируемая ситуация усложняется. Зачастую количество возможных моделей оказывается огромным, и выбрать среди них одну может быть нелегко.
Иногда при выявлении альтернатив команда, занимающаяся проектом, углубляется в дискуссии по поводу того, какая модель данных наилучшим образом представляет реальный мир. Эти дискуссии исходят из ложных посылок. Базы данных не моделируют реальный мир, хотя распространено ошибочное мнение, согласно которому именно в этом и состоит их назначение. Базы данных являются моделями пользовательских моделей мира (или, точнее, делового мира). Вопрос, задаваемый при выявлении альтернативных моделей данных, состоит не в том, насколько точно данная модель отражает реальный мир, а в том, насколько точно она отражает имеющуюся в воображении пользователя модель среды, которая его окружает. Цель заключается в том, чтобы разработать структуру, которая будет соответствовать представлениям пользователей.
Иммануил Кант и другие философы могли бы возразить, что людям не дано построить модель того, что существует на самом деле, и заявили бы, что суть вещей навсегда останется тайной для человечества[5]. Распространяя эту аргументацию на компьютерные системы, Виноград (Winograd) и Флоре (Flores) высказали идею, что в обществах индивидуумы конструируют системы символов, которые позволяют им успешно действовать в мире. Последовательность символов не является моделью бесконечности реального мира, а скорее представляет собой просто социальную систему, позволяющую пользователям успешно координировать свои действия; ничего более по этому поводу сказать нельзя (Terry Winograd and F Flores, Understanding Computers and Cognition (Reading, MA: Addison-Wesley, 1986).
Таким образом, компьютерные системы должны моделировать и представлять взаимоотношения между своими пользователями. Они не моделируют ничего, кроме системы символов и связей. Поэтому научитесь задавать себе следующие вопросы: «Насколько точно данная модель отражает восприятие пользователей и имеющуюся в их воображении модель мира? Поможет ли эта модель пользователям согласованно и успешно взаимодействовать друг с другом и с клиентами?» Для аналитика бессмысленно заявлять, что его модель является лучшим представлением реальности. Суть в том, чтобы разработать модель, которая адекватно отражает модель деловой среды в представлении пользователя.
Резюме
Модель «сущность—связь» была разработана Питером Ченом. В этой модели определяются сущности — идентифицируемые объекты, представляющие важность для пользователя. Все сущности данного типа образуют класс сущностей. Отдельная сущность называется экземпляром. Сущности имеют атрибуты, которые описывают их характеристики; один или несколько атрибутов определяют сущность.
Связи отражают взаимоотношения между сущностями. В ER-модели связи определяются явным образом; у каждой связи есть имя; существуют также классы связей и экземпляры связей. У связей могут быть атрибуты.
Степень связи — это число сущностей, которые в ней участвуют. Большинство связей являются бинарными. Имеется три типа бинарных связей: 1:1, 1:N и N:M.
На диаграммах «сущность—связь» сущности изображаются прямоугольниками, а связи — ромбами. Максимальное кардинальное число связи указывается внутри ромба. Минимальное кардинальное число указывается с помощью перпендикулярной черты или овала. Связи, соединяющие сущности одного класса, называются рекурсивными. Атрибуты могут быть показаны на ER-диаграмме в эллипсах или в отдельной таблице.
Слабая сущность — это сущность, существование которой зависит от другой сущности; сущность, не являющаяся слабой, называется сильной сущностью. Слабые сущности изображаются с помощью прямоугольников со скругленными углами. Далее в этой книге мы определяем слабую сущность как сущность, логически зависящую от другой сущности. Сущность может иметь минимальное кардинальное число 1 в связи с другой сущностью, но при этом не быть слабой. Многозначные атрибуты представляются с помощью слабых сущностей.
Некоторые сущности имеют подтипы, которые определяют подмножества подобных сущностей. Подтипы наследуют атрибуты от своего родителя, или надти-па. Связи типа «ИМЕЕТ» соединяют сущности разных типов, и идентификаторы у этих сущностей различны. Связи типа «ЕСТЬ» — это связи подтипов с их родителями, и идентификаторы у сущностей, участвующих в такой связи, одинаковы.
Разработав модель данных, необходимо определить деловой регламент, который будет накладывать ограничения на возможные действия с сущностями. Каждая сущность в модели должна быть проанализирована на предмет возможного добавления, изменения и удаления данных. Удаления, в частности, зачастую являются источником важных ограничений на обработку. Сформулированные правила делового регламента необходимо документировать в модели данных.
Модель «сущность—связь» является важной частью многих CASE-продук-тов. Эти продукты предоставляют средства для конструирования и хранения ER-диаграмм. Некоторые из CASE-инструментов объединяют конструкции ER-модели с данными репозитория CASE. Унифицированный язык моделирования (UML) вводит новый стиль построения диаграмм «сущность—связь». Вам следует иметь представление о диаграммах, выполненных в этом стиле; однако нужно понимать, что при проектировании базы данных не существует фундаментальных различий между традиционным стилем и UML-стилем.
Завершив создание ER-модели, следует ее испытать. Один из способов это сделать — составить перечень вопросов, на которые можно ответить с помощью разработанной модели данных. Далее этот перечень показывается пользователям, которым предлагают подумать насчет дополнительных вопросов. Затем проверяется способность ER-модели ответить на эги дополнительные вопросы.
Базы данных моделируют не реальный мир, а модель делового мира, присутствующую в воображении пользователя. Правильным критерием для оценки модели данных является то, насколько эта модель соответствует пользовательской модели. Спор о том, какая модель наилучшим образом отражает реальный мир, не имеет смысла.
Вопросы группы I
1. Дайте определение сущности и приведите пример.
2. Поясните разницу между классом сущностей и экземпляром сущности.
3. Дайте определение атрибута и приведите примеры атрибутов для сущности, описанной вами в ответе на вопрос 1.
4. Объясните, что такое композитный атрибут, и приведите пример.
5. Какой из атрибутов, приведенных вами в ответе на вопрос 3, идентифицирует сущность?
6. Дайте определение связи и приведите пример.
7. Объясните, в чем разница между классом связей и экземпляром связи.
8. Дайте определение степени связи. Приведите пример связи со степенью больше 2, отличный от того, который дан в тексте.
9. Перечислите три типа бинарных связей и приведите примеры. Нарисуйте ER-диаграмму для каждого типа.
10. Дайте определения терминов максимальное кардинальное число и минимальное кардинальное число, максимальная кардинальность и минимальная кардинальность.
11. Назовите и нарисуйте символы, используемые в диаграммах «сущность-связь» для изображения: (а) сущности; (б) связи; (в) слабой сущности и ее связи; (г) рекурсивной связи; (д) сущности подтипа.
12. Приведите пример ER-диаграммы для сущностей ОТДЕЛ и СОТРУДНИК, имеющих связь 1:N. Сделайте допущение, что в отделе может и не быть сотрудников, но каждый сотрудник должен работать в каком-либо отделе.
13. Приведите пример рекурсивной связи и изобразите его на ER-диаграмме.
14. Приведите примеры атрибутов для сущностей ОТДЕЛ и СОТРУДНИК (из ответа на вопрос 12) и изобразите их на ER-диграмме. Используйте для этого символы UML-стиля.
15. Дайте определение термина слабая сущность и приведите пример, отличный от того, который дан в тексте.
16. Поясните, в чем состоит неоднозначность в определении термина слабая сущность. Как этот термин интерпретируется в книге? Приведите примеры, отличные от тех, которые даны в тексте.
17. Дайте определение термина идентификационно-зависимая сущность и приведите пример, отличный от того, который дан в тексте.
18. Продемонстрируйте использование слабой сущности для представления многозначного атрибута Квалификация сущности СОТРУДНИК. Укажите минимальное и максимальное кардинальное число на обеих сторонах связи. Используйте традиционные символы.
19. Продемонстрируйте использование слабой сущности для представления многозначного составного атрибута Телефон, состоящего из однозначных атрибутов КодРегиона и НомерТелефона. Пусть при этом атрибут Телефон принадлежит сущности ПРОДАВЕЦ. Укажите минимальное и максимальное кардинальное число на обеих сторонах связи. Используйте символы UML-стиля.
20. Опишите, что такое подтипы сущностей, и приведите пример, отличный от того, который дан в тексте.
21. Объясните значение термина наследование и покажите, как он относится к вашему ответу на вопрос 20.
22. Поясните разницу между связью типа «ИМЕЕТ» и связью типа «ЕСТЬ» и приведите пример для каждой связи.
23. Как документируется деловой регламент в модели «сущность—связь»?
24. Объясните, почему важно проверять модель данных после ее создания. Опишите один из способов проверки модели данных и объясните, как с помощью этого способа можно проверить модель, изображенную на рис. 3.21.
Вопросы группы II
25. Модифицируйте ER-диаграмму на рис. 3.19, включив в нее сущность ЗАНЯТИЕ. Пусть сущности ИНДИВИДУАЛЫНОЕ_ЗАНЯТИЕ и ГРУППОВОЕ_ЗАНЯТИЕ будут подтипами сущности ЗАНЯТИЕ. Измените связи, где это необходимо. Используйте традиционные символы.
26. Модифицируйте ER-диаграмму на рис. 3.19, исключив из нее сущность ИНСТРУКТОР. Измените связи, где это необходимо. Используйте символы UML-стиля.
27. Какие из моделей на рис. 3.19 и из вашего ответа на вопросы 25 и 26 вы предпочитаете? Объясните причину вашего предпочтения.
28. Модифицируйте ER-диаграмму на рис. 3.21, включив в нее подтипы оборудования. При этом допустите, что оборудование, находящееся в собственности бюро аренды Сан-Хуана, относится к сущности АРЕНДА, а прочее оборудование относится к сущности ЯХТА. Для оборудования, относящегося к яхте, смоделируйте различие между тем оборудованием, которое закреплено, и тем, которое не закреплено на яхте. Каков выигрыш от такой усложненной модели?
ЛИТЕРАТУРА ПО КУРСУ «БАЗЫ И БАНКИ ДАННЫХ»
1. Бекаревич Ю.Б., Пушкина Н.В. Самоучитель.Microsoft® Access 2002. – СПб.: БХВ-Санкт-Петербург, 2002. – 718 с.
2. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика. – М.: Издательский дом "Вильямс", 2000. – 1120 с., также 2004
3. Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ. – М.: Мир, 1991. – 280 с.
4. Кренке Д. Теория и практика построения баз данных. – СПб.: Питер, 2003, также 2005– 858 с.
5. Четвериков В.Н., Ревунков Г.Н., Самохвалов Э.Н. Базы и банки данных. - М.: Высшая школа, 1992. – 340 с.
6. Карпова Т.С. Базы данных: модели, разработка, реализация. – СПб.: Питер, 2001. – 304 с.
7. Любая литература по ACCESS, например:
Михеева В.Д., Харитонова И.А. Microsoft® Access 2000. – СПб.: БХВ-Санкт-Петербург, 1999. – 1088 с.
8. Дейт К. Введение в системы баз данных. – М.: Издательский дом "Вильямс", 2001. –1072 с.
[1] В английском языке подсистема обработки обозначается термином run-time subsystem. He следует путать его с похожим термином run-time product, который имеет несколько другое значение. Этим термином некоторые производители обозначают урезанный вариант комплектации СУБД, куда входят подсистема обработки и ядро, но не входит подсистема средств проектирования. Такой вариант позволяет лишь запускать готовое приложение. Назначение таких продуктов в том, чтобы снизить стоимость приложения для конечного пользователя. Обычно СУБД без подсистемы средств разработки стоит намного дешевле, чем полноценная СУБД, а иногда и вовсе бесплатна. Следовательно, полную версию продукта покупает только разработчик, а конечные пользователи покупают сокращенную версию.
[2] Транзакция представляет собой набор действий, выполняемых отдельным пользователем или прикладной программой с целью доступа или изменения содержимого базы данных.
[3] 1 International Standards Organization Publication ISO/IEC 9075 1992, Database Language SQL
[4] Иногда встроенные функции называют также агрегированными функциями (aggregate functions), чтобы отличать их от встроенных функций языков программирования, таких как SUBSTRING
[5] «Мы не можем, разумеется, за пределами всего возможного опыта составить определенное представление о том, какими являются веши сами по себе. И все же не в нашей власти совершенно устраниться от их исследования; ибо опыт никогда не удовлетворяет рассудок полностью, но, отвечая на вопросы, отсылает нас все дальше и дальше назад и оставляет нас неудовлетворенными относительно полного решения» (Иммануил Кант. Пролегомены к любой будущей метафизике).
Дата добавления: 2015-07-08; просмотров: 248 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Сущности | | | Марта, ср – Отправление из Орла в 22:00 от памятника Лескову. |