Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД / Uchpos / Gl_5.doc
Скачиваний:
32
Добавлен:
27.04.2015
Размер:
456.19 Кб
Скачать

Семантические модели данных

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

Прежде чем мы коротко рассмотрим особенности распространенных семантических моделей, остановимся на их возможных применениях.

Наиболее часто на практике семантическое моделирование используется на первой стадии проектирования базы данных. При этом в терминах семантической модели производится концептуальная схема базы данных, которая затем вручную преобразуется к реляционной (или какой-либо другой) схеме. Этот процесс выполняется под управлением методик, в которых достаточно четко оговорены все этапы такого преобразования.

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

Наконец, третья возможность, которая еще не вышла за пределы исследовательских и экспериментальных проектов, - это непосредственная работа с базой данных в семантической модели, т.е. СУБД, основанные на семантических моделях данных. При этом снова рассматриваются два варианта: обеспечение пользовательского интерфейса на основе семантической модели данных с автоматическим отображением конструкций в реляционную модель данных и прямая реализация СУБД, основанная на какой-либо семантической модели данных. Наиболее близко ко второму подходу находятся современные объектно-ориентированные СУБД, модели данных которых по многим параметрам близки к семантическим моделям.

Семантическая модель Entity-Relationship (Сущность-Связь)

Одной из наиболее популярных семантических моделей данных является модель "Сущность-Связь" (часто ее называют кратко ER-моделью).

На использовании разновидностей модели ER-модели основано большинство современных подходов к проектированию баз данных (главным образом, реляционных). Модель была предложена Ченом (Chen) в 1976 г. Моделирование предметной области базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов. В связи с наглядностью представления концептуальных схем баз данных ER-модели получили широкое распространение в системах CASE, поддерживающих автоматизированное проектирование реляционных баз данных.

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

Объекты

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

Группа всех подобных объектов образует набор объектов. Так, наборами объектов могут быть все люди, все автомобили, все животные, все эмоции.

Термин «подобные объекты» не является точно определенным, и можно установить бесконечное число различных свойств, которые будут определять набор объектов. Один из ключевых моментов в проектировании модели реального мира, имеющий отношение к конкретной базе данных, —это выбор наборов объектов.

Атрибуты и ключи

Объекты обладают свойствами, называемыми атрибутами, которые ассоциируют некоторое значение из домена значений данного атрибута с каждым объектом в наборе объектов. Обычно домен атрибута является множеством целых чисел, действительных чисел или строк литер, но мы не исключаем и другие типы значений. Например, можно сказать, что объекты в наборе объектов «люди» имеют такие атрибуты, как имя (строка литер), рост (действительное число) и т. д.

Выбор подходящих атрибутов для наборов объектов является вторым ключевым моментом в проектировании модели реального мира. Атрибут или множество атрибутов, значения которых уникально идентифицируют каждый объект в наборе объектов, называется ключом этого набора объектов. В принципе, каждый набор объектов имеет ключ, поскольку мы приняли гипотезу о том, что каждый объект отличим от остальных. Но если для набора объектов мы выбрали совокупность атрибутов, не содержащую ключа, то отличить один объект в наборе от другого окажется невозможным. Часто в качестве атрибута, который служит ключом, предоставляется произвольно выбранный последовательный номер. Например, в наборе объектов, включающем только граждан США, может использоваться в качестве ключа единственный атрибут —«номер социальной безопасности».

Возможны случаи, когда объекты в наборе различаются не по атрибутам, а по их связи с объектами другого типа. Наиболее важным видом «встроенных» связей (связи, определенные пользователем, будут описаны позднее) является связь “есть”. Мы говоримAесть В и записываем «AестьB», если набор объектов В является обобщением набора объектовA, или, что равносильно,Aесть специальный вид В.

Рассмотрим базу данных автомобилей с набором объектов МАРКИ, имеющим атрибуты ТИП и МОДЕЛЬ. Объектом в наборе МАРКИ является, например, «Datsun-280».Мы могли бы рассмотреть и набор объектов АВТОМОБИЛИ с атрибутом СЕРИЙНЫЙ-НОМЕР, который можно было бы считать ключом этого набора. Однако вполне вероятно, что два типа автомобилей используют одни и те же серийные номера. Чтобы сделать объекты в наборе АВТОМОБИЛИ уникальными, нам потребуется связь между наборами АВТОМОБИЛИ и МАРКИ, представляющая тот факт, что любой автомобиль имеет конкретную марку. Тогда каждый экземпляр из набора объектов АВТОМОБИЛИ будет однозначно определяться по его СЕРИЙНОМУ-НОМЕРУ и атрибуту ТИП связанного с ним объекта из набора МАРКИ.

Связи

Связь между наборами объектов представляет собой просто упорядоченный список наборов объектов. Конкретный набор объектов может появляться в этом списке более одного раза. Если имеется связь RELмежду наборами объектов Е1, Е2, ..., Ek,то предполагается, что существует множество кортежей размерности k,имя которого REL.Такое множество мы называем набором связей. Каждый кортеж (е1, е2, ...,еk) в множествеRELподразумевает, что объекты е1, е2, ...,еk, где еiпринадлежит набору Ei, находятся в связи RELдруг с другом как группа. Наиболее общим, несомненно, является случай, когда k=2, но иногда списки состоят из трех или более наборов объектов.

Допустим, мы имеем набор объектов ЛЮДИ и связь ЯВЛЯЕТСЯ- МАТЕРЬЮ, список наборов объектов которой есть ЛЮДИ, ЛЮДИ. Мы предполагаем, что набор связей ЯВЛЯЕТСЯ-МАТЕРЬЮ включает все пары (pij), такие, что человек рi является матерью человека pj.

Соседние файлы в папке Uchpos