Основы концептуального проектирования баз данных

В этом разделе рассматриваются основные приемы концептуального моделирования данных для фиксации данных и отношений между ними на основе пользовательских запросов и существующих отчетов (входных и выходных документов).

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

Объекты и отношения

Главными элементами концептуальной модели данных являются объекты и отношения. Объекты часто представляют в виде существительных, а отношения – в виде глаголов.

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

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

Объектные множества делятся на лексические и абстрактные.

Лексическое объектное множество – объектное множество, состоящее из элементов, которые можно напечатать. Например, ИМЯ, ДАТА, КОЛИЧЕСТВО.

Абстрактное объектное множество состоит из элементов, которые нельзя напечатать. Например, ЧЕЛОВЕК является абстрактным объектным множеством.

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

Например, некто Иван Сидоров является элементом объектного множества ЧЕЛОВЕК. В компьютерной реализации этого объектного множества он будет обозначаться некоторым суррогатным ключом (например, «12345678»). Его имя, номер страхового свидетельства, дата рождения, рост, вес и другая информация будет записана в виде лексических данных и связана в базе данных с суррогатным ключом, представляющим ее. Пользователи будут видеть только эти лексические данные, а система будет пользоваться суррогатным ключом во всех возможных многочисленных отношениях в базе данных.

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

Некоторые объектные множества содержатся внутри других объектных множеств. Например, МУЖЧИНА содержится внутри множества ЧЕЛОВЕК. Это означает, что каждый мужчина является также человеком. Аналогично, множество ЖЕНЩИНА содержится внутри множества ЧЕЛОВЕК. Альтернативные варианты графического изображения конкретизации/обобщения представлены на рис. 2.

 
 

Рис. 2. Альтернативные варианты представления конкретизации и обобщения.

Два объектных множества могут быть связаны между собой отношением. Рассмотрим объектные множества ЖЕНАТЫЙ МУЖЧИНА и ЗАМУЖНЯЯ ЖЕНЩИНА. Между этими множествами можно определить отношение СОСТОИТ-В-БРАКЕ-С, сопоставив каждому женатому мужчине его жену (или наоборот, каждой женщине – ее мужа). Отношение СОСТОИТ-В-БРАКЕ-С составлено из множества женатых пар, в каждой из которых мужчина – из объектного множества ЖЕНАТЫЙ МУЖЧИНА, а женщина – из объектного множества ЗАМУЖНЯЯ ЖЕНЩИНА. Графически представляем отношение между двумя объектными множествами в виде соединяющего их отрезка, дополненного ромбом (рис. 3).

 
 

Рис. 3. Пример отношения СОСТОИТ-В-БРАКЕ-С.

Отношение само по себе является объектным множеством, состоящим из пар объектов-элементов, взятых из двух множеств, которые соединяет отношение. Другими словами, каждый элемент отношения – это пара элементов из двух объектных множеств.

Отношение, рассматриваемое как объектное множество, называется составным объектным множеством.

Составным объектным множествам можно давать имена и включать их в отношения, как и обычные объектные множества. На рис. 4 составное множество отношения СОСТОИТ-В-БРАКЕ-С называется СЕМЕЙНАЯ-ПАРА и участвует в нескольких отношениях. Отношение ПРОЖИВАЮТ связывает пару с их адресом, а отношение ЗАРАБАТЫВАЮТ связывает их с общим совокупным доходом.

Мощность отношения – максимальное количество элементов одного объектного множества, связанных с одним элементом другого объектного множества.

Некоторые отношения не имеют конкретного значения максимальной мощности. В этом случае мощность отношения будем обозначать звездочкой. Примеры отношений различной мощности приведены на рис. 5.

Отношение, максимальная мощность которого в обоих направлениях равна одному, называется отношением один-к-одному.

Отношение, максимальная мощность которого равна одному в одном направлении и многим в обратном, называется отношением один-ко-многим.

Отношение, максимальная мощность которого равна многим в обоих направлениях, называется отношением много-ко-многим.


Рис. 4. Составное объектное множество СЕМЕЙНАЯ-ПАРА.


Рис. 5. Примеры отношений один-к-одному, один-ко-многим и много-ко-многим.

Атрибуты

Элементы объектных множеств обладают некоторыми атрибутами, позволяющими их различать. Например, у человека есть имя, дата рождения, вес, рост. Фактически, атрибут объекта – функциональное отношение объектного множества этого объекта к другому объектному множеству. Один из перечисленных выше атрибутов показан на рис. 6 как отношение. Однако часто удобно представлять атрибуты более простым образом (рис. 7).


Рис. 6. Атрибут, показанный как отношение.

 
 

Рис. 7. Упрощенное представление атрибутов.

При нормальном использовании атрибуты являются функциональными отношениями в направлении от объекта к атрибуту. То есть, значение атрибута однозначно определено для каждого элемента объекта. Например, у каждого человека есть только одна дата рождения и одно имя. Максимальная мощность отношения со стороны атрибута в таком отношении всегда равна одному, поэтому в диаграммах ее можно опускать. Если для некоторого элемента объектного множества значение атрибута не определено, то говорят, что этот атрибут имеет пустое значение.

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

Ключи

Ключ – это значение, которое однозначно определяет элемент объектного множества. Выше рассматривались суррогатные ключи, необходимые для идентификации элементов абстрактных (нелексических) объектных множеств. Однако, поскольку суррогатные ключи не могут быть использованы вне системы, пользователям базы данных требуются другие средства идентификации элементов множеств. Для этого используются внешние ключи.

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

