Домой / Отопление / Связи между сущностями описываются в. Проектирование баз данных с ERwin. Что такое сущность

Связи между сущностями описываются в. Проектирование баз данных с ERwin. Что такое сущность

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

Сегодня речь пойдет о модели «сущность-связь», или entity-relationship model.

Теория

Модель “сущность-связь” (Entity-Relationship model или ER – модель) представляет собой высокоуровневую концептуальную модель данных, кото­рая была разработана с целью упрощения задачи проектирова­ния структур баз данных.

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

Цель диаграмм “сущность-связь” — это создать точное и полное отображение ре­альной предметной области (ПрО), используемое в дальнейшем в ка­честве источника информации для построения базы данных автоматизированных систем обработки информации (БД АСОИ).

Эта диаграмма или концептуальная модель ПрО должна отвечать сле­дующим тре­бованиям:

  • Обеспечивать адекватное отображение ПрО;
  • Представлять на языке, понятном, как будущим пользователям АСОИ, так и разработ­чикам БД;
  • Содержать информацию о ПрО, достаточную для дальнейшего проек­тирова­ния БД (разработка логической и физической моделей);
  • Гарантировать однозначную интерпретацию или толкование модели ПрО.

Основные концепции этой модели — понятия сущность, атрибут и связь.

СУЩНОСТЬ – это множество объектов реального мира с одинаковыми свой­ствами. Сущ­ность характеризуется независимым существованием и может быть объектом с фи­зическим (или реальным) существова­нием или объектом с концептуальным (или абстрактным) существо­ванием.

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

Практика

ПРИМЕР. Предметная область “Заказ билетов в кинотеатре ”. В кинотеатре показывают фильмы, билеты на которые можно купить в день показа или забронировать их заранее. В базе данных находится информация обо всех Кинопоказах в данном кинотеатре, в том числе о старых. У каждого кинопоказа своя стоимость, т.е. билеты на один и тот же фильм, но в разное время, могут отличаться по цене. Кинопоказ состоит из Фильма, информация о котором так же хранится в БД.

Для ПрО “Заказ билетов в кинотеатре ” сущностями будут выступать следующие понятия:

Кинопоказ

Фильмы

Зритель

Билет

Бронь

Стоимость

Графически сущности на диаграммах “сущность-связь” представляются в виде пря­моугольников:

АТРИБУТ это средство, с помощью которого определяются свойства сущности или связи. Атрибут — это поименованная характеристика сущности. Наименова­ние атрибута должно быть уникальным для кон­кретной сущности, но может быть одинаковым для разных сущностей.

Конкретный набор атрибутов для сущности определяется задачами, в ко­торых они используются. Например, сущности ПрО “Заказ билетов в кинотеатре” можно описать с помощью следующей совокупности атрибутов:

Кинопоказ (Номер кинопоказа, Номер Фильма, Дата показа, Номер Стоимости);

Фильм (Номер фильма, Название, Продолжительность, Краткое описание);

Зритель (Номер зрителя, ФИО, дата рождения);

Билет (Номер зрителя, Номер кинопоказа, Стоимость билета);

Бронь (Номер зрителя, Номер кинопоказа, дата брони);

Стоимость (Номер стоимости, Номер кинопоказа, стоимость).

Графически изображение атрибутов сущности представляются в виде вы­носок, в ко­торых перечисляется список имен атрибутов. Например:

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

СВЯЗЬ – это отношение между экземплярами двух (и более) разных сущностей. Механизм связей используется для того, чтобы опре­делить взаимоотноше­ния между сущностями в ПрО. Кроме этого, существуют отношения между атрибутами отдельной сущности (будут рассмотрены при построении логи­ческих моделей).

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

Наименование связи должно нести в себе определенный смысл, чтобы было легче разобраться в том, как соотносятся сущности. Например, взаимо­отношение между сущ­ностями Зритель и Билет можно определить как “Покупает”.

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

Показатель кардинальности связи (характеристика однозначности) обозначает степень взаимосвязи сущностей и описывает количество возможных связей для каждой из сущ­ностей-участниц:

  • один-к-одному (1:1);
  • один-ко-многим (1:N);
  • многие-ко-многим (N:M).

3 . Компоненты модели данных

