Главная » SQL, Базы данных » Семантическое моделирование

0

стало предметом интенсивных исследований с   конца   1970-х   годов.   Основным   побудительным    мотивом   подобных исследований (т.е. проблемой, которую пытались разрешить исследователи) был следующий факт. Дело в том, что системы баз данных обычно обладают весьма ограниченными сведениями о  смысле  хранящихся в них данных. Чаще всего они позволяют лишь манипулировать данными определенных простых типов и определяют некоторые простейшие ограничения целостности, наложенные на эти данные. Любая более сложная интерпретация возлагается на пользователя. Однако было бы замечательно, если бы системы могли обладать немного более широким объемом сведений1 и несколько интеллектуальнее отвечать на запросы пользователя, а также поддерживать более сложные (т.е. более высокоуровневые) интерфейсы пользователя. Например, было бы замечательно, если бы система могла определять, что

1     Следует   отметить,   что   с   нашей   точки   зрения   система   с   поддержкой   предикатов (обсуждавшихся в главе 9) должна была бы "понимать немного больше".  Иначе говоря, можно было бы возразить, что описанная поддержка предикатов может восприниматься как удобное и эффективное  основание  для  семантического  моделирования.  Однако,  как  это  ни  печально, большинство схем семантического  моделирования не  имеет никакого строгого обоснования, поскольку все они в той или  иной степени являются произвольными (предложения в [14.22]— [14.24] остаются  редкими  исключениями). Возможно, такое состояние дел в будущем изменится, особенно  благодаря растущему пониманию в мире коммерции важности бизнес-правил [9.21], [9.22].  Описанные в  главе  9  внешние  предикаты по  сути  как  раз  и  являются такими  "бизнесправилами" [14.14].

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

Безусловно, к приведенному примеру прямое отношение имеет понятие типов (или доменов). Это служит прекрасной иллюстрацией того факта, что существующие модели данных все же не лишены семантических аспектов. В частности, домены, потенциальные и внешние ключи являются примерами семантических аспектов существующей реляционной модели, что непосредственно следует из ее определения. В качестве другого способа реализации семантики были разработаны различные "расширенные" модели данных, которые, тем не менее, несут лишь ненамного большую смысловую нагрузку, чем модели, предложенные ранее. Перефразировав Кодда [14.7], можно сказать, что задача представления смысла данных не имеет окончательного  решения и можно ожидать непрекращающегося прогресса в этом направлении  по мере углубления нашего понимания существующих проблем (или надеяться на это!). Термин семантическая модель, который часто используется по отношению к той или иной "расширенной" модели, в данном случае не совсем подходит, поскольку предполагает, что модель построена таким образом, чтобы выявить всю  семантику рассматриваемой ситуации. С другой стороны, понятие семантическое моделирование действительно является довольно удачным названием целой области исследований, посвященных способам представления смыслового значения. В данной главе сначала представлено краткое введение в некоторые основные идеи этой области исследований, а затем подробно описан один из конкретных подходов, основанный на использовании модели "сущность—связь" (наиболее распространенный на практике).

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

■     Термин моделирование данных не подходит, поскольку он конфликтует со сложившимся ранее определением термина модель данных, который обозначает формальную систему наподобие реляционной модели. К тому  же термин моделирование данных способствует укреплению широко распространенного заблуждения, что модель данных (в приведенном выше  смысле) охватывает только структуру данных. Примечание. Стоит напомнить (см. раздел 1.3 главы 1), что термин модель данных используется в литературе с двумя совершенно разными значениями: первое относится к  модели данных вообще (реляционная модель является моделью данных именно в этом смысле), а второе — к модели представления перманентных данных некоторого конкретного предприятия. Здесь рассматриваемый термин в последнем смысле не используется, но следует иметь в виду, что он часто применяется в таком смысле другими авторами.

■       Также  неудачным  является  термин  ER-моделирование,  поскольку  в  нем  неявно подразумевается существование только одного подхода к данной проблеме, тогда как на практике, безусловно, существует много различных подходов. Тем не менее, термин ER-моделирование хорошо известен, весьма популярен и принят в широком кругу специалистов.

■    Относительно термина моделирование сущностей нет никаких значительных воз ражений за исключением того, что он кажется более узко специализированным по сравнению с термином семантическое моделирование и носит определенный смы словой акцент, который не совсем подходит в данном случае.

■    Что касается термина объектное моделирование, то проблема здесь заключается в том, что термин объект в данном контексте, очевидно, является синонимом тер мина сущность, тогда как он используется в совершенно другом смысле и другом контексте (в частности, в контексте баз данных других типов, рассматриваемых в главе 25 этой книги). По мнению автора, именно этот факт (наличие у данного термина двух разных значений) явился причиной такого явления, как Первое Серьезное Заблуждение (First Great Blunder). Более подробно этот вопрос рассмат ривается в главе 26.

Возвращаясь к главной теме нашего обсуждения, следует остановиться на причинах включения данного материала в эту часть книги. Идеи семантического моделирования могут быть полезны как средство проектирования базы данных даже при отсутствии их непосредственной поддержки в СУБД. Аналогично тому, как идеи исходной реляционной модели использовались в качестве примитивного вспомогательного средства при проектировании баз данных задолго до появления любых коммерческих воплощений этой модели, так и идеи некоторой  "расширенной" модели могут оказаться полезными в качестве вспомогательного средства проектирования базы данных, даже если никакого коммерческого воплощения этих идей еще не существует. Действительно, было бы справедливо отметить, что на момент написания этой книги идеи семантического моделирования оказали на проектирование баз данных большое влияние — было предложено несколько технологий проектирования, основанных на том или ином семантическом подходе. Поэтому в данной главе основной акцент будет сделан на применении идей семантического моделирования к задаче проектирования базы данных.

Материал этой главы упорядочен следующим образом. После данного  введения, в разделе 14.2, описываются основные термины, используемые в семантическом моделировании. Затем, в разделе 14.3, обсуждается наиболее известная из расширенных моделей — предложенная Ченом (Chen) модель  "сущность-связь" (или ER-модель; entity/ relationship model — ER-model). Далее, в разделах 14.4 и 14.5, рассматривается применение этой модели для проектирования базы данных. (Другие модели кратко описаны в аннотациях к некоторым публикациям, упомянутым в списке рекомендуемой литературы.)  После этого, в разделе 14.6, предлагается краткий анализ некоторых аспектов ER-модели, и наконец, в разделе 14.7, приводится краткое резюме.

Источник: Дейт К. Дж., Введение в системы баз данных, 8-е издание.: Пер. с англ. — М.: Издательский дом «Вильямс», 2005. — 1328 с.: ил. — Парал. тит. англ.

По теме:

  • Комментарии