Домой / Игры / Построение диаграмм ER-типа. Проектирование реляционных баз данных с использованием семантических моделей: ER-диаграммы

Построение диаграмм ER-типа. Проектирование реляционных баз данных с использованием семантических моделей: ER-диаграммы

ER-диаграмма

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

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

Сущности. Каждый тип сущности в ER-диаграммах представляется в виде прямоугольника, содержащего имя сущности. В качестве имени обычно используются существительные (или обороты существительного) в единственном числе. Для отражения сущностей слабых типов используются прямоугольники, стороны которых рисуются двойными линиями. Например, в рассматриваемой далее ER-диаграмме, приведенной на рис. 5.4, ПОДЧИНЕННЫЙ - сущность слабого типа.

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

Имена ключевых свойств подчеркиваются, например, свойство «Табельный номер» сущности СОТРУДНИК.

Контур эллипса рисуется двойной линией, если свойство многозначное, например, свойство «Специальность» сущности СОТРУДНИК.

Контур эллипса рисуется штриховой линией, если свойство производное, например, свойство «Кол-во» сущности ПОСТАВЩИК.

Эллипс соединяется пунктирной линией, если свойство условное, например, свойство «Иностранный язык» сущности СОТРУДНИК.

Если свойство составное, то составляющие его свойства отображаются другими эллипсами, соединенными с эллипсом составного, например, свойство «Адрес» сущности СОТРУДНИК состоит из простых свойств «Город», «Улица», «Дом».

Связи. Связь - это графически изображаемая ассоциация, устанавливаемая между сущностями. Каждый тип связи на ER-диаграмме отображается в виде ромба с именем связи внутри. В качестве имени обычно используются отглагольные существительные.

Стороны ромба рисуют двойными линиями, если это связь сущности слабого типа с сущностью, от которой она зависит. Например, связь «Подчинение», связывающая сущность слабого типа ПОДЧИНЕННЫЙ с сущностью СОТРУДНИК, от которой она зависит.

Участники связи соединены со связью линиями. Двойная линия обозначает полное участие сущности в связи с данной стороны. Например, связь «Подчинение» со стороны сущности ПОДЧИНЕННЫЙ.

Связь может быть модифицирована указанием роли. Например, для рекурсивной связи «Состав» указаны роли: «Деталь состоит из ...» и «Деталь входит в состав ...».

Цель работы

Ознакомление с методами и алгоритмом создания модели «Сущность-связь».

Основные понятия модели «Сущность-связь». ER-модели.

Инфологическая модель применяется на втором этапе проектирования БД, после словесного описания предметной области. Она должна включать такое формализованное описание предметной области, которое легко будет «читаться» как специалистами по базам данных, так и всеми пользователями. Это описание должно быть настолько емким, чтобы можно было оценить глубину и корректность проработки проекта БД, и конечно, оно не должно быть привязано к конкретной СУБД. Выбор СУБД - это отдельная задача, для корректного ее решения необходимо иметь проект, который не привязан ни к какой конкретной СУБД.

Инфологическое проектирование, прежде всего, связано с попыткой представления семантики предметной области в модели БД, которая слабо отражается в сетевых, иерархических моделях данных.

Было предложено несколько моделей данных, названных семантическими моделями. У всех этих моделей были свои положительные и отрицательные стороны, но фактическим стандартом при инфологическом моделировании баз данных стала только модель «сущность-связь», или Entity Relationships. Общепринятым стало сокращенное название ER-модель, а большинство современных CASE-средств содержат инструментальные средства для описания данных в формализме этой модели. Кроме того, разработаны методы автоматического преобразования проекта БД из ER-модели в реляционную БД, при этом одновременно выполняется преобразование в модель конкретной СУБД. Все CASE-системы имеют развитые средства документирования процесса разработки, автоматические генераторы отчетов позволяют подготовить отчет о текущем состоянии проекта с подробным описанием объектов БД и их отношений, что существенно облегчает ведение проекта.

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

Рассмотрим базовые понятия, лежащие в основе ER-модели.

1. Сущность, с помощью которой моделируется класс однотипных объектов. Сущность имеет имя, уникальное в пределах моделируемой системы. Так как сущность соответствует некоторому классу однотипных объектов, то предполагается, что в системе существует множество экземпляров данной сущности. Объект, которому соответствует понятие сущности, имеет свой набор атрибутов - характеристик, определяющих свойства данного представителя класса. При этом набор атрибутов должен быть таким, чтобы можно было различать конкретные экземпляры сущности. Например, у сущности Сотрудник может быть следующий набор атрибутов: Табельный номер, Фамилия, Имя, Отчество, Дата рождения, Количество детей, Наличие родственников за границей. Набор атрибутов, однозначно идентифицирующий конкретный экземпляр сущности, называют ключевым. Для сущности Сотрудник ключевым будет атрибут Табельный номер, поскольку для всех сотрудников данного предприятия табельные номера различны. Экземпляром сущности Сотрудник будет описание конкретного сотрудника предприятия. Одно из общепринятых графических обозначений сущности - прямоугольник, в верхней части которого записано имя сущности, а ниже перечисляются атрибуты, причем ключевые атрибуты помечаются,например, подчеркиванием или специальным шрифтом, как показано ниже:

