- •Построение модели данных для составных объектов
- •2.2. Концептуальная модель строительной компании Премьер
- •2.3. Концептуальная модель Консультационной Службы Мэнуоринг
- •Моделирование концептуальных и физических объектов
- •3.1. Основные понятия
- •3.2. Библиотечная проблема
- •3.3 Проектирование модели данных для библиотеки
- •3.4. Концептуальные объекты для Консультационной Службы Мэнуоринг
- •4. Объединение представлений данных
- •5. Задание для самостоятельной работы
- •3. Воспользуйтесь концептуальными и физическими объектными множествами при создании моделей данных для следующих задач:
Моделирование концептуальных и физических объектов
3.1. Основные понятия
Хотя составные объекты и отношения высокого порядка являются очень полезными средствами решения широкого круга проблем моделирования данных, есть некоторые проблемы, достаточно сложные аспекты, которых вполне можно решить базовыми методами.
В этом пункте мы рассмотрим проблемы, которые возникают из-за двусмысленности нашего повседневного языка. Вы увидите, что как только мы поймем и разделим понятия, вовлеченные в такие двусмысленности, мы сможем решить проблемы моделирования данных, просто определив подходящие объектные множества. В этом случае мы сможем использовать составные объекты и другие методы для внесения дополнительных конструкций в модели данных.
В предыдущем пункте мы упомянули несколько примеров концептуальных объектных множеств. Например, ТИП МАТЕРИАЛА и ТИП БРИГАДЫ строительной компании Премьер были примерами концептуальных объектных множеств, поскольку их элементы соответствовали типам предметов, а не конкретным физическим представителям этих типов. Типом материала будет словосочетание «доска 2х4х10 дюймов», а не конкретная такая доска. Типом бригады будет слово «кровельщики» или «электрики», тогда как конкретная бригада будет «кровельщики здания на Мэйн стрит, 320».
Концептуальное объектное множество. Объектное множество, элементами которого являются абстрактные понятия.
Физическое объектное множество. Объектное множество, элементами которого являются физические предметы.
Часто важно различать концептуальные объектные множества и физические объектные множества, которые им соответствуют, поскольку в одной и той же модели данных может оказаться необходимым представлять оба типа объектов. Мы проиллюстрируем это следующим примером.
3.2. Библиотечная проблема
Студент звонит в библиотеку и спрашивает:
СТУДЕНТ: У вас есть «Записки Пиквикского клуба» Диккенса? БИБЛИОТЕКАРЬ (вводит запрос в компьютерный каталог): Нет.
С: А «Холодный дом»?
Б (вводит второй запрос): Нет.
С: А сколько всего у вас книг Диккенса?
Б (вводит третий запрос): Двенадцать.
С: Действительно? А какие?
Б: У нас есть «Повесть о двух городах», копия 1, «Повесть о двух городах», копия 2, «Повесть о двух городах», копия 3, и так далее до копии номер 12.
С: Но это же одна и та же книга! У вас не двенадцать книг Диккенса, а только одна.
Б: Нет, не одна и та же. Одна из них - издательства Signet Classic, другая - перевод на немецкий, третья - на французский, четвертая - сокращенный вариант и так далее.
С: Да, но на самом деле это одна и та же книга. Независимо от того, как она издана, это все равно «Повесть о двух городах». На самом деле у вас только одна книга Диккенса.
Этот диалог, взятый из работы Кента (Kent, 1978), никогда не мог состояться, поскольку ни один библиотекарь не станет так отвечать. Однако он служит нам для того чтобы указать на серьезную проблему естественного языка, которым люди пользуются при обычном общении. Что в этом примере подразумевается под книгой? Без долгих раздумий и вне контекста нашего диалога мы могли бы сказать, что «книга - это книга», и в таком использовании слова не было бы двусмысленности. Однако студент и библиотекарь подразумевают под книгой разные вещи.
Один смысл слова «книга» (в котором его употребляет студент) - нечто концептуальное, имеющее множество разных физических версий. Таким образом, для студента «Повесть о двух городах» - это в самом деле одна и та же книга, независимо от инвентарного номера, независимо от того, на английском она или на французском языке, полное это издание или сокращенное.
Библиотекарь же употребляет слово «книга» (по крайней мере, сначала) в другом смысле: книга - это нечто физическое, что мы можем подержать в руках, пролистать и положить на полку. Библиотеке необходимо вести учет всех физических книг, которые в ней есть, независимо от того, первая это копия данной концептуальной книги или двенадцатая.
Иногда мы будем различать эти два смысла, называя физические книги копиями или томами. Таким образом, мы можем спросить: «Сколько томов содержит библиотека?» Но как аналитики, опрашивающие пользователей, мы должны понимать, что люди часто не соблюдают такие соглашения. Они просто говорят «книга», иногда имея в виду «концептуальную книгу», а иногда — «физическую книгу». При проектировании базы данных мы должны иметь возможность различать эти значения. В некоторых случаях пользователи будут ссылаться на концептуальный объект, который является абстрактной или обобщенной версией объекта. В других случаях пользователи будут ссылаться на физический объект, или конкретный элемент концептуального объекта. Если мы хотим, чтобы наша база данных удовлетворяла потребностям всех пользователей, то мы должны зафиксировать различие между концептуальными и физическими объектами.
Нам также может потребоваться зафиксировать и другие тонкие различия. В споре между студентом и библиотекарем библиотекарь в конце концов признал, что между физической и концептуальной книгой есть разница, однако он считает, что книги концептуально различны, если они вышли в разных изданиях. Так, для него «Повесть о двух городах» издательства Signet Classic и ее сокращенное издание — разные концептуальные книги. При этом студент настаивает на том, что издание не имеет значения и в концептуальном плане книга остается той же самой независимо от издания.
Разумеется, обе точки зрения обоснованы. Поскольку мы создаем базу данных, нам не нужно выяснять, кто из спорщиков «прав». Нам лишь нужно решить, на какие вопросы пользователи будут требовать ответов от системы. После того как мы выяснили, какая информация нужна, мы можем решать, как моделировать данные. В идеальном варианте мы хотели бы удовлетворить сторонников всех точек зрения, включая и студента, и библиотекаря.