Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 2 БД.doc
Скачиваний:
15
Добавлен:
22.11.2019
Размер:
540.67 Кб
Скачать
  1. Моделирование концептуальных и физических объектов

3.1. Основные понятия

Хотя составные объекты и отношения высокого порядка являются очень полезными средствами решения широкого круга проблем моделирования данных, есть некоторые проблемы, достаточно сложные аспекты, которых вполне можно решить базовыми методами.

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

В предыдущем пункте мы упомянули несколько примеров концепту­альных объектных множеств. Например, ТИП МАТЕРИАЛА и ТИП БРИГАДЫ строительной компании Премьер были примерами концептуаль­ных объектных множеств, поскольку их элементы соответствовали типам предметов, а не конкретным физическим представителям этих типов. Типом материала будет словосочетание «доска 2х4х10 дюймов», а не конкретная такая доска. Типом бригады будет слово «кровельщики» или «электрики», тогда как конкретная бригада будет «кровельщики здания на Мэйн стрит, 320».

Концептуальное объектное множество. Объектное множество, элементами которого являются абстрактные понятия.

Физическое объектное множество. Объектное множество, элементами кото­рого являются физические предметы.

Часто важно различать концептуальные объектные множества и физиче­ские объектные множества, которые им соответствуют, поскольку в одной и той же модели данных может оказаться необходимым представлять оба типа объектов. Мы проиллюстрируем это следующим примером.

3.2. Библиотечная проблема

Студент звонит в библиотеку и спрашивает:

СТУДЕНТ: У вас есть «Записки Пиквикского клуба» Диккенса? БИБЛИОТЕКАРЬ (вводит запрос в компьютерный каталог): Нет.

С: А «Холодный дом»?

Б (вводит второй запрос): Нет.

С: А сколько всего у вас книг Диккенса?

Б (вводит третий запрос): Двенадцать.

С: Действительно? А какие?

Б: У нас есть «Повесть о двух городах», копия 1, «Повесть о двух городах», копия 2, «Повесть о двух городах», копия 3, и так далее до копии номер 12.

С: Но это же одна и та же книга! У вас не двенадцать книг Диккенса, а только одна.

Б: Нет, не одна и та же. Одна из них - издательства Signet Classic, другая - перевод на немецкий, третья - на французский, четвертая - сокращенный вариант и так далее.

С: Да, но на самом деле это одна и та же книга. Независимо от того, как она издана, это все равно «Повесть о двух городах». На самом деле у вас только одна книга Диккенса.

Этот диалог, взятый из работы Кента (Kent, 1978), никогда не мог со­стояться, поскольку ни один библиотекарь не станет так отвечать. Однако он служит нам для того чтобы указать на серьезную проблему естественного языка, которым люди пользуются при обычном общении. Что в этом при­мере подразумевается под книгой? Без долгих раздумий и вне контекста на­шего диалога мы могли бы сказать, что «книга - это книга», и в таком ис­пользовании слова не было бы двусмысленности. Однако студент и библио­текарь подразумевают под книгой разные вещи.

Один смысл слова «книга» (в котором его употребляет студент) - нечто концептуальное, имеющее множество разных физических версий. Таким образом, для студента «Повесть о двух городах» - это в самом деле одна и та же книга, незави­симо от инвентарного номера, независимо от того, на английском она или на французском языке, полное это издание или сокращенное.

Библиотекарь же употребляет слово «книга» (по крайней мере, сначала) в другом смысле: книга - это нечто физическое, что мы можем подержать в руках, пролис­тать и положить на полку. Библиотеке необходимо вести учет всех физиче­ских книг, которые в ней есть, независимо от того, первая это копия данной концептуальной книги или двенадцатая.

Иногда мы будем различать эти два смысла, называя физические книги копиями или томами. Таким образом, мы можем спросить: «Сколько томов содержит библиотека?» Но как аналитики, опрашивающие пользователей, мы должны понимать, что люди часто не соблюдают такие соглашения. Они просто говорят «книга», иногда имея в виду «концептуальную книгу», а иногда — «физическую книгу». При проектировании базы данных мы должны иметь возможность различать эти значения. В некоторых случаях пользователи будут ссылаться на концептуальный объект, который явля­ется абстрактной или обобщенной версией объекта. В других случаях поль­зователи будут ссылаться на физический объект, или конкретный элемент концептуального объекта. Если мы хотим, чтобы наша база данных удовлетворяла потребностям всех пользователей, то мы должны зафиксировать раз­личие между концептуальными и физическими объектами.

Нам также может потребоваться зафиксировать и другие тонкие разли­чия. В споре между студентом и библиотекарем библиотекарь в конце кон­цов признал, что между физической и концептуальной книгой есть разница, однако он считает, что книги концептуально различны, если они вышли в разных изданиях. Так, для него «Повесть о двух городах» издательства Signet Classic и ее сокращенное издание — разные концептуальные книги. При этом студент настаивает на том, что издание не имеет значения и в концептуальном плане книга остается той же самой независимо от издания.

Разумеется, обе точки зрения обоснованы. Поскольку мы создаем базу данных, нам не нужно выяснять, кто из спорщиков «прав». Нам лишь нужно решить, на какие вопросы пользователи будут требовать ответов от системы. После того как мы выяснили, какая информация нужна, мы мо­жем решать, как моделировать данные. В идеальном варианте мы хотели бы удовлетворить сторонников всех точек зрения, включая и студента, и биб­лиотекаря.