2. Между сущностями могут быть установлены связи - бинарные ассоциации, показывающие, каким образом сущности соотносятся или взаимодействуют между собой. Связь может существовать между двумя разными сущностями или между сущностью и ей же самой (рекурсивная связь). Она показывает, как связаны экземпляры сущностей между собой. Еслисвязь устанавливается между двумя сущностями, то она определяет взаимосвязь между экземплярами одной и другой сущности. Например, если есть связь между сущностью «Студент» и сущностью «Преподаватель» и эта связь - руководстводипломными проектами, то каждый студент имеет только одного руководителя, но один и тот же преподаватель может руководить множеством студентов-дипломников. Поэтому это будет связь «один-ко-многим» (1:М), один со стороны «Преподаватель» и многие со стороны «Студент» (рис. 10.1.).

3. В разных нотациях мощность связи изображается по-разному. В рассмотренном примере множественность изображается путем разделения линии связи на 3. Связь имеет общее имя «Дипломное проектирование» и имеет имена ролей со стороны обеих сущностей. Со стороны студента эта роль называется «Делает проект под руководством», со стороны преподавателя эта связь называется «Руководит». Графическая интерпретация связи позволяет сразу прочитать смысл взаимосвязи между сущностями, она наглядна и легко интерпретируема. Связи делятся на три типа по множественности: один-к-одному (1:1), один-ко-многим (1:М), многие-ко-многим (М:М). Связь один-к-одному означает, что экземпляр одной сущности связан только с одним экземпляром другой сущности. Связь 1: М означает, что один экземпляр сущности, расположенный слева по связи, может быть связан с несколькими экземплярами сущности, расположенными справа по связи. Связь «многие-ко-многим» (М:М) означает, что один экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и наоборот, один экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности. Например, связь типа «Изучает» между сущностями «Студент» и «Дисциплина» есть связь типа «многие-ко-многим» (М:М), т. к. каждый студент может изучать несколько дисциплин, а каждая дисциплина изучается множеством студентов. Такая связь изображена на рис. 10.2.

4. Между двумя сущностями может быть задано сколько угодно связей с разными смысловыми нагрузками. Например, между двумя сущностями «Студент» и «Преподаватель» можно установить две смысловые связи, одна - рассмотренная уже ранее «Дипломное проектирование», а вторая может быть условно названа «Лекции», и она определяет, лекции каких преподавателей слушает данный студент и каким студентам данный преподаватель читает лекции. Ясно, что это связь типа многие-ко-многим .

5. Связь любого из этих типов может быть обязательной, если в данной связи должен участвовать каждый экземпляр сущности, и необязательной - если не каждый экземпляр сущности должен участвовать в данной связи. При этом связь может быть обязательной с одной стороны и необязательной с другой стороны. Обязательность связи тоже по-разному обозначается в разных нотациях. Необязательность связи может обозначаться пустым кружочком на конце связи, а обязательность перпендикулярной линией, перечеркивающей связь. И эта нотация имеет простую интерпретацию. Кружочек означает, что ни один экземпляр не может участвовать в этой связи. А перпендикуляр интерпретируется как то, что по крайней мере один экземпляр сущности участвует в этой связи.

В ранее приведенном примере связи «Дипломное проектирование» эта связь интерпретируется как необязательная с двух сторон. На самом деле каждый студент, который делает диплом, должен иметь своего руководителя дипломного проектирования, но, с другой стороны, не каждый преподаватель ведет дипломное проектирование. Поэтому в данной смысловой постановке изображение этой связи изменится, и будет выглядеть таким, как представлено на рис. 10.3.

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

Пример создания ER-модели

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

Прежде всего, существует сущность «Книги»; каждая книга имеет уникальный шифр, который является ее ключом, и ряд атрибутов, которые взяты из описания предметной области. Множество экземпляров сущности определяет множество книг, которые хранятся в библиотеке. Каждый экземпляр сущности «Книги» соответствует не конкретной книге, стоящей на полке, а описанию некоторой книги, которое дается обычно в предметном каталоге библиотеке. Каждая книга может присутствовать в нескольких экземплярах, и это как раз те конкретные книги, которые стоят на полках библиотеки. Чтобы отразить это, следует ввести сущность «Экземпляры», которая должна содержать описания всех экземпляров книг, которые хранятся в библиотеке. Каждый экземпляр сущности «Экземпляры» соответствует конкретной книге на полке. Каждый экземпляр имеет уникальный инвентарный номер, однозначно определяющий конкретную книгу. Кроме того, каждый экземпляр книги может находиться либо в библиотеке, либо на руках у некоторого читателя, и в последнем случае для данного экземпляра указываются дополнительно дата взятия книги читателем и дата предполагаемого возврата книги.

