Рисунок 3 Пример объектного множества
Объектные множества можно разделить на лексические и абстрактные. Элементы лексического объектного множества можно отобразить соответствующими знаками, например буквами алфавита. К лексическим множествам можно отнести такие множества, как ФИО, номер студенческого билета, дата зачисления в ВУЗ и т.д.
СТУДЕНТ в данном примере – это абстрактное объектное множество, его нельзя отобразить знаком или буквами поскольку объект СТУДЕНТ не является именем или номером студенческого билета, т.к. имя и номер студенческого билета могут меняться, а студент от этого не изменится. Элементы абстрактных множеств часто представляются внутренними номерами, которые вне системы не имеют смысла. Эти внутренние номера называют идентификаторами объекта или ключами, поскольку они однозначно определяют экземпляр объектного множества.
Объектные множества могут иметь сложную внутреннюю структуру, которая учитывается при проектировании. Некоторые объектные множества могут содержаться внутри других объектных множеств.
Например. Множество СТУДЕНТ_ФВС содержится в множестве СТУДЕНТ
а б
Рисунок 4 Представление конкретизация/обобщение
Здесь СТУДЕНТ_ФВС является конкретизацией объектного множества СТУДЕНТ, а СТУДЕНТ является обобщением объектного множества СТУДЕНТ_ФВС.
Связи выступают в модели в качестве средства, с помощью которого представляются отношения между объектными множествами, имеющими место в предметной области.
Рисунок 5 Объектное отношение
Построенное объектное отношение представляет собой составное объектное множество: СЕМЕЙНАЯ_ПАРА.
Рисунок 6 Составное объектное множество
При анализе отношений между объектными множествами могут встречаться бинарные (между двумя множествами), тернарные и, в общем случае, n-арные отношения. Наиболее часто встречаются бинарные отношения.
Мощностью называется максимальное количество элементов одного объектного множества, связанных с одним элементом другого объектного множества. Мощности отношений могут быть один_к_одному, один_ко_многим, многие_ко_многим. Отношение, максимальная мощность которого как минимум в одном направлении равна одному, называется функциональным. В предыдущем примере отношение состоит в браке имеет мощность один_к_одному. Ниже приведены примеры отношений один_ко_многим и многие_ко_многим.
Рисунок 7 Отношение один_ко_многим
Рисунок 8 Отношение многие_ко_многим
Атрибут – это поименованная характеристика объектного множества, которая принимает значения из некоторого множества значений.
Можно атрибут определить по-другому: функциональное отношение объектного множества к другому объектному множеству. Значение атрибута однозначно определено для каждого элемента объекта. Например, для описания свойств объектного множества КНИГА можно использовать атрибуты: НАЗВАНИЕ, ФАМИЛИЯ_АВТОРА, ЦЕНА, ГОД_ИЗДАНИЯ. Атрибуты могут изменяться, в то время как сам объект остается тем же.
В приведенном выше примере атрибут ЦЕНА может со временем измениться. Может быть пустое значение атрибута, т.е. атрибут не определен. Например, объект КНИГА может не иметь значение атрибута ФАМИЛИЯ_АВТОРА.
Атрибуты, значение которых не меняется, можно использовать в качестве ключей.
Если объект является конкретизацией другого объекта, то он наследует все атрибуты и отношения обобщенного объекта. Необходимо заметить, что конкретизированный объект может иметь свои дополнительные атрибуты.
Конкретный человек Иванов Иван Степанович относится к множеству ЖЕНАТЫЙ ЧЕЛОВЕК, которое является подмножеством объектного множества ЧЕЛОВЕК. Иванов Иван Степанович наследует атрибуты: ИНН, ИМЯ, АДРЕС и отношение РАБОТАЕТ_В. Обладает собственным атрибутом СУПРУГ.
Рисунок 9 Наследование отношений и атрибутов
Рассмотрим пример - модель проектной организации.
Проектная организация разрабатывает некие проекты, для которых необходимы определенные детали. Проектная организация связана с рядом поставщиков деталей. В организации несколько отделов. На основании этих данных можно построить следующую модель (рисунок 10).
Рассмотрим объекты ПОСТАВЩИК, ПРОЕКТ, ДЕТАЛЬ. При построении бинарных отношений ПОСТАВЩИК_ПРОЕКТ (П-П), ПРОЕКТ_ДЕТАЛЬ (Д - П), ПОСТАВЩИК_ДЕТАЛЬ (П-Д) можно ответить на вопросы: какие детали нужны для проекта А1; поставляет ли поставщик АВ детали для проекта А1; поставляет ли поставщик АВ деталь АС. Но если нужно ответить на вопрос: поставляет ли поставщик АВ деталь АС для проекта А1, то исходя из построенной модели на этот вопрос ответить сложно.
Рисунок 10 Модель предметной области для проектной организации с бинарными связями
Рисунок 11 Модель с другими типами связей
В этом случае добавляют тернарную связь ПОСТАВЩИК-ДЕТАЛЬ-ПРОЕКТ (П-Д-П).
Над проектом работают много служащих, но из всей массы служащих нет возможности выделить руководителя проекта. В таких случаях можно добавить дополнительную связь РУКОВОДИТЕЛЬ-ПРОЕКТ (П-РП). Может возникнуть необходимость в получении информации о том, из каких частей состоит полученная деталь. Для получения такой информации следует построить отношение ДЕТАЛЬ-ДЕТАЛЬ (Д-Д). В результате преобразований получим модель, приведенную на рисунке 11.
Рассмотрим более сложные отношения.
Допустим, что необходимо отследить продажу разных видов товаров по фирмам. Для этого построим отношение ТОВАР-ФИРМА, с атрибутом – КОЛИЧЕСТВО (рисунок 12). Возникает вопрос: как отследить количество проданного товара? Если КОЛИЧЕСТВО припишем в качестве атрибута ко множеству ТОВАР, в этом случае невозможно отследить, в какую фирму и сколько продано товара (рисунок 12 а). Если атрибут КОЛИЧЕСТВО припишем фирме, то неизвестно, какой товар продан фирме (рисунок 12 б). Можно заметить, что атрибут КОЛИЧЕСТВО зависит как от товара, так и от фирмы, в которую продан товар. Поэтому КОЛИЧЕСТВО является атрибутом отношения ТОВАР-ФИРМА (рисунок 12 в).
а)
б)
в)
Рисунок 12 Модели отслеживания продаж
В дополнения к вышесказанному рассмотрим пример: модель формирования заказа на товар (рисунок 13). Поставщику сделан заказ на поставку товара.
В приведенной модели ЦЕНА, ОПИСАНИЕ, ИНВЕНТАРНЫЙ НОМЕР относятся к объектному множеству ТОВАР.
НОМЕР, НАЛОГ, ИТОГО, ДАТА относятся к объектному множеству ЗАКАЗ. КОЛИЧЕСТВО и СУММА являются атрибутами составного объекта, поскольку зависят и от объекта ТОВАР и от объекта ЗАКАЗ. При этом следует обратить внимание на то, что СУММА – это вычисляемый атрибут.
Рисунок 13 Модель формы заказа
Концептуальная модель данных создается на основании анализа вопросов, на которые пользователи хотят получить ответы. При проектировании большой базы данных необходимо работать с разными группами пользователей и создавать несколько моделей данных, несколько локальных представлений, которые затем нужно объединить.
Для каждой локальной области необходимо сформулировать сущности, требуемые для ее описания. Сделать это достаточно трудно. Например, выделим две сущности: ДЕТАЛЬ, ИЗДЕЛИЕ и связь – ВХОДИТ В СОСТАВ :
В этом случае, достаточно просто проследить, в какие еще изделия входит деталь. Если эта информация не нужна, то ДЕТАЛЬ можно рассматривать как атрибут сущности ИЗДЕЛИЕ. С какой точки зрения рассматривать предметную область, зависит от того, что конечный пользователь хочет получить на свои запросы к БД.