Сущность (entity), определение сущности, источники информации о сущностях

Модель данных - концептуальное описание предметной области - самый абстрактный уровень проектирования баз данных. Модель данных состоит из сущностей, атрибутов, доменов и отношений. Далее - про каждый из элементов подробно.

3 .1 Сущности

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

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

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

Сущности могут моделировать конкретные понятия (клиенты, товары, звонки) и абстрактные (агент отвечает за клиента, студент записан на курс).

обозначения .

Стержневая сущность (стержень ) - это независимая сущность (несколько подробнее она будет определена ниже).

В рассмотренных ранее примерах стержни - это "Студент", "Квартира", "Мужчины", "Врач", "Брак" (из примера 2.2) и другие, названия которых помещены в прямоугольники.

Ассоциативная сущность (ассоциация ) - это связь вида "многие-ко-многим" ("-ко-многим" и т.д.) между двумя или более сущностями или экземплярами сущности (как в примере 2.4). Ассоциации рассматриваются как полноправные сущности:

они могут участвовать в других ассоциациях и обозначениях точно так же, как стержневые сущности;

могут обладать свойствами, т.е. иметь не только набор ключевых атрибутов, необходимых для указания связей, но и любое число других атрибутов, характеризующих связь. Например, ассоциации "Брак" из примеров 2.1 и 2.4 содержат ключевые атрибуты "Код_М", "Код_Ж" и "Табельный номер мужа", "Табельный номер жены", а также уточняющие атрибуты "Номер свидетельства", "Дата регистрации", "Место_регистрации", "Номер записи в книгу ЗАГС" и т.д.

Характеристическая сущность (характеристика ) - это связь вида "многие-к-одной" или "одна-к-одной" между двумя сущностями (частный случай ассоциации). Единственная цель характеристики в рамках рассматриваемой предметной области состоит в описании или уточнении некоторой другой сущности. Необходимость в них возникает в связи с тем, что сущности реального мира имеют иногда многозначные свойства. Муж может иметь несколько жен (пример 2.3), книга - несколько характеристик переиздания (исправленное, дополненное, переработанное, ...) и т.д.

Существование характеристики полностью зависит от характеризуемой сущности: женщины лишаются статуса жен, если умирает их муж.

Для описания характеристики используется новое предложение ЯИМ, имеющее в общем случае вид:

ХАРАКТЕРИСТИКА (атрибут 1, атрибут 2, ...) {СПИСОК ХАРАКТЕРИЗУЕМЫХ СУЩНОСТЕЙ}.

Расширим также язык ER-диаграмм, введя для изображения характеристики трапецию (рис. 2.2).

Рис. 2.2. Элементы расширенного языка ER-диаграмм

Обозначающая сущность или обозначение - это связь вида "многие-к-одной" или "одна-к-одной" между двумя сущностями и отличается от характеристики тем, что не зависит от обозначаемой сущности.

Рассмотрим пример, связанный с зачислением сотрудников в различные отделы организации.

При отсутствии жестких правил (сотрудник может одновременно зачисляться в несколько отделов или не зачисляться ни в один отдел) необходимо создать описание с ассоциацией Зачисление:

Отделы (Номер отдела, Название отдела, ...) Служащие (Табельный номер, Фамилия, ...) Зачисление [Отделы M, Служащие N] (Номер отдела, Табельный номер, Дата зачисления).

Однако, при условии, что каждый из сотрудников должен быть обязательно зачислен в один из отделов, можно создать описание с обозначением Служащие:

Отделы (Номер отдела, Название отдела, ...) Служащие (Табельный номер, Фамилия, ... , Номер отдела, Дата зачисления)[Отделы]

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

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

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

ОБОЗНАЧЕНИЕ (атрибут 1, атрибут 2, ...)[СПИСОК ОБОЗНАЧАЕМЫХ СУЩНОСТЕЙ].

Как правило, обозначения не рассматриваются как полноправные сущности, хотя это не привело бы к какой-либо ошибке.

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

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

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

Рис. 2.3. Пример кулинарного рецепта

С помощью указанных пользователей выделены следующие объекты и характеристики проектируемой базы:

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

Анализ объектов позволяет выделить:

  • стержни Блюда, Продукты и Города;
  • ассоциации Состав (связывает Блюда с Продуктами) и