Между сущностями «Книги» и «Экземпляры» существует связь (1:М), обязательная с двух сторон. Чем определяется данный тип связи? Каждая книга может присутствовать в библиотеке в нескольких экземплярах, поэтому - связь 1:М. При этом если в библиотеке нет ни одного экземпляра данной книги, то мы не будем хранить ее описание, поэтому если книга описана в сущности«Книги», то по крайней мере один экземпляр этой книги присутствует в библиотеке.Это означает, что со стороны книги связь обязательная. Что касается сущности «Экземпляры», то не может существовать в библиотеке ни одного экземпляра, который бы не относился к конкретной книге, поэтому и со стороны «Экземпляры» связь тоже обязательная.

Теперьнеобходимо определить, как в системе будет представлен читатель. Естественно предложитьввести для этого сущность «Читатели», каждый экземпляр которой будет соответствовать конкретному читателю. В библиотеке каждому читателю присваивается уникальный номер читательского билета, который однозначно идентифицирует читателя. Номер читательского билета будет ключевым атрибутом сущности «Читатели». Кроме того, в сущности «Читатели» должны присутствовать дополнительные атрибуты, которые требуются для решения поставленных задач; этими атрибутами будут: «Фамилия Имя Отчество», «Адрес читателя», «Телефон домашний» и «Телефон рабочий». Кроме того, в сущности «Читатели» следует ввести атрибут «Дата рождения», который позволитконтролировать возраст читателей.

Каждый читательможет держать на руках несколько экземпляров книг. Для отражения этой ситуации следует провести связь между сущностями «Читатели» и «Экземпляры», т. к. читатель берет из библиотеки конкретный экземпляр конкретной книги, а не просто книгу. А узнать, какая книга у данного читателя можно по дополнительной связи между сущностями «Экземпляры» и«Книги», и эта связь каждому экземпляру ставит в соответствие одну книгу, поэтому всегда можно однозначно определить, какие книги находятся на руках у читателя, хотя связываем с читателем только инвентарные номера взятых книг. Между сущностями «Читатели» и «Экземпляры» установлена связь 1:М, и при этом она не обязательная с двух сторон. Читатель в данный момент может не держать ни одной книги на руках, а с другой стороны, данный экземпляр книги может не находиться ни у одного читателя, а просто стоять на полке в библиотеке.

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

Из описания предметной областиизвестно, что каждая книга может содержать сведения из нескольких областей знаний, а с другой стороны, в библиотеке может присутствовать множество книг, относящихся к одной и той же области знаний, поэтому необходимо установить между сущностями «Системный каталог» и «Книги» связь М:М, обязательную с двух сторон. Действительно, в системном каталоге не должно присутствовать такой области знаний, сведения по которой не представлены ни в одной книге библиотеки. И обратно, каждая книга должна быть отнесена к одной или нескольким областям знаний для того, чтобы читатель мог ее быстрее найти.

ER-модель предметной области «Библиотека» представлена на рис. 10.4.

Инфологическая модель «Библиотека» разработана под задачи, перечисленные ранее. В них нет условия хранения истории чтения книги, например, с целью поиска того, кто раньше держал книгу и мог нанести ей вред. Если бы была поставлена задача хранения и этой информации, то инфологическая модель была бы другой.

Нормализация ER-диаграмм

Инфологическая модель используется на ранних стадиях разработки проекта. Если понимать язык условных обозначений, которые соответствуют категориям ER-модели, то ее можно легко «читать», следовательно, она доступна для анализа программистам-разработчикам, которые будут разрабатывать отдельные приложения. Она имеет однозначную интерпретацию, в отличие от некоторых предложений естественного языка, и поэтому здесь не может быть никакого недопонимания со стороны разработчиков.

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

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

Правила преобразования ER-модели в реляционную БД

Рассмотрим правила преобразования ER-модели в реляционную БД.

1. Каждой сущности ставится в соответствие отношение реляционной модели данных. При этом имена сущности и отношения могут быть различными, т. к. на имена сущностей могут не накладываться дополнительные синтаксические ограничения, кроме уникальности имени в рамках модели. Имена отношений могут быть ограничены требованиями конкретной СУБД, чаще всего эти имена являются идентификаторами в некотором базовом языке, они ограничены по длине и не должны содержать пробелов и некоторых специальных символов. Например, сущность может быть названа « Книжный каталог», а соответствующее ей отношение желательно назвать, например, BOOKS (без пробелов и латинскими буквами).

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

