Понятие ER-модели. Понятие сущности (entity). Атрибуты. Виды атрибутов
При проектировании базы данных и разработке программного продукта наиболее важной проблемой есть проблема взаимодействия разработчика с заказчиком. Задача разработчика – наиболее точно воссоздать пожелания заказчика при разработке программного продукта управления базой данных. Основная проблема, которую нужно решить разработчику – правильное построение базы данных, а точнее схемы (структуры) базы данных.
Кроме того, разработчик дополнительно встречается с другими трудностями, к которым можно отнести:
- поиск эффективных алгоритмов;
- подбор надлежащих структур данных;
- отладка и тестирование сложного кода;
- дизайн и удобство интерфейса приложения.
В процессе разработки программного обеспечения, управляющего базой данных, разработчик должен подробно выучить требования заказчика. База данных должна быть разработана таким образом, чтобы она была понятной, наиболее точно отображала решаемую проблему и не содержала избыточности в данных.
Чтобы облегчить процесс разработки (проектирования) базы данных, используются так называемые семантические модели данных. Для разных видов баз данных наиболее известной есть ER-модель данных (Entity-Relationship model).
2. Что такое ER-модель (Entity-relationship model)? Для чего нужно разрабатывать ER-модель?
ER-модель (Entity-relationship model или Entity-relationship diagram) – это семантическая модель данных, которая предназначена для упрощения процесса проектирования базы данных. Из ER-модели могут быть порождены все виды баз данных: реляционные, иерархические, сетевые, объектные. В основе ER-модели лежат понятия «сущность», «связь» и «атрибут».
Для больших баз данных построение ER-модели позволяет избежать ошибок проектирования, которые чрезвычайно сложно исправлять, в особенности, если база данных уже эксплуатируется или на стадии тестирования. Ошибки в разработке структуры базы данных могут привести к переделке кода программного обеспечения управляющего этой базой данных. В результате время, средства и человеческие ресурсы будут использованы неэффективно.
ER-модель – это представление базы данных в виде наглядных графических диаграмм. ER-модель визуализирует процесс, который определяет некоторую предметную область. Диаграмма «сущность»-«связь» – это диаграмма, которая представляет в графическом виде сущности, атрибуты и связи.
ER-модель – это только концептуальный уровень моделирования. ER-модель не содержит деталей реализации. Для той же самой ER-модели детали ее реализации могут отличаться.
3. Что такое сущность в базе данных? Примеры
Сущность в базе данных – это любой объект в базе данных, который можно выделить исходя из сути предметной области для которой разрабатывается эта база данных. Разработчик базы данных должен уметь правильно определять сущности.
Пример 1. В базе данных книжного магазина можно выделить следующие сущности:
- книга;
- поставщик;
- размещение в магазине.
Пример 2. В базе данных учета учебного процесса некоторого учебного заведения можно выделить следующие сущности:
- студенты (ученики);
- преподаватели;
- группы;
- дисциплины, которые изучаются.
4. Какие существуют разновидности типов сущностей? Обозначение типов сущностей в ER-модели
В модели «сущность»-«связь» различают две разновидности типов сущностей:
- слабый тип. Этот тип сущности есть зависимым от сильной сущности;
- сильный тип. Это самостоятельный тип сущности, который ни от кого не зависит.
На рисунке 1 изображены обозначения слабого и сильного типа сущности в ER-модели.
Рис. 1. Обозначение сильного и слабого типов сущности
5. Для чего предназначены атрибуты? Виды атрибутов. Обозначение атрибутов на ER-модели
Каждый тип сущности имеет определенный набор атрибутов. Атрибуты предназначены для описания конкретной сущности.
Различают следующие виды атрибутов:
- простые атрибуты. Это атрибуты, которые могут быть частью составных атрибутов. Эти атрибуты состоят из одного компонента. Например, к простым атрибутам можно отнести: код книги в библиотеке или курс обучения студента в учебном заведении;
- составные атрибуты. Это атрибуты, которые состоят из нескольких простых атрибутов. Например, адрес проживания может содержать название страны, населенного пункта, улицы, номера дома;
- однозначные атрибуты. Это атрибуты, которые содержат только одно единственное значение для некоторой сущности. Например, атрибут «Номер зачетной книги» для типа сущности «Студент» есть однозначным, так как студент может иметь только один номер зачетной книги (одно значение);
- многозначные атрибуты. Это атрибуты, которые могут содержать несколько значений. Например, многозначный атрибут «Номер телефона» для сущности «Студент», так как студент может иметь несколько номеров телефона (домашний, мобильный и т.д.);
- произвольные атрибуты. Это атрибуты, значение которых формируется на основе значений других атрибутов. Например, текущий курс обучения студента можно вычислить на основе разности текущего года обучения и года поступления студента в учебное заведение (если студент не имел проблем с учебой и хорошо учил дисциплину «Организация баз данных и знаний»).
На ER-диаграмме атрибуты обозначаются так, как изображено на рисунке 2. Как видно из рисунка, любой атрибут обозначается в виде эллипса с названием внутри эллипса. Если атрибут есть первичным ключом, то его название подчеркивают.
Рисунок 2. Представление атрибутов на диаграммах ER-модели
6. Как типы сущностей и атрибуты ER-модели реализуются в реальных базах данных и управляемых ими программах?
При разработке программ управления базами данных, типы сущностей и их атрибуты можно представлять по разному при этом придерживаясь нескольких подходов:
- выбрать в качестве источника данных известную технологию (например Microsoft SQL Server, Oracle Database, Microsoft Access, Microsoft ODBC Data Source и т.п.), которая уже исследована, протестирована, стандартизирована и имеет огромный набор средств управления базой данных;
- разработать собственный формат базы данных и реализовать методы ее обработки, а взаимодействие с известными источниками данных реализовать в виде специальных команд наподобие Импорт/Экспорт. В этом случае придется собственноручно программировать всю рутинную работу по ведению и обеспечению надежной работы базы данных;
- реализовать объединение двух вышеприведенных подходов. Современные средства разработки программного обеспечения имеют мощный набор библиотек для обработки сложных наборов и визуализации данных в них (коллекции, массивы, компоненты визуализации и т.п.).
Если база данных реализуется в известных реляционных СУБД (например Microsoft Access, Microsoft SQL Server и т.п.), то типы сущностей представляются таблицами. Атрибуты из ER-модели соответствуют полям таблицы. Одна запись в таблице базы данных представляет один экземпляр сущности.
Каждый вид атрибута реализуется следующим образом:
- простой атрибут или однозначный атрибут может быть представлен доступным набором базовых типов, которые есть в любом языке программирования. Например, целочисленные атрибуты представляются типом int , integer , uint и т.д.; атрибуты содержащие дробную часть могут быть представлены типом float , double ; строчные атрибуты типом string и т.д.;
- составной атрибут – это объект, который включает в себя несколько вложенных простых атрибутов. Например, в СУБД Microsoft Access составной атрибут некоторой таблицы может формироваться на основе набора простых типов (полей). В языках программирования объединение полей реализуется структурами или классами;
- многозначный атрибут может быть реализован массивом или коллекцией простых или составных атрибутов;
- произвольный атрибут реализуется дополнительным полем, которое вычисляется при обращении к таблице. Такое поле называется вычислительным полем (calculated field) и формируется на основе других полей таблицы;
- атрибут, который есть первичным ключом может быть целочисленным, строчным или иного порядкового типа. В этом случае, значение каждой ячейки таблицы, которая соответствует первичному ключу, есть уникальным. Наиболее часто, в качестве первичного ключа выступает целый тип ( int , integer ).
Если база данных реализована в уникальном формате, то типы сущностей удобнее всего представлять в виде классов или структур. Атрибуты сущности реализуются в виде полей (внутренних данных) класса. Методы класса реализуют необходимую обработку полей класса (атрибутов). Взаимодействие (связь) между классами реализуется с помощью специально разработанных интерфейсов с использованием известных шаблонов проектирования.
7. Пример фрагмента ER-модели для типа сущности «Студент»
Приведенный пример демонстрирует фрагмент ER-модели для типа сущности «Студент».
Рисунок 3. Фрагмент ER-модели для типа сущности «Студент»
На вышеприведенном рисунке объявляются следующие атрибуты, которые в СУБД (программе) могут иметь следующие типы:
- атрибут Первичный ключ – есть уникальным целочисленным значением которое формируется автоматически. В СУБД это есть поле-счетчик;
- атрибут Год вступления – простой атрибут, который можно реализовать целочисленным значением ( int , integer );
- атрибут Номер телефона – многозначный атрибут, который может быть реализован как массив или коллекция и т.п.;
- атрибут Номер зачетной книжки – простой атрибут, который можно реализовать как строку символов, поскольку номер зачетной книжки кроме цифр может содержать и буквы;
- атрибут Страна , Город , Улица , Номер дома – это атрибуты, которые образуют составной атрибут Адрес . Все эти атрибуты могут быть строчного (текстового) типа ( string , Text );
- атрибут Фамилия , Имя , Отчество – это простые атрибуты, которые являются частью составного атрибута Имя студента . Все эти атрибуты могут быть строчного (текстового) типа ( string , Text );
- атрибут День рождения – простой атрибут типа Дата ( DateTime );
- атрибут Возраст студента – вычисляемое поле, которое определяется как разность текущей (системной) даты и значения атрибута День рождения .
Связанные темы
- Подтипы сущностей. Супертип. Пример. Преимущества и недостатки применения подтипов сущностей
- Понятие связи в ER-модели. Мощность связи. Типы связей. Примеры
2. Проектирование баз данных.
Определение отношений между сущностями и определение первичных и вторичных (внешних) ключей.
В процессе проектирования определяется структура реляционной БД (состав таблиц, их структура и логические связи). Структура таблицы определяется составом столбцов, типом данных и размерами столбцов, ключами таблицы.
К базовым понятиями модели БД «сущность – связь» относятся: сущности, связи между ними и их атрибуты (свойства).
Сущность – любой конкретный или абстрактный объект в рассматриваемой предметной области. Сущности – это базовые типы информации, которые хранятся в БД (в реляционной БД каждой сущности назначается таблица). К сущностям могут относиться: студенты, клиенты, подразделения и т.д. Экземпляр сущности и тип сущности — это разные понятия. Понятие тип сущности относится к набору однородных личностей, предметов или событий, выступающих как целое (например, студент, клиент и т.д.). Экземпляр сущности относится, например, к конкретной личности в наборе. Типом сущности может быть студент, а экземпляром – Петров, Сидоров и т. д.
Атрибут – это свойство сущности в предметной области. Его наименование должно быть уникальным для конкретного типа сущности. Например, для сущности студент могут быть использованы следующие атрибуты: фамилия, имя, отчество, дата и место рождения, паспортные данные и т.д. В реляционной БД атрибуты хранятся в полях таблиц.
Связь – взаимосвязь между сущностями в предметной области. Связи представляют собой соединения между частями БД (в реляционной БД – это соединение между записями таблиц).
Сущности – это данные, которые классифицируются по типу, а связи показывают, как эти типы данных соотносятся один с другим. Если описать некоторую предметную область в терминах сущности – связь, то получим модель сущность — связь для этой БД.
Рассмотрим предметную область: Деканат (Успеваемость студентов)
В БД «Деканат» должны храниться данные о студентах, группах студентов, об оценках студентов по различным дисциплинам, о преподавателях, о стипендиях и т.д. Ограничимся данными о студентах, группах студентов и об оценках студентов по различным дисциплинам. Определим сущности, атрибуты сущностей и основные требования к функциям БД с ограниченными данными.
Основными предметно-значимыми сущностями БД «Деканат» являются: Студенты, Группы студентов, Дисциплины, Успеваемость.
Основные предметно-значимые атрибуты сущностей:
-студенты – фамилия, имя, отчество, пол, дата и место рождения, группа студентов;
-группы студентов – название, курс, семестр;
-дисциплины – название, количество часов
— успеваемость – оценка, вид контроля.
Основные требования к функциям БД:
-выбрать успеваемость студента по дисциплинам с указанием общего количества часов и вида контроля;
-выбрать успеваемость студентов по группам и дисциплинам;
-выбрать дисциплины, изучаемые группой студентов на определенном курсе или
Из анализа данных предметной области следует, что каждой сущности необходимо назначить простейшую двумерную таблицу (отношения). Далее необходимо установить логические связи между таблицами. Между таблицами Студенты и Успеваемость необходимо установить такую связь, чтобы каждой записи из таблицы Студенты соответствовало несколько записей в таблице Успеваемость, т.е. один – ко – многим, так как у каждого студента может быть несколько оценок.
Логическая связь между сущностями Группы – Студенты определена как один – ко – многим исходя из того, что в группе имеется много студентов, а каждый студент входит в состав одной группе. Логическая связь между сущностями Дисциплины – Успеваемость определена как один – ко – многим, потому что по каждой дисциплине может быть поставлено несколько оценок различным студентам.
На основе вышеизложенного составляем модель сущность – связь для БД «Деканат»
— стрелка является условным обозначением связи: один – ко – многим.
Для создания БД необходимо применить одну из известных СУБД, например СУБД Access.
2.4.2. Система управления базами данных Mіcrosoft Access 2003 и ее основные возможности
Приложение Microsoft Access – это настольная система управления реляционными базами данных (СУБД), предназначенная для работы на автономном персональном компьютере (ПК) или локальной вычислительной сети под управлением семейства операционных систем Microsoft Windows (Windows 2000, Windows XP и Windows Server 2003).
СУБД Microsoft Access обладает мощными, удобными и гибкими средствами визуального проектирования объектов с помощью Мастеров, что позволяет пользователю при минимальной предварительной подготовке довольно быстро создать полноценную информационную систему на уровне таблиц, запросов, форм и отчетов.
К основным возможностям СУБД Microsoft Access можно отнести следующие:
Проектирование базовых объектов – двумерные таблицы с полями разных типов данных.
Создание связей между таблицами, с поддержкой целостности данных, каскадного обновления полей и каскадного удаления записей.
Ввод, хранение, просмотр, сортировка, изменение и выборка данных из таблиц с использованием различных средств контроля информации, индексирования таблиц и аппарата алгебры логики.
Создание, модификация и использование производных объектов (запросов, форм и отчетов).
Пользовательский интерфейс MS Access 2003
Интерфейс пользователя MS Access – это комплекс программ, который реализует диалог в процессе работы пользователя с приложением Access.
После загрузки MS Access на экране появится главное окно, в котором размещается окно базы данных. При первом запуске Access в главном окне выводится область задач в режиме «Приступая к работе», с помощью которой можно открыть существующие БД и «Создать файл».
При выборе команды «Создать файл» в области задач изменится режим на «Создание файла».
При выборе команды «Новая база данных» откроется окно диалога «Файл новой базы данных», в котором необходимо выбрать имя диска и директории для хранения БД, а также имя БД (тип файла устанавливается по умолчанию «Базы данных Microsoft Office Access») и щелкнуть на кнопке «Создать», будет сохранен файл с расширением .mdb.
В главном окне появится окно БД с назначенным именем, например «Деканат: база данных (формат Access 2000). В Access2003 для новых баз данных по умолчанию используется формат файла Access 2000, необходимый для обеспечения совместимости с базами данных предыдущих версий. Для того чтобы изменить формат файлов Access 2000, необходимо в меню главного окна выбрать команду «Сервис / Служебные программы / Преобразовать базу данных» и указать нужный формат.
ля изменения используемого по умолчанию формата файлов при создании новой базы данных необходимо выбрать команду Сервис / Параметры, активизировать вкладку «Другие» и в списке «Формат файла по умолчанию» выбрать из списка Access 2002—2003.
Главное окно приложения Microsoft Access состоит из следующих областей:
окно базы данных;
1) В строке заголовка находится системное меню в виде пиктограммы, расположенной слева от названия главного окна: «Microsoft Access».
2) Строка меню содержит группы команд объединенные по функциональному признаку: Файл, Правка, Вид, Вставка, Сервис, Окно, Справка. Команды, содержащие в меню аналогичны командам в редакторах Word, Excel и в других приложениях Office.
3) Панель инструментов. При запуске Access по умолчанию активизируется одна панель инструментов. На панели инструментов расположены наиболее часто используемые команды. Перед созданием БД необходимо ознакомиться с главным меню и панелью инструментов.
4) Окно базы данных имеет:
панель инструментов, на которой расположены следующие кнопки: Открыть; Конструктор; Создать; Удалить; Крупные значки; Мелкие значки; Список; Таблица;
панель «Объекты»: таблицы, запросы, формы, отчеты, страницы, макросы и модули
область окна со списком возможных режимов создания новых объектов или просмотра и редактирования существующих объектов (в этой области также отображаются списки имеющихся в этой базе таблиц, форм, запросов и т.д.)
5) Строка состояния находится внизу главного окна и предназначена для вывода краткой информации о текущем режиме работы.
Рассмотри более подробнее окно БД.
В строке заголовка окна базы данных отображается ее имя.
Команды панели инструментов окна БД:
Открыть – открытие выделенного объекта (таблицы, запроса, формы и т.д.) в режиме страницы;
Конструктор — открытие выделенного объекта в режиме конструктора;
Создать – создание объекта базы данных;
Удалить – Удаление выделенного объекта;
Крупные значки; Мелкие значки; Список; Таблица – представление объектов базы данных в окне базы данных в соответствующем виде.
Таблица – двумерные таблицы, которые используется для хранения данных в реляционных базах данных. Данные хранятся в записях, которые состоят из отдельных полей. Каждая таблица содержит информацию о сущностях определенного типа (например, студентах).
Запрос — средство для отбора данных, удовлетворяющих определенным условиям. С помощью запросов можно выбрать из базы данных только необходимую информацию
Форма – средство, которое позволяет упростить процесс ввода или изменения данных в таблицах БД, что обеспечивает ввод данных персоналом невысокой квалификации.
Отчет — средство, которое позволяет извлечь из базы нужную информацию и представить ее в виде, удобном для восприятия, а также подготовить для распечатки отчет, который оформлен соответствующим образом.
Страницы — страницы доступа к данным представляют собой специальную Web-страницу, предназначенную для просмотра и работы через Интернет или интрасеть с данными, которые хранятся в базах данных Microsoft Access или БД MS SQL Server.
Макрос — набор макрокоманд, создаваемый пользователем для автоматизации выполнения конкретных операций.
Модуль — объект, содержащий программы на языке Visual Basic, применяемые в некоторых случаях для обработки данных.
Область со списком возможных режимов создания объектов.
В этой области кроме списка режимов создания объектов отображаются созданные объекты (например, таблицы, формы и т.д.), которые можно просматривать или редактировать. Для этого необходимо выделить требуемый объект, например, таблицу и нажать кнопку «Открыть» или «Конструктор».
Нажатие кнопки “Открыть” активизирует режим таблицы, в котором можно просматривать и редактировать данные в выбранной таблице. Нажатие кнопки “Конструктор” открывает таблицу в режиме конструктора, предназначенном для просмотра и изменения структуры таблицы.
Описание сущностей и атрибутов
Сущность — это представление набора реальных или абстрактных объектов, которые можно выделить в одну группу, потому что они имеют одинаковые характеристики и могут принимать участие в похожих связях. Каждая сущность должна иметь наименование, выраженное существительным в единственном числе.
Атрибут сущности (поле, домен) — это именованная характеристика, являющаяся некоторым свойством сущности.
Связь — это некоторая ассоциация между двумя сущностями. Одна сущность может быть связана с другой сущностью или сама с собою. Связи позволяют по одной сущности находить другие сущности, связанные с ней.
Сущности и атрибуты базы данных интернет магазина
1. Товар(спортивное питание, тренажеоы, аксессуары), услуги.
Данная сущность и одноимённая таблица базы данных Интернет-магазина содержит информацию о том, чем, собственно говоря идёт торговля на сайте. Поскольку покупатель не может вживую оценить продукт, то моя — предоставить максимально полный перечень свойств, чтобы возникло желание его приобрести. Следовательно, список атрибутов будет таким:
Наименование товара — содержит только название товара. Вся необходимая информация вынесена в “краткое описание” и “полное описание”
Краткое описание — данный атрибут я вынес описывает товар на вкладке выбранного товара, в нем содержится все необходимая информация для привлечения покупателя .
Полное описание — содержит всю информацию необходимую пользователю .
Изображения — здесь имеет место быть связь «один-ко-многим», т.к. у товара может быть несколько изображений.
Цена — стоимость товара
Серийный номер—номер присвоенный товару для дальнейшего совершения покупки.
Таблица товаров(спортивное питание)
Изображение №3
Изображение №4
Изображение №5
2. Администраторская часть
Таблица, соответствующая данной сущности, хранит в базе данных Интернет-магазина информацию о администраторе, которую он указывает при входев администраторскую часть на сайте. Содержит следующий набор атрибутов:
Логин — ник, для входа в администраторскую часть, представляет собой набор символов..
Пароль — для входа в администраторскую часть, представляет собой набор символов.
Изображение №6
3. Контент
Отдельная таблица в которой храниться информация о интернет магазине
Логотип — поле для хранения логотипа фирмы.
Описание-информация о магазине и товарах.
4. Покупатель
Таблица, соответствующая данной сущности, хранит в базе данных Интернет-магазина информацию о покупателе, которую он указывает при регистрации на сайте. содержит следующий набор атрибутов:
Логин — ник пользователя, под которым он будет входить на сайт, представляет собой набор символов..
Пароль — пароль пользователя, с помощью которого он будет входить на сайт, представляет собой набор символов.
Изображение №7
5. Корзина
Таблица базы данных Интернет-магазина, соответствующая данной сущности, хранит в себе информацию о заказах покупателей. Предназначение данной сущности — информирование покупателей и помощь администраторам, которые рассматривают заказы, согласовывая их в телефонном режиме. Список атрибутов таков:
Покупатель — это поле хранит, как правило, идентификатор покупателя из одноимённой таблицы, который сделал заказ.
Товар — идентификатор товара из соответствующей таблицы. Поскольку в одной заказе может быть несколько товаров, есть смысл сделать отдельную таблицу для фиксации этой связи, хранящей идентификатор заказа и товара.
Цена товара — цена каждого товара, присутствующего в заказе.
Серийный номер—номер присвоенный товару для дальнейшего совершения покупки.
Модель сущность-связь
Домен не указывает конкретный физический тип, однако позволяет указать, какие атрибуты будут иметь одинаковый тип в физической модели. Так, например, атрибуты $FirstName$ и $LastName$ сущности $Student$ будут обладать одним физическим типом.
Типы доменов:
- Простой — атомарное значение, например, $id$
- Составной — состоящий из нескольких значений, например, passport
Свойства атрибутов:
Обозначение | Свойство |
---|---|
M | Обязательное (англ. mandatory) |
O | Необязательное (англ. optional) |
PK | Основной ключ (англ. primary key) |
Kn | Дополнительный ключ $n$ (англ. key) |
- Так как любой атрибут обладает либо свойством обязательности, либо свойством необязательности, будем считать атрибуты необязательными по умолчанию, не указывая это свойство явно.
- Основной ключ можно выделить, подчеркнув атрибуты, входящие в него, сплошной линией.
Связи
Пример связи
Связь обозначается линией с двумя концами и обладает следующими характеристиками:
- Имя
- Связываемые сущности и их роли
- Тип связи (задается типами концов)
На примере показано, что студен принадлежит одной группе, а в группе может быть несколько студентов (в том числе нуль).
Типы концов:
Тип | Обозначение |
---|---|
Один | |
Много | |
Обязательный | |
Необязательный |
Можно выбрать значение по умолчанию, которое будет обозначаться сплошной линией без символов.
Связь | Значение | По умолчанию |
---|---|---|
Многие ко многим | Единственность, необязательность | |
Один ко многим | Единственность, обязательность | |
Один к одному | Единственность, обязательность |
Замечание: В дальнейшем будем считать, что значениями по умолчанию будет «один» и «необязательный».
Ассоциации
Определение: |
Ассоциацией (англ. association) называется многосторонняя связь, нагруженная произвольными не ключевыми атрибутами. |
Графическое обозначение ассоциации
- Ассоциация обозначается прямоугольником с закругленными краями
- Может содержать не ключевые атрибуты
- Имеет произвольное количество концов с произвольными ролями и типами
Пример с ассоциацией
Проанализируем пример. Контракт заключается с одним студентом, на одну специальность, которая может быть не указана на момент заключения контракта. У контракта должен быть один или более поручителей. Контракт нагружен информацией о датах, когда контракт был подготовлен (обязательный атрибут) и подписан (опциональный атрибут, поскольку контракт может быть подписан не сразу).
Как понять, что использовать: ассоциацию, связь или сущность?
- Если нужно два конца и нет нагруженности, используем связь
- Если нужно идентифицировать, используем сущность, поскольку связь не идентифицируется из-за отсутствия ключевых элементов
- Иначе используется ассоциация
Многосторонние ассоциации
Пример неоднозначности интерпретации связей
Многостороннюю ассоциацию можно интерпретировать по-разному. Так, например, на рисунке может быть обозначено следующее:
- У каждого контракта есть один поручитель
- Можно быть поручителем у ровно одного контракта
Ограничение по Чену (англ. Chen-like, Look-across) | Зафиксировав остальные сущности, получаем ограничение на рассматриваемую. У каждого контракта есть поручитель. | |
Ограничение по Мерис (англ. Merise-like, Look-here) | Ограничение непосредственно на сущность. Можно быть поручителем у одного контракта. |
Также существуют обобщенные ограничения (англ. generic), позволяющие зафиксировать произвольное подмножество.
Выразительная мощность ограничений
- Для ассоциаций с двумя концами:
- Чен = Мерис = Обобщенные
- Чен + Мерис = Обобщенные
- Чен + Мерис < Обобщенные
Слабые сущности
Определение: Слабой сущностью называется сущность, у которой недостаточно атрибутов для идентификации. Слабая сущность обозначается прямоугольником с двойной границей.
Определение: Идентифицирующей связью называется связь, позволяющая слабой сущности получить атрибуты, необходимые для ее идентификации. Пример слабой сущности
Идентифицирующая связь обозначается двойной сплошной линией.
Например, название учебной группы уникально в рамках одного университета. Если же мы будем рассматривать несколько университетов, для идентификации группы будет недостаточно лишь ее названия. В таком случае можно считать группу слабой сущностью, для идентификации которой необходим университет.
Альтернативные нотации
Выше рассматривалась нотация Crow’s foot, предложенная Гордоном Эверестом.
Нотация Питера Чена
Модель Сущность-связь была предложена Питером Ченом в 1976 году, им же была предложена следующая графическая нотация:
UML-нотация
Для каждой таблицы явно подписывается, что она обозначает (ассоциацию, сущность и т.д.). Ограничения прописываются в виде $i..k$ (например, $1..n$), это позволяет наложить ограничение $2..n$, что было невозможно в Crow’s foot.
Object Definition Language
Позволяет задавать схему базы данных кодом.
Рассмотрим пример. У студента есть идентификатор Id , имя Name , а также ссылка на группу group . Явно указываем, что противоположностью этой ссылки является соответствующее поле класса Group : inverse Group::students .
У группы есть Id и смножество студентов students , учащихся в группе. Указываем, что у студентов ссылка хранится в поле group .
В данном примере выражена связь один ко многим: студент зачислен в одну группу, в каждой группе есть несколько студентов.
class Student < int Id; string Name; Group group inverse Group::students; >class Group < int id; Setstudents inverse Student::group; >