Проектирование фактографических БД: реляционная модель данных, модель "сущность-связь" (Entity-Relationship, ER).
Реляционная модель данных (РМД)
Данные в реляционной модели хранятся в виде таблиц. Таблица состоит из заголовка (столбцов или атрибутов) и строк или записей (кортежей). Поле таблицы - это значение, лежащее на пересечении строки и столбца. Множество значений, которые может принимать атрибут, называется домен атрибута. Реляционные таблицы называются отношениями. (Relation – отношение). Число столбцов или атрибутов таблицы называется степенью отношения. Число строк или записей таблицы называется мощностью отношения. Данные в реляционной модели должны удовлетворять следующим требованиям, которые называются внутренними ограничениями модели:
· В таблице каждая запись должна быть .
· Конкретные данные должны храниться только в одной таблице.
· Число отношений в модели должно быть оптимальным.
Для идентификации записи в таблице служит атрибут, или совокупность атрибутов, которая носит название первичного ключа отношения. Для каждой записи таблицы значение первичного ключа уникально. Декомпозиция (нормализация) таблиц основана на исследовании зависимостей не ключевых атрибутов таблицы от атрибутов первичного ключа.
Важным отличием РМД от ИМД является возможность применения формального аппарата, описывающего преобразование и обработку данных в РМД - реляционной алгебры.Операндами реляционной алгебры являются отношения, как постоянные, так и переменные. Операции реляционной алгебры включают ледующие преобразования отношений.
А.Теоретико-множественные операции над несколькими подобными (имеющими одинаковую структуру - число атрибутов, их имен, домен и т.д.), отношениями, в том числе объединение, пересечение, разность.
Б. Операции над одним отношением: селекция или построение отношения-результата из отношения-источника путем отбора экземпляров, удовлетворяющих некоторому критерию отбора и проекция или построение результирующего отношения путем отбора части атрибутов всех экземпляров исходного отношения.
В. Операции над несколькими различными отношениями.
Реляционная модель данных достаточна для моделирования многих предметных областей. Но она имеет и свои недостатки:
· В РМД нет достаточных средств для представления смысла (семантики) предметной области.
· В РМД нет средств для представления зависимостей между данными (отношениями)
· Для многих приложений не достаточно представления данных в виде плоских таблиц
· РМД не предлагает никакого аппарата для разделения сущностей и связей.
Указанные недостатки привели к созданию семантических моделей данных (СМД). На практике СМД используются на первой стадии проектирования БД. Одной из наиболее популярных СМД является модель «сущность-связь» (entity-relationship) или ER-модель.
Модель "сущность-связь" представляет собой обобщение РМД путем разделения отношений, описывающих предметную область на две группы - сущностей и связей.
Сущность(Entity)является первичным,устойчивым объектом, описываемым некоторой совокупностью атрибутов.
Связь (Relationship) является вторичным понятием, характеризующим взаимодействие в пространстве и времени двух или более сущностей, и также задается рядом атрибутов, среди которых присутствуют идентификаторы взаимосвязанных сущностей.
При проектировании БД на основе ER-моделей исп-т ER-диаграммы. Модель ER является удобным средством описания предметной области перед тем, как перейти к ее представлению в реляционной модели данных.
Атрибут сущности – это свойство сущности, служит для уточнения, классификации, идентификации, числовой характеристики или выражения состояния сущности. Имена атрибутов пишутся под именем сущности строчными буквами.
Существует три типа свойств: Ключевые свойства позволяют различать экземпляры сущности. Дифференциальные свойства содержат смысл сущности, то, что отличает сущность от другой сущности. Валентные свойства используются для связи с другими сущностями.
Различают три основных типа абстрагирования и соответственно три вида операций над сущностями: агрегация, обобщение, ассоциация. Соответственно обратные логические операции над сущностями - это декомпозиция, специализация и индивидуализация.
ER-модели широко применяются как при ручном, так и при автоматизированном проектировании баз данных. При этом в некоторых системах, например, в системе IDEF, отсутствуют сложные понятия (агрегаты, ассоциации, обобщенные понятия), они заменяются связями. В разных системах применяются различные обозначения мощности связей и классов членства (обязательности связи) и т.д.
На основе созданной ER-схемы строится реляционная модель базы данных. Порядок построения реляционной модели из ER-схемы следующий:
· Каждая простая сущность отображается в таблицу, при этом имя сущности становится именем таблицы.
· Каждый атрибут сущности становится столбцом таблицы с тем же именем, при этом выбирается более точный формат значения атрибута. Ключевые свойства преобразуются в первичные ключи таблицы.
· Столбцы, соответствующие необязательным атрибутам могут содержать неопределенные значения, обязательные столбцы не могут.
· Если в соответствующие ключевые свойства входят связи, к числу столбцов первичного ключа добавляется копия ключевого свойства сущности, находящейся на дальнем конце связи.
· Связи один-ко-одному, один-ко-многим преобразуются во внешние ключи. Делается копия уникального идентификатора с конца связи «один», которая мигрирует в таблицу на конце связи «много», где и становится внешним ключом.