3. Первичный ключ сущности становится PRIMARY KEY соответствующего отношения. Атрибуты, входящие в первичный ключ отношения, автоматически получают свойство обязательности.

4. В каждое отношение, соответствующее подчиненной сущности, добавляется набор атрибутов основной сущности, являющейся первичным ключом основной сущности. В отношении, соответствующем подчиненной сущности, этот набор атрибутов становится внешним ключом.

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

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

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

7. Дополнительно при описании отношения между типом и подтипами необходимо указать тип дискриминатора. Дискриминатор может быть взаимоисключающим или нет. Если установлен данный тип дискриминатора, то это значит, что один экземпляр сущности супертипа связан только с одним экземпляром сущности подтипа и для каждого экземпляра сущности супертипа существует потомок. Кроме того, необходимо указать для второго способа, наследуется ли только идентификатор супертипа в подтипы, или наследуются все атрибуты супертипа.

8. Если в ER-схеме имеется связь (связи) М:М, которые реляционная модель не поддерживает, вводится специальное связующее отношение, которое связано с каждым исходным отношением связью 1:М. Атрибутами этого отношения являются первичные ключи связываемых отношений.

Алгоритм приведения семантической модели к 3НФ

Алгоритм приведения семантической модели к 3-й нормальной форме может быть следующим:

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

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

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

Используя рассмотренные положения, нормализуем ER-схему. Результат нормализации приведен на рис. 5. При нормализации схемы в нее введено отношение «Связи Книги-каталог», содержащее атрибуты «ISBN» и «Код области знаний», служащие для реализации связи М:М «Книги – систематический каталог», а в отношение «Экземпляры» для его связи с отношениями «Книги» и «Читатели» введены атрибуты «№ читательского билета» и «ISBN». Стрелки указывают направление связей.

Можно показать, что схема рис. 10.5 удовлетворяет требованиям 3-й нормальной формы.

Порядок выполнения работы

1. Проведитесемантическийанализ предметной области для приведенного ниже примера.

Пример. Предметная область ИС: Отдел кадров.

Минимальный список характеристик:

    Фамилия, имя, отчество, домашний адрес, телефон, дата рождения, должность, дата зачисления, стаж работы, образование;

    фамилия, имя, отчество, и даты рождения членов семьи каждого сотрудника;

    наименование подразделения, количество штатных единиц, оклад, фонд заработной платы за месяц и за год.

2. Используя приведенную выше методику, представьте предметную область в виде ER-модели.

3. Используя рассмотренную выше методику нормализации ER-модели, приведите разработанную ER-модель к 3НФ.

4. Результаты работы по всем этапам отобразите в отчете.

педагогические науки

  • Хусаинова Гузалия Ядкаровна , кандидат наук, доцент, доцент
  • Башкирский государственный университет
  • ПРОЕКТИРОВАНИЕ
  • БАЗЫ ДАННЫХ
  • ER-ДИАГРАММА

В данной работе рассмотрено создание ER – диаграммы на примере детского магазина.

  • Разработка приложения «Справочник по языку программирования Pascal» для ОС Android
  • Работа с базой данных в среде Delphi на примере детского магазина
  • Сравнение языков программирования на примере сортировки массива
  • Формирование мотивации у школьников к занятиям физической культурой и спортом

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

Целью инфологического моделирования является создание точного и полного отображения реального мира, используемого в будущем в качестве источника информации для построения базы данных.

Комплекс задач этого этапа состоит в выявлении общих информационных объектов и связей между ними. Результаты инфологического проектирования могут быть выражены в виде инфологической или концептуальной модели, которая представляет структуру данных. Для построения концептуальной модели используется метод моделирования «Сущность - связь» или ER-диаграмма.

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

Работа продавца-консультанта - это процесс, который можно разделить на следующие этапы:

  • поиск нужного товара;
  • формирование списка товаров;
  • добавление информации о покупателях;

Информационные процессы этапов представлены в виде таблицы (Таблица 1.).

Таблица 1. Информационные процессы этапов

После изучения предметной области и анализа структуры системы были определены объекты. Список сущностей и связей представлены в таблицах 2 и 3.

Таблица 2. Перечень сущностей предметной области

Название

Ключ сущности

Атрибуты сущности

Детский магазин

Код_магазина

Название

ФамилияИО_владельца

Адреса_магазинов

Сотрудники

Код_сотрудника

Должность

ФамилияИО_сотрудника

Паспортные данные

Дата_рождения

Образование

Дата_устройства

Код_магазина

Поставщики

Код_поставщика

Фирма_товара

Дата_поставки

Количество

Покупатели

Код_покупателя

ФамилияИО_покупателя

Паспортные_данные

Постоянный_клиент

Код_заказа

ФамилияИО_заказчика

Название_товара

Количество

Дата заказа

Стоимость_заказа

Код_доставки

Код_товара

Название

Материал

В_наличии(шт)

Заказано/ожидается

Изображение

Количество

Код_поставщика

Код_магазина

Таблица 3. Перечень связей между сущностями

Исходя из имеющихся данных, становится возможным построить ER-диаграмму, необходимую для дальнейшего проектирования информационной системы (рис.1).

Рисунок 1. ER-диаграмма.

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

Связи между объектами модели данных реализуются теми же реквизитами - ключи связи в соответствующих таблицах. Ключом соединения всегда является уникальный ключ главной таблицы. Ключ в подчиненной таблице - это либо часть уникального ключа в нем, либо поле, которое не является частью первичного ключа. Ключ связи в подчиненной таблице называется внешним ключом. В Access можно создать схему данных, визуально представляющую логическую структуру базы данных. Определение отношений «один ко многим» в этой схеме должно соответствовать построенной модели данных. Появление схемы данных практически совпадает с графическим представлением информационно-логической модели. В таблицах 4 и 5 показаны структуры объектов "Товары" и «Сотрудники». Аналогично можно получить и другие таблицы базы данных.

Таблица 4. Структура таблицы «Товары»

Ключевое поле

Название поля

Код_товара

Текстовый

Текстовый

Название

Текстовый

Числовой

Материал

Текстовый

В наличии(шт)

Текстовый

Заказано/Ожидается

Текстовый

Изображение

Поле объекта OLE

Денежный

Количество

Числовой

Код поставщика

Числовой

Числовой

Код магазина

Числовой

Таблица 5. Структура таблицы «Сотрудники»

Ключевое поле

Название поля

Код_сотрудника

Должность

Текстовый

ФИО сотрудника

Текстовый

Паспортные данные

Числовой

Дата рождения

Дата/время

Текстовый

Образование

Текстовый

Числовой

Фотография

Поле объекта OLE

Дата устройства

Дата/время

Текстовый

Текстовый

Код магазина

Числовой

Используя правила перевода ER - диаграмму на логическую схему можно завершающую схему - логическую схему данных (рис. 2)


Рисунок 2. Логическая схема базы данных.

Таким образом, в данной работе подробно рассмотрено получение ER - диаграммы и логической схемы на примеры детского магазина.

Список литературы

  1. Айнуров К.И. Использование информационных технологий в обучении. – Магнитогорск.: МГПУ, 2014. – 85 с.
  2. Викторов С.У. Развитие информационных технологий.– Пермь: ЛНА, 2011. – 74 с.
  3. Хусаинов И.Г., Рахимова Р.А. Роль интерактивных технологий на уроках информатики в развитии этического воспитания учащихся // Современные проблемы науки и образования. – 2015. – № 3. – С. 488.
  4. Хусаинова Г.Я. Исследование температурных полей при стационарном течении аномальных жидкостей // Автоматизация. Современные технологии. 2016. № 7. С. 13-16.

Пример разработки простой ER-модели

При разработке ER-моделей необходимо получить следующую информацию о предметной области:

1. Список сущностей предметной области.

2. Список атрибутов сущностей.

3. Описание взаимосвязей между сущностями.

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

Задача: разработать ER-модель для АИС некоторой оптовой торговой фирмы .

Основные этапы решения задачи

1. Изучение предметной области и процессов, происходящих в ней - как правило, осуществляется путем опроса сотрудников фирмы, чтения документации, изучения формы заказов, накладных и т.п.

Например, в ходе беседы с менеджером по продажам, выяснилось, что он (менеджер) считает, что проектируемая АИС должна выполнять следующие действия:

· Хранить информацию о покупателях.

· Печатать накладные на отпущенные товары.

· Следить за наличием товаров на складе.

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

· Покупатель - кандидат на сущность.

· Накладная - кандидат на сущность.

· Товар - кандидат на сущность.

· (?) Склад - а вообще, сколько складов имеет фирма? Если несколько, то это будет кандидатом на новую сущность.

· (?) Наличие товара - это, скорее всего, атрибут, но атрибут какой сущности?

3. Определение связей между сущностями. Для рассматриваемого примера сразу возникает очевидная связь между сущностями: «Покупатели могут покупать много Товаров » и «Товары могут продаваться многим Покупателям ». Первый вариант диаграммы выглядит так:

Задав дополнительные вопросы менеджеру, были выявлены новые данные о том, что:

· фирма имеет несколько складов, а каждый товар может: храниться на нескольких складах; быть проданным с любого склада;

· покупатели покупают товары, получая при этом накладные, в которые внесены данные о количестве и цене купленного товара;

· каждый покупатель может получить несколько накладных;

· каждая накладная выписывается на одного покупателя;

· каждая накладная содержит хотя бы один товар (не бывает пустых накладных);

· каждый товар, в свою очередь, может быть продан нескольким покупателям через несколько накладных;

· каждая накладная должна быть выписана с определенного склада, и с любого склада может быть выписано много накладных.

Учитывая новые сведения, диаграмма примет следующий вид:

4. Определение атрибутов сущностей. Беседуя с сотрудниками фирмы, были выяснены следующие обстоятельства:

· каждый покупатель является юридическим лицом и имеет наименование, адрес, банковские реквизиты;

· каждый товар имеет наименование, цену, а также характеризуется единицами измерения;

· каждая накладная имеет уникальный номер, дату выписки, список товаров с количествами и ценами, а также общую сумму накладной; накладная выписывается с определенного склада и на определенного покупателя;

· каждый склад имеет свое наименование.

Снова выпишем все существительные, которые будут потенциальными атрибутами, и проанализируем их:

· Юридическое лицо – т.к. фирма работает только с юридическими лицами (не работает с физическими лицами), то такой атрибут выделять нет смысла.

· Наименование покупателя - характеристика покупателя.

· Адрес - характеристика покупателя.

· Банковские реквизиты - характеристика покупателя.

· Наименование товара - характеристика товара.

· (?) Цена товара - похоже, что это характеристика товара. Отличается ли эта характеристика от цены в накладной?

· Единица измерения - характеристика товара.

· Номер накладной - уникальная характеристика накладной.

· Дата накладной - характеристика накладной.

· (?) Список товаров в накладной - список не может быть атрибутом. Вероятно, нужно выделить этот список в отдельную сущность.

· (?) - это характеристика, но характеристика чего? Это характеристика не просто "товара", а "товара в накладной".

· (?) Цена товара в накладной - характеристика товара в накладной. Но цена товара уже встречалась выше - это одно и то же?

· Сумма накладной - характеристика накладной. Эта характеристика не является независимой. Сумма накладной равна сумме стоимостей всех товаров, входящих в накладную.

· Наименование склада - характеристика склада.

В ходе дополнительной беседы с менеджером удалось прояснить различные понятия цен. Оказалось, что каждый товар имеет некоторую текущую цену. Эта цена, по которой товар продается в данный момент. Естественно, что эта цена может меняться со временем. Цена одного и того же товара в разных накладных, выписанных в разное время, может быть различной. Таким образом, имеется две цены - цена товара в накладной и текущая цена товара.

С возникающим понятием «Список товаров в накладной» все довольно ясно. Сущности Накладная и Товар связаны друг с другом отношением типа много-ко-многим . Такая связь должна быть разделена на две связи типа один-ко-многим. Для этого требуется дополнительная сущность. Этой сущностью и будет сущность Список товаров в накладной . Связь ее с сущностями Накладная и Товар характеризуется следующими фразами: «Каждая накладная обязана иметь несколько записей из списка товаров в накладной», «Каждая запись из списка товаров в накладной обязана включаться ровно в одну накладную», «Каждый товар может включаться в несколько записей из списка товаров в накладной», «Каждая запись из списка товаров в накладной обязана быть связана ровно с одним товаром».

Атрибуты Количество товара в накладной и Цена товара в накладной являются атрибутами сущности Список товаров в накладной .

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

В результате ER-диаграмма примет вид:

Модели данных

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

Модель данных определяется тремя компонентами:

· допустимой организацией данных;

· ограничениями целостности (семантической);

· множеством операций, допустимых над объектами модели данных.

Допустимая организация данных определяется разнообразием и количеством типов объектов модели данных, ограничениями на структуру данных.

Ограничения целостности поддерживаются средствами, предусмотренными в модели данных для выражения ограничений на значения данных и ассоциации, которые (ограничения) характеризуют достоверные состояния БД.

Ряд ограничений целостности поддерживается моделью данных по умолчанию и распространяется на все типовые ситуации, возникновение которых возможно при внесении изменений в БД. Например, если между записями типа ГРУППА и СТУДЕНТ установлена иерархическая связь, то СУБД воспрепятствует удалению сведений о студенческой группе, если с ней связана хотя бы одна запись о студенте.

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

Множество операций определяет виды обработок, которым могут подвергаться объекты модели данных. Прежде всего, это – операции выборки данных и операции, изменяющие состояние БД.

Поддерживаемые СУБД модели данных традиционно разбиваются на: сетевые , иерархические , реляционные (имеются также другие модели данных). Эта классификация условна, т.к. каждая СУБД поддерживает свою оригинальную модель данных. И даже если модель данных относится к одной из выделенных разновидностей, она может содержать достаточно много отличительных особенностей. Наиболее распространенными моделями являются реляционные модели данных (РМД).

1.5 ER-моделирование

Моделирование данных – это первый шаг на пути проектирования БД, это переход от объектов реального мира к компьютерной модели БД.

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

1.5.1 Сущности

Поскольку сущность представляет собой объект реального мира, то слова «сущность» и «объект» часто обозначают одно и то же.

На уровне ER-моделирования под сущностью на самом деле подразумевается набор сущностей (entity set), а не единственная сущность. Иначе говоря, сущность в ER-моделировании соответствует таблице, а не строке в реляционной среде, отдельная строка в ER-модели называется экземпляром сущности (entity instance, entity occurrence). Сущность изображается прямоугольником, в котором записано имя сущности.

1.5.2 Атрибуты

Атрибуты описывают свойства сущности. Например, сущность STUDENT включает в себя атрибуты NSTBIL (№ студенческого билета), FIO (имя студента), KURS (курс) и т.д.

Рис. 1.24. Атрибуты сущности STUDENT в ER-модели.

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

Первичные ключи в ER-модели подчеркиваются. Если имеются несколько первичных ключей, то подчеркиваются все.

Атрибуты могут быть простые и составные. Составной атрибут – это атрибут, который может быть в дальнейшем разделен на несколько атрибутов. Например, атрибут ADRESS (адрес), может быть разделен на STREET (улица), CITY (город) и т.д.

Атрибуты могут быть однозначные и многозначные. Однозначный атрибут – это такой атрибут, который может принимать единственное значений. Например, ИНН может иметь единственное значение у каждого человека. Однозначные атрибуты не обязательно являются простыми. Например, серийный номер 78-03-06-137846 является однозначным атрибутом, но в то же время это составной атрибут, т.к. его можно разделить на регион, в котором изделие было выпущено (78), код города (03), выпускающую смену (06), номер изделия (137846).

Многозначный атрибут – это атрибут, который может принимать несколько значений. Например, человек может закончить несколько ВУЗов, иметь несколько телефонных номеров.

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

Производный атрибут – это атрибут, который не нужно хранить в БД, его получают с помощью некоторого алгоритма. Например, возраст служащего можно получить как целое значение разности между текущей датой и датой рождения.

1.5.3. Связи

Связи (relationship) – это ассоциирование. Сущности, участвующие в связи, называются участниками (participants). В качестве названия связей может использоваться глагол или документ. Например, отделом руководит служащий, товары поступают на основании заключенного договора и т.д.

Связи между сущностями в количественном соотношении могут быть «один-к-одному», «один-ко-многим». Для обозначения типов связей используется термин «связность» (connectivity).

Мощность связи (cardinality) выражает определенное число экземпляров сущностей, связанных с одним экземпляром связанной сущности. На ER-диаграмме мощность связи не обозначается, но в прикладном программировании сведения о max и min количествах экземпляров сущности могут пригодиться. Например, группа не может начать занятия, если в ней меньше 10 студентов.

Связи устанавливаются между сущностями. Если сущность зависит от существования одной или более других сущностей, то она зависит от существования (existence – dependent). Например, если сотрудники имеют иждивенцев, то для исчисления налогов можно установить связь «сотрудник имеет иждивенцев». В этом случае сущность «иждивенец» зависит от сущности «сотрудник».

Если сущность может существовать вне других сущностей, то она независима от существования (existence –independent). Например, сущность «деталь» может существовать независимо от сущности «поставщик».

Если одна сущность независима от существования другой сущности, связь между ними называется слабой связью (weak relationship) или неидентифицируемой связью (non – identifying relationship). Слабые связи имеют место, если первичный ключ связанной сущности не содержит первичные компоненты порождающей сущности. Например, имеются две сущности COURSE (курс) и CLASS (группа), описанные как

COURSE (CRS-CODE , DEPT_CODE,…)

CLASS (CLASS-CODE , CRS_CODE,…)

Между этими сущностями существует слабая связь, т.к. атрибут CLASS_CODE является первичным ключом сущности CLASS, в то время как атрибут CRS_CODE сущности CLASS является внешним ключом. Первичный ключ сущности CLASS не наследует компонент первичного ключа из сущности COURSE. Слабая связь изображается на ER-диаграмме штриховой линией.

Сильная связь (strong relationship), также называемая идентифицируемой связью (identifying relationship) имеет место, если связанные сущности зависимы от существования. Сильная связь между двумя сущностями имеет место, когда первичный ключ связанной сущности содержит компонент первичного ключа порождающей сущности. Например, сущности

COURSE (CRS-CODE , DEPT_CODE,…)

CLASS (CRS_CODE , CLASS-SECTION ,…)

Имеют сильную связь, т.к. составной ключ сущности CLASS включает в себя первичный сущности COURSE. На ER-диаграмме сильные связи показываются сплошной линией.

Необходимо иметь в виду, что порядок, в котором таблицы создаются и загружаются, имеет существенное значение. Для данных, например невозможна ситуация, когда внешний ключ таблицы CLASS ссылается на еще не существующую таблицу COURSE. Проблема после последовательности создания таблиц в некоторых СУБД не возникает, пока не загружаются данные. Чтобы избежать нарушения целостности на уровне ссылки, в связи 1:М необходимо загружать сторону «1» независимо от того, является она сильной или слабой.

Участие сущности в связи может быть обязательным или необязательным. Участие сущности необязательно (optional participation), если один экземпляр сущности не требует наличия соответствующего экземпляра сущности в отдельной связи. Например, в связи на курсе (COURSE), создаются группы (CLASS) по крайней мере, на некоторых курсах могут и не создаваться группы. Т.е. экземпляр сущности (строка) в таблице COURSE не требует обязательного наличия соответствующего экземпляра сущности в таблице CLASS. Поэтому сущность CLASS рассматривается как необязательная по отношению к сущности COURSE. Необязательная связь на ER-диаграмме показывается небольшим кружком со стороны необязательной сущности. Существование необязательности указывает на то, что для необязательной сущности min значение мощности связи равно 0.

Участие сущности в связи обязательно (mandatory participation), если один экземпляр сущности обязательно требует соответствующего экземпляра сущности в отдельной связи. Если около сущности не изображен никакой дополнительный символ, то это означает, что данная сущность участвует в обязательной связи со связанной сущностью. Min мощность для обязательной сущности равна 1.

а) Сущность CLASS необязательна для сущности COURSE

б) Сущности COURE и CLASS в обязательной связи.

Рис.1.25. Изображение обязательной и необязательной связей в ER-модели.

В терминах проектирования БД существование сильной связи между порождающей сущностью и связанной с ней сущностью или сущностями ассоциируется со слабыми сущностями.

Слабой сущностью (weak entity) называется сущность, которая удовлетворяет двум условиям:

условию зависимости от существования, т.е. она не может существовать без сущности, с которой она связана;

ее первичный ключ частично или целиком произведен из порождающей сущности данной связи.

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

Рис. 1.26. Слабая сущность в ER-диаграммах.

Слабая сущность наследует все части первичного ключа своего сильного партнера по связи. Именно проектировщик БД решает, нужно или нет объявлять сущность слабой.

Степень связи (relationship degree) указывает на число ассоциированных сущностей. Унарная связь (unary relationship) существует тогда, когда ассоциация поддерживается внутри единственной сущности. Бинарная связь (binary relationship) существует тогда, когда ассоциируются две сущности. Тернарная связь (ternary relationship) имеет место тогда, когда связываются три сущности. Хотя существуют и более высокие степени связи, они довольно редки и не имеют особых названий.

Если сущность имеет связи с собой, то такая связь называется рекурсивной.

Рис. 1.27. ER-представление рекурсивной связи

Иерархия обобщенных представлений (generalization hierarchy), отображает связи «предок-потомок». В контексте реляционных БД иерархия обобщенных представлений отображает связи между супертипами сущности верхнего уровня и подтипами сущности нижнего уровня. Т.е. супертип содержит совместно используемые атрибуты, в то время как подтип содержит уникальные атрибуты.

Рис. 1.28. Иерархия обобщенных представлений.

Связи наследуются, т.е. подтип сущности наследует атрибуты и связи от супертипа сущности. Например, все пилоты, механики и бухгалтера имеют табельные номера, ФИО, домашний адрес и т.д., но они могут иметь атрибуты, уникальные для их специализации. Другими словами, супертип набора сущностей обычно связан с несколькими уникальными и непересекающимися подтипами набора сущностей. Такие непересекающиеся связи обозначаются буквой ‘G’.

Супертип и подтип(ы) поддерживают связь 1:1. Например, структуру таблицы EMPLOYEE можно заменить двумя таблицами, одна из которых представляет супертип EMPLOYEE, а другая – подтип PILOT.

Некоторые супертипы содержат пересекающиеся (overlapping) подтипы. Например, какой-то сотрудник может быть преподавателем, но в то же время и администратором.

Пересекающиеся связи отображаются символами ‘Gs’.

Рис. 1.29. Иерархия обобщенных представлений с пересекающимися подтипами.