Ассоциативная сущность (или ассоциация) выражает собой связь «многие ко многим» между двумя сущностями. Является вполне самостоятельной сущностью. Например, между сущностями ТОВАР и КЛИЕНТ существует ассоциативная связь, выражаемая ассоциативной сущностью ЗАКАЗАННЫЙ _ТОВАР.
Характеристика
Характеристическую сущность еще называют слабой сущностью. Она связана с более сильной сущностью связями «один ко многим» и «один к одному». Характеристическая сущность описывает или уточняет другую сущность. Она полностью зависит от нее и исчезает с исчезновением последней. Например, сущность ЗАРПЛАТА является характеристикой конкретных работников предприятия и не может в таком контексте существовать самостоятельно – при удалении экземпляра сущности РАБОТНИК должны быть удалены и экземпляры сущности ЗАРПЛАТА, связанные с удаляемым работником.
Обозначение
Обозначение это такая сущность, с которой другие сущности связаны по принципу «многие к одному» или «один к одному». Обозначение, в отличие характеристики, является самостоятельной сущностью. Например, сущность ФАКУЛЬТЕТ обозначает принадлежность студента к данному подразделению института, но является вполне самостоятельной.
Модель «сущность – связь»
Любой фрагмент предметной области может быть представлен некоторым набором сущностей и связями между ними. Например, рассматривая предметную область ФАКУЛЬТЕТ можно выделить следующие основные сущности: СТУДЕНТ, КАФЕДРА, СПЕЦИАЛЬНОСТЬ, ДЕКАНАТ, ГРУППА, ПРЕПОДАВАТЕЛЬ, ЭКЗАМЕН.
На первом этапе создания ER-модели данных следует выделить все сущности, которые предполагается описывать исходя из постановки задачи. Сущностью может быть не только некоторый материальный объект, но и некоторый процесс, например ЭКЗАМЕН, ЛЕКЦИЯ. Сущностью может быть и некоторая количественная и качественные характеристики объекта: УЧЕНОЕ ЗВАНИЕ, СТАЖ и др. Все в действительности зависит от постановки задачи и от нашего анализа предметной области.
Атрибут сущности
Атрибут сущности – свойство, характеризующее объект. Все атрибуты сущности должны иметь различные названия и обладать различным смыслом (трактовкой). Атрибут должен иметь только одно значение. Для хранения значения «20 кГ» следует завести два атрибута – ЕДИНИЦА_ИЗМЕРЕНИЯ и КОЛИЧЕСТВО.
Ключ
Ключ является уникальным идентификатором экземпляров сущности.
При определении типа сущности необходимо гарантировать, что каждый экземпляр сущности является отличимым от любого другого экземпляра той же сущности. Поскольку сущность является абстракцией реального или представляемого объекта внешнего мира, это требование нужно иметь в виду уже при выборе кандидата в типы сущности.
Например, предположим, что проектируется база данных для поддержки работы книжного склада. На складе могут храниться произвольные части тиража любого издания любой книги. Может ли в этом случае индивидуальная книга являться прообразом типа сущности? Утверждается, что нет, поскольку отсутствует возможность различения книг одного издания.
Модель сущность связь, ER диаграмма
Для книжного склада прообразом типа сущности будет набор одноименных книг одного автора, вышедших в одном издании. Одним из атрибутов этого типа сущности будет число книг в наборе. Но когда книга поступает в библиотеку и ей присваивается уникальный библиотечный номер, она становится разумным прообразом типа сущности. Плохо устроены библиотеки, в которых не различаются индивидуальные книги (даже одноименные книги одного автора, вышедшие в одном издании).
Но при проектировании базы данных мало того, чтобы проектировщик убедился в правильном выборе типов сущности, гарантирующем различие экземпляров каждого типа сущности. Необходимо сообщить системе автоматизации проектирования БД, каким образом будут различаться эти экземпляры, т.е. сообщить, как конструируются уникальные идентификаторы экземпляров каждого типа сущности. В ER-модели у экземпляра типа сущности не может быть назначаемого пользователем имени или назначаемого системой внешнего уникального идентификатора. Экземпляр типа сущности может идентифицироваться только своими индивидуальными характеристиками, а они представляются значениями атрибутов и экземплярами типов связи, связывающими данный экземпляр типа сущности с экземплярами других типов сущности или этого же типа сущности. Поэтому уникальным идентификатором сущности может быть атрибут, комбинация атрибутов, связь, комбинация связей или комбинация связей и атрибутов, уникально отличающая любой экземпляр сущности от других экземпляров сущности того же типа.
Связь
В ER-модели для представления схемы базы данных используются два равноправных понятия — сущность и связь.
Связь — это графически изображаемая ассоциация, устанавливаемая между двумя типами сущностей. Как и сущность, связь — это типовое понятие, все экземпляры обоих связываемых типов сущностей подчиняются устанавливаемым правилам связывания. Поэтому правильнее говорить о типе связи, устанавливаемой между типами сущности, и об экземплярах типа связи, устанавливаемых между экземплярами типа сущности. (Тем не менее, как и в случае типа сущности, мы будем часто использовать термин связь в значении типа связи) В рассматриваемом варианте ER-модели эта ассоциация всегда является бинарной и может существовать между двумя разными типами сущностей или между типом сущности и им же самим (рекурсивная связь). В любой связи выделяются два конца (в соответствии с существующей парой связываемых сущностей), на каждом из которых указываются имя конца связи, степень конца связи (сколько экземпляров данного типа сущности должно присутствовать в каждом экземпляре данного типа связи), обязательность связи (т.е. любой ли экземпляр данного типа сущности должен участвовать в некотором экземпляре данного типа связи).
В некоторых вариантах ER-модели конец связи называют ролью связи в данной сущности. Тогда можно говорить об имени роли, степени роли и обязательности роли связи в данной сущности.
Связь представляется в виде направленной или ненаправленной линии, соединяющей две сущности или ведущей от сущности к ней же самой.
Обязательный конец связи изображается сплошной линией, а необязательный — прерывистой линией.
Отметим, что связи в ER-модели играют роль, отличную от той, какую играют отношения в реляционной модели данных. В реляционной модели отношение (relation) — это единственная родовая структура данных. С помощью этого же механизма представляются «связанные» сущности (вспомните, например, про внешние ключи).
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru
Модели данных и методы построения баз данных , страница 2
Каждая сущность должна иметь связь, представляющую информационные потребности и правила организации. Связь (Relationship) – двунаправленная ассоциация между двумя сущностями или сущностью и ей самой (рекурсивная связь).
Каждое направление связи имеет (Рисунок 4):
§ Имя, например, “участвует в” или “закреплен за”
§ “должно быть” – сплошная линия на ER-диаграмме
§ “может быть” – пунктирная линия на ER-диаграмме
§ “один и только один” – одиночная линия на ER-диаграмме
§ “один или более” – куриная лапка на ER-диаграмме
Рекурсивная связь на ER-диаграмме обозначается петлей.
Синтаксис представления связей:
Каждая сущность имя связи конечная сущность.
Каждый Сотрудник может участвовать в одном или более Проектов.
Каждый Проект должен быть закреплен за одним или более Сотрудников.
Каждый Сотрудник может работать под руководством одного и только одного Сотрудника.
Каждый Сотрудник может руководить одним или более Сотрудниками.
Рисунок 4 Представление связей в ER-диаграмме
Уникальный идентификатор может состоять не только из атрибутов. Сущность может быть уникально различима, также, с помощью связи. Например, подпроект однозначно идентифицируется своим номером, но, если проектов несколько, тогда номера подпроектов могут повторяться.
Чтобы, несмотря на это, подпроект можно было однозначно идентифицировать, номер проекта, содержащего данный подпроект, также, должен являться частью уникального идентификатора (UID). На ER-диаграмме вхождение связи в UID обозначается поперечной чертой. Связь, входящая в уникальный идентификатор, должна быть обязательной с мощностью “один и только один” в направлении, имеющем отношение к UID.
Типы связей
Существует три типа связей:
§ Многие к одному
§ Многие ко многим
Один к одному
Мощность “один и только один” в обоих направлениях. Отображает такой характер отношений между объектами, когда каждому экземпляру одной сущности соответствует только один экземпляр другой сущности и наоборот. Это довольно редкий вид связи. Если при проектировании базы данных появляется такой вид связи, рекомендуется рассмотреть вопрос, нельзя ли объединить эти две сущности.
Например, если в нашем примере добавить еще одну сущность “Паспортные данные”, то связь между этой сущностью и сущностью “Сотрудник” будет “один к одному”. В этом случае будет лучше добавить атрибут “паспортные данные” к сущности “Сотрудник”.
Многие к одному
Мощность “один или более” в одном направлении и “один и только один” в другом. Такая связь в реляционной модели встречается наиболее часто. В нашем примере такая связь реализована между сущностями “Подпроект” и “Проект”.
Многие ко многим
Мощность “один или более” в обоих направлениях. В нашем примере такая связь реализована между сущностями “Сотрудник” и ”Проект”. Реляционная модель не позволяет напрямую реализовать связь “многие ко многим”, т.к. в этом случае не избежать ситуации, когда множественные значения вынуждены храниться в одном столбце, а это противоречит принципу неделимости, согласно которому каждая ячейка должна содержать одну порцию данных. Таким образом, связь “многие ко многим” заменяется несколькими связями “многие к одному” и представляется с помощью сущности пересечения (Рисунок 5).
Рисунок 5 Практическая реализация связи «многие ко многим» в ER-диаграмме
Не забывайте, что при логическом проектировании системы необходимо нормализовать модель данных, чтобы устранить избыточность информации.
Правила целостности и ключи
Условия целостности базы данных – это ограничения, направленные на сохранение базы данных правильной и согласованной. Соблюдение этих ограничений должно контролироваться сервером базы данных или прикладным приложением.
Ни одна часть первичного ключа не может иметь значение NULL. Первичный ключ должен быть уникальным
Значения внешнего ключа должны совпадать с первичным ключом или быть NULL
Значения данных в столбце должны соответствовать заданному типу данных
Ограничения, обеспечивающие выполнение бизнес-правил (например, сотрудник определенного отдела не может участвовать в работе ни над одним проектом)
Сервер базы данных контролирует целостность данных посредством ключей:
§ Первичные ключи
Первичный ключ (PK) служит для уникальной идентификации строки. Первичный ключ должен быть уникален и определен. Первичный ключ может состоять из нескольких столбцов (составной первичный ключ). В составном первичном ключе уникальной должна быть комбинация значений в столбцах, составляющих первичный ключ. Никакая часть первичного ключа не может содержать неопределенные значения.
§ Уникальные ключи
Таблица может иметь несколько колонок, претендующих на роль первичного ключа (уникальных колонок). Уникальный ключ – столбец или сочетание столбцов, которые могут использоваться в качестве первичного ключа. В этом случае один из таких уникальных ключей следует объявить первичным ключом, а остальные оставить уникальными (альтернативными) ключами.
§ Внешние ключи
Внешний ключ (FK) – столбец или сочетание столбцов в одной таблице, которые содержат ссылку на первичный или уникальный ключ в той же или другой таблице. Внешний ключ основан на значениях данных и является логическим указателем. Значения внешнего ключа должны совпадать со значениями соответствующих первичных или уникальных ключей или быть NULL. Если внешний ключ является частью первичного ключа, он должен быть определен.
Физическое проектирование
После того, как построена ER-модель базы данных, необходимо преобразовать ее в табличную модель и предусмотреть дополнительные объекты, предназначенные для ускорения поиска информации (индексы) и удобства вывода данных (представления). Кроме того, необходимо продумать, как лучше хранить объекты базы данных: на каких носителях, какой объем памяти выделить. Именно физическое проектирование обеспечивает производительность системы.
Отображение ER-модели в табличную модель
Для отображения ER-модели в табличную модель используется бланк экземпляра таблицы базы данных. Бланк должен содержать имя таблицы базы данных, и представлять собой таблицу, колонки которой являются именами столбцов таблицы базы данных, а строки содержат информацию об этих столбцах: типы ключей, обязательность и уникальность, внешние ключи, типы данных и максимальная длина. Здесь же рекомендуется привести примеры данных, которые будут храниться в соответствующих столбцах таблиц базы данных.
При заполнении бланка экземпляра таблицы используется собственная система обозначений:
Источник: vunivere.ru
5.3.2. Связи между сущностями
Сущность может быть расщеплена на два или более взаимно исключающих подтипов, каждый из которых включает общие атрибуты и/или связи. Эти общие атрибуты и/или связи явно определяются один раз на более высоком уровне. В подтипах могут определяться собственные атрибуты и/или связи.
В принципе выделение подтипов может продолжаться на более низких уровнях, но в большинстве случаев оказывается достаточно двух-трех уровней. Сущность, на основе которой определяются подтипы, называется супертипом.
Подтипы образуют либо полное множество (т.е. любой экземпляр супертипа должен относиться к некоторому подтипу) либо неполное (могут существовать экземпляры супертипа, не относящиеся ни к одному из подтипов). Подтипы одного уровня могут допускать пересечение экземпляров – один экземпляр супертипа может принадлежать двум и более подтипам.
Подтип наследует свойства и связи супертипа. Например, тип сущности ПРОГРАММИСТ является подтипом сущности СОТРУДНИК. Программисты обладают всеми свойствами сотрудников и участвуют во всех связях, однако обратные утверждения неверны. Тип сущности, его подтипы, подтипы этих подтипов и т.д. образуют иерархию типов сущности, пример которой приведен на рис. 5.4.
5.3.4. Нотации er- диаграмм
Как было отмечено ранее, одна из основных целей семантического моделирования состоит в том, чтобы результаты анализа предметной области были отражены в простом, наглядном, но в то же время формализованном и достаточно информативном виде. В этом смысле моделирование предметной области, базирующееся на использовании графических диаграмм, является удачным решением.
Графическая форма позволяет отобразить в компактном виде (за счет наглядных условных обозначений) типологию и свойства сущностей и связей, а формализмы, положенные в основу ER-диаграмм, дают возможность сформулировать конечный набор правил проектирования логической структуры базы данных. Диаграмма – графическое представление множества элементов, чаще всего изображаемое в виде связного графа с вершинами-объектами и ребрами-отношениями.
НаER-диаграмме вершинами являются сущности и (например, в нотации Чена) свойства сущностей. РебраER-диаграммы представляют собой связи между сущностями и между сущностью и ее свойствами. Существует несколько различных нотаций (языков) изображения ER-диаграмм.
Исторически первой является нотация Чена; в семействе стандартов IDEF модель «сущность-связь» реализуется нотацией IDEF1Х; используются нотации Мартина и Баркера, а также графические элементыUML. Рис. 5.5. ER-диаграмма в нотацииUML НотацияUML.На рис. 5.5 приведен примерER-диаграммы ПрО в нотацииUML.
Унифицированный язык моделирования UML (Unified Modeling Language) представляет собой язык для определения, представления, проектирования и документирования программных систем, организационно-экономических систем, технических систем и других систем различной природы. Структуру UML составляет стандартный набор диаграмм и нотаций. Главными в разработке UML были следующие цели:
- предоставить готовый к использованию выразительный язык визуального моделирования, позволяющий разрабатывать осмысленные модели и обмениваться ими;
- предусмотреть механизмы расширяемости базовых концепций языка;
- обеспечить независимость от конкретных языков программирования и процессов разработки.
- интегрировать лучший практический опыт.
В настоящее время UML находится в процессе стандартизации, проводимом организацией по стандартизации в области объектно-ориентированных методов и технологий (OMG — ObjectManagementGroup). Рассмотрим правила изображения сущностей, свойств и связей в этой нотации.
Каждый тип сущности в ER-диаграммах нотации UMLпредставляется в виде прямоугольника, содержащего имя сущности и перечень свойств сущности. В качестве имени сущности обычно используется существительное в единственном числе (например, ОТДЕЛ, ПРОЕКТ, СОТРУДНИК).
Имя сущности указывается в верхней части прямоугольника с прописной буквы, имена свойств перечисляются в нижней части прямоугольника и начинаются со строчной буквы. Слабые сущности характеризуются тем, что их нельзя однозначно идентифицировать только с помощью собственных атрибутов (в силу их зависимости от «родительских» сущностей и невозможности самостоятельного существования).
На ER-диаграммах слабые сущности не имеют первичных ключей (например, сущность ПОДЧИНЕННЫЙ) Свойства служат для уточнения, идентификации, характеристики или выражения состояния сущности или связи. Отражение на ER-диаграммах типологии свойств представлено в табл. 5.2. Таблица 5.2. Изображение типов свойств в UML
Тип свойства | Описание | Пример |
Свойство первичного ключа | после имени свойства в фигурных скобках помещается идентификация первичного ключа | ![]() |
Многозначное | после имени свойства в квадратных скобках задаются возможные границы изменения количества значений [1..N] | ![]() |
Производное | имя свойства начинается с наклонной черты «/» | ![]() |
Условное (необязательное) | после имени свойства в квадратных скобках задаются возможные границы изменения количества значений [0..N] | ![]() |
Составное | под именем составного свойства перечисляются с отступом вправо имена простых свойств | ![]() |
Бинарные связи обозначаются линиями с указанием имени связи и мощности связи со стороны каждой сущности. Мощность связи определяет количество объектов, соединяемых с каждым объектом на другом конце связи:
- 1..*- один или более;
- 0..*- ноль или более;
- 1– ровно один;
- 0..1– может быть один.
Может быть задан также диапазон (например, 1..10) или точное количество, отличное от 1 Для обозначения n-арной связи используется ромб, внутри которого указывается имя связи. Кратностьn-арной связи для каждой сущности показывает, каким может быть количество ее объектов в случае, если со стороны остальных сущностей-участниц в связи участвует ровно по одному объекту.
Например, трехсторонняя связь на рис. 5.6 определяет, что поставлять партии любых деталей для любого проекта может любой поставщик. Рис. 5.6. Пример трехсторонней связи Присутствие в задании мощности связи значения «0» объявляет связь как неполную (необязательную). Например, связь РАБОТАЕТ между сущностями ОТДЕЛ и СОТРУДНИК на рис.
5.5 должна читаться следующим образом: «Каждый сотрудник обязательно работает только в одном отделе; в отделе работает произвольное число сотрудников или не работает ни одного». Связь может быть модифицирована указанием роли. Например, для рекурсивной связи СОСТАВ на рис. 5.5 указаны роли: «Деталь состоит из…» и «Детальв составе…».
Связь «многие ко многим» может иметь собственные свойства, характеризующие взаимодействие сущностей (например, связи УЧАСТИЕ и РЕАЛИЗАЦИЯ ПРОЕКТА на рис. 5.5). В этом случае для изображения связи используется графический элемент, соответствующий слабой сущности. Прямоугольник сущности присоединяется к линии связи (или к ромбу в случае n-арной связи) пунктирной линией.
Нотация Чена.Каждый тип сущности в нотации Чена представляется в виде прямоугольника, содержащего имя сущности (существительное в единственном числе). Связь (и бинарная, и n-арная) наER-диаграмме отображается в виде ромба с именем связи внутри. В качестве имени обычно используются отглагольные существительные.
Свойства отображаются в виде эллипсов, содержащих имя свойства. Эллипс соединяется с соответствующей сущностью или связью линией (рис. 5.7). Рис. 5.7. Фрагмент ER-диаграммы в нотации Чена Участники связи соединены со связью линиями. Двойная линия обозначает полное (обязательное) участие сущности в связи с данной стороны.
Например, обязательная связь РУКОВОДСТВО со стороны сущности ПРОЕКТ (рис. 5.8) означает, что у каждого проекта должен быть руководитель. Однако не каждый сотрудник должен руководить проектом. Тип связи указывается индексами «1» или «М» над соответствующей линией. Например, связь РУКОВОДСТВО (рис.
5.8) имеет тип «один ко многим»: один сотрудник может руководить многими проектами; связь УЧАСТИЕ (рис. 5.7) имеет тип «многие ко многим»: один сотрудник может участвовать во многих проектах, и в проекте могут участвовать многие сотрудники. Рис. 5.8. Пример полной и неполной связей.
Для отражения слабых (зависимых) сущностей используются прямоугольники, стороны которых рисуются двойными линиями. Например, в представленной на слайде 9ER-диаграмме ПОДЧИНЕННЫЙ – сущность слабого типа. Стороны ромба рисуют двойными линиями, если это связь сущности слабого типа с сущностью, от которой она зависит.
Например, связь «Подчинение», связывающая сущность слабого типа ПОДЧИНЕННЫЙ с сущностью СОТРУДНИК, от которой она зависит. Рис. 5.9. Пример слабой сущности Правила изображения свойств различных типов в нотации Чена приведены в табл. 5.3.
Таблица 5.3. Изображение типов свойств в нотации Чена
Тип свойства | Описание | Пример |
Свойство первичного ключа | имя свойства подчеркивается | ![]() |
Многозначное | контур эллипса рисуется двойной линией | ![]() |
Производное | контур эллипса рисуется штриховой линией | ![]() |
Условное (необязательное) | эллипс соединяется с прямоугольником сущности пунктирной линией | ![]() |
Составное | составляющие свойства отображаются другими эллипсами, соединенными с эллипсом составного | ![]() |
Источник: studfile.net