Поставки (связывает Поставщиков с Продуктами);

  • обозначение Поставщики;
  • характеристики Рецепты и Расход.

ER-диаграмма модели показана на рис. 2.4. а модель на языке ЯИМ имеет следующий вид:

Блюда (БЛ, Блюдо, Вид) Продукты (ПР, Продукт, Калорийность) Поставщики (ПОС, Город, Поставщик) [Город] Состав [Блюда M, Продукты N] (БЛ, ПР, Вес (г)) Поставки [Поставщики M, Продукты N] (ПОС, ПР, Дата_П, Цена, Вес (кг)) Города (Город, Страна) Рецепты (БЛ, Рецепт) {Блюда} Расход (БЛ, Дата_Р, Порций) {Блюда}

В этих моделях Блюдо, Продукт и Поставщик - наименования, а БЛ, ПР и ПОС - цифровые коды блюд, продуктов и организаций, поставляющих эти продукты.

Рис. 2.4. Инфологическая модель базы данных "Питание"

[ Назад ] [ Содержание ] [ Вперед ]

Базы данных: Классификация сущностей

страницы в данном разделе


Создание БД начинается с проектирования.

Этапы проектирования БД:

· Исследование предметной области;

· Анализ данных (сущностей и их атрибутов);

· Определение отношений между сущностями и определение первичных и вторичных (внешних) ключей.

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

К базовым понятиями модели БД «сущность – связь» относятся: сущности, связи между ними и их атрибуты (свойства).

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

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

Связь – взаимосвязь между сущностями в предметной области. Связи представляют собой соединения между частями БД (в реляционной БД – это соединение между записями таблиц).

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

Рассмотрим предметную область: Деканат (Успеваемость студентов )
В БД «Деканат» должны храниться данные о студентах, группах студентов, об оценках студентов по различным дисциплинам, о преподавателях, о стипендиях и т.д. Ограничимся данными о студентах, группах студентов и об оценках студентов по различным дисциплинам. Определим сущности, атрибуты сущностей и основные требования к функциям БД с ограниченными данными.

Основными предметно-значимыми сущностями БД «Деканат» являются : Студенты, Группы студентов, Дисциплины, Успеваемость.

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


Основные требования к функциям БД:
-выбрать успеваемость студента по дисциплинам с указанием общего количества часов и вида контроля;
-выбрать успеваемость студентов по группам и дисциплинам;
-выбрать дисциплины, изучаемые группой студентов на определенном курсе или
определенном семестре.

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

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

На основе вышеизложенного составляем модель сущность – связь для БД «Деканат»

Стрелка является условным обозначением связи: один – ко – многим.

Для создания БД необходимо применить одну из известных СУБД, например СУБД Access.

Базовые понятия модели БД «сущность – связь» (ER-модель): сущности, связи между ними и их атрибуты (свойства).

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

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

Связь – взаимосвязь между сущностями в предметной области. Связи представляют собой соединения между частями БД (в реляционной БД – это соединение между записями таблиц).

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

стрелка является условным обозначением связи: один – ко – многим.

Основные преимущества ER-моделей: * наглядность; * модели позволяют проектировать базы данных с большим количеством объектов и атрибутов;

Основные элементы ER-моделей: * объекты (сущности); * атрибуты объектов; * связи между объектами.

Связь между сущностями характеризуется: * типом связи (1:1, 1:N, N:М); * классом принадлежности. Класс может быть обязательным и необязательным. Если каждый экземпляр сущности участвует в связи, то класс принадлежности - обязательный, иначе - необязательный.


Понятие нормализации данных. Функциональная зависимость.

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

Функциональная зависимость. Пусть X и Y - два атрибута некоторого отношения. Говорят, что Y функционально зависит от X, если в любой момент времени каждому значению Х соответствует не более одного значения атрибута Y.

Функциональную зависимость обозначают так X - > У.

Отношение студент S (Ns, Fio, Ngr, Addr, Tel). Каждый из атрибутов Fio, Ngr, Addr, Tel функционально зависит от атрибута Ns.

Итак, в нормализованном отношении все неключевые атрибуты функционально зависят от ключа отношения. Ключом отношения S является атрибут Ns.