Что такое внешняя сущность привести примеры
Сущности и их атрибуты
Дата добавления: 2015-07-04 ; просмотров: 25258 ; Нарушение авторских прав
Сущность – некоторый объект, явление из рассматриваемой предметной
области. Примеры сущностей: человек, автомобиль, сделка, визит к стоматоло-
Атрибуты – данные, описывающие свойства сущности. Примеры атрибу-
тов: фамилия, цвет, стоимость, дата.
В контексте различных предметных областей одно и то же явление может
считаться как сущностью, так и атрибутом.
Следует различать тип сущности и конкретные ее экземпляры.
Тип сущности – признак принадлежности к некоторому классу (множест-
ву) объектов (явлений). Тип сущности характеризуется множеством ее атрибу-
Экземпляр сущности – конкретный объект, принадлежащий определенно-
му классу объектов. Экземпляр сущности определяется значениями ее атрибу-
Фактически, в базе данных хранятся только наборы значений атрибутов.
Каждый такой набор определяет один экземпляр сущности.
Пример 2.1.
Экземпляр сущности «персона»
Обратим внимание, что атрибут «номер телефона» может иметь более од-
Многозначные атрибуты. Может оказаться, что некоторый атрибут сущ-
ности способен принимать одновременно несколько значений. Реляционная
модель, в которую должна быть впоследствии преобразована данная инфологи-
ческая модель, не допускает многозначности атрибутов. Данное противоречие
должно быть разрешено. Возможное решение – образование новой сущности.
В приведенном ранее примере атрибут «номер телефона» становится кан-
дидатом на создание сущности «номер телефона».
Другое решение – заменить название атрибута «номер телефона» на «пе-
речень номеров телефонов» и позволить хранить несколько номеров, пере-
численных через запятую, в виде одной текстовой строки. Кроме того, некото-
рые СУБД позволяют размещать в ячейках таблиц массивы, содержащие не-
сколько элементов. Однако при сохранении многозначного атрибута могут воз-
никнуть сложности с извлечением данных. Например, будет затруднительно
составить запрос следующего вида: «извлечь из БД сведения о персонах,
имеющих заданный номер телефона».
Кроме того, возможное решение зависит от общего контекста разрабаты-
ваемой БД. Если речь идет о контактных номерах телефонов сторонних клиен-
тов, номер, скорее всего, является атрибутом и возможные повторы маловеро-
ятны и несущественны. Если же ставится задача построения телефонного спра-
вочника некоторой организации, в которой, с одной стороны, один сотрудник
может быть доступен по нескольким номерам, а с другой – по одному номеру
может быть доступно несколько сотрудников, номер телефона, очевидно, ста-
новится самостоятельной сущностью.
Домен атрибута – множество значений, которые атрибут может прини-
мать. Доменом может быть, например, множество допустимых значений даты,
диапазон целых чисел или множество текстовых строк. Также это может быть
При реализации модели на языке конкретной СУБД домены приводятся в
соответствие с имеющимися типами данных.
Если в процессе разработки и анализа модели выявляются достаточно спе-
рассматриваться в качестве кандидатов на создание новых сущностей.
Идентификация сущностей. Для того чтобы экземпляры сущности можно
было отличить один от другого, следует описать способ их идентификации.
Роль идентификатора выполняет атрибут или группа атрибутов, совокуп-
ность значений которых уникальна для каждого экземпляра сущности. В реля-
ционной модели такой уникальный идентификатор называют первичным
ключом.
Во многих случаях для идентификации может быть использован специаль-
ный целочисленный атрибут (номер экземпляра сущности).
Связи между сущностями. После определения сущностей следует описать
связи (взаимоотношения) между ними.
Связь устанавливается между экземплярами сущностей, а не их типами.
Например, для сущностей «клиент» и «заказ» связь устанавливается между кон-
кретным клиентом и его заказами. Для связывания экземпляров сущностей ис-
пользуются их уникальные идентификаторы экземпляров сущности (первичные
Один-к-одному
Один-ко-многим
Многие-ко-многим
Вид связи определяется количеством экземпляров сущностей, участвующих
в связи с каждой из сторон.
При связи вида «один-к-одному», экземпляр каждой из сущностей может
быть связан не более чем с одним экземпляром другой сущности.
Возможное применение связи «один-к-одному» – хранить отдельно некото-
рый набор секретных атрибутов, для доступа к которым нужны более высокие
привилегии. Пример – связь между сущностями «клиент» и «кредитная карта».
При обнаружении связи вида «один-к-одному» следует проанализировать
причину ее возникновения. Часто такую связь лучше преобразовать в «один-ко-
многим» или уничтожить, объединив две сущности в одну (новая сущность бу-
дет содержать атрибуты обеих первоначальных сущностей).
Пример связи «один-ко-многим» – связь между клиентом и его заказами.
Клиент может сделать много заказов (или ни одного), но заказ может быть свя-
зан только с одним клиентом. Другой пример: в кошельке может одновременно
находиться много денежных банкнот, но каждая банкнота в определенный мо-
мент времени может находиться не более, чем в одном кошельке.
Между приведенными примерами есть отличие: заказ обязательно должен
быть связан с 1 клиентом (без клиента он не существует), а банкнота может
быть связана с 0 кошельков или с 1 кошельком (она способна существовать без
При связи между сущностями вида «многие-ко-многим» каждому экземп-
ляру первой сущности могут быть поставлены в соответствие несколько экзем-
пляров второй сущности (и наоборот).
Пример – связь между журналами и подписчиками. Подписчик может вы-
писать несколько журналов и каждому наименованию журнала могут соответ-
ствовать много подписчиков.
Реляционная модель баз данных не позволяет реализовать связь «многие-
ко-многим». Эта проблема может быть решена введением дополнительной
ER-диаграммы. Наименование диаграмм происходит от английского «En-
tity-Relationship» («сущность-связь»).
Классическая форма представления сущностей и их атрибутов использует
прямоугольники для обозначения самих сущностей и овалы – для обозначения
их атрибутов. Иногда в диаграммах атрибуты отдельных сущностей опускают,
чтобы более очевидной была структура в целом. Также зачастую удобным ока-
зывается применение компактной формы описания сущностей.
Пример. 2.2. На рис. 2.1 представлена рассмотренная ранее сущность «Пер-
сона» в двух формах – классической и компактной. Символом «*» помечен ат-
рибут, являющийся идентификатором сущности (иногда вместо использования
звездочки, имя такого атрибута подчеркивают).
Что такое внешняя сущность привести примеры
Мы опишем работу с ER-диаграммами близко к нотации Баркера, как довольно легкой в понимании основных идей. Данная глава является скорее иллюстрацией методов семантического моделирования, чем полноценным введением в эту область.
Основные понятия ER-диаграмм
Каждая сущность должна иметь наименование, выраженное существительным в единственном числе.
Примерами сущностей могут быть такие классы объектов как «Поставщик», «Сотрудник», «Накладная».
Каждая сущность в модели изображается в виде прямоугольника с наименованием:
Например, представителем сущности «Сотрудник» может быть «Сотрудник Иванов».
Экземпляры сущностей должны быть различимы, т.е. сущности должны иметь некоторые свойства, уникальные для каждого экземпляра этой сущности.
Наименование атрибута должно быть выражено существительным в единственном числе (возможно, с характеризующими прилагательными).
Примерами атрибутов сущности «Сотрудник» могут быть такие атрибуты как «Табельный номер», «Фамилия», «Имя», «Отчество», «Должность», «Зарплата» и т.п.
Атрибуты изображаются в пределах прямоугольника, определяющего сущность:
Сущность может иметь несколько различных ключей.
Ключевые атрибуты изображаются на диаграмме подчеркиванием:
Связи позволяют по одной сущности находить другие сущности, связанные с нею.
Графически связь изображается линией, соединяющей две сущности:
Каждая связь имеет два конца и одно или два наименования. Наименование обычно выражается в неопределенной глагольной форме: «иметь», «принадлежать» и т.п. Каждое из наименований относится к своему концу связи. Иногда наименования не пишутся ввиду их очевидности.
Каждая связь может иметь один из следующих типов связи:
Связь типа один-к-одному означает, что один экземпляр первой сущности (левой) связан с одним экземпляром второй сущности (правой). Связь один-к-одному чаще всего свидетельствует о том, что на самом деле мы имеем всего одну сущность, неправильно разделенную на две.
Связь типа много-ко-многим означает, что каждый экземпляр первой сущности может быть связан с несколькими экземплярами второй сущности, и каждый экземпляр второй сущности может быть связан с несколькими экземплярами первой сущности. Тип связи много-ко-многим является временным типом связи, допустимым на ранних этапах разработки модели. В дальнейшем этот тип связи должен быть заменен двумя связями типа один-ко-многим путем создания промежуточной сущности.
Каждая связь может иметь одну из двух модальностей связи:
Модальность «может» означает, что экземпляр одной сущности может быть связан с одним или несколькими экземплярами другой сущности, а может быть и не связан ни с одним экземпляром.
Модальность «должен» означает, что экземпляр одной сущности обязан быть связан не менее чем с одним экземпляром другой сущности.
Связь может иметь разную модальность с разных концов (как на Рис. 4).
Описанный графический синтаксис позволяет однозначно читать диаграммы, пользуясь следующей схемой построения фраз:
Каждая связь может быть прочитана как слева направо, так и справа налево. Связь на Рис. 4 читается так:
Слева направо: «каждый сотрудник может иметь несколько детей».
Справа налево: «Каждый ребенок обязан принадлежать ровно одному сотруднику».
Пример разработки простой ER-модели
ER-диаграммы удобны тем, что процесс выделения сущностей, атрибутов и связей является итерационным. Разработав первый приближенный вариант диаграмм, мы уточняем их, опрашивая экспертов предметной области. При этом документацией, в которой фиксируются результаты бесед, являются сами ER-диаграммы.
Предположим, что перед нами стоит задача разработать информационную систему по заказу некоторой оптовой торговой фирмы. В первую очередь мы должны изучить предметную область и процессы, происходящие в ней. Для этого мы опрашиваем сотрудников фирмы, читаем документацию, изучаем формы заказов, накладных и т.п.
Задав дополнительные вопросы менеджеру, мы выяснили, что фирма имеет несколько складов. Причем, каждый товар может храниться на нескольких складах и быть проданным с любого склада.
Куда поместить сущности «Накладная» и «Склад» и с чем их связать? Спросим себя, как связаны эти сущности между собой и с сущностями «Покупатель» и «Товар»? Покупатели покупают товары, получая при этом накладные, в которые внесены данные о количестве и цене купленного товара. Каждый покупатель может получить несколько накладных. Каждая накладная обязана выписываться на одного покупателя. Каждая накладная обязана содержать несколько товаров (не бывает пустых накладных). Каждый товар, в свою очередь, может быть продан нескольким покупателям через несколько накладных. Кроме того, каждая накладная должна быть выписана с определенного склада, и с любого склада может быть выписано много накладных. Таким образом, после уточнения, диаграмма будет выглядеть следующим образом:
Точно также поступим со связью, соединяющей сущности «Склад» и «Товар». Введем дополнительную сущность «Товар на складе». Атрибутом этой сущности будет «Количество товара на складе». Таким образом, товар будет числиться на любом складе и количество его на каждом складе будет свое.
Теперь можно внести все это в диаграмму:
Концептуальные и физические ER-модели
Разработанный выше пример ER-диаграммы является примером концептуальной диаграммы. Это означает, что диаграмма не учитывает особенности конкретной СУБД. По данной концептуальной диаграмме можно построить физическую диаграмму, которая уже будут учитываться такие особенности СУБД, как допустимые типы и наименования полей и таблиц, ограничения целостности и т.п. Физический вариант диаграммы, приведенной на Рис. 9 может выглядеть, например, следующим образом:
Легко заметить, что полученные таблицы сразу находятся в 3НФ.
Выводы
Реальным средством моделирования данных является не формальный метод нормализации отношений, а так называемое семантическое моделирование.
Диаграммы сущность-связь позволяют использовать наглядные графические обозначения для моделирования сущностей и их взаимосвязей.
Различают концептуальные и физические ER-диаграммы. Концептуальные диаграммы не учитывают особенностей конкретных СУБД. Физические диаграммы строятся по концептуальным и представляют собой прообраз конкретной базы данных. Сущности, определенные в концептуальной диаграмме становятся таблицами, атрибуты становятся колонками таблиц (при этом учитываются допустимые для данной СУБД типы данных и наименования столбцов), связи реализуются путем миграции ключевых атрибутов родительских сущностей и создания внешних ключей.
При правильном определении сущностей, полученные таблицы будут сразу находиться в 3НФ. Основное достоинство метода состоит в том, модель строится методом последовательных уточнений первоначальных диаграмм.
В данной главе, являющейся иллюстрацией к методам ER-моделирования, не рассмотрены более сложные аспекты построения диаграмм, такие как подтипы, роли, исключающие связи, непереносимые связи, идентифицирующие связи и т.п.
Внешние сущности
Моделирование потоков данных (процессов)
В основе данной методологии (методологии Gane/Sarson [11]) лежит построение модели анализируемой ИС – проектируемой или реально существующей. В соответствии с методологией модель системы определяется как иерархия диаграмм потоков данных (ДПД или DFD), описывающих асинхронный процесс преобразования информации от ее ввода в систему до выдачи пользователю. Диаграммы верхних уровней иерархии (контекстные диаграммы) определяют основные процессы или подсистемы ИС с внешними входами и выходами. Они детализируются при помощи диаграмм нижнего уровня. Такая декомпозиция продолжается, создавая многоуровневую иерархию диаграмм, до тех пор, пока не будет достигнут такой уровень декомпозиции, на котором процесс становятся элементарными и детализировать их далее невозможно.
Внешняя сущность представляет собой материальный предмет или физическое лицо, представляющее собой источник или приемник информации, например, заказчики, персонал, поставщики, клиенты, склад. Определение некоторого объекта или системы в качестве внешней сущности указывает на то, что она находится за пределами границ анализируемой ИС. В процессе анализа некоторые внешние сущности могут быть перенесены внутрь диаграммы анализируемой ИС, если это необходимо, или, наоборот, часть процессов ИС может быть вынесена за пределы диаграммы и представлена как внешняя сущность.
Внешняя сущность обозначается квадратом (рисунок 2.13), расположенным как бы «над» диаграммой и бросающим на нее тень, для того, чтобы можно было выделить этот символ среди других обозначений:
Что такое внешняя сущность привести примеры
При проектировании информационных систем с входящими в их состав базами данных удобно пользоваться классификацией моделей изображённой на рис. 1. Все модели данных делятся на три вида, используемые на трёх этапах проектирования. На первом этапе исследуется предметная область, выявляются в ней объекты и процессы, которые нужно будет отобразить в информационной системе при решении задач, для которых разрабатывается информационная система. Модель, используемая на этом этапе, служит для наглядного представления семантических связей в предметной области. Строгая формализация структуры данных на этом этапе не обязательна. Такие модели называются инфологическими. В настоящее время наиболее распространённой инфологической моделью является модель сущность-связь.
Рис. 1. Модели данных |
После того как закончено исследование предметной области и детально поставлена задача проектирования можно переходить ко второму этапу, на котором проектируется база данных. На этом этапе используются формальные модели данных, в которые нужно преобразовать инфологическую модель. Такие модели, непосредственно используемые в базах данных, называются даталогическими. На рис.1 показаны три вида датологических моделей: иерархические, сетевые и реляционные.
Иерархическая модель имеет древовидную структуру. Каждая ветвь в такой структуре имеет одну родительскую ветвь и много дочерних. Примерами иерархических систем служат завод, система каталогов с файлами в ЭВМ. Завод состоит из цехов, цеха из участков, участки из станков с рабочими.
В иерархической системе элементы одного уровня не связаны непосредственно между собой. В ней нельзя непосредственно указать, что участок механического цеха снабжает деталями участок сборочного цеха. Нужна горизонтальная связь между элементами одного уровня иерархии. Поэтому для завода лучше подходит сетевая модель, в которой можно указать непосредственную связь любого элемента с любым.
Наибольшее распространение получили реляционные модели баз данных, о которых подробно будет рассказано в следующей лекции.
Базу данных независимо от её даталогической модели можно по-разному разместить на разных внешних носителях. Например, можно использовать жёский диск или твёрдотельную внешнюю память. Для описания физического размещения базы даных служит физическая модель.
МОДЕЛЬ СУЩНОСТЬ-СВЯЗЬ
Инфологическое моделирование
Информационая система (ИС) создаётся для решения задач некоторой организации (завода, банка, вуза, библиотеки и т.д.). Для создания и эксплуатации ИС требуется её описание. Полное, исчерпывающее, описание ИС должно включать в себя не только саму ИС, но и окружающую среду, то есть, должно быть описанием предметной области.
Существенной, если не главной частью ИС являются хранящиеся в ней данные. При проектировании ИС данные нужно представить в виде простой модели, отображающей смысл данных, их взаимосвязь и не привязываться при этом к конкретному типу базы данных. Такие модели получили название инфологических.
Инфологическую модель можно построить, опираясь только на интуитивное представление о данных.
На рис. 2 приведён простой (вырожденный) пример инфологической модели.
Рис. 2. Инфологическая модель преподавателя |
Если нужно более подробно описать дисциплины и иметь возможность, зная дисциплину, найти ведущего её преподавателя, то модель придётся уcложнить, выделив дисциплину отдельно и связав её с преподавателем (рис. 3)
Рис. 3. Инфологическая модель преподаватель-дисциплина |
Один преподаватель может вести много дисциплин и одну дисциплину могут вести много преподавателей. Такая связь называется многие ко многим и обозначается как M:N, а на рисунках часто как ∞ ←→ ∞.
Рис. 4. Инфологическая модель для построения расписания занятий |
На рис. 5 изображена инфологическая модель библиотеки
Рис. 5. Инфологическая модель библиотеки |
В 1976 году Чен предложил термин сущность, а состоящая из связанных между собой сущностей модель получила название модель сущность-связь (entity-relation).
Определение
Сущность состоит из множества экземпляров, обладающих одинаковым набором свойств.
Совокупность свойств, необходимая для отличия одного экземпляра от других, называется идентификатором сущности.
Рассмотрим подробно, какими бывают сами сущности, их свойства и связи. В литературе часто вместо термина свойство сущности используют атрибут сущности. Но термин атрибут отношения (колонка, столбец таблицы) применяют в реляционной модели. При одновременном применении обеих моделей может возникнуть путаница.
Виды сущностей
Рис. 6. Тип и подтип |
Связи между сущностями
Рис. 7. Связь между детьми и родителями |
Полной связью между двумя сущностями называется такая связь, при которой каждому экземпляру одной сущности соответствует хотя бы один экземпляр другой сущности. Например, каждому студенту соответствует група (одна) и каждой группе соответствуют студенты.
При частичной связи некоторые экземпляры одной сущности не связаны ни с одним экземпляром другой сущности. Например, не все студенты живут в общежитии.
Связь типа 1:1 между сущностями встречается нечасто. Теоретически всегда такие сущности можно объединить в одну. Связь 1:1 создают для лучшего понимания модели. Напимер, директора и завод лучше рассматривать как разные сущности. Связь 1:1 коварна кажущейся очевидностью, Например, у государства один глава: император, президент, царь и т.д., но в древнем Риме правили два консула.
Связь типа M:N, M>1, N>1(или ∞ ←→ ∞) требует при переходе к реляционной модели строить дополнительное отношение (таблицу связей). Примеры связей типа M:N приведены на рисунках 3, 4, 5.
Рекурсивные связи между равноправными экземплярами сущности. На рис. 9 экземпляры сущности студенты, живущие в общежитии, объединены по признаку (свойству) номер комнаты, в которой они живут.
Рис. 9. Рекурсивные связи между студентами, живущими в одной комнате |
Рекурсивные связи между неравноправными экземплярами сущности. Так связаны между собой сотрудники и начальник отдела как экземпляры сущности Сотрудники института.
В одной сущности тип и подтип. Несколько экземпляров сущности, связанные одинаковым значением одного свойства, можно выделить в подтип, т.е. в новую сущность, являющуюся подтипом исходной. На рис. 6 в подтип выделены сотрудники, имеющие должность программист.
Примеры рекурсивных связей показывают, что между сущностями, связями и свойствами существуют очень сложные зависимости.
Свойства сущностей:
Простое свойство: фамилия.
Многозначные: награды, специальности.
Ключевое: номер зачётной книжки.
ПРЕОБРАЗОВАНИЕ МОДЕЛИ СУЩНОСТЬ-СВЯЗЬ
В РЕЛЯЦИОННУЮ МОДЕЛЬ
Связь один ко многим
Для задания связи один ко многим в отношеннии со стороны многие создаётся дополнительный атрибут внешний ключ (рис. 10). Внешний ключ принимает значения только из множества значений первичного ключа отношения со стороны один.
Рис. 10.Преобразование модели сущность-связь со свзью 1:N в реляционную модель |
Связь многие ко многим
Для задания связи многие ко многим необходимо создать дополнительную таблицу связей (рис. 11), атрибутами которой служат внешние ключи, соответствующие первичным ключам связываемых таблиц.
Рис. 11.Преобразование модели сущность-связь со свзью M:N в реляционную модель |
На рис. 12 показаны заполненные таблицы Prep, Disc и PrepDisс. Для того, чтобы указать, что преподаватель Андреев ведёт дисциплину Фортран, в таблице PrepDisc создана строка со значеиями KodP=1 и kodD=3.
Рис. 12. Пример заполнения таблицы связей в реляционной модели. |
Связь степени К
Для связи степени К в реляционной модели строится таблица связи с К внешними ключами. На рис. 13 построены модель сущность-связь и реляционная модель для связи степени К=5.