Например, номер страхового свидетельства может служить ключом для объекта ЧЕЛОВЕК, если допустить, что каждый номер страхового свидетельства соответствует ровно одному человеку.

Иногда для создания ключа требуется более одного атрибута. Например, для объекта ЧЕЛОВЕК часто достаточно указать его полное имя, дату и место рождения. Если это так, то ключом будет комбинация этих трех атрибутов. Иначе придется привлекать другие атрибуты.

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

Наследование

Если объект является конкретизацией другого объекта, то конкретизированный объект наследует все атрибуты и отношения обобщенного объекта. ЖЕНАТЫЙ ЧЕЛОВЕК является конкретизацией объекта ЧЕЛОВЕК. Поэтому у состоящего в браке человека есть имя, адрес и т.д. просто потому, что он является человеком. Объект ЖЕНАТЫЙ ЧЕЛОВЕК наследует эти атрибуты от объекта ЧЕЛОВЕК. Кроме того, у конкретизированного человека могут быть свои собственные атрибуты. Например, СУПРУГ будет атрибутом объекта ЖЕНАТЫЙ ЧЕЛОВЕК, но не объекта ЧЕЛОВЕК. Этот пример иллюстрируется рисунком 8.

Конкретизированные объекты наследуют не только атрибуты, но и все отношения.

Рассмотрим пример модели данных банка. Объектами для банка являются СБЕРЕГАТЕЛЬНЫЙ СЧЕТ, ТЕКУЩИЙ СЧЕТ, КЛИЕНТ. Клиент может

 
 

Рис. 8. Наследование атрибутов при конкретизации.

иметь как текущий, так и сберегательный счет. В общем случае клиент может иметь несколько счетов, а каждым счетом могут пользоваться несколько клиентов. Таким образом, отношения ИМЕЕТ СБЕРЕГАТЕЛЬНЫЙ СЧЕТ и ИМЕЕТ ТЕКУЩИЙ СЧЕТ является отношением вида много-ко-многим. Клиентом банка может быть как физическое, так и юридическое лицо. Добавив к каждому объектному множеству атрибуты, получим модель, представленную на рис. 9.

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

Из приведенного документа можно вывести следующие объектные множества: НАКЛАДНАЯ, ПОЛУЧАТЕЛЬ, ТОВАР. Отношение между множествами ПОЛУЧАТЕЛЬ и НАКЛАДНАЯ имеет мощность один-ко-многим, так как каждая накладная оформляется одному получателю, но данному получателю могут быть оформлены несколько накладных. Отношение ВКЛЮЧАЕТ между объектами ТОВАР и НАКЛАДНАЯ имеет мощность много-ко-многим, так как накладная может содержать несколько товаров, а товар может встречаться в нескольких накладных. Если необходимо контролировать оплату, поставленного по накладным товара, то необходимо добавить объектное множество ОПЛАТА с атрибутами НОМЕР ДОКУМЕНТА, ВИД ОПЛАТЫ и ДАТА. Мощность отношения ОПЛАЧЕНА


Рис. 9. Пример концептуальной модели банка.

Накладная № 33

Дата 02.08.1999

Получатель Фирма АВС, г. Владимир, тел. 999999

Код получателя 999

Поставщик Фирма ХХХ

Наименование Номенклатурный номер Количество Цена Сумма
Транзистор КТ601АМ     2.00 200.00
Микросхема 133ИЕ8     5.00 100.00
Налог 60.00
ИТОГО 360.00

Рис. 10. Пример накладной.

между объектами НАКЛАДНАЯ и ОПЛАТА равна один-к-одному. Модель данных приведена на рис. 11.


Рис. 11. Концептуальная модель торговой фирмы на основе накладной.

Составные объекты

Составной объект – это отношение, рассматриваемое как объектное множество.

Выше были рассмотрены отношения между двумя объектными множествами. Такие отношения называются бинарными. Но отношение может связывать три и более объектных множества. Такие отношения высокого порядка называются n-арными отношениями, где n обозначает число объектных множеств. Часто 3-арные и 4-арные отношения называют трехсторонними и четырехсторонними.

Рассмотрим пример. Торговая фирма продает свои товары в разные регионы страны. Необходимо отслеживать продажи разных видов товаров по регионам. Для этого необходимы объектные множества ТОВАР, РЕГИОН и отношение между ними ПРОДАН В (рис. 12).


Рис. 12. Модель отслеживания количества продаж по регионам.

Здесь атрибут КОЛИЧЕСТВО зависит и от товара, и от региона. То есть нельзя определить значение количества только по товару или только по региону. Поэтому КОЛИЧЕСТВО – атрибут отношения между товаром и регионом. Теперь предположим, что нужна более тонкая классификация продаж, чем дает полученная модель. Например, необходимо знать количество каждого товара, проданного в каждом регионе в конкретный день. Для этого свяжем отношение ПРОДАН В с объектным множеством ДАТА и атрибут КОЛИЧЕСТВО припишем этому новому отношению (рис. 13). Полученное отношение является 3-арным (трехсторонним).

Любое отношение высокого порядка можно разбить на последовательность вложенных бинарных отношений, которые, как правило, имеют мощность много-ко-многим. Однако часто при этом теряется физический смысл этих отношений. Поэтому удобнее пользоваться n-арными отношениями.


Рис. 13. Модель отслеживания продаж с использованием трехстороннего отношения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: