Инфологическое моделирование
Информационная система (ИС) создаётся для решения задач некоторой организации (завода, банка, вуза, библиотеки и т.д.). Для создания и эксплуатации ИС требуется её описание. Полное, исчерпывающее, описание ИС должно включать в себя не только саму ИС, но и окружающую среду, то есть, должно быть описанием предметной области.
Подробное описание предметной области можно дать в общем случае только в свободной форме. Для графического описания абстрактной модели проектируемой системы используется UML (Unified Modeling Language - унифицированый язык моделирования).
Существенной, если не главной частью ИС являются хранящиеся в ней данные. При проектировании ИС данные нужно представить в виде простой модели, отображающей смысл данных, их взаимосвязь и не привязываться при этом к конкретному типу базы данных. Такие модели получили название инфологических.
Инфологическую модель можно построить, опираясь только на интуитивное представление о данных.
На рис. 2 приведён простой пример инфологической модели.
Рисунок 2 – Инфологическая модель преподавателя
Следует обратить внимание на то, что преподаватель может вести несколько дисциплин и занимать несколько должностей.
Если нужно более подробно описать дисциплины и иметь возможность, зная дисциплину, найти ведущего её преподавателя, то модель придётся уcложнить, выделив дисциплину отдельно и связав её с преподавателем (рис. 3)
Рисунок 3 – Инфологическая модель преподаватель – дисциплина
Один преподаватель может вести много дисциплин и одну дисциплину могут вести много преподавателей. Такая связь называется многие ко многим и обозначается как M:N, а на рисунках часто как .
На рис. 4 изображена упрощённая инфологическая модель для построения расписания занятий. В реальной задаче нужно учесть много дополнительных факторов. Есть разные виды занятий: лекции, практические, лабораторные и т.д. Лекции проводятся с потоком, а лабораторные - с подгруппами. Расписание зависит от недели(числитель, знаменатель). На рисунке сразу 6 элементов связаны друг с другом. Такая связь называется связью степени К. На рисунке К=6. Факультет с кафедрой, кафедра с группой и группа со студентом имеют связи один ко многим.
Рисунок 4 - Инфологическая модель для построения расписания занятий
На рис. 5 изображена инфологическая модель библиотеки
Рис. 5. Инфологическая модель библиотеки
Для того, чтобы дать название прямоугольникам, входящим в схему модели, в 1976 году Чен предложил термин «сущность», а состоящая из связанных между собой сущностей модель получила название модель «сущность – связь» («entity - relation»).
2.2.Определения модели «сущность – связь»
Сущность - это то, что может быть чётко идентифицировано, за чем хотелось бы или необходимо наблюдать в рамках поставленной задачи. Буквально, сущность - это то что существует.
Сущность состоит из множества экземпляров, обладающих одинаковым набором свойств.
Совокупность свойств, необходимая для отличия одного экземпляра от других, называется идентификатором сущности.
Рассмотрим подробно, какими бывают сами сущности, их свойства и связи. В литературе часто вместо термина свойство сущности используют атрибут сущности. Но термин атрибут отношения (колонка, столбец таблицы) применяют в реляционной модели. При одновременном применении обеих моделей может возникнуть путаница.
Виды сущностей
Сущности бывают «сильными» и «слабыми», делятся на тип и подтип.
Слабая сущность в контексте решаемой задачи не может существовать без сильной. Например, в вузе студент обязательно входит в группу, т.е. сущность «студент» не может существовать без сущности «группа». Сущность «деталь» не может существовать без сущности «изделие», а сущность «сотрудник» - без сущности «отдел».
Если часть экземпляров сущности обладает дополнительными по отношению к другим экземплярам свойствами, то эту часть выделяют в подтип. На рис. 6 сущность «студент» является подтипом типа «житель города», а сущность «программист» - подтипом типа «сотрудник». Между типом и подтипом связь 1:1, но эта связь неполная, так как не каждому экземпляру типа соответствует экземпляр подтипа.
Рисунок 6 – Тип и подтип
Связи между сущностями
Связи бывают нескольких типов:
1. Степени К;
2. Полные и неполные;
3. Типа M:N (бинарные связи, К = 2);
· 1:1;
· 1:N (на схемах часто используют обозначение 1 );
· M:N, M>1, N>1 ( );
4. Рекурсивные (между экземплярами одной сущности);
· между равноправными экземплярами;
· между неравноправными;
· в одной сущности тип и подтип;
Степень К - количество связанных между собой сущностей. Пример связи степени К=6 показан на рис. 3. Для построения расписания необходимо, чтобы были связаны ровно по одному экземпляру каждой сущности. Семантические связи между несколькими сущностями могут быть очень сложными даже, на первый взгляд, в простых случаях. У одной пары родителей (рис. 7) может быть несколько детей. Сводные братья и сёстры могут иметь одну мать и разных отцов, или одного отца и разных матерей. Родители могут быть юридическими (приёмными) и фактическими (кровными), т.е. у одного ребёнка может быть две матери.
Рисунок 7 – Связь между детьми и родителями
Полной связью между двумя сущностями называется такая связь, при которой каждому экземпляру одной сущности соответствует хотя бы один экземпляр другой сущности. Например, каждому студенту соответствует група (одна) и каждой группе соответствуют студенты.
При частичной связи некоторые экземпляры одной сущности не связаны ни с одним экземпляром другой сущности. Например, не все студенты живут в общежитии.
Связь типа 1:1 между сущностями встречается нечасто. Теоретически всегда такие сущности можно объединить в одну. Связь 1:1 создают для лучшего понимания модели. Напимер, директора и завод лучше рассматривать как разные сущности. Связь 1:1 коварна кажущейся очевидностью, Например, у государства один глава: император, президент, царь и т.д., но в древнем Риме правили два консула.
Связь типа 1:N, N>1(или 1 ) - самая простая и удобная для построения реляционной базы данных. На рис.8 приведён пример модели сущность-связь из четырёх сущностей со связями 1:N.
Рисунок 8 - Связи M:N
Связь типа M:N, M>1, N>1(или ) требует при переходе к реляционной модели строить дополнительное отношение (таблицу связей). Примеры связей типа M:N приведены на рисунках 3, 4, 5.
Рекурсивные связи между равноправными экземплярами сущности. На рис. 9 экземпляры сущности студенты, живущие в общежитии, объединены по признаку (свойству) номер комнаты, в которой они живут.
Рисунок 9 - Рекурсивные связи между студентами,
живущими в одной комнате
Рекурсивные связи между неравноправными экземплярами сущности. Так связаны между собой сотрудники и начальник отдела как экземпляры сущности Сотрудники института.
В одной сущности тип и подтип. Несколько экземпляров сущности, связанные одинаковым значением одного свойства, можно выделить в подтип, т.е. в новую сущность, являющуюся подтипом исходной. На рис. 5 в подтип выделены сотрудники, имеющие должность «программист».
Примеры рекурсивных связей показывают, что между сущностями, связями и свойствами существуют очень сложные зависимости.
3.ПРЕОБРАЗОВАНИЕ МОДЕЛИ «СУЩНОСТЬ – СВЯЗЬ» В РЕЛЯЦИОННУЮ МОДЕЛЬ
Реляционная модель данных строится на основе модели сущность-связь. Каждой сущности из модели сущность-связь в реляционной модели ставится в соответствие отношение (таблица), каждому свойству сущности - атрибут отношения. В отношение, как правило, добавляется атрибут-счётчик, который служит формальным первичным ключом (идентификатором кортежа). В базе данных кортеж - это строка или запись.
Связь один ко многим
Для задания связи «один ко многим! в отношении со стороны «многие» создаётся дополнительный атрибут «внешний ключ» (рис. 10). Внешний ключ принимает значения только из множества значений первичного ключа отношения со стороны «один».
Рисунок 10 - Преобразование модели сущность-связь со связью 1:N в реляционную модель
Связь многие ко многим
Для задания связи «многие ко многим» необходимо создать дополнительную таблицу связей (рис. 11), атрибутами которой служат внешние ключи, соответствующие первичным ключам связываемых таблиц.
Рис. 11.Преобразование модели сущность-связь со свзью M:N в реляционную модель
На рис. 12 показаны заполненные таблицы Prep, Disc и PrepDisс. Для того, чтобы указать, что преподаватель Андреев ведёт дисциплину Фортран, в таблице PrepDisc создана строка со значеиями KodP=1 и kodD=3.
Рис. 12. Пример заполнения таблицы связей в реляционной модели
Связь степени К
Для связи степени К в реляционной модели строится таблица связи с К внешними ключами. На рис. 13 построены модель сущность-связь и реляционная модель для связи степени К=5.
Рисунок 13 - Преобразование модели сущность-связь со связью
степени К в реляционную модель
ЗАКЛЮЧЕНИЕ
В ходе работы была изучена модель «сущность – связь», был приведен полный разбор ее элементов, а также были приведены множество примеров использования данной модели. Делая вывод, можно говорить о том, что модель «сущность – связь» помогает выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями в базах данных. Во время проектирования базы данных происходит преобразование модели «сущность – связь» в конкретную схему базы данных на основе выбранной модели данных.
СПИСОК ЛИТЕРАТУРЫ
1. Буй Д., Сильвейструк Л., 2006. МОДЕЛЬ “СУЩНОСТЬ-СВЯЗЬ”: РОЛИ, СИЛЬНЫЕ И СЛАБЫЕ ТИПЫ СУЩНОСТЕЙ И ТИПЫ СВЯЗЕЙ // Proceedings of the XII-th International Conference “Knowledge-Dialogue-Solution” (June 20-25, 2006, Varna, Bulgaria). – Sofia. – 2006.– P. 223-229.
2. Маклаков С.В., 1999. BPwin и ERwin. CASE-средства разработки информационных систем. – Москва: “ДИАЛОГ- МИФИ”, 1999. – 256 с.
3. Маклаков С.В., 2005. Создание информационных систем с AllFusion Modeling Suite. – Москва: “ДИАЛОГ-МИФИ”, 2005. – 432 с