Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие СУБД 2011.pdf
Скачиваний:
68
Добавлен:
10.06.2015
Размер:
2.75 Mб
Скачать

24

Рисунок 3.9. – Настройка поля Spec_ID таблицы студентов

В элементе “Источник строк” введите инструкцию на структурированном языке запросов:

SELECT * FROM Spec ORDER BY SpName;

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

Нам осталось внести два изменения. Укажите, что присоединяются два столбца (свойство “Число столбцов”) и размеры этих столбцов 0 и 4 сантиметра (свойство ширина столбцов). Закройте конструктор, не забыв сохранить изменения. Откройте таблицу Students в режиме редактирования данных. Благодаря мастеру подстановок вместо невыразительных значений ключей поле Spec_ID научилось отображать истинные названия специальностей.

Задание

Проанализируйте таблицы, созданные вами на лабораторной работе № 2. Определите ключевые поля, выявите и устраните повторяющиеся данные.

Ставропольский государственный университет, кафедра КБ

25

IV. Модель “сущность-связь” (ER-модель)

Вид занятия – практическое занятие. Время занятия – 2 часа.

При проектировании структур сравнительно простых баз данных разработчик не сталкивается с существенными трудностями. Тому подтверждение пример БД по учёту студентов ВУЗа. Мы легко разработали 2-х табличную физическую модель, позволяющую хранить требуемые данные. Ситуация кардинально меняется, при постановке задач более высокой степени сложности. Даже профессиональному создателю БД тяжело с первой попытки сформировать корректную физическую модель будущей базы данных. Именно поэтому при разработке серьёзных БД процессу физического моделирования предшествует построение более простых моделей БД: концептуальной и логической. На сегодняшнем занятии мы рассмотрим один из методов формирования высокоуровневой концептуальной модели предложенный в 1976 году Ченом. Анонсируемая модель называется моделью

“сущность-связь” (Entity-Relationship model, или просто ER-моделью).

Концепция ER-модели

Идея модели “сущность-связь” зиждется на трёх понятиях: тип сущности (entity type), атрибут и тип связи (relationship type).

ТИП СУЩНОСТИ – это физический или абстрактный объект, подлежащий учёту в БД. Позднее (на физическом этапе моделирования) тип сущности превратится в реляционную таблицу.

Для выявления типов сущностей необходимо проанализировать всю информацию, подлежащую учёту в будущей БД. Если объект отвечает на вопрос “Кто?” или “Что?”, то это первый признак, что перед нами тип сущности. Примерами типов сущностей могут стать: “Студент”, “Специальность”, “Автомобиль”, “Товар”. Типы сущности разделяются на сильные и слабые.

Под слабым типом сущности понимается, тип сущности, зависящий от какого-то другого типа сущности.

Сильный тип сущности не зависит от какого-то другого типа сущности.

В нашем примере тип сущности “Студент” зависит от типа сущности “Специальность”, таким образом “Студент” считается слабым, а “Специальность” – сильным типом сущности. На диаграммах сильный тип сущности изображается в виде прямоугольника с именем сущности внутри него, а каждый слабый тип сущности – в виде прямоугольника с двойным контуром (рис. 4.1).

Рисунок 4.1. – Изображение типов сущностей на диаграммах

© Осипов Д.Л., 2011

26

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

АТРИБУТ – свойство типа сущности. На физическом этапе моделирования на основе атрибутов создаются поля таблиц.

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

При изображении модели атрибуты рисуются в виде эллипсов, присоединенных линией к соответствующей сущности и помеченных именем атрибута. Эллипс, содержащий производный атрибут окружается пунктирным контуром. Если атрибут является составным, то входящие в его состав атрибуты изображаются в виде присоединенных к нему эллипсов. Если атрибут входит в состав первичного ключа, то его название подчёркивается. На рисунке 4.2 предложен один из вариантов ER-модели будущей таблицы студентов.

Рисунок 4.2. – Представление атрибутов в ER-модели

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

Для организации взаимодействия между типами сущностей применяются типы свя-

зи.

ТИП СВЯЗИ представляет собой ассоциацию между типами сущностей.

Ставропольский государственный университет, кафедра КБ

27

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

“Студент” учится по “Специальности”. “Фирма” расположена в “Городе”.

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

Рисунок 4.3. – Представление типа связи на ER-диаграмме

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

Структура

предприятия

Начальник Подчинённый

Зависит

Рисунок 4.4. – Рекурсивный тип связи

К базовым видам связи относят: а) Связь “один к одному”.

б) Связь “один ко многим”. в) Связь “многие ко многим”.

Ставропольский государственный университет, кафедра КБ

28

Рисунок 4.5. – Варианты видов связи на ER-диаграмме

Для выявления какой именно вид связи должен использоваться между двумя типами сущностей строят диаграмму для экземпляров сущностей. О наличии связи “один к одному” (рисунок а) следует говорить в тех случаях, когда каждая из гипотетических компаний (К1,К2,…, Kn) в состоянии обслуживать только в один из городов. И наоборот – каждый из городов в состоянии содержать только одну компанию. На рисунке б) приведён пример связи один – ко многим. Такой вид связи проявляется в тех случаях, когда, например, в одном городе может размещаться несколько компаний, а компания, в свою очередь, в состоянии обслуживать только один город. И, наконец, связь “многие ко многим” (рисунок в) имеет место в случае отсутствия ограничений на количество компаний в городах.

Рисунок 4.6. – Варианты видов связи

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

Появление на ER-диаграмме связи “многие ко многим” приводит к тому, что при построении физической модели появляется третья таблица. Она выполняет роль диспетчера (коммутатора между основными таблицами). Диспетчер преобразует связь “многие ко многим” в две связи вида “один ко многим”.

Рисунок 4.7. – Пример реализации связи многие ко многим с помощью таблицыкоммутатора

Ставропольский государственный университет, кафедра КБ