
- •Тарзанов в.В.
- •Предисловие
- •Введение
- •Информационное обеспечение информационных систем
- •1.1.Понятие информационной системы и ее структура
- •1.2.Структура экономической информации
- •1.3.Структура информационного обеспечения
- •1.4.Системы классификации и кодирования экономической информации
- •1.5.Понятие унифицированной системы документации
- •1.6.Понятие электронного документооборота
- •Основные понятия теории баз данных
- •2.1.Общие положения
- •2.2.Классификация баз данных
- •2.3.Уровни, виды и типы моделей данных
- •3. Реляционная модель данных
- •3.1. Основные понятия реляционной модели данных
- •Тип данных
- •3.2.Фундаментальные свойства отношений
- •3.3. Составные части (аспекты) реляционной модели
- •4. Проектирование реляционных баз данных
- •4.1.Основные этапы проектирования
- •4.2. Проектирование методом нормальных форм
- •Первая нормальная форма (1nf)
- •Вторая нормальная форма (2nf)
- •Третья нормальная форма (3nf)
- •Нормальная форма Бойса-Кодда (bcnf)
- •Четвертая нормальная форма (4nf)
- •Пятая нормальная форма (pj/nf)
- •4.3. Проектирование базы данных «Университет»
- •5. Автоматизация проектирования баз данных
- •5.1. Общая характеристика case-средств
- •5.2. Семантическая модель данных
- •5.3. Структурная схема автоматизированного проектирования базы данных
- •6. Базисные средства манипулирования данными
- •6.1. Элементы реляционной алгебры
- •6.2. Основные операции реляционной алгебры
- •А Номер факультета Наименование Декан 2 фом Сидоров
- •А Наименование Декан Экономический Петров фом Сидоров
- •6.3. Элементы реляционного исчисления
- •7. Структурированный язык запросовtransactsql
- •7.1. Основы языка Transact-sql
- •7.2. Функции sql
- •7.3. Команды языка определения данных
- •7.4. Команды языка манипулирования данными
- •7.5. Средства разработки процедур деловой логики в Transact-sql
- •8. Основные функции и типовая организация современных систем управления базами данных
- •8.1. Основные функции систем управления базами данных
- •8.2. Типовая организация систем управления базами данных
- •8.3. Архитектуры приложений, использующих базы данных
- •Заключение
- •Контрольные вопросы
5.2. Семантическая модель данных
Потребности проектировщиков баз данных в более удобных и мощных средствах моделирования предметной области вызвали к жизни направление семантических моделей данных, которые наиболее актуальны в автоматизированном проектировании. При этом любая развитая семантическая модель данных, как и реляционная модель, включает структурную, манипуляционную и целостную части.
Главным назначением семантических моделей является обеспечение возможности выражения семантики (смысла) данных и их взаимосвязей.
Наиболее часто на практике семантическое моделирование используется на первой стадии проектирования базы данных. При этом в терминах семантической модели производится концептуальная схема базы данных, которая затем вручную или автоматизировано преобразуется к реляционной (или какой-либо другой) схеме. Этот процесс выполняется под управлением методик, в которых достаточно четко оговорены все этапы такого преобразования.
При автоматизированной компиляции известны два подхода:
на основе явного представления концептуальной схемы как исходной информации для компилятора;
на основе построения интегрированных систем проектирования с автоматизированным созданием концептуальной схемы.
И в том, и в другом случае в результате производится реляционная схема базы данных.
Наконец, третья возможность, которая еще не вышла (или только выходит) за пределы исследовательских и экспериментальных проектов, - это работа с базой данных в семантической модели, т.е. в СУБД, основанных на семантических моделях данных. При этом снова рассматриваются два варианта:
обеспечение пользовательского интерфейса на основе семантической модели данных с автоматическим отображением конструкций в реляционную модель данных (это задача примерно такого же уровня сложности, как автоматическая компиляция концептуальной схемы базы данных в реляционную схему);
прямая реализация в СУБД, основанной на какой-либо семантической модели данных.
Наиболее близко ко второму подходу находятся современные объектно-ориентированные СУБД, модели данных которых по многим параметрам близки к семантическим моделям (хотя в некоторых аспектах они более мощны, а в некоторых - более слабы).
Одной из наиболее популярных семантических моделей данных является модель Сущность-Связь (часто ее называют кратко ER-моделью).
На использовании разновидностей ER-модели основано большинство современных подходов к проектированию баз данных (главным образом, реляционных). Модель была предложена Ченом (Chen) в 1976 г. Моделирование предметной области в этом случае базируется на использовании графических диаграмм, включающих небольшое число разнородных компонентов. В связи с наглядностью представления концептуальных схем баз данных, ER-модели получили широкое распространение в системах CASE, поддерживающих автоматизированное проектирование реляционных баз данных.
Основными понятиями ER-модели являются сущность, связь и атрибут.
Сущность - это реальный или абстрактный объект, информация о котором должна сохраняться и быть доступна.
Связь - это графически изображаемая ассоциация, устанавливаемая между двумя сущностями. Эта ассоциация всегда является бинарной и может существовать между двумя разными сущностями или между сущностью и ей же самой (рекурсивная связь).
В любой связи выделяются два конца (в соответствии с существующей парой связываемых сущностей), на каждом из которых указывается имя конца связи, степень конца связи (сколько экземпляров данной сущности связывается), обязательность связи (т.е. любой ли экземпляр данной сущности должен участвовать в данной связи).
Связь представляется в виде линии, связывающей две сущности или ведущей от сущности к ней же самой.
Атрибутом сущности является любая деталь, которая служит для уточнения, идентификации, классификации, числовой характеристики или выражения состояния сущности.
Метод IDEF1X, является стандартом для разработки реляционных баз данных и использует условный синтаксис, специально разработанный для удобного построения семантической модели.
Использование метода IDEF1X наиболее целесообразно для построения логической структуры базы данных после того, как все информационные ресурсы исследованы и решение о внедрении базы данных, как части корпоративной информационной системы, принято. Однако средства моделирования IDEF1X изначально разработаны для построения реляционных информационных систем, и если существует необходимость проектирования другой системы, скажем объектно-ориентированной, то лучше избрать другие методы моделирования (например, на основе языка UML).
Сущность в IDEF1X описывает собой совокупность или набор экземпляров похожих по свойствам, но однозначно отличаемых друг от друга по одному или нескольким признакам. Каждый экземпляр является реализацией сущности. Таким образом, сущность в IDEF1X описывает конкретный набор экземпляров предметной области. Примером сущности IDEF1X может быть сущность СТУДЕНТ, свойства которой присущи всем студента университета, а один из них, скажем, Иванов Петр Сергеевич, является конкретной реализацией этой сущности. В примере, приведенном на рис.14, каждый экземпляр сущности СТУДЕНТ содержит некоторую информацию. В IDEF1X-модели эти свойства называются атрибутами сущности. Каждый атрибут содержит только часть информации о сущности.
Сущность описывается в диаграмме IDEF1X графическим объектом в виде прямоугольника. Каждый прямоугольник, отображающий собой сущность, разделяется горизонтальной линией на часть, в которой расположены ключевые атрибуты и часть, где расположены неключевые атрибуты. Верхняя часть называется ключевой областью, а нижняя часть - областью данных.
Е/ Студент
-
Номер группы
Фамилия
Имя
Отчество
Дата рождения
Коммерческий
Рис.14. Сущность СТУДЕНТ
Ключевая область содержит первичный ключ для сущности. Первичный ключ - это набор атрибутов, выбранных для идентификации уникальных экземпляров сущности. Атрибуты первичного ключа располагаются над линией в ключевой области. Как следует из названия, неключевой атрибут - это атрибут, который не был выбран ключевым. Неключевые атрибуты располагаются под чертой, в области данных.
Сущность в стандарте IDEF1X является независимой, если каждый экземпляр сущности может быть однозначно идентифицирован без определения его отношений с другими сущностями.
Сущность называется зависимой, если однозначная идентификация экземпляра сущности зависит от его отношения к другой сущности (рис.15).
Рис.15. Сущности в IDEF1X
Каждой сущности присваивается уникальное имя и номер, разделяемые косой чертой «/» и помещаемые над блоком (рис.16).
Сущности могут иметь также внешние ключи (Foreign Key), которые могут использоваться в качестве части или целого первичного ключа или неключевого атрибута.
Рис.16. Сущность и атрибуты
Внешний ключ изображается с помощью помещения внутрь блока сущности имен атрибутов, после которых следуют буквы FK в скобках (рис.17).
Рис.17. Примеры внешних ключей
В стандарте IDEF1X определены типы связей, показанные в табл.6.
Таблица 6
Типы связей стандарта IDEF1X
Графический вид |
Наименование |
Имя связи |
Идентифицирующая связь |
|
Неидентифицирующая связь |
|
Рекурсивная связь |
|
Связь типа «многие-ко-многим» |
|
Связь супертипа с подтипами |
Идентифицирующая связь между сущностью-родителем и сущностью-потомком изображается сплошной линией. Сущность-потомок в идентифицирующей связи является зависимой от идентификатора сущностью. Сущность-родитель в идентифицирующей связи может быть как независимой, так и зависимой от идентификатора сущностью (это определяется ее связями с другими сущностями).
Пунктирная линия изображает неидентифицирующую связь. Сущность-потомок в неидентифицирующей связи будет независимой от идентификатора, если она не является также сущностью-потомком в какой-либо идентифицирующей связи.
Для изучения рекурсивной связи рассмотрим пример отражения в БД иерархической структуры компаний (рис.18).
Рис.18. Иерархия компаний
Иерархию компаний, изображенную на рис.18 можно представить и по другому, как показано в табл.7.
Таблица 7
Формализации иерархии компаний
Идентификатор компании |
Идентификатор «родительской» компании |
Наименование компании |
С1 |
NULL |
Big Monster Company |
С2 |
С1 |
Smaller Monster Company |
С3 |
С1 |
Other Smaller Company |
С4 |
С2 |
Big Subsidiary |
С5 |
С2 |
Small Subsidiary |
С6 |
NULL |
Independent Company |
Тогда указанную иерархию можно отобразить в виде сущности, показанной на рис.19, для которой реализована рекурсивная связь.
Идент_комп
Наименование_компании
Идент_род_комп.Идент_комп
(FK)
Рис.19. Сущность КОМПАНИЯ
Связь типа «многие-ко-многим» показаны на рис.20.
Е/ Предмет Е/ Студент
Рис.20. Связь типа «многие-ко-многим»
Н
Рис.21. Разрешение связей типа «многие-ко-многим»
В стандарте IDEF1X, как, например, в языках программирования с развитыми механизмами типов данных, имеется возможность наследования типа сущности, исходя из одного или нескольких супертипов. В табл. 8 представлены возможные типы связей супертипа с подтипами, а на рис. 22 и 23 – примеры использования взаимоисключающих подтипов.
Таблица 8
Связь супертипа с подтипами
Подтипы |
Complete (полные) |
Incomplete (неполные) |
(взаимоисключающие) |
|
|
(входящие, содержащиеся) |
|
|
Для типа inclusive subtype, каждый экземпляр в супертипе может быть связан с одним или несколькими входящими подтипами.
СТУДЕНТ
Мужчины Женщины
Рис.22. Взаимоисключающие полные подтипы
Дневная Вечерняя
Рис.23. Взаимоисключающие неполные подтипы
О
Рис.24. Разрешение связей супертипа с подтипами
Средства метода IDEF1X в полном объеме реализуют семантическую модель данных. Вместе с этим, IDEF1X ориетирован, в основном, на дальнейшую физическую реализацию реляционной БД в соответствующей СУБД. Поэтому между объектами IDEF1X-модели и объектами реляционной модели данных существует определенная взаимосвязь. Соответствие объектов IDEF1X и реляционной модели данных показано в табл.9.
Таблица 9
Соответствие объектов IDEF1X объектам
реляционной модели
IDEF1X |
Реляционная модель |
Зависимая сущность (Dependent entity) |
Внешний ключ таблицы входит в состав первичного ключа |
Независимая сущность (Independent entity) |
Родительская таблица или дочерняя таблица, внешний ключ которой не входит в состав первичного ключа |
Атрибут (Attribute) |
Поле таблицы |
Домен (Domain) |
Домен |
Первичный ключ (PK) |
Первичный ключ |
Внешний ключ (FK), альтернативный ключ (АК), инверсионный вход (IE), групповой ключ (KG) |
Индексы отношения (таблицы) |
Поведение (business rule) |
Триггер или хранимая процедура |
Связь (Relationship) |
Ссылка отношений (связь таблиц) |
Идентифицирующая связь (identifying) |
Атрибуты внешнего ключа входят в состав первичного ключа ссылающегося отношения |
Неидентифицирующая связь (non-identifying) |
Атрибуты внешнего не входят в состав первичного ключа ссылающегося отношения |
Связи подтипов |
Денормализованные отношения (таблицы) |
Существующая взаимосвязь между компонентами семантической и реляционной моделями позволяют преобразовывать ER-модель в реляционную в последовательности, показанной на рис.25.
Рис. 25. Построение реляционной схемы из